diff --git a/.lycheeignore b/.lycheeignore index 5c540262a9..2dcad1e339 100644 --- a/.lycheeignore +++ b/.lycheeignore @@ -89,6 +89,3 @@ github\.com/meridian-labs/agent-cli/releases/tag/ ^https://api\.github\.com/repos/anthropics/claude-code/releases$ ^https://api\.github\.com/repos/anthropics/claude-code/releases/tags/v2\.1\.269$ ^https://api\.github\.com/repos/anthropics/claude-code/tags$ - -# TEMPORARY (#7537): local links to the plugin-author contracts that moved from docs/conventions// to docs/contracts// dangle until the old-path stubs land; the stubs change removes this entry. -^file://.*/docs/conventions/(argument-hint|authoring-formats|check-placement|commit-convention|config-cascade|consumer-config-layering|detector-findings|ecosystem-commands|enforcement-ladder|execution-target|finding-suppression|hook-budget|hook-config-delivery|hook-input-rewriting|hook-observability|hook-precision|hook-telemetry|instruction-exception-register|invocation-context|invocation-mode|liveness-assertion|loop-lane|mod-authoring|native-references|on-demand-dependencies|permission-rule-hygiene|plugin-data-report-keying|plugin-option-naming|plugin-reconfiguration|pr-body-convention|pr-scope-budget|pre-pr-ordering|prerequisites|recommendation-basis|record-bundle|rendered-views|retired-conventions|routing-as-data|seam-phrasing|setup-lifecycle|shell-test-helpers|skill-argument-shape|standards|tracker-reference-form|untrusted-content|upstream-drift|windows-path-emit|workspace-environment)(/|#|$) diff --git a/docs/conventions/argument-hint/README.md b/docs/conventions/argument-hint/README.md new file mode 100644 index 0000000000..ae46e5446d --- /dev/null +++ b/docs/conventions/argument-hint/README.md @@ -0,0 +1,40 @@ +# Skill argument-hint house style + +This contract moved to [`docs/contracts/argument-hint/`](../../contracts/argument-hint/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## What the field is + +Moved to [this section](../../contracts/argument-hint/README.md#what-the-field-is). + +## Official and house rules + +Moved to [this section](../../contracts/argument-hint/README.md#official-and-house-rules). + +## Notation + +Moved to [this section](../../contracts/argument-hint/README.md#notation). + +## House rules + +Moved to [this section](../../contracts/argument-hint/README.md#house-rules). + +## Setup skills + +Moved to [this section](../../contracts/argument-hint/README.md#setup-skills). + +## What a plugin skill cannot show + +Moved to [this section](../../contracts/argument-hint/README.md#what-a-plugin-skill-cannot-show). + +## Enforcement + +Moved to [this section](../../contracts/argument-hint/README.md#enforcement). + +## What this convention is not + +Moved to [this section](../../contracts/argument-hint/README.md#what-this-convention-is-not). + +## Versioning + +Moved to [this section](../../contracts/argument-hint/README.md#versioning). diff --git a/docs/conventions/authoring-formats/README.md b/docs/conventions/authoring-formats/README.md new file mode 100644 index 0000000000..72d5032177 --- /dev/null +++ b/docs/conventions/authoring-formats/README.md @@ -0,0 +1,48 @@ +# Authoring formats: acceptance-criteria format and diagram dialect + +This contract moved to [`docs/contracts/authoring-formats/`](../../contracts/authoring-formats/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Boundary + +Moved to [this section](../../contracts/authoring-formats/README.md#boundary). + +## The keys + +Moved to [this section](../../contracts/authoring-formats/README.md#the-keys). + +### Why the system key has no default + +Moved to [this section](../../contracts/authoring-formats/README.md#why-the-system-key-has-no-default). + +### Why mermaid is not offered for the system key + +Moved to [this section](../../contracts/authoring-formats/README.md#why-mermaid-is-not-offered-for-the-system-key). + +## C4 dialect surfaces + +Moved to [this section](../../contracts/authoring-formats/README.md#c4-dialect-surfaces). + +## The consumer surface + +Moved to [this section](../../contracts/authoring-formats/README.md#the-consumer-surface). + +## Resolution ladder + +Moved to [this section](../../contracts/authoring-formats/README.md#resolution-ladder). + +### Why a skill restates this instead of citing it + +Moved to [this section](../../contracts/authoring-formats/README.md#why-a-skill-restates-this-instead-of-citing-it). + +## Consumers + +Moved to [this section](../../contracts/authoring-formats/README.md#consumers). + +## Zero config, including here + +Moved to [this section](../../contracts/authoring-formats/README.md#zero-config-including-here). + +## Versioning + +Moved to [this section](../../contracts/authoring-formats/README.md#versioning). diff --git a/docs/conventions/check-placement/README.md b/docs/conventions/check-placement/README.md new file mode 100644 index 0000000000..abac6f0dbe --- /dev/null +++ b/docs/conventions/check-placement/README.md @@ -0,0 +1,64 @@ +# Check placement: where each automated check runs + +This contract moved to [`docs/contracts/check-placement/`](../../contracts/check-placement/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## The rubric + +Moved to [this section](../../contracts/check-placement/README.md#the-rubric). + +### Formatters + +Moved to [this section](../../contracts/check-placement/README.md#formatters). + +### Report-only checks + +Moved to [this section](../../contracts/check-placement/README.md#report-only-checks). + +## The registration contract + +Moved to [this section](../../contracts/check-placement/README.md#the-registration-contract). + +### Setup surface + +Moved to [this section](../../contracts/check-placement/README.md#setup-surface). + +### Entry manifest + +Moved to [this section](../../contracts/check-placement/README.md#entry-manifest). + +### Check-script runtime contract + +Moved to [this section](../../contracts/check-placement/README.md#check-script-runtime-contract). + +### The skip key: checks.skipmissing + +Moved to [this section](../../contracts/check-placement/README.md#the-skip-key-checksskipmissing). + +### HookManager port + +Moved to [this section](../../contracts/check-placement/README.md#hookmanager-port). + +### Where installed copies live + +Moved to [this section](../../contracts/check-placement/README.md#where-installed-copies-live). + +### Drift: the content-hash stamp + +Moved to [this section](../../contracts/check-placement/README.md#drift-the-content-hash-stamp). + +### Tests + +Moved to [this section](../../contracts/check-placement/README.md#tests). + +## typos-format pilot (2026-10-15) + +Moved to [this section](../../contracts/check-placement/README.md#typos-format-pilot-2026-10-15). + +## Duration budgets + +Moved to [this section](../../contracts/check-placement/README.md#duration-budgets). + +### Measured rows + +Moved to [this section](../../contracts/check-placement/README.md#measured-rows). diff --git a/docs/conventions/check-placement/adopting-git-hooks.md b/docs/conventions/check-placement/adopting-git-hooks.md new file mode 100644 index 0000000000..a2454fc8df --- /dev/null +++ b/docs/conventions/check-placement/adopting-git-hooks.md @@ -0,0 +1,3 @@ +# Adopting the git-hook entries + +Moved to [`docs/contracts/check-placement/adopting-git-hooks.md`](../../contracts/check-placement/adopting-git-hooks.md). diff --git a/docs/conventions/commit-convention/README.md b/docs/conventions/commit-convention/README.md new file mode 100644 index 0000000000..942ec7578c --- /dev/null +++ b/docs/conventions/commit-convention/README.md @@ -0,0 +1,24 @@ +# Commit-convention enforcement seam + +This contract moved to [`docs/contracts/commit-convention/`](../../contracts/commit-convention/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Two reads of one file + +Moved to [this section](../../contracts/commit-convention/README.md#two-reads-of-one-file). + +## The parse contract + +Moved to [this section](../../contracts/commit-convention/README.md#the-parse-contract). + +## The neutral convention SSOT (convention_source) + +Moved to [this section](../../contracts/commit-convention/README.md#the-neutral-convention-ssot-convention_source). + +## Two governing contracts + +Moved to [this section](../../contracts/commit-convention/README.md#two-governing-contracts). + +## Consumers + +Moved to [this section](../../contracts/commit-convention/README.md#consumers). diff --git a/docs/conventions/config-cascade/README.md b/docs/conventions/config-cascade/README.md new file mode 100644 index 0000000000..457d19009d --- /dev/null +++ b/docs/conventions/config-cascade/README.md @@ -0,0 +1,72 @@ +# Config Cascade Convention + +This contract moved to [`docs/contracts/config-cascade/`](../../contracts/config-cascade/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Boundary: this contract owns the axis, never the keys + +Moved to [this section](../../contracts/config-cascade/README.md#boundary-this-contract-owns-the-axis-never-the-keys). + +## The layers + +Moved to [this section](../../contracts/config-cascade/README.md#the-layers). + +### Location of the team layer: a docs convention file, or .claude/ + +Moved to [this section](../../contracts/config-cascade/README.md#location-of-the-team-layer-a-docs-convention-file-or-claudename). + +### Why these four and not others + +Moved to [this section](../../contracts/config-cascade/README.md#why-these-four-and-not-others). + +## Merge semantics + +Moved to [this section](../../contracts/config-cascade/README.md#merge-semantics). + +### Sanctioned exception class: policy-floor precedence inversion + +Moved to [this section](../../contracts/config-cascade/README.md#sanctioned-exception-class-policy-floor-precedence-inversion). + +## Overlay naming and the consumer .gitignore + +Moved to [this section](../../contracts/config-cascade/README.md#overlay-naming-and-the-consumer-gitignore). + +## Expression doctrine: which surfaces are files, and which are convention docs + +Moved to [this section](../../contracts/config-cascade/README.md#expression-doctrine-which-surfaces-are-files-and-which-are-convention-docs). + +## Resolution algorithm + +Moved to [this section](../../contracts/config-cascade/README.md#resolution-algorithm). + +### Per-layer verification verdicts + +Moved to [this section](../../contracts/config-cascade/README.md#per-layer-verification-verdicts). + +## Versioning + +Moved to [this section](../../contracts/config-cascade/README.md#versioning). + +## Deviations + +Moved to [this section](../../contracts/config-cascade/README.md#deviations). + +## Semantics at a glance + +Moved to [this section](../../contracts/config-cascade/README.md#semantics-at-a-glance). + +## Implementers + +Moved to [this section](../../contracts/config-cascade/README.md#implementers). + +### Root rule by surface + +Moved to [this section](../../contracts/config-cascade/README.md#root-rule-by-surface). + +### Overlay spelling drift + +Moved to [this section](../../contracts/config-cascade/README.md#overlay-spelling-drift). + +## Surfaces listed for later adoption + +Moved to [this section](../../contracts/config-cascade/README.md#surfaces-listed-for-later-adoption). diff --git a/docs/conventions/config-cascade/consumer-gotchas.md b/docs/conventions/config-cascade/consumer-gotchas.md new file mode 100644 index 0000000000..f6bdc5567d --- /dev/null +++ b/docs/conventions/config-cascade/consumer-gotchas.md @@ -0,0 +1,3 @@ +# Consumer-contributed gotchas (config-cascade tier) + +Moved to [`docs/contracts/config-cascade/consumer-gotchas.md`](../../contracts/config-cascade/consumer-gotchas.md). diff --git a/docs/conventions/consumer-config-layering/README.md b/docs/conventions/consumer-config-layering/README.md new file mode 100644 index 0000000000..b87eb72fb1 --- /dev/null +++ b/docs/conventions/consumer-config-layering/README.md @@ -0,0 +1,4 @@ +# Moved → config-cascade + +This contract moved to [`docs/contracts/consumer-config-layering/`](../../contracts/consumer-config-layering/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. diff --git a/docs/conventions/detector-findings/README.md b/docs/conventions/detector-findings/README.md new file mode 100644 index 0000000000..79cab037d8 --- /dev/null +++ b/docs/conventions/detector-findings/README.md @@ -0,0 +1,88 @@ +# Detector findings: reaching the apply relay from outside review:fanout + +This contract moved to [`docs/contracts/detector-findings/`](../../contracts/detector-findings/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Contents + +Moved to [this section](../../contracts/detector-findings/README.md#contents). + +## Why the contract is format-only + +Moved to [this section](../../contracts/detector-findings/README.md#why-the-contract-is-format-only). + +## Where the file goes + +Moved to [this section](../../contracts/detector-findings/README.md#where-the-file-goes). + +## Boundary + +Moved to [this section](../../contracts/detector-findings/README.md#boundary). + +## The four producer-owned fields + +Moved to [this section](../../contracts/detector-findings/README.md#the-four-producer-owned-fields). + +## Rule ids and thresholds + +Moved to [this section](../../contracts/detector-findings/README.md#rule-ids-and-thresholds). + +## The severity crosswalk + +Moved to [this section](../../contracts/detector-findings/README.md#the-severity-crosswalk). + +## When the remediation is not at Location + +Moved to [this section](../../contracts/detector-findings/README.md#when-the-remediation-is-not-at-location). + +## When the remediation is owned by the producer's own skill + +Moved to [this section](../../contracts/detector-findings/README.md#when-the-remediation-is-owned-by-the-producers-own-skill). + +## Auto-applicability is settled per rule, at contract time + +Moved to [this section](../../contracts/detector-findings/README.md#auto-applicability-is-settled-per-rule-at-contract-time). + +## The remedy is pinned by an assertion, in every scope it fires in + +Moved to [this section](../../contracts/detector-findings/README.md#the-remedy-is-pinned-by-an-assertion-in-every-scope-it-fires-in). + +## A candidate that is not a finding + +Moved to [this section](../../contracts/detector-findings/README.md#a-candidate-that-is-not-a-finding). + +## Coexisting with other producers + +Moved to [this section](../../contracts/detector-findings/README.md#coexisting-with-other-producers). + +## Emitting more than once + +Moved to [this section](../../contracts/detector-findings/README.md#emitting-more-than-once). + +## What a minimally conforming producer may omit + +Moved to [this section](../../contracts/detector-findings/README.md#what-a-minimally-conforming-producer-may-omit). + +## Liveness + +Moved to [this section](../../contracts/detector-findings/README.md#liveness). + +## Many emitters, one statement of each mechanic + +Moved to [this section](../../contracts/detector-findings/README.md#many-emitters-one-statement-of-each-mechanic). + +## Enforceability + +Moved to [this section](../../contracts/detector-findings/README.md#enforceability). + +## Adopters + +Moved to [this section](../../contracts/detector-findings/README.md#adopters). + +## Versioning + +Moved to [this section](../../contracts/detector-findings/README.md#versioning). + +## External authority + +Moved to [this section](../../contracts/detector-findings/README.md#external-authority). diff --git a/docs/conventions/ecosystem-commands/README.md b/docs/conventions/ecosystem-commands/README.md new file mode 100644 index 0000000000..60620ad9c8 --- /dev/null +++ b/docs/conventions/ecosystem-commands/README.md @@ -0,0 +1,44 @@ +# Ecosystem Commands Convention + +This contract moved to [`docs/contracts/ecosystem-commands/`](../../contracts/ecosystem-commands/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Why this contract exists + +Moved to [this section](../../contracts/ecosystem-commands/README.md#why-this-contract-exists). + +## The two layers: canonical verb vs context binding + +Moved to [this section](../../contracts/ecosystem-commands/README.md#the-two-layers-canonical-verb-vs-context-binding). + +## File layout and resolution + +Moved to [this section](../../contracts/ecosystem-commands/README.md#file-layout-and-resolution). + +## Seam classification (recorded deviation) + +Moved to [this section](../../contracts/ecosystem-commands/README.md#seam-classification-recorded-deviation). + +## Resolution ladder (plugin behavior) + +Moved to [this section](../../contracts/ecosystem-commands/README.md#resolution-ladder-plugin-behavior). + +## Schema + +Moved to [this section](../../contracts/ecosystem-commands/README.md#schema). + +### Gate execution scope + +Moved to [this section](../../contracts/ecosystem-commands/README.md#gate-execution-scope). + +## Consumers + +Moved to [this section](../../contracts/ecosystem-commands/README.md#consumers). + +## Task-runner deferral (recorded decision) + +Moved to [this section](../../contracts/ecosystem-commands/README.md#task-runner-deferral-recorded-decision). + +## Versioning + +Moved to [this section](../../contracts/ecosystem-commands/README.md#versioning). diff --git a/docs/conventions/ecosystem-commands/ecosystem.schema.json b/docs/conventions/ecosystem-commands/ecosystem.schema.json new file mode 100644 index 0000000000..ad1cb29f26 --- /dev/null +++ b/docs/conventions/ecosystem-commands/ecosystem.schema.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://raw.githubusercontent.com/melodic-software/claude-code-plugins/main/docs/conventions/ecosystem-commands/ecosystem.schema.json", + "description": "Moved to docs/contracts/ecosystem-commands/ecosystem.schema.json; this schema refers there.", + "$ref": "https://raw.githubusercontent.com/melodic-software/claude-code-plugins/main/docs/contracts/ecosystem-commands/ecosystem.schema.json" +} diff --git a/docs/conventions/ecosystem-commands/examples/dotnet.yaml b/docs/conventions/ecosystem-commands/examples/dotnet.yaml new file mode 100644 index 0000000000..f7fc121245 --- /dev/null +++ b/docs/conventions/ecosystem-commands/examples/dotnet.yaml @@ -0,0 +1,2 @@ +# Moved to docs/contracts/ecosystem-commands/examples/dotnet.yaml +# https://github.com/melodic-software/claude-code-plugins/blob/main/docs/contracts/ecosystem-commands/examples/dotnet.yaml diff --git a/docs/conventions/ecosystem-commands/examples/go.yaml b/docs/conventions/ecosystem-commands/examples/go.yaml new file mode 100644 index 0000000000..c1d9d15ef4 --- /dev/null +++ b/docs/conventions/ecosystem-commands/examples/go.yaml @@ -0,0 +1,2 @@ +# Moved to docs/contracts/ecosystem-commands/examples/go.yaml +# https://github.com/melodic-software/claude-code-plugins/blob/main/docs/contracts/ecosystem-commands/examples/go.yaml diff --git a/docs/conventions/enforcement-ladder/README.md b/docs/conventions/enforcement-ladder/README.md new file mode 100644 index 0000000000..0683f70062 --- /dev/null +++ b/docs/conventions/enforcement-ladder/README.md @@ -0,0 +1,52 @@ +# Enforcement ladder + +This contract moved to [`docs/contracts/enforcement-ladder/`](../../contracts/enforcement-ladder/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Rungs + +Moved to [this section](../../contracts/enforcement-ladder/README.md#rungs). + +### Tier 1: Codebase + +Moved to [this section](../../contracts/enforcement-ladder/README.md#tier-1-codebase). + +### Tier 2: Static analysis + +Moved to [this section](../../contracts/enforcement-ladder/README.md#tier-2-static-analysis). + +### Tier 3: Guidance + +Moved to [this section](../../contracts/enforcement-ladder/README.md#tier-3-guidance). + +### Tier 4: Human only + +Moved to [this section](../../contracts/enforcement-ladder/README.md#tier-4-human-only). + +### Where boundary rules live + +Moved to [this section](../../contracts/enforcement-ladder/README.md#where-boundary-rules-live). + +## Guardrail criterion + +Moved to [this section](../../contracts/enforcement-ladder/README.md#guardrail-criterion). + +### A recurring correction + +Moved to [this section](../../contracts/enforcement-ladder/README.md#a-recurring-correction). + +## Selection rules + +Moved to [this section](../../contracts/enforcement-ladder/README.md#selection-rules). + +## Reordering + +Moved to [this section](../../contracts/enforcement-ladder/README.md#reordering). + +## The codebase and its history are the memory + +Moved to [this section](../../contracts/enforcement-ladder/README.md#the-codebase-and-its-history-are-the-memory). + +## Versioning + +Moved to [this section](../../contracts/enforcement-ladder/README.md#versioning). diff --git a/docs/conventions/execution-target/README.md b/docs/conventions/execution-target/README.md new file mode 100644 index 0000000000..8e814d299e --- /dev/null +++ b/docs/conventions/execution-target/README.md @@ -0,0 +1,64 @@ +# Execution target: which host runs each local-lane stage + +This contract moved to [`docs/contracts/execution-target/`](../../contracts/execution-target/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Contents + +Moved to [this section](../../contracts/execution-target/README.md#contents). + +## Scope + +Moved to [this section](../../contracts/execution-target/README.md#scope). + +## The file + +Moved to [this section](../../contracts/execution-target/README.md#the-file). + +## Values + +Moved to [this section](../../contracts/execution-target/README.md#values). + +## Resolution + +Moved to [this section](../../contracts/execution-target/README.md#resolution). + +## Where it is read + +Moved to [this section](../../contracts/execution-target/README.md#where-it-is-read). + +## What protects the file + +Moved to [this section](../../contracts/execution-target/README.md#what-protects-the-file). + +## Cloud launch rule + +Moved to [this section](../../contracts/execution-target/README.md#cloud-launch-rule). + +## Stage-start probe and fallback + +Moved to [this section](../../contracts/execution-target/README.md#stage-start-probe-and-fallback). + +## Untrusted-input stages + +Moved to [this section](../../contracts/execution-target/README.md#untrusted-input-stages). + +## Required plugins per stage + +Moved to [this section](../../contracts/execution-target/README.md#required-plugins-per-stage). + +## Readers + +Moved to [this section](../../contracts/execution-target/README.md#readers). + +## Residual risks + +Moved to [this section](../../contracts/execution-target/README.md#residual-risks). + +## Vendor facts this contract depends on + +Moved to [this section](../../contracts/execution-target/README.md#vendor-facts-this-contract-depends-on). + +## Versioning + +Moved to [this section](../../contracts/execution-target/README.md#versioning). diff --git a/docs/conventions/finding-suppression/README.md b/docs/conventions/finding-suppression/README.md new file mode 100644 index 0000000000..484feaf546 --- /dev/null +++ b/docs/conventions/finding-suppression/README.md @@ -0,0 +1,44 @@ +# Finding suppression: the deliberately-kept-finding record + +This contract moved to [`docs/contracts/finding-suppression/`](../../contracts/finding-suppression/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## What this is for, and what it is not + +Moved to [this section](../../contracts/finding-suppression/README.md#what-this-is-for-and-what-it-is-not). + +## Where the record lives + +Moved to [this section](../../contracts/finding-suppression/README.md#where-the-record-lives). + +## File format + +Moved to [this section](../../contracts/finding-suppression/README.md#file-format). + +## Keys + +Moved to [this section](../../contracts/finding-suppression/README.md#keys). + +### Constituents, not a bare id + +Moved to [this section](../../contracts/finding-suppression/README.md#constituents-not-a-bare-id). + +### Keyed per entry, never a closed list + +Moved to [this section](../../contracts/finding-suppression/README.md#keyed-per-entry-never-a-closed-list). + +### Policy-floor precedence inversion + +Moved to [this section](../../contracts/finding-suppression/README.md#policy-floor-precedence-inversion). + +## Obligations on a consuming skill + +Moved to [this section](../../contracts/finding-suppression/README.md#obligations-on-a-consuming-skill). + +## Trades recorded, so they are not silently re-litigated + +Moved to [this section](../../contracts/finding-suppression/README.md#trades-recorded-so-they-are-not-silently-re-litigated). + +## Implementers + +Moved to [this section](../../contracts/finding-suppression/README.md#implementers). diff --git a/docs/conventions/hook-budget/README.md b/docs/conventions/hook-budget/README.md new file mode 100644 index 0000000000..0ee9316014 --- /dev/null +++ b/docs/conventions/hook-budget/README.md @@ -0,0 +1,44 @@ +# Hook budget: the always-on cost ceiling + +This contract moved to [`docs/contracts/hook-budget/`](../../contracts/hook-budget/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## The unit: S + +Moved to [this section](../../contracts/hook-budget/README.md#the-unit-s). + +## The budget + +Moved to [this section](../../contracts/hook-budget/README.md#the-budget). + +## What enforces it + +Moved to [this section](../../contracts/hook-budget/README.md#what-enforces-it). + +### Mods: a third enforcement form + +Moved to [this section](../../contracts/hook-budget/README.md#mods-a-third-enforcement-form). + +## Wall-clock measurement (Windows) + +Moved to [this section](../../contracts/hook-budget/README.md#wall-clock-measurement-windows). + +## Reference figures (2026-09-02, after the hook-performance program) + +Moved to [this section](../../contracts/hook-budget/README.md#reference-figures-2026-09-02-after-the-hook-performance-program). + +## Exec-form fleet sweep + +Moved to [this section](../../contracts/hook-budget/README.md#exec-form-fleet-sweep). + +### Launcher A/B (melo-lap-001, 2026-10-01) + +Moved to [this section](../../contracts/hook-budget/README.md#launcher-ab-melo-lap-001-2026-10-01). + +## Rules + +Moved to [this section](../../contracts/hook-budget/README.md#rules). + +## Windows kernel Token leak + +Moved to [this section](../../contracts/hook-budget/README.md#windows-kernel-token-leak). diff --git a/docs/conventions/hook-config-delivery/README.md b/docs/conventions/hook-config-delivery/README.md new file mode 100644 index 0000000000..a3d704a1d8 --- /dev/null +++ b/docs/conventions/hook-config-delivery/README.md @@ -0,0 +1,40 @@ +# Hook config delivery: channel decision matrix for plugin userConfig values + +This contract moved to [`docs/contracts/hook-config-delivery/`](../../contracts/hook-config-delivery/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Boundary: composes with config-cascade + +Moved to [this section](../../contracts/hook-config-delivery/README.md#boundary-composes-with-config-cascade). + +## Verified upstream behavior (version-pinned) + +Moved to [this section](../../contracts/hook-config-delivery/README.md#verified-upstream-behavior-version-pinned). + +## The channels + +Moved to [this section](../../contracts/hook-config-delivery/README.md#the-channels). + +## The matrix + +Moved to [this section](../../contracts/hook-config-delivery/README.md#the-matrix). + +## The decision rule + +Moved to [this section](../../contracts/hook-config-delivery/README.md#the-decision-rule). + +## Enforcement + +Moved to [this section](../../contracts/hook-config-delivery/README.md#enforcement). + +## Open gaps + +Moved to [this section](../../contracts/hook-config-delivery/README.md#open-gaps). + +## Adopters + +Moved to [this section](../../contracts/hook-config-delivery/README.md#adopters). + +## Recheck triggers + +Moved to [this section](../../contracts/hook-config-delivery/README.md#recheck-triggers). diff --git a/docs/conventions/hook-input-rewriting/README.md b/docs/conventions/hook-input-rewriting/README.md new file mode 100644 index 0000000000..551bf4a0a3 --- /dev/null +++ b/docs/conventions/hook-input-rewriting/README.md @@ -0,0 +1,24 @@ +# Hook input rewriting: deny or ask, never a silent rewrite + +This contract moved to [`docs/contracts/hook-input-rewriting/`](../../contracts/hook-input-rewriting/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## The rule + +Moved to [this section](../../contracts/hook-input-rewriting/README.md#the-rule). + +## Why + +Moved to [this section](../../contracts/hook-input-rewriting/README.md#why). + +## The sanctioned escape hatch + +Moved to [this section](../../contracts/hook-input-rewriting/README.md#the-sanctioned-escape-hatch). + +## Boundary + +Moved to [this section](../../contracts/hook-input-rewriting/README.md#boundary). + +## Conformance + +Moved to [this section](../../contracts/hook-input-rewriting/README.md#conformance). diff --git a/docs/conventions/hook-observability/README.md b/docs/conventions/hook-observability/README.md new file mode 100644 index 0000000000..75051076c8 --- /dev/null +++ b/docs/conventions/hook-observability/README.md @@ -0,0 +1,44 @@ +# Hook observability: status, failure, and telemetry surfaces for fleet hooks + +This contract moved to [`docs/contracts/hook-observability/`](../../contracts/hook-observability/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## The three surfaces + +Moved to [this section](../../contracts/hook-observability/README.md#the-three-surfaces). + +### 1. statusMessage: config, not runtime output + +Moved to [this section](../../contracts/hook-observability/README.md#1-statusmessage-config-not-runtime-output). + +### 2. systemMessage: user-visible, scoped by who can act on the content + +Moved to [this section](../../contracts/hook-observability/README.md#2-systemmessage-user-visible-scoped-by-who-can-act-on-the-content). + +### Output caps stated by the reference + +Moved to [this section](../../contracts/hook-observability/README.md#output-caps-stated-by-the-reference). + +### 3. OTel-style telemetry envelope + +Moved to [this section](../../contracts/hook-observability/README.md#3-otel-style-telemetry-envelope). + +## Text a hook adds for the model: frequency and phrasing + +Moved to [this section](../../contracts/hook-observability/README.md#text-a-hook-adds-for-the-model-frequency-and-phrasing). + +### See what a hook or mod sent + +Moved to [this section](../../contracts/hook-observability/README.md#see-what-a-hook-or-mod-sent). + +## What this convention is not + +Moved to [this section](../../contracts/hook-observability/README.md#what-this-convention-is-not). + +## Conformance + +Moved to [this section](../../contracts/hook-observability/README.md#conformance). + +### Recorded exception: the guard mods' lines and telemetry (owner-approved, 2026-10-03) + +Moved to [this section](../../contracts/hook-observability/README.md#recorded-exception-the-guard-mods-lines-and-telemetry-owner-approved-2026-10-03). diff --git a/docs/conventions/hook-precision/README.md b/docs/conventions/hook-precision/README.md new file mode 100644 index 0000000000..062ee01ea8 --- /dev/null +++ b/docs/conventions/hook-precision/README.md @@ -0,0 +1,28 @@ +# Hook precision: false-positive discipline for plugin hooks + +This contract moved to [`docs/contracts/hook-precision/`](../../contracts/hook-precision/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## The rules + +Moved to [this section](../../contracts/hook-precision/README.md#the-rules). + +## The discipline + +Moved to [this section](../../contracts/hook-precision/README.md#the-discipline). + +## Platform gap: if file rules on Windows + +Moved to [this section](../../contracts/hook-precision/README.md#platform-gap-if-file-rules-on-windows). + +## What this convention is not + +Moved to [this section](../../contracts/hook-precision/README.md#what-this-convention-is-not). + +## Conformance + +Moved to [this section](../../contracts/hook-precision/README.md#conformance). + +### Rule 6 conformance: the eight format and lint hooks + +Moved to [this section](../../contracts/hook-precision/README.md#rule-6-conformance-the-eight-format-and-lint-hooks). diff --git a/docs/conventions/hook-precision/guard-precision.md b/docs/conventions/hook-precision/guard-precision.md new file mode 100644 index 0000000000..4e209e759b --- /dev/null +++ b/docs/conventions/hook-precision/guard-precision.md @@ -0,0 +1,3 @@ +# Guard precision: the default-on blocking guards, measured + +Moved to [`docs/contracts/hook-precision/guard-precision.md`](../../contracts/hook-precision/guard-precision.md). diff --git a/docs/conventions/hook-telemetry/README.md b/docs/conventions/hook-telemetry/README.md new file mode 100644 index 0000000000..3ed09bb7f0 --- /dev/null +++ b/docs/conventions/hook-telemetry/README.md @@ -0,0 +1,56 @@ +# Hook Telemetry Convention + +This contract moved to [`docs/contracts/hook-telemetry/`](../../contracts/hook-telemetry/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Mediator boundary + +Moved to [this section](../../contracts/hook-telemetry/README.md#mediator-boundary). + +## Sink path resolution + +Moved to [this section](../../contracts/hook-telemetry/README.md#sink-path-resolution). + +## The envelope (common fields) + +Moved to [this section](../../contracts/hook-telemetry/README.md#the-envelope-common-fields). + +### Correlation keys (optional, since 1.1) + +Moved to [this section](../../contracts/hook-telemetry/README.md#correlation-keys-optional-since-11). + +### status: the universal outcome (documented value set) + +Moved to [this section](../../contracts/hook-telemetry/README.md#status-the-universal-outcome-documented-value-set). + +## Per-hook data + +Moved to [this section](../../contracts/hook-telemetry/README.md#per-hook-data). + +## Forward compatibility (don't break clients) + +Moved to [this section](../../contracts/hook-telemetry/README.md#forward-compatibility-dont-break-clients). + +## Deprecation policy + +Moved to [this section](../../contracts/hook-telemetry/README.md#deprecation-policy). + +## Versioning + +Moved to [this section](../../contracts/hook-telemetry/README.md#versioning). + +## The envelope schema is executed by the test-side check + +Moved to [this section](../../contracts/hook-telemetry/README.md#the-envelope-schema-is-executed-by-the-test-side-check). + +## Adoption (adopt-by-copy) + +Moved to [this section](../../contracts/hook-telemetry/README.md#adoption-adopt-by-copy). + +## Consuming (sink side) + +Moved to [this section](../../contracts/hook-telemetry/README.md#consuming-sink-side). + +## Implementers + +Moved to [this section](../../contracts/hook-telemetry/README.md#implementers). diff --git a/docs/conventions/hook-telemetry/data/block-windows-drive-tmp.schema.json b/docs/conventions/hook-telemetry/data/block-windows-drive-tmp.schema.json new file mode 100644 index 0000000000..6adb159e59 --- /dev/null +++ b/docs/conventions/hook-telemetry/data/block-windows-drive-tmp.schema.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://raw.githubusercontent.com/melodic-software/claude-code-plugins/main/docs/conventions/hook-telemetry/data/block-windows-drive-tmp.schema.json", + "description": "Moved to docs/contracts/hook-telemetry/data/block-windows-drive-tmp.schema.json; this schema refers there.", + "$ref": "https://raw.githubusercontent.com/melodic-software/claude-code-plugins/main/docs/contracts/hook-telemetry/data/block-windows-drive-tmp.schema.json" +} diff --git a/docs/conventions/hook-telemetry/data/lane-stop-gate.schema.json b/docs/conventions/hook-telemetry/data/lane-stop-gate.schema.json new file mode 100644 index 0000000000..5a02b7185a --- /dev/null +++ b/docs/conventions/hook-telemetry/data/lane-stop-gate.schema.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://raw.githubusercontent.com/melodic-software/claude-code-plugins/main/docs/conventions/hook-telemetry/data/lane-stop-gate.schema.json", + "description": "Moved to docs/contracts/hook-telemetry/data/lane-stop-gate.schema.json; this schema refers there.", + "$ref": "https://raw.githubusercontent.com/melodic-software/claude-code-plugins/main/docs/contracts/hook-telemetry/data/lane-stop-gate.schema.json" +} diff --git a/docs/conventions/hook-telemetry/data/stale-path-verify.schema.json b/docs/conventions/hook-telemetry/data/stale-path-verify.schema.json new file mode 100644 index 0000000000..d3c46cc3c9 --- /dev/null +++ b/docs/conventions/hook-telemetry/data/stale-path-verify.schema.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://raw.githubusercontent.com/melodic-software/claude-code-plugins/main/docs/conventions/hook-telemetry/data/stale-path-verify.schema.json", + "description": "Moved to docs/contracts/hook-telemetry/data/stale-path-verify.schema.json; this schema refers there.", + "$ref": "https://raw.githubusercontent.com/melodic-software/claude-code-plugins/main/docs/contracts/hook-telemetry/data/stale-path-verify.schema.json" +} diff --git a/docs/conventions/hook-telemetry/envelope.schema.json b/docs/conventions/hook-telemetry/envelope.schema.json new file mode 100644 index 0000000000..e7e40969a8 --- /dev/null +++ b/docs/conventions/hook-telemetry/envelope.schema.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://raw.githubusercontent.com/melodic-software/claude-code-plugins/main/docs/conventions/hook-telemetry/envelope.schema.json", + "description": "Moved to docs/contracts/hook-telemetry/envelope.schema.json; this schema refers there.", + "$ref": "https://raw.githubusercontent.com/melodic-software/claude-code-plugins/main/docs/contracts/hook-telemetry/envelope.schema.json" +} diff --git a/docs/conventions/instruction-exception-register/README.md b/docs/conventions/instruction-exception-register/README.md new file mode 100644 index 0000000000..0aea6e963c --- /dev/null +++ b/docs/conventions/instruction-exception-register/README.md @@ -0,0 +1,24 @@ +# Instruction exception register: what a trimming pass may not delete + +This contract moved to [`docs/contracts/instruction-exception-register/`](../../contracts/instruction-exception-register/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## The classes are Gate 0's, adopted by reference + +Moved to [this section](../../contracts/instruction-exception-register/README.md#the-classes-are-gate-0s-adopted-by-reference). + +## Non-exhaustive, and tighten-only + +Moved to [this section](../../contracts/instruction-exception-register/README.md#non-exhaustive-and-tighten-only). + +## Who consumes this + +Moved to [this section](../../contracts/instruction-exception-register/README.md#who-consumes-this). + +## What this is not + +Moved to [this section](../../contracts/instruction-exception-register/README.md#what-this-is-not). + +## Provenance + +Moved to [this section](../../contracts/instruction-exception-register/README.md#provenance). diff --git a/docs/conventions/invocation-context/README.md b/docs/conventions/invocation-context/README.md new file mode 100644 index 0000000000..e5b576927b --- /dev/null +++ b/docs/conventions/invocation-context/README.md @@ -0,0 +1,36 @@ +# Skill invocation-context rubric + +This contract moved to [`docs/contracts/invocation-context/`](../../contracts/invocation-context/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Official semantics + +Moved to [this section](../../contracts/invocation-context/README.md#official-semantics). + +## The default, and why + +Moved to [this section](../../contracts/invocation-context/README.md#the-default-and-why). + +## When fork pays + +Moved to [this section](../../contracts/invocation-context/README.md#when-fork-pays). + +## Background posture + +Moved to [this section](../../contracts/invocation-context/README.md#background-posture). + +## Pilot (2026-09-27) + +Moved to [this section](../../contracts/invocation-context/README.md#pilot-2026-09-27). + +## Anti-candidate classes + +Moved to [this section](../../contracts/invocation-context/README.md#anti-candidate-classes). + +## Authoring checklist + +Moved to [this section](../../contracts/invocation-context/README.md#authoring-checklist). + +## Cross-references + +Moved to [this section](../../contracts/invocation-context/README.md#cross-references). diff --git a/docs/conventions/invocation-mode/README.md b/docs/conventions/invocation-mode/README.md new file mode 100644 index 0000000000..5a8fd9a5a7 --- /dev/null +++ b/docs/conventions/invocation-mode/README.md @@ -0,0 +1,56 @@ +# Skill invocation-mode rubric + +This contract moved to [`docs/contracts/invocation-mode/`](../../contracts/invocation-mode/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## The default, and why + +Moved to [this section](../../contracts/invocation-mode/README.md#the-default-and-why). + +## Exception classes (the only reasons to write true) + +Moved to [this section](../../contracts/invocation-mode/README.md#exception-classes-the-only-reasons-to-write-true). + +## The invocation-reach invariant + +Moved to [this section](../../contracts/invocation-mode/README.md#the-invocation-reach-invariant). + +## Cross-skill invocation phrasing + +Moved to [this section](../../contracts/invocation-mode/README.md#cross-skill-invocation-phrasing). + +## Splitting by invocation + +Moved to [this section](../../contracts/invocation-mode/README.md#splitting-by-invocation). + +## Router-skill verdict: REJECTED (2026-08-17) + +Moved to [this section](../../contracts/invocation-mode/README.md#router-skill-verdict-rejected-2026-08-17). + +## Fleet grade, 2026-08-17 (ADR 0005-bounded) + +Moved to [this section](../../contracts/invocation-mode/README.md#fleet-grade-2026-08-17-adr-0005-bounded). + +## Fleet grade, 2026-10-18 (the six ungraded human-only skills, #7974) + +Moved to [this section](../../contracts/invocation-mode/README.md#fleet-grade-2026-10-18-the-six-ungraded-human-only-skills-7974). + +## Re-grade: disk-hygiene:clean under the 2026-10-18 decision (#9706) + +Moved to [this section](../../contracts/invocation-mode/README.md#re-grade-disk-hygieneclean-under-the-2026-10-18-decision-9706). + +## Re-grade: repo-fleet-hygiene:apply under the 2026-10-18 decision (#9707) + +Moved to [this section](../../contracts/invocation-mode/README.md#re-grade-repo-fleet-hygieneapply-under-the-2026-10-18-decision-9707). + +## Re-grade: harness-ops:plugins under the 2026-10-18 decision (#9708) + +Moved to [this section](../../contracts/invocation-mode/README.md#re-grade-harness-opsplugins-under-the-2026-10-18-decision-9708). + +## Re-grade: harness-ops:lanes under the 2026-10-18 decision (#9710) + +Moved to [this section](../../contracts/invocation-mode/README.md#re-grade-harness-opslanes-under-the-2026-10-18-decision-9710). + +## Cross-references + +Moved to [this section](../../contracts/invocation-mode/README.md#cross-references). diff --git a/docs/conventions/liveness-assertion/README.md b/docs/conventions/liveness-assertion/README.md new file mode 100644 index 0000000000..0c6c582a1a --- /dev/null +++ b/docs/conventions/liveness-assertion/README.md @@ -0,0 +1,40 @@ +# Liveness assertion: false-green and healthy-while-dead surfaces + +This contract moved to [`docs/contracts/liveness-assertion/`](../../contracts/liveness-assertion/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Boundary + +Moved to [this section](../../contracts/liveness-assertion/README.md#boundary). + +## The defect class + +Moved to [this section](../../contracts/liveness-assertion/README.md#the-defect-class). + +## Core contract + +Moved to [this section](../../contracts/liveness-assertion/README.md#core-contract). + +## Surface taxonomy + +Moved to [this section](../../contracts/liveness-assertion/README.md#surface-taxonomy). + +## Relationship to existing doctrine and gates + +Moved to [this section](../../contracts/liveness-assertion/README.md#relationship-to-existing-doctrine-and-gates). + +## Adopters and instances + +Moved to [this section](../../contracts/liveness-assertion/README.md#adopters-and-instances). + +## Enforceability + +Moved to [this section](../../contracts/liveness-assertion/README.md#enforceability). + +## Versioning + +Moved to [this section](../../contracts/liveness-assertion/README.md#versioning). + +## External authority + +Moved to [this section](../../contracts/liveness-assertion/README.md#external-authority). diff --git a/docs/conventions/loop-lane/README.md b/docs/conventions/loop-lane/README.md new file mode 100644 index 0000000000..3901cd9067 --- /dev/null +++ b/docs/conventions/loop-lane/README.md @@ -0,0 +1,84 @@ +# Loop-lane convention + +This contract moved to [`docs/contracts/loop-lane/`](../../contracts/loop-lane/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Contents + +Moved to [this section](../../contracts/loop-lane/README.md#contents). + +## 1. Three-session topology + +Moved to [this section](../../contracts/loop-lane/README.md#1-three-session-topology). + +### Autonomy ladder (merge authority) + +Moved to [this section](../../contracts/loop-lane/README.md#autonomy-ladder-merge-authority). + +### Lane write identity + +Moved to [this section](../../contracts/loop-lane/README.md#lane-write-identity). + +## 2. Escalation contract + +Moved to [this section](../../contracts/loop-lane/README.md#2-escalation-contract). + +### When work stops for the owner + +Moved to [this section](../../contracts/loop-lane/README.md#when-work-stops-for-the-owner). + +### The owner's standing direction + +Moved to [this section](../../contracts/loop-lane/README.md#the-owners-standing-direction). + +### Cross-lane PR hold + +Moved to [this section](../../contracts/loop-lane/README.md#cross-lane-pr-hold). + +### Escalation record write + +Moved to [this section](../../contracts/loop-lane/README.md#escalation-record-write). + +### Out-of-band notification seam + +Moved to [this section](../../contracts/loop-lane/README.md#out-of-band-notification-seam). + +## 3. Capability tiers + +Moved to [this section](../../contracts/loop-lane/README.md#3-capability-tiers). + +### Alias binding + +Moved to [this section](../../contracts/loop-lane/README.md#alias-binding). + +### Rate-limit windows + +Moved to [this section](../../contracts/loop-lane/README.md#rate-limit-windows). + +## 4. Loop-layer invariants + +Moved to [this section](../../contracts/loop-lane/README.md#4-loop-layer-invariants). + +## 5. Consumers and launch surfaces + +Moved to [this section](../../contracts/loop-lane/README.md#5-consumers-and-launch-surfaces). + +## 6. Rate-limit guard binding + +Moved to [this section](../../contracts/loop-lane/README.md#6-rate-limit-guard-binding). + +## 7. Operator steering through GitHub state + +Moved to [this section](../../contracts/loop-lane/README.md#7-operator-steering-through-github-state). + +### Confirm-then-record + +Moved to [this section](../../contracts/loop-lane/README.md#confirm-then-record). + +## 8. Scheduled reader + +Moved to [this section](../../contracts/loop-lane/README.md#8-scheduled-reader). + +## Versioning + +Moved to [this section](../../contracts/loop-lane/README.md#versioning). diff --git a/docs/conventions/mod-authoring/README.md b/docs/conventions/mod-authoring/README.md new file mode 100644 index 0000000000..5f4e29bd00 --- /dev/null +++ b/docs/conventions/mod-authoring/README.md @@ -0,0 +1,36 @@ +# Mod authoring: writing a hooks module in a marketplace plugin + +This contract moved to [`docs/contracts/mod-authoring/`](../../contracts/mod-authoring/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Boundary + +Moved to [this section](../../contracts/mod-authoring/README.md#boundary). + +## Before writing or changing a mod + +Moved to [this section](../../contracts/mod-authoring/README.md#before-writing-or-changing-a-mod). + +## Mod, settings hook, or skill + +Moved to [this section](../../contracts/mod-authoring/README.md#mod-settings-hook-or-skill). + +## Where a mod runs and how it is switched off + +Moved to [this section](../../contracts/mod-authoring/README.md#where-a-mod-runs-and-how-it-is-switched-off). + +## Packaging in this repository + +Moved to [this section](../../contracts/mod-authoring/README.md#packaging-in-this-repository). + +## Before relying on $.process or session.start + +Moved to [this section](../../contracts/mod-authoring/README.md#before-relying-on-process-or-sessionstart). + +## The tool.call context rule + +Moved to [this section](../../contracts/mod-authoring/README.md#the-toolcall-context-rule). + +## When a mod does nothing or misbehaves + +Moved to [this section](../../contracts/mod-authoring/README.md#when-a-mod-does-nothing-or-misbehaves). diff --git a/docs/conventions/native-references/README.md b/docs/conventions/native-references/README.md new file mode 100644 index 0000000000..b1c5c1a620 --- /dev/null +++ b/docs/conventions/native-references/README.md @@ -0,0 +1,60 @@ +# Native references: presence-gated phrasing for Claude Code's own surfaces + +This contract moved to [`docs/contracts/native-references/`](../../contracts/native-references/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Boundary + +Moved to [this section](../../contracts/native-references/README.md#boundary). + +## Why a gate, and never an assertion + +Moved to [this section](../../contracts/native-references/README.md#why-a-gate-and-never-an-assertion). + +## The description phrase + +Moved to [this section](../../contracts/native-references/README.md#the-description-phrase). + +### Budget caveat + +Moved to [this section](../../contracts/native-references/README.md#budget-caveat). + +### Open consideration: the bundled keep-set + +Moved to [this section](../../contracts/native-references/README.md#open-consideration-the-bundled-keep-set). + +## The Boundary section + +Moved to [this section](../../contracts/native-references/README.md#the-boundary-section). + +## Self-containment: shipped plugins never cite the registry + +Moved to [this section](../../contracts/native-references/README.md#self-containment-shipped-plugins-never-cite-the-registry). + +## Enforceability + +Moved to [this section](../../contracts/native-references/README.md#enforceability). + +## Adopters + +Moved to [this section](../../contracts/native-references/README.md#adopters). + +## Runtime relationship + +Moved to [this section](../../contracts/native-references/README.md#runtime-relationship). + +## The Native step (wrap) + +Moved to [this section](../../contracts/native-references/README.md#the-native-step-wrap). + +## The suggest sentence + +Moved to [this section](../../contracts/native-references/README.md#the-suggest-sentence). + +## Versioning + +Moved to [this section](../../contracts/native-references/README.md#versioning). + +## External authority + +Moved to [this section](../../contracts/native-references/README.md#external-authority). diff --git a/docs/conventions/on-demand-dependencies/README.md b/docs/conventions/on-demand-dependencies/README.md new file mode 100644 index 0000000000..210ccbe90f --- /dev/null +++ b/docs/conventions/on-demand-dependencies/README.md @@ -0,0 +1,64 @@ +# On-demand dependencies: install pinned packages, never vendor them + +This contract moved to [`docs/contracts/on-demand-dependencies/`](../../contracts/on-demand-dependencies/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Boundary + +Moved to [this section](../../contracts/on-demand-dependencies/README.md#boundary). + +## Rule 1: commit the manifest and the lockfile, nothing else [SPEC] + +Moved to [this section](../../contracts/on-demand-dependencies/README.md#rule-1-commit-the-manifest-and-the-lockfile-nothing-else-spec). + +## Rule 2: install on first use with npm ci into the plugin data directory [SPEC] + +Moved to [this section](../../contracts/on-demand-dependencies/README.md#rule-2-install-on-first-use-with-npm-ci-into-the-plugin-data-directory-spec). + +### Finding the plugin data directory + +Moved to [this section](../../contracts/on-demand-dependencies/README.md#finding-the-plugin-data-directory). + +## Rule 3: fail closed with the exact command [SPEC] + +Moved to [this section](../../contracts/on-demand-dependencies/README.md#rule-3-fail-closed-with-the-exact-command-spec). + +## Rule 4: no committed third-party bundles [SPEC] + +Moved to [this section](../../contracts/on-demand-dependencies/README.md#rule-4-no-committed-third-party-bundles-spec). + +## Python + +Moved to [this section](../../contracts/on-demand-dependencies/README.md#python). + +### Rule P1: commit the pins and a hash-locked requirements file [SPEC] + +Moved to [this section](../../contracts/on-demand-dependencies/README.md#rule-p1-commit-the-pins-and-a-hash-locked-requirements-file-spec). + +### Rule P2: install from a hook, never while a skill runs [SPEC] + +Moved to [this section](../../contracts/on-demand-dependencies/README.md#rule-p2-install-from-a-hook-never-while-a-skill-runs-spec). + +### Rule P3: install into the plugin data directory, keyed by lock and interpreter [SPEC] + +Moved to [this section](../../contracts/on-demand-dependencies/README.md#rule-p3-install-into-the-plugin-data-directory-keyed-by-lock-and-interpreter-spec). + +### Rule P4: surface every failure with the repair command [SPEC] + +Moved to [this section](../../contracts/on-demand-dependencies/README.md#rule-p4-surface-every-failure-with-the-repair-command-spec). + +## Exceptions + +Moved to [this section](../../contracts/on-demand-dependencies/README.md#exceptions). + +## Adoption + +Moved to [this section](../../contracts/on-demand-dependencies/README.md#adoption). + +## Upstream facts this rests on + +Moved to [this section](../../contracts/on-demand-dependencies/README.md#upstream-facts-this-rests-on). + +## Related + +Moved to [this section](../../contracts/on-demand-dependencies/README.md#related). diff --git a/docs/conventions/permission-rule-hygiene/README.md b/docs/conventions/permission-rule-hygiene/README.md new file mode 100644 index 0000000000..f0a10be22a --- /dev/null +++ b/docs/conventions/permission-rule-hygiene/README.md @@ -0,0 +1,44 @@ +# Permission Rule Hygiene Convention + +This contract moved to [`docs/contracts/permission-rule-hygiene/`](../../contracts/permission-rule-hygiene/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Why this convention exists + +Moved to [this section](../../contracts/permission-rule-hygiene/README.md#why-this-convention-exists). + +## Auto mode is the built-in default, not a state you opt into + +Moved to [this section](../../contracts/permission-rule-hygiene/README.md#auto-mode-is-the-built-in-default-not-a-state-you-opt-into). + +## Anti-pattern 1: interpreter-wildcard / blanket allow rules (dropped in auto mode) + +Moved to [this section](../../contracts/permission-rule-hygiene/README.md#anti-pattern-1-interpreter-wildcard--blanket-allow-rules-dropped-in-auto-mode). + +### House position: no inline-dependency runners + +Moved to [this section](../../contracts/permission-rule-hygiene/README.md#house-position-no-inline-dependency-runners). + +## Anti-pattern 2: hardcoded absolute machine/user paths + +Moved to [this section](../../contracts/permission-rule-hygiene/README.md#anti-pattern-2-hardcoded-absolute-machineuser-paths). + +## Anti-pattern 3: assuming a skill or plugin can self-grant + +Moved to [this section](../../contracts/permission-rule-hygiene/README.md#anti-pattern-3-assuming-a-skill-or-plugin-can-self-grant). + +## The correct pattern + +Moved to [this section](../../contracts/permission-rule-hygiene/README.md#the-correct-pattern). + +## Known gap: step 1's plugin bin/ delivery is unreliable, not absent + +Moved to [this section](../../contracts/permission-rule-hygiene/README.md#known-gap-step-1s-plugin-bin-delivery-is-unreliable-not-absent). + +## Probed behaviors + +Moved to [this section](../../contracts/permission-rule-hygiene/README.md#probed-behaviors). + +## Sources + +Moved to [this section](../../contracts/permission-rule-hygiene/README.md#sources). diff --git a/docs/conventions/plugin-data-report-keying/README.md b/docs/conventions/plugin-data-report-keying/README.md new file mode 100644 index 0000000000..6e03c380c0 --- /dev/null +++ b/docs/conventions/plugin-data-report-keying/README.md @@ -0,0 +1,48 @@ +# Plugin-data report keying, retention, and overwrite + +This contract moved to [`docs/contracts/plugin-data-report-keying/`](../../contracts/plugin-data-report-keying/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## The harness fact this exists for + +Moved to [this section](../../contracts/plugin-data-report-keying/README.md#the-harness-fact-this-exists-for). + +## The two failure modes, which need different fixes + +Moved to [this section](../../contracts/plugin-data-report-keying/README.md#the-two-failure-modes-which-need-different-fixes). + +## Rule 1: key every write by project identity [SPEC] + +Moved to [this section](../../contracts/plugin-data-report-keying/README.md#rule-1-key-every-write-by-project-identity-spec). + +### 1a: derive the key by running commands, never by testing a placeholder [SPEC] + +Moved to [this section](../../contracts/plugin-data-report-keying/README.md#1a-derive-the-key-by-running-commands-never-by-testing-a-placeholder-spec). + +### 1b: a key is a path segment, so validate it like one [SPEC] + +Moved to [this section](../../contracts/plugin-data-report-keying/README.md#1b-a-key-is-a-path-segment-so-validate-it-like-one-spec). + +### 1c: the "looks scoped but isn't" case, named so it is not repeated + +Moved to [this section](../../contracts/plugin-data-report-keying/README.md#1c-the-looks-scoped-but-isnt-case-named-so-it-is-not-repeated). + +## Rule 2: choose retention by whether the artifact is read back [SPEC] + +Moved to [this section](../../contracts/plugin-data-report-keying/README.md#rule-2-choose-retention-by-whether-the-artifact-is-read-back-spec). + +## Rule 3: never serve an artifact you cannot attribute [SPEC] + +Moved to [this section](../../contracts/plugin-data-report-keying/README.md#rule-3-never-serve-an-artifact-you-cannot-attribute-spec). + +## Rule 4: state the uninstall fragility where the artifact is the only copy + +Moved to [this section](../../contracts/plugin-data-report-keying/README.md#rule-4-state-the-uninstall-fragility-where-the-artifact-is-the-only-copy). + +## Adoption + +Moved to [this section](../../contracts/plugin-data-report-keying/README.md#adoption). + +## Related + +Moved to [this section](../../contracts/plugin-data-report-keying/README.md#related). diff --git a/docs/conventions/plugin-option-naming/README.md b/docs/conventions/plugin-option-naming/README.md new file mode 100644 index 0000000000..579ca7bc92 --- /dev/null +++ b/docs/conventions/plugin-option-naming/README.md @@ -0,0 +1,36 @@ +# Plugin names and option text + +This contract moved to [`docs/contracts/plugin-option-naming/`](../../contracts/plugin-option-naming/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Where the text appears + +Moved to [this section](../../contracts/plugin-option-naming/README.md#where-the-text-appears). + +## Plugin names + +Moved to [this section](../../contracts/plugin-option-naming/README.md#plugin-names). + +## Option keys + +Moved to [this section](../../contracts/plugin-option-naming/README.md#option-keys). + +## Titles + +Moved to [this section](../../contracts/plugin-option-naming/README.md#titles). + +## Descriptions + +Moved to [this section](../../contracts/plugin-option-naming/README.md#descriptions). + +## Types + +Moved to [this section](../../contracts/plugin-option-naming/README.md#types). + +## Order + +Moved to [this section](../../contracts/plugin-option-naming/README.md#order). + +## Gate + +Moved to [this section](../../contracts/plugin-option-naming/README.md#gate). diff --git a/docs/conventions/plugin-reconfiguration/README.md b/docs/conventions/plugin-reconfiguration/README.md new file mode 100644 index 0000000000..1802cd60ee --- /dev/null +++ b/docs/conventions/plugin-reconfiguration/README.md @@ -0,0 +1,36 @@ +# Plugin Reconfiguration Convention + +This contract moved to [`docs/contracts/plugin-reconfiguration/`](../../contracts/plugin-reconfiguration/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Boundary + +Moved to [this section](../../contracts/plugin-reconfiguration/README.md#boundary). + +## The two routes + +Moved to [this section](../../contracts/plugin-reconfiguration/README.md#the-routes). + +## The routes + +Moved to [this section](../../contracts/plugin-reconfiguration/README.md#the-routes). + +## Verified-version record + +Moved to [this section](../../contracts/plugin-reconfiguration/README.md#verified-version-record). + +### `claude plugin configure --values-stdin` + +Moved to [this section](../../contracts/plugin-reconfiguration/README.md#claude-plugin-configure---values-stdin). + +### `claude plugin install --config` rerun + +Moved to [this section](../../contracts/plugin-reconfiguration/README.md#claude-plugin-install---config-rerun). + +## Caveats every setup skill's short form carries + +Moved to [this section](../../contracts/plugin-reconfiguration/README.md#caveats-every-setup-skills-short-form-carries). + +## The short form setups print + +Moved to [this section](../../contracts/plugin-reconfiguration/README.md#the-short-form-setups-print). diff --git a/docs/conventions/pr-body-convention/README.md b/docs/conventions/pr-body-convention/README.md new file mode 100644 index 0000000000..8044872cd0 --- /dev/null +++ b/docs/conventions/pr-body-convention/README.md @@ -0,0 +1,32 @@ +# PR-body required-sections convention + +This contract moved to [`docs/contracts/pr-body-convention/`](../../contracts/pr-body-convention/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## The key, and where it lives + +Moved to [this section](../../contracts/pr-body-convention/README.md#the-key-and-where-it-lives). + +## Consumers + +Moved to [this section](../../contracts/pr-body-convention/README.md#consumers). + +## Portable default: the briefing preset + +Moved to [this section](../../contracts/pr-body-convention/README.md#portable-default-the-briefing-preset). + +## none: no required sections + +Moved to [this section](../../contracts/pr-body-convention/README.md#none-no-required-sections). + +## Resolution semantics + +Moved to [this section](../../contracts/pr-body-convention/README.md#resolution-semantics). + +## The pre-create gate + +Moved to [this section](../../contracts/pr-body-convention/README.md#the-pre-create-gate). + +## Deferred: richer per-section schema + +Moved to [this section](../../contracts/pr-body-convention/README.md#deferred-richer-per-section-schema). diff --git a/docs/conventions/pr-scope-budget/README.md b/docs/conventions/pr-scope-budget/README.md new file mode 100644 index 0000000000..0727892c19 --- /dev/null +++ b/docs/conventions/pr-scope-budget/README.md @@ -0,0 +1,28 @@ +# PR scope budget: how big an agent-authored improvement PR may be + +This contract moved to [`docs/contracts/pr-scope-budget/`](../../contracts/pr-scope-budget/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Boundary + +Moved to [this section](../../contracts/pr-scope-budget/README.md#boundary). + +## Budget + +Moved to [this section](../../contracts/pr-scope-budget/README.md#budget). + +## What counts + +Moved to [this section](../../contracts/pr-scope-budget/README.md#what-counts). + +## Overflow + +Moved to [this section](../../contracts/pr-scope-budget/README.md#overflow). + +## Adopters + +Moved to [this section](../../contracts/pr-scope-budget/README.md#adopters). + +## Plugin-shipped copies + +Moved to [this section](../../contracts/pr-scope-budget/README.md#plugin-shipped-copies). diff --git a/docs/conventions/pre-pr-ordering/README.md b/docs/conventions/pre-pr-ordering/README.md new file mode 100644 index 0000000000..d6d1437d28 --- /dev/null +++ b/docs/conventions/pre-pr-ordering/README.md @@ -0,0 +1,24 @@ +# Pre-PR ordering: where outcome verification sits + +This contract moved to [`docs/contracts/pre-pr-ordering/`](../../contracts/pre-pr-ordering/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## The order + +Moved to [this section](../../contracts/pre-pr-ordering/README.md#the-order). + +## The rule, and why this order + +Moved to [this section](../../contracts/pre-pr-ordering/README.md#the-rule-and-why-this-order). + +## Who is bound + +Moved to [this section](../../contracts/pre-pr-ordering/README.md#who-is-bound). + +## What is not configurable + +Moved to [this section](../../contracts/pre-pr-ordering/README.md#what-is-not-configurable). + +## Conformance + +Moved to [this section](../../contracts/pre-pr-ordering/README.md#conformance). diff --git a/docs/conventions/prerequisites/README.md b/docs/conventions/prerequisites/README.md new file mode 100644 index 0000000000..acf62eb717 --- /dev/null +++ b/docs/conventions/prerequisites/README.md @@ -0,0 +1,32 @@ +# Prerequisites Convention + +This contract moved to [`docs/contracts/prerequisites/`](../../contracts/prerequisites/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## What the file declares, and what it does not + +Moved to [this section](../../contracts/prerequisites/README.md#what-the-file-declares-and-what-it-does-not). + +## The file + +Moved to [this section](../../contracts/prerequisites/README.md#the-file). + +## The checker + +Moved to [this section](../../contracts/prerequisites/README.md#the-checker). + +### When node is absent + +Moved to [this section](../../contracts/prerequisites/README.md#when-node-is-absent). + +## Hook notices + +Moved to [this section](../../contracts/prerequisites/README.md#hook-notices). + +## When a check fails: offer the fix, run it on a yes + +Moved to [this section](../../contracts/prerequisites/README.md#when-a-check-fails-offer-the-fix-run-it-on-a-yes). + +## The CI gate + +Moved to [this section](../../contracts/prerequisites/README.md#the-ci-gate). diff --git a/docs/conventions/recommendation-basis/README.md b/docs/conventions/recommendation-basis/README.md new file mode 100644 index 0000000000..51fe89748b --- /dev/null +++ b/docs/conventions/recommendation-basis/README.md @@ -0,0 +1,48 @@ +# Recommendation basis: grounding what is put to the user + +This contract moved to [`docs/contracts/recommendation-basis/`](../../contracts/recommendation-basis/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Contents + +Moved to [this section](../../contracts/recommendation-basis/README.md#contents). + +## Boundary + +Moved to [this section](../../contracts/recommendation-basis/README.md#boundary). + +## What counts as a recommendation + +Moved to [this section](../../contracts/recommendation-basis/README.md#what-counts-as-a-recommendation). + +## Grounding bar + +Moved to [this section](../../contracts/recommendation-basis/README.md#grounding-bar). + +## Basis label + +Moved to [this section](../../contracts/recommendation-basis/README.md#basis-label). + +## Re-emitting a changed recommendation + +Moved to [this section](../../contracts/recommendation-basis/README.md#re-emitting-a-changed-recommendation). + +## Routing + +Moved to [this section](../../contracts/recommendation-basis/README.md#routing). + +## Plugin-shipped copies + +Moved to [this section](../../contracts/recommendation-basis/README.md#plugin-shipped-copies). + +## Enforceability + +Moved to [this section](../../contracts/recommendation-basis/README.md#enforceability). + +## Adopters + +Moved to [this section](../../contracts/recommendation-basis/README.md#adopters). + +## Versioning + +Moved to [this section](../../contracts/recommendation-basis/README.md#versioning). diff --git a/docs/conventions/record-bundle/README.md b/docs/conventions/record-bundle/README.md new file mode 100644 index 0000000000..2f5b3505f9 --- /dev/null +++ b/docs/conventions/record-bundle/README.md @@ -0,0 +1,20 @@ +# Record Bundle Convention + +This contract moved to [`docs/contracts/record-bundle/`](../../contracts/record-bundle/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## What goes in a bundle + +Moved to [this section](../../contracts/record-bundle/README.md#what-goes-in-a-bundle). + +## What never goes in a bundle + +Moved to [this section](../../contracts/record-bundle/README.md#what-never-goes-in-a-bundle). + +## Where a bundle lives + +Moved to [this section](../../contracts/record-bundle/README.md#where-a-bundle-lives). + +## Format changes + +Moved to [this section](../../contracts/record-bundle/README.md#format-changes). diff --git a/docs/conventions/rendered-views/README.md b/docs/conventions/rendered-views/README.md new file mode 100644 index 0000000000..865a4b7e5e --- /dev/null +++ b/docs/conventions/rendered-views/README.md @@ -0,0 +1,92 @@ +# Rendered Views Convention + +This contract moved to [`docs/contracts/rendered-views/`](../../contracts/rendered-views/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## The boundary rule + +Moved to [this section](../../contracts/rendered-views/README.md#the-boundary-rule). + +## View tiers + +Moved to [this section](../../contracts/rendered-views/README.md#view-tiers). + +## Content classes + +Moved to [this section](../../contracts/rendered-views/README.md#content-classes). + +## The interactive validator profile + +Moved to [this section](../../contracts/rendered-views/README.md#the-interactive-validator-profile). + +## Choosing the rung: text, diagram, page, or video + +Moved to [this section](../../contracts/rendered-views/README.md#choosing-the-rung-text-diagram-page-or-video). + +## Reachability and preference + +Moved to [this section](../../contracts/rendered-views/README.md#reachability-and-preference). + +## Default ladder and its reconciliation + +Moved to [this section](../../contracts/rendered-views/README.md#default-ladder-and-its-reconciliation). + +## Artifact types + +Moved to [this section](../../contracts/rendered-views/README.md#artifact-types). + +## The hosted medium + +Moved to [this section](../../contracts/rendered-views/README.md#the-hosted-medium). + +### The pages-publish command + +Moved to [this section](../../contracts/rendered-views/README.md#the-pages-publish-command). + +## Genre rubric and stopping rule + +Moved to [this section](../../contracts/rendered-views/README.md#genre-rubric-and-stopping-rule). + +## Corpus distillate + +Moved to [this section](../../contracts/rendered-views/README.md#corpus-distillate). + +## Wave-1 adoption and grandfathered surfaces + +Moved to [this section](../../contracts/rendered-views/README.md#wave-1-adoption-and-grandfathered-surfaces). + +## Security baseline (wave-1 skeleton) + +Moved to [this section](../../contracts/rendered-views/README.md#security-baseline-wave-1-skeleton). + +### Documented escape exceptions + +Moved to [this section](../../contracts/rendered-views/README.md#documented-escape-exceptions). + +## Accessibility floor + +Moved to [this section](../../contracts/rendered-views/README.md#accessibility-floor). + +## Loop closure and the export obligation + +Moved to [this section](../../contracts/rendered-views/README.md#loop-closure-and-the-export-obligation). + +## The loop-closure and export snippet reference + +Moved to [this section](../../contracts/rendered-views/README.md#the-loop-closure-and-export-snippet-reference). + +## The shared chrome reference + +Moved to [this section](../../contracts/rendered-views/README.md#the-shared-chrome-reference). + +## The rendered-views cascade concern + +Moved to [this section](../../contracts/rendered-views/README.md#the-rendered-views-cascade-concern). + +## Template vendoring posture + +Moved to [this section](../../contracts/rendered-views/README.md#template-vendoring-posture). + +## What this convention does not do + +Moved to [this section](../../contracts/rendered-views/README.md#what-this-convention-does-not-do). diff --git a/docs/conventions/retired-conventions/README.md b/docs/conventions/retired-conventions/README.md new file mode 100644 index 0000000000..34d6a0f7f3 --- /dev/null +++ b/docs/conventions/retired-conventions/README.md @@ -0,0 +1,68 @@ +# Retired Conventions Convention + +This contract moved to [`docs/contracts/retired-conventions/`](../../contracts/retired-conventions/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Boundary: this contract owns the mechanism, never the decision to retire + +Moved to [this section](../../contracts/retired-conventions/README.md#boundary-this-contract-owns-the-mechanism-never-the-decision-to-retire). + +## The manifest: plugins//retirements.yaml + +Moved to [this section](../../contracts/retired-conventions/README.md#the-manifest-pluginspluginretirementsyaml). + +### Grammar: a deliberately flat YAML subset + +Moved to [this section](../../contracts/retired-conventions/README.md#grammar-a-deliberately-flat-yaml-subset). + +### Fields + +Moved to [this section](../../contracts/retired-conventions/README.md#fields). + +### Example: two records, one demoted + +Moved to [this section](../../contracts/retired-conventions/README.md#example-two-records-one-demoted). + +## Append-only, and the enumerated legal edits + +Moved to [this section](../../contracts/retired-conventions/README.md#append-only-and-the-enumerated-legal-edits). + +## The helper: lib/check-retirements.sh + +Moved to [this section](../../contracts/retired-conventions/README.md#the-helper-libcheck-retirementssh). + +## The two fixed setup lines + +Moved to [this section](../../contracts/retired-conventions/README.md#the-two-fixed-setup-lines). + +## One eval per record + +Moved to [this section](../../contracts/retired-conventions/README.md#one-eval-per-record). + +## The runtime fleet sweep + +Moved to [this section](../../contracts/retired-conventions/README.md#the-runtime-fleet-sweep). + +## Convention home pointer line + +Moved to [this section](../../contracts/retired-conventions/README.md#convention-home-pointer-line). + +## The dual-read deprecation window + +Moved to [this section](../../contracts/retired-conventions/README.md#the-dual-read-deprecation-window). + +## Scope + +Moved to [this section](../../contracts/retired-conventions/README.md#scope). + +## Versioning + +Moved to [this section](../../contracts/retired-conventions/README.md#versioning). + +## Implementers + +Moved to [this section](../../contracts/retired-conventions/README.md#implementers). + +## Deferred + +Moved to [this section](../../contracts/retired-conventions/README.md#deferred). diff --git a/docs/conventions/routing-as-data/README.md b/docs/conventions/routing-as-data/README.md new file mode 100644 index 0000000000..d08dbf9bf7 --- /dev/null +++ b/docs/conventions/routing-as-data/README.md @@ -0,0 +1,32 @@ +# Routing as data: route rows, detection, team layer, degradation + +This contract moved to [`docs/contracts/routing-as-data/`](../../contracts/routing-as-data/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Boundary + +Moved to [this section](../../contracts/routing-as-data/README.md#boundary). + +## Route rows + +Moved to [this section](../../contracts/routing-as-data/README.md#route-rows). + +## Detection + +Moved to [this section](../../contracts/routing-as-data/README.md#detection). + +## Team layer + +Moved to [this section](../../contracts/routing-as-data/README.md#team-layer). + +## Degradation + +Moved to [this section](../../contracts/routing-as-data/README.md#degradation). + +## Adopters + +Moved to [this section](../../contracts/routing-as-data/README.md#adopters). + +## Versioning + +Moved to [this section](../../contracts/routing-as-data/README.md#versioning). diff --git a/docs/conventions/seam-phrasing/README.md b/docs/conventions/seam-phrasing/README.md new file mode 100644 index 0000000000..20088ce5cd --- /dev/null +++ b/docs/conventions/seam-phrasing/README.md @@ -0,0 +1,28 @@ +# Seam phrasing: presence-gated cross-plugin references + +This contract moved to [`docs/contracts/seam-phrasing/`](../../contracts/seam-phrasing/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## The shape + +Moved to [this section](../../contracts/seam-phrasing/README.md#the-shape). + +### Install-recipe carve-out + +Moved to [this section](../../contracts/seam-phrasing/README.md#install-recipe-carve-out). + +### Route-row detect carve-out + +Moved to [this section](../../contracts/seam-phrasing/README.md#route-row-detect-carve-out). + +## What this convention is not + +Moved to [this section](../../contracts/seam-phrasing/README.md#what-this-convention-is-not). + +## Cross-marketplace install uplift (carve-out, 2026-09-01) + +Moved to [this section](../../contracts/seam-phrasing/README.md#cross-marketplace-install-uplift-carve-out-2026-09-01). + +## Conformance + +Moved to [this section](../../contracts/seam-phrasing/README.md#conformance). diff --git a/docs/conventions/setup-lifecycle/README.md b/docs/conventions/setup-lifecycle/README.md new file mode 100644 index 0000000000..0733b6d3e8 --- /dev/null +++ b/docs/conventions/setup-lifecycle/README.md @@ -0,0 +1,36 @@ +# Setup lifecycle: what a plugin's setup may write, and when + +This contract moved to [`docs/contracts/setup-lifecycle/`](../../contracts/setup-lifecycle/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Boundary + +Moved to [this section](../../contracts/setup-lifecycle/README.md#boundary). + +## The managed block + +Moved to [this section](../../contracts/setup-lifecycle/README.md#the-managed-block). + +## The evidence gate + +Moved to [this section](../../contracts/setup-lifecycle/README.md#the-evidence-gate). + +## Verbs + +Moved to [this section](../../contracts/setup-lifecycle/README.md#verbs). + +## Sections later slices fill + +Moved to [this section](../../contracts/setup-lifecycle/README.md#sections-later-slices-fill). + +### Provenance + +Moved to [this section](../../contracts/setup-lifecycle/README.md#provenance). + +### Converge-by-state apply + +Moved to [this section](../../contracts/setup-lifecycle/README.md#converge-by-state-apply). + +### Current-facts check + +Moved to [this section](../../contracts/setup-lifecycle/README.md#current-facts-check). diff --git a/docs/conventions/shell-test-helpers/README.md b/docs/conventions/shell-test-helpers/README.md new file mode 100644 index 0000000000..dd4ec39b56 --- /dev/null +++ b/docs/conventions/shell-test-helpers/README.md @@ -0,0 +1,28 @@ +# Shell test helpers: per-plugin duplication and exit-code divergence are deliberate + +This contract moved to [`docs/contracts/shell-test-helpers/`](../../contracts/shell-test-helpers/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Why not the existing vendoring mechanism + +Moved to [this section](../../contracts/shell-test-helpers/README.md#why-not-the-existing-vendoring-mechanism). + +## Exit-code taxonomies also diverge, deliberately + +Moved to [this section](../../contracts/shell-test-helpers/README.md#exit-code-taxonomies-also-diverge-deliberately). + +## The telemetry-sink helper + +Moved to [this section](../../contracts/shell-test-helpers/README.md#the-telemetry-sink-helper). + +## Probe awk-sensitive suites under two awks + +Moved to [this section](../../contracts/shell-test-helpers/README.md#probe-awk-sensitive-suites-under-two-awks). + +## Deferred, not rejected + +Moved to [this section](../../contracts/shell-test-helpers/README.md#deferred-not-rejected). + +## Conformance + +Moved to [this section](../../contracts/shell-test-helpers/README.md#conformance). diff --git a/docs/conventions/skill-argument-shape/README.md b/docs/conventions/skill-argument-shape/README.md new file mode 100644 index 0000000000..2a5d26809d --- /dev/null +++ b/docs/conventions/skill-argument-shape/README.md @@ -0,0 +1,36 @@ +# Skill argument shape + +This contract moved to [`docs/contracts/skill-argument-shape/`](../../contracts/skill-argument-shape/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## What the harness gives a skill + +Moved to [this section](../../contracts/skill-argument-shape/README.md#what-the-harness-gives-a-skill). + +## The shape + +Moved to [this section](../../contracts/skill-argument-shape/README.md#the-shape). + +### The earned-flag test + +Moved to [this section](../../contracts/skill-argument-shape/README.md#the-earned-flag-test). + +### Worked fits + +Moved to [this section](../../contracts/skill-argument-shape/README.md#worked-fits). + +## argument-hint is bound to the shape + +Moved to [this section](../../contracts/skill-argument-shape/README.md#argument-hint-is-bound-to-the-shape). + +## Decisions + +Moved to [this section](../../contracts/skill-argument-shape/README.md#decisions). + +## Record + +Moved to [this section](../../contracts/skill-argument-shape/README.md#record). + +## Cross-references + +Moved to [this section](../../contracts/skill-argument-shape/README.md#cross-references). diff --git a/docs/conventions/standards/README.md b/docs/conventions/standards/README.md new file mode 100644 index 0000000000..01b3881b31 --- /dev/null +++ b/docs/conventions/standards/README.md @@ -0,0 +1,56 @@ +# Standards Convention + +This contract moved to [`docs/contracts/standards/`](../../contracts/standards/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Layers and precedence + +Moved to [this section](../../contracts/standards/README.md#layers-and-precedence). + +## The index + +Moved to [this section](../../contracts/standards/README.md#the-index). + +### Columns + +Moved to [this section](../../contracts/standards/README.md#columns). + +### External rows: validation duty + +Moved to [this section](../../contracts/standards/README.md#external-rows-validation-duty). + +## Standards files + +Moved to [this section](../../contracts/standards/README.md#standards-files). + +## Paved paths + +Moved to [this section](../../contracts/standards/README.md#paved-paths). + +## Personal overlays (in-root only) + +Moved to [this section](../../contracts/standards/README.md#personal-overlays-in-root-only). + +## User-global layer + +Moved to [this section](../../contracts/standards/README.md#user-global-layer). + +## Concern file: .claude/standards.yaml + +Moved to [this section](../../contracts/standards/README.md#concern-file-claudestandardsyaml). + +## Resolution ladder + +Moved to [this section](../../contracts/standards/README.md#resolution-ladder). + +## .claude/rules seam (division of content) + +Moved to [this section](../../contracts/standards/README.md#clauderules-seam-division-of-content). + +## Setup and migration (normative) + +Moved to [this section](../../contracts/standards/README.md#setup-and-migration-normative). + +## Versioning + +Moved to [this section](../../contracts/standards/README.md#versioning). diff --git a/docs/conventions/standards/standards.schema.json b/docs/conventions/standards/standards.schema.json new file mode 100644 index 0000000000..e963e93c26 --- /dev/null +++ b/docs/conventions/standards/standards.schema.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/melodic-software/claude-code-plugins/blob/main/docs/conventions/standards/standards.schema.json", + "description": "Moved to docs/contracts/standards/standards.schema.json; this schema refers there.", + "$ref": "https://github.com/melodic-software/claude-code-plugins/blob/main/docs/contracts/standards/standards.schema.json" +} diff --git a/docs/conventions/tracker-reference-form/README.md b/docs/conventions/tracker-reference-form/README.md new file mode 100644 index 0000000000..e5d0ed716f --- /dev/null +++ b/docs/conventions/tracker-reference-form/README.md @@ -0,0 +1,20 @@ +# Tracker reference form: what a code comment may say about an issue + +This contract moved to [`docs/contracts/tracker-reference-form/`](../../contracts/tracker-reference-form/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## The shape + +Moved to [this section](../../contracts/tracker-reference-form/README.md#the-shape). + +## Where it applies + +Moved to [this section](../../contracts/tracker-reference-form/README.md#where-it-applies). + +## What this convention is not + +Moved to [this section](../../contracts/tracker-reference-form/README.md#what-this-convention-is-not). + +## Conformance + +Moved to [this section](../../contracts/tracker-reference-form/README.md#conformance). diff --git a/docs/conventions/untrusted-content/README.md b/docs/conventions/untrusted-content/README.md new file mode 100644 index 0000000000..fa0058d073 --- /dev/null +++ b/docs/conventions/untrusted-content/README.md @@ -0,0 +1,24 @@ +# Untrusted content: text that is data, never instruction + +This contract moved to [`docs/contracts/untrusted-content/`](../../contracts/untrusted-content/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## The framing contract + +Moved to [this section](../../contracts/untrusted-content/README.md#the-framing-contract). + +## The inline form adopters carry + +Moved to [this section](../../contracts/untrusted-content/README.md#the-inline-form-adopters-carry). + +## Applications that add their own rules + +Moved to [this section](../../contracts/untrusted-content/README.md#applications-that-add-their-own-rules). + +## What this convention is not + +Moved to [this section](../../contracts/untrusted-content/README.md#what-this-convention-is-not). + +## Conformance + +Moved to [this section](../../contracts/untrusted-content/README.md#conformance). diff --git a/docs/conventions/upstream-drift/README.md b/docs/conventions/upstream-drift/README.md new file mode 100644 index 0000000000..1cabe8adeb --- /dev/null +++ b/docs/conventions/upstream-drift/README.md @@ -0,0 +1,104 @@ +# Upstream drift: verification stamps and recheck triggers + +This contract moved to [`docs/contracts/upstream-drift/`](../../contracts/upstream-drift/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Contents + +Moved to [this section](../../contracts/upstream-drift/README.md#contents). + +## Boundary + +Moved to [this section](../../contracts/upstream-drift/README.md#boundary). + +## A date is never authority + +Moved to [this section](../../contracts/upstream-drift/README.md#a-date-is-never-authority). + +## Required parts + +Moved to [this section](../../contracts/upstream-drift/README.md#required-parts). + +### Old-patterns mapping tables + +Moved to [this section](../../contracts/upstream-drift/README.md#old-patterns-mapping-tables). + +## The observability bar + +Moved to [this section](../../contracts/upstream-drift/README.md#the-observability-bar). + +## When a trigger fires + +Moved to [this section](../../contracts/upstream-drift/README.md#when-a-trigger-fires). + +### Read-time validation is not a firing + +Moved to [this section](../../contracts/upstream-drift/README.md#read-time-validation-is-not-a-firing). + +## Reading the basis: the fetch route + +Moved to [this section](../../contracts/upstream-drift/README.md#reading-the-basis-the-fetch-route). + +### The rungs + +Moved to [this section](../../contracts/upstream-drift/README.md#the-rungs). + +### A 200 does not mean you got the page you asked for + +Moved to [this section](../../contracts/upstream-drift/README.md#a-200-does-not-mean-you-got-the-page-you-asked-for). + +### The scope of an absence + +Moved to [this section](../../contracts/upstream-drift/README.md#the-scope-of-an-absence). + +### The mirror rung and its freshness step + +Moved to [this section](../../contracts/upstream-drift/README.md#the-mirror-rung-and-its-freshness-step). + +### Currency of a primary read + +Moved to [this section](../../contracts/upstream-drift/README.md#currency-of-a-primary-read). + +## Drift signal: content hashing, deferred + +Moved to [this section](../../contracts/upstream-drift/README.md#drift-signal-content-hashing-deferred). + +## Pinned git upstreams + +Moved to [this section](../../contracts/upstream-drift/README.md#pinned-git-upstreams). + +### The drift check + +Moved to [this section](../../contracts/upstream-drift/README.md#the-drift-check). + +### Monthly drift issues + +Moved to [this section](../../contracts/upstream-drift/README.md#monthly-drift-issues). + +### Daily Claude Code release issues + +Moved to [this section](../../contracts/upstream-drift/README.md#daily-claude-code-release-issues). + +## Enforceability + +Moved to [this section](../../contracts/upstream-drift/README.md#enforceability). + +### Recorded decision: an adoption gate is deferred, and the check named above would have missed the case that prompted it + +Moved to [this section](../../contracts/upstream-drift/README.md#recorded-decision-an-adoption-gate-is-deferred-and-the-check-named-above-would-have-missed-the-case-that-prompted-it). + +## Adopters + +Moved to [this section](../../contracts/upstream-drift/README.md#adopters). + +## Why this name + +Moved to [this section](../../contracts/upstream-drift/README.md#why-this-name). + +## Versioning + +Moved to [this section](../../contracts/upstream-drift/README.md#versioning). + +## External authority + +Moved to [this section](../../contracts/upstream-drift/README.md#external-authority). diff --git a/docs/conventions/windows-path-emit/README.md b/docs/conventions/windows-path-emit/README.md new file mode 100644 index 0000000000..afe1edc7d1 --- /dev/null +++ b/docs/conventions/windows-path-emit/README.md @@ -0,0 +1,28 @@ +# Windows path emission: convert before a path crosses out of Git Bash + +This contract moved to [`docs/contracts/windows-path-emit/`](../../contracts/windows-path-emit/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## The mechanism, and why it is silent + +Moved to [this section](../../contracts/windows-path-emit/README.md#the-mechanism-and-why-it-is-silent). + +## The rules + +Moved to [this section](../../contracts/windows-path-emit/README.md#the-rules). + +## Never export a path-conversion suppressor + +Moved to [this section](../../contracts/windows-path-emit/README.md#never-export-a-path-conversion-suppressor). + +## The colon-argument mangling this is usually a workaround for + +Moved to [this section](../../contracts/windows-path-emit/README.md#the-colon-argument-mangling-this-is-usually-a-workaround-for). + +## Do not reuse the hook-utils path helpers for this + +Moved to [this section](../../contracts/windows-path-emit/README.md#do-not-reuse-the-hook-utils-path-helpers-for-this). + +## The detection net + +Moved to [this section](../../contracts/windows-path-emit/README.md#the-detection-net). diff --git a/docs/conventions/workspace-environment/README.md b/docs/conventions/workspace-environment/README.md new file mode 100644 index 0000000000..2a97b530f7 --- /dev/null +++ b/docs/conventions/workspace-environment/README.md @@ -0,0 +1,64 @@ +# Workspace environment: setup, up, info and down for each worktree + +This contract moved to [`docs/contracts/workspace-environment/`](../../contracts/workspace-environment/README.md). This page keeps its +headings so links from installed plugin versions still reach each section. + +## Contents + +Moved to [this section](../../contracts/workspace-environment/README.md#contents). + +## Scope + +Moved to [this section](../../contracts/workspace-environment/README.md#scope). + +## The entry + +Moved to [this section](../../contracts/workspace-environment/README.md#the-entry). + +## The four verbs + +Moved to [this section](../../contracts/workspace-environment/README.md#the-four-verbs). + +## Where it is read + +Moved to [this section](../../contracts/workspace-environment/README.md#where-it-is-read). + +## How a verb runs + +Moved to [this section](../../contracts/workspace-environment/README.md#how-a-verb-runs). + +## Avoiding collisions between workspaces + +Moved to [this section](../../contracts/workspace-environment/README.md#avoiding-collisions-between-workspaces). + +## No entry + +Moved to [this section](../../contracts/workspace-environment/README.md#no-entry). + +## Untrusted-input worktrees + +Moved to [this section](../../contracts/workspace-environment/README.md#untrusted-input-worktrees). + +## Cloud sessions + +Moved to [this section](../../contracts/workspace-environment/README.md#cloud-sessions). + +## What protects the entry + +Moved to [this section](../../contracts/workspace-environment/README.md#what-protects-the-entry). + +## Readers + +Moved to [this section](../../contracts/workspace-environment/README.md#readers). + +## Residual risks + +Moved to [this section](../../contracts/workspace-environment/README.md#residual-risks). + +## Vendor facts this contract depends on + +Moved to [this section](../../contracts/workspace-environment/README.md#vendor-facts-this-contract-depends-on). + +## Versioning + +Moved to [this section](../../contracts/workspace-environment/README.md#versioning). diff --git a/scripts/affected-tests-no-suite.txt b/scripts/affected-tests-no-suite.txt index dcd69235e2..f2ac680bb5 100644 --- a/scripts/affected-tests-no-suite.txt +++ b/scripts/affected-tests-no-suite.txt @@ -213,3 +213,9 @@ docs/conventions/pr-pipeline.yaml docs/conventions/source-control.yaml docs/conventions/testing.yaml docs/conventions/work-items.yaml + +# Comment-only pointer stubs left at the ecosystem-commands examples' old home, +# for installed plugin versions that still link there. They hold no example and +# no lane reads them; examples.test.sh validates the real files under +# docs/contracts/ecosystem-commands/examples/. +docs/conventions/ecosystem-commands/examples/*