-
Notifications
You must be signed in to change notification settings - Fork 2
docs: promote stranded conventions to path-scoped rules and nested AGENTS.md #3388
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
effa775
docs(agents): point root AGENTS.md at the validate-a-change contract
claude 173869b
docs(rules): add marketplace.json-scoped pointer to the catalog taxonomy
claude 3e78bcc
docs(rules): add hooks-tree-scoped pointer to the hook-budget convention
claude b056a6e
docs(rules): add python-scoped pointer to the ruff pin wrapper
claude 730f24e
docs(machine-health): add nested AGENTS.md pointing at the skill layo…
claude fa1a385
docs(machine-health): point nested AGENTS.md at the dual-invocation c…
claude 1c6c37e
docs(machine-health): point nested AGENTS.md at the stateless-checks …
claude e1f443f
chore(machine-health): bump to 0.11.8 for the nested contributor-conv…
claude File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| --- | ||
| description: "Where the marketplace category taxonomy lives; read before adding or changing a plugin's category" | ||
| paths: | ||
| - ".claude-plugin/marketplace.json" | ||
| --- | ||
|
|
||
| # Catalog category taxonomy | ||
|
|
||
| The category vocabulary for `.claude-plugin/marketplace.json` is maintained in | ||
| [`docs/CATALOG-TAXONOMY.md`](../../docs/CATALOG-TAXONOMY.md). Read its Form rule, Assignment | ||
| principle, and Singleton governance sections before assigning, renaming, or merging any plugin | ||
| category; do not invent a category value from the existing entries alone. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| --- | ||
| description: "Marketplace-wide latency budget for always-on hooks; read before adding or widening a hook" | ||
| paths: | ||
| - "plugins/*/hooks/**" | ||
| --- | ||
|
|
||
| # Hook budget | ||
|
|
||
| This marketplace holds a fixed latency budget for always-on hooks, defined in | ||
| [`docs/conventions/hook-budget/README.md`](../../docs/conventions/hook-budget/README.md). Read its | ||
| Rules section before adding a hook or widening an existing one's matcher: the change must state | ||
| its measured share of the budget in the plugin's README, and the budget never relaxes to absorb | ||
| an overage. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| --- | ||
| description: "Python linting runs through the pinned ruff wrapper, never a bare ruff on PATH" | ||
| paths: | ||
| - "**/*.py" | ||
| --- | ||
|
|
||
| # Ruff pin | ||
|
|
||
| Lint Python in this repo through `scripts/run-ruff.sh check <paths>` (the wrapper passes any | ||
| ruff arguments through and resolves the CI-pinned ruff version); a bare `ruff` on PATH can | ||
| disagree with CI in both directions, so never use it for verification here. Do not adopt a newer ruff's new rules in an | ||
| unrelated change; bumping the pin is a deliberate Dependabot change. Full rationale: | ||
| [`docs/CI-RUNNER-ROUTING.md`, "Local / workstation ruff"](../../docs/CI-RUNNER-ROUTING.md#local--workstation-ruff). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| # claude-code-plugins | ||
|
|
||
| ## Validate a change | ||
|
|
||
| Validate with `scripts/affected-tests.sh --run` (add `--explain` to see why each suite was | ||
| selected) instead of running every suite; CI still runs everything. A changed file that maps | ||
| to zero suites is an error, never "nothing to run". Full contract, including the no-suite | ||
| allowlist and the `NOT RUN` ecosystems: [README.md, "Validate a change"](README.md#validate-a-change). | ||
|
|
||
| <!-- BEGIN GENERATED: instruction-placement rules index --> | ||
|
|
||
| ## Conventions that load on demand | ||
|
|
||
| Each surface below enters context automatically when Claude reads a file it covers. That trigger | ||
| does **not** fire inside subagents, and after a compaction it fires again only when a covered file | ||
| is read again. When you are working on something an entry covers and its content is not already in | ||
| context, read the file directly. | ||
|
|
||
| | Surface | Covers | Topic | | ||
| |---|---|---| | ||
| | `.claude/rules/catalog-taxonomy.md` | `.claude-plugin/marketplace.json` | Where the marketplace category taxonomy lives; read before adding or changing a plugin's category | | ||
| | `.claude/rules/hook-budget.md` | `plugins/*/hooks/**` | Marketplace-wide latency budget for always-on hooks; read before adding or widening a hook | | ||
| | `.claude/rules/ruff-pin.md` | `**/*.py` | Python linting runs through the pinned ruff wrapper, never a bare ruff on PATH | | ||
| | `plugins/machine-health/skills/audit/AGENTS.md` | `plugins/machine-health/skills/audit/**` | machine-health audit skill: contributor conventions | | ||
|
|
||
| <!-- END GENERATED: instruction-placement rules index --> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,27 @@ | ||
| # machine-health audit skill: contributor conventions | ||
|
|
||
| Maintainer conventions for this skill live in [`README.md`](README.md); the sections below say | ||
| when to read each one. | ||
|
|
||
| ## Layout: semantics vs implementation | ||
|
|
||
| Before adding or moving anything under `references/` or `scripts/`, read | ||
| [README.md, "Separation of semantics from implementation"](README.md#separation-of-semantics-from-implementation): | ||
| OS-agnostic content belongs in `references/shared/`, per-OS detection in `references/<os>/`, | ||
| and adding a new OS must be "populate two folders", never a refactor of the skill. | ||
|
|
||
| ## Check scripts run two ways | ||
|
|
||
| Before writing or editing a check script, read | ||
| [README.md, "Dual-invocation scripts"](README.md#dual-invocation-scripts): every check emits a | ||
| single JSON object on stdout for Claude (schema in `references/shared/output-schema.md`) and | ||
| takes `-Human` for readable output, using `Write-Host` in that mode so structured emitters keep | ||
| working over pipelines. | ||
|
|
||
| ## Checks are stateless; the orchestrator owns state | ||
|
|
||
| Before touching a check's inputs or anything involving `state/history.jsonl`, read | ||
| [README.md, "Stateless checks, stateful orchestrator"](README.md#stateless-checks-stateful-orchestrator): | ||
| checks take a current reading and return it, never reading `history.jsonl` directly; the | ||
| orchestrator (`Invoke-MachineHealthCheck.ps1`) hands them a history slice over stdin and owns all | ||
| trend, severity, timeout, remediation, and reporting logic. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| @AGENTS.md |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.