You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fleet-wide conformance audit of all 50 plugins against the landed plugin doctrine (#257 doctrine wave, #292 topic-docs contract 2.0.0, #310 marketplace metadata wave). Every plugin was scored by an independent worker against a frozen 15-dimension rubric with anchored PASS/FAIL criteria; a 3-plugin blind double-score sample reconciled with exact agreement. Remediation is organized into the five wave sub-issues below; this epic is the index and the durable record.
Blind double-score sample (3 plugins, independent workers): exact verdict agreement on all 45 dimension cells.
Doctrine-update findings (fix the doctrine, not the plugins)
Kill-switch tension: the philosophy doc mandates migrating env toggles to userConfig, while the migration playbook endorses HOOK_<PLUGIN>_ENABLED as the ecosystem norm and its security review checks that it exists. One line of reconciliation needed (which scalars migrate vs which gate stays) — the userConfig wave depends on it.
Generated-surface wording: the topic-docs contract's ".claude/observability/ is the sole sanctioned generated surface under .claude/" is contradicted by the platform's native subagent memory: project|local feature (.claude/agent-memory[-local]/). Reconcile the contract wording.
Dependency-intent check:planning declares domain-driven-design as a hard dependency while its own README frames every skill as standalone — confirm hard-require intent or downgrade to presence-gated collaboration.
Windows sensitive userConfig — blocked upstream
Empirically verified on Windows 11 (Claude Code 2.1.212): a sensitive: true userConfig value persists as plaintext in ~/.claude/.credentials.json (pluginSecrets key); no Credential Manager entry is created (consistent with the documented no-supported-keychain fallback; the value is removed on uninstall). Consequence: secret-bearing scalars are excluded from the userConfig wave until upstream keychain support lands on Windows. Non-secret migrations proceed.
Deferred CI-gate backlog (automatable checks the audit surfaced)
Per-plugin CHANGELOG presence · no version in marketplace entries · no commands/ directories · no plugin settings.jsonagent · HOOK_*_ENABLED grep (post-migration regression guard) · frontmatter name = skill directory name · topic-docs delta-doc ↔ Implementers-table parity · README prerequisites section presence for plugins whose scripts call jq/gh/bash.
Wave sub-issues
Filed as sub-issues of this epic: setup-contract, userConfig, changelog+freshness, prereq+cross-platform, naming+convention-seam.
Fleet-wide conformance audit of all 50 plugins against the landed plugin doctrine (#257 doctrine wave, #292 topic-docs contract 2.0.0, #310 marketplace metadata wave). Every plugin was scored by an independent worker against a frozen 15-dimension rubric with anchored PASS/FAIL criteria; a 3-plugin blind double-score sample reconciled with exact agreement. Remediation is organized into the five wave sub-issues below; this epic is the index and the durable record.
Dimensions
1 boundary · 2 naming · 3 native-first · 4 component-stance · 5 hooks-exec-form · 6 userconfig · 7 version/changelog · 8 setup-contract · 9 prereq-degradation · 10 cross-platform · 11 registry · 12 pointer-discipline · 13 metadata · 14 freshness · 15 security. Cells: P pass · F fail ·
-not applicable.Conformance matrix
Fleet summary
Doctrine-update findings (fix the doctrine, not the plugins)
userConfig, while the migration playbook endorsesHOOK_<PLUGIN>_ENABLEDas the ecosystem norm and its security review checks that it exists. One line of reconciliation needed (which scalars migrate vs which gate stays) — the userConfig wave depends on it.planning) is absent from the philosophy doc's convention-registry table..claude/observability/is the sole sanctioned generated surface under.claude/" is contradicted by the platform's native subagentmemory: project|localfeature (.claude/agent-memory[-local]/). Reconcile the contract wording.planningdeclaresdomain-driven-designas a hard dependency while its own README frames every skill as standalone — confirm hard-require intent or downgrade to presence-gated collaboration.Windows
sensitiveuserConfig — blocked upstreamEmpirically verified on Windows 11 (Claude Code 2.1.212): a
sensitive: trueuserConfig value persists as plaintext in~/.claude/.credentials.json(pluginSecretskey); no Credential Manager entry is created (consistent with the documented no-supported-keychain fallback; the value is removed on uninstall). Consequence: secret-bearing scalars are excluded from the userConfig wave until upstream keychain support lands on Windows. Non-secret migrations proceed.Deferred CI-gate backlog (automatable checks the audit surfaced)
Per-plugin CHANGELOG presence · no
versionin marketplace entries · nocommands/directories · no pluginsettings.jsonagent·HOOK_*_ENABLEDgrep (post-migration regression guard) · frontmattername= skill directory name · topic-docs delta-doc ↔ Implementers-table parity · README prerequisites section presence for plugins whose scripts call jq/gh/bash.Wave sub-issues
Filed as sub-issues of this epic: setup-contract, userConfig, changelog+freshness, prereq+cross-platform, naming+convention-seam.
🤖 Generated with Claude Code