Skip to content

feat: pilot the convention-doc migration on plugin-quality (Phase 2d) - #3620

Merged
kyle-sexton merged 1 commit into
mainfrom
chore/pilot-plugin-quality
Sep 2, 2026
Merged

feat: pilot the convention-doc migration on plugin-quality (Phase 2d)#3620
kyle-sexton merged 1 commit into
mainfrom
chore/pilot-plugin-quality

Conversation

@kyle-sexton

Copy link
Copy Markdown
Contributor

Closes #3619

Summary

Phase 2d PILOT of the customization-consistency program (ADR 0018): migrates plugin-quality's team-shared config surface from the dedicated .claude/plugin-quality.md three-layer cascade to a convention doc at the consumer's convention home (<home>/plugin-quality/README.md), bound by the pointer line and resolved by the shared resolver. First plugin to ship retirements.yaml alongside source-control's (records plugin-quality-r001 migrate, plugin-quality-r002 overlay delete), enrolling the check-retirements sync cluster and creating the resolve-convention-home cluster (sync script, registry entry, CI job). Stacked on the Phase 2b PR (#3597); expect a trivial registry/ci.yml merge with the 2c PR (#3601) whichever lands second.

Fix

Reading side: audit resolves home → topic doc → dual-read (retired file is authority while present, WARN every run) → defaults; retired user-global/overlay layers read nowhere, WARN-visible. Setup: check reports the four resolver outcomes distinctly (exit 1 = INFO unconfigured, exit 3 causes = FAIL ask-don't-infer) plus the two fixed retirement lines; apply binds the home on operator confirmation only (marked-region append, never outside it), converges the topic doc (the old file's values are the migration source), then per-record gated cleanup. config-cascade and retired-conventions Implementers rows rewritten in the same PR per the doctrine's row rule. Bumps: plugin-quality 0.6.11, claude-config 0.40.5.

Verification

Deterministic consumer-repo sim (scripts/pilot-plugin-quality-sim.test.sh, 23 assertions, wired into the new resolve-convention-home-sync CI job): populated-AGENTS.md region append leaves prose byte-identical; resolver exit codes; exact detection TSV for both records; migrate-gate refusal without --i-migrated; clean + re-detect clean; CRLF root file. Validator (append-only + wiring + eval-per-record) green against origin/main; both sync clusters --check/--check-bump green; drift check green; resolver 61/61 and helper 174/174; markdownlint, shellcheck, eval lint, lane coverage, catalog/cheatsheet green; skill-quality PASS on both touched skills (audit SKILL.md trimmed back under the 500-line cap).

Related

Refs #3596/#3597 (mechanism), #3600/#3601 (2c), ADR 0018, config-cascade § Expression doctrine, retired-conventions convention. POST-PILOT USER GATE: this pilot is the template the user reviews before any other surface migrates — in particular seven flagged doctrine calls (overlay delete-not-migrate; no content_match on r002; WARN routed through the r002 record in setup while user-global stays prose-only; audit-side resolver exit-3 report-and-continue; dual-read eval living audit-side; records stamped with the shipping version; the gitignore-overlay recommendation dropped from the migrated surface). No other surface migrates until ratified.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 1, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-01T23:51:12.172278Z 598796e PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 598796eb4c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/ci.yml
Comment thread plugins/plugin-quality/lib/resolve-convention-home.sh Outdated
@cursor
cursor Bot force-pushed the chore/retired-conventions-mechanism branch from 3315cbc to 26502c9 Compare September 2, 2026 10:59
Base automatically changed from chore/retired-conventions-mechanism to main September 2, 2026 11:41
Migrate plugin-quality's team config surface from the dedicated
.claude/plugin-quality.md cascade to a topic doc at the consumer's
convention home per the ADR 0018 expression doctrine: retirements.yaml
(plugin-quality-r001 migrate, plugin-quality-r002 overlay delete) with
eval coverage per record, resolver-driven setup check/apply and a
WARN-visible dual-read window, synced check-retirements.sh and
resolve-convention-home.sh copies with a new sync script, registry
entries and CI job, a deterministic consumer-repo sim, and rewritten
config-cascade / retired-conventions Implementers rows.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014uBXt1tMEReShbpG5gsFUd

Co-authored-by: ksextonmelodic <ksextonmelodic@gmail.com>
@cursor
cursor Bot force-pushed the chore/pilot-plugin-quality branch from fa3ec77 to 1d54c22 Compare September 2, 2026 12:35
@claude

claude Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Claude finished @cursor[bot]'s task in 6m 18s —— View job


Review complete

  • Gather context (PR body, diff, existing Codex findings)
  • Invoke /review:code-review per custom instructions
  • Post findings as inline PR comments
  • Final summary

Summary

Reviewed the full diff (git diff origin/main...HEAD) against this PR's stated scope: the Phase 2d convention-doc pilot for plugin-quality (ADR 0018), its new retirements.yaml, the synced check-retirements.sh / resolve-convention-home.sh helper copies, the new resolve-convention-home-sync CI cluster, and the accompanying skill/reference doc rewrites.

Codex's two P1 findings from the earlier review (commit 598796e) are already resolved on the current head (1d54c22):

  • Mark the new sync script executablescripts/sync-resolve-convention-home.sh is committed 100755 on this head (git diff origin/main...HEAD --summary shows create mode 100755), and CI (.github/workflows/ci.yml#L681) invokes it directly, matching the convention every sibling sync job uses.
  • Synchronize the shipped resolver with its canonical copydiff -u plugins/claude-config/lib/resolve-convention-home.sh plugins/plugin-quality/lib/resolve-convention-home.sh (shipped copy) is empty; the two are byte-identical. The same check against check-retirements.sh's three copies (claude-config, source-control, plugin-quality) also comes back byte-identical.

No new blocking findings. I checked the areas with the highest blast radius for a config-surface migration — schema validation in check-retirements.sh against the new retirements.yaml records (plugin-quality-r001/r002), the resolver's documented exit codes (0/1/2/3) against setup/SKILL.md's four-outcome reporting, the CI job wiring/dependency list, cross-plugin-source-registry.txt, sync-check-retirements.sh's carrier list, and the doc rewrites in config-cascade/README.md and retired-conventions/README.md — and didn't find a correctness or consistency defect a careful reviewer would block on. The dual-read priority (retired file overrides the topic doc per-key while present) is stated unambiguously in skills/audit/SKILL.md (L38-L39) even though reference/config.md's "Resolution order" section states it as a numbered list rather than spelling out the override explicitly — readable correctly on a careful read, not something I'd block on.

Not independently verified (outside available tools in this lane): the PR body's claimed command outputs (23-assertion sim run, resolver 61/61, helper 174/174, markdownlint/shellcheck/eval-lint/validator runs) — this lane's tooling is scoped to read-only inspection (Read/Grep/Glob/git diff), not script execution, so those are author-claimed and unverified by me. Static review of scripts/pilot-plugin-quality-sim.test.sh shows its 6 cases match the fixtures and assertions the PR body describes.

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

Claude has reviewed this PR 1 time. The lane skips further automatic reviews after 5; deleting this comment resets the count.

@kyle-sexton
kyle-sexton merged commit 96ec2d2 into main Sep 2, 2026
67 checks passed
@kyle-sexton
kyle-sexton deleted the chore/pilot-plugin-quality branch September 2, 2026 12:51
kyle-sexton added a commit that referenced this pull request Sep 2, 2026
<!-- CURSOR_AGENT_PR_BODY_BEGIN -->
No linked issue

## Summary

Four concrete `argument-hint` outliers from the 2026-08-31 fleet skills
audit. Official docs treat the field as an optional autocomplete hint
(`[issue-number]`, `[filename] [format]`); an empty string is not a
documented spelling, and the repo's instruction-surface style rejects em
dashes.

## Fix

- `wizard:generate`: add `argument-hint: "<procedure to wizardize>"`.
- `review:code-review` and `review:security-review`: drop
`argument-hint: ""` so they match the other no-arg skills.
- `bugs:setup`: spell `check | apply` like sibling setups.
- `computer-use:diagnose`: drop the em dash; hint is the closed enum
`[screenshots|failures|quirks]`. Omit-for-guide stays in the Arguments
body.

Left for later slices of #3542: `machine-health:audit` (version overlap
with #3672), the proposed house-style convention doc (blocked on the
#3620 post-pilot gate), and the `check-skill.sh` criterion that would
point at that doc.

## Verification

- Official `argument-hint` row: optional autocomplete hint; examples are
terse placeholders.
- `scripts/affected-tests.sh --run --explain` → every changed file is a
recorded no-suite class (SKILL.md / CHANGELOG / plugin.json). Exit 0.

## Related

Refs #3542
Refs #3672
Official: https://code.claude.com/docs/en/skills#frontmatter-reference

<!-- CURSOR_AGENT_PR_BODY_END -->

<div><a
href="https://cursor.com/agents/bc-7ffb619a-6ebb-4d47-9c45-d68e846edf93?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/open-in-web-light.png"><img
alt="Open in Web" width="114" height="28"
src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a
href="https://cursor.com/background-agent?bcId=bc-7ffb619a-6ebb-4d47-9c45-d68e846edf93&cursor_ref=pr_footer&cursor_cta=open_in_cursor"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img
alt="Open in Cursor" width="131" height="28"
src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a>&nbsp;</div>

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: ksextonmelodic <ksextonmelodic@gmail.com>
kyle-sexton added a commit that referenced this pull request Sep 2, 2026
<!-- CURSOR_AGENT_PR_BODY_BEGIN -->
No linked issue

## Summary

`machine-health:audit` already accepts `weekly|on-demand|first-run` and
`--dry-run`, but autocomplete had no `argument-hint`. This is the
leftover concrete fix from `#3542` after `#3673`.

## Fix

- Add `argument-hint: "[weekly|on-demand|first-run] [--dry-run]"` to
`plugins/machine-health/skills/audit/SKILL.md`.
- Bump machine-health to 0.12.9 and record the change.

House-style convention docs and a `check-skill.sh` argument-hint
criterion stay deferred (`#3620` post-pilot gate). This PR does not
close `#3542`.

## Verification

`scripts/affected-tests.sh --run --explain` selected no suites: every
changed file is a recorded no-suite class.

[affected-tests no-suite
result](https://cursor.com/agents/bc-7ffb619a-6ebb-4d47-9c45-d68e846edf93/artifacts?path=%2Fopt%2Fcursor%2Fartifacts%2F3542-mh-argument-hint-demo.log)

## Related

Refs #3542. Follows #3673 (items 2-5) and #3672 (machine-health 0.12.8
`reference/` rename).

<sub>To show artifacts inline, <a
href="https://cursor.com/dashboard/cloud-agents#my-pull-requests">enable</a>
in settings.</sub>
<!-- CURSOR_AGENT_PR_BODY_END -->

<div><a
href="https://cursor.com/agents/bc-7ffb619a-6ebb-4d47-9c45-d68e846edf93?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/open-in-web-light.png"><img
alt="Open in Web" width="114" height="28"
src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a
href="https://cursor.com/background-agent?bcId=bc-7ffb619a-6ebb-4d47-9c45-d68e846edf93&cursor_ref=pr_footer&cursor_cta=open_in_cursor"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img
alt="Open in Cursor" width="131" height="28"
src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a>&nbsp;</div>

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: ksextonmelodic <ksextonmelodic@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

pilot: migrate plugin-quality to a consumer convention doc (Phase 2d pilot)

1 participant