Plugin: testing · Categories: hardcoded opinion (1), missing seam guard (2)
Source: work-readiness sweep (read-only audit vs docs/PLUGIN-PHILOSOPHY.md + docs/MIGRATION-PLAYBOOK.md)
Findings
plugins/testing/skills/write/context/write.md:78 — "(detection layer: dotnet-test:test-anti-patterns + dotnet-test:assertion-quality plugins)" — inline parenthetical, NOT under any "invoke only when installed" guard
- Guarded lists (structurally fine but all-.NET):
write.md:138-142, organize.md:61-64, plan/SKILL.md:105-108, run-e2e/context/e2e.md:134-137, diagnose/context/investigate.md:55-58, diagnose/context/loop.md:110-113 — dotnet-test:*, dotnet-diag:*, dotnet-msbuild:*, cloudflare:web-perf, document-skills:webapp-testing
Why it breaks the repo's rules
(1) write.md:78 is a bare unguarded cross-plugin reference — exactly what PLUGIN-PHILOSOPHY's design boundary calls "a defect". (2) Every recommended sibling is .NET-ecosystem-specific, so a plugin billed "across all ecosystems" offers a house-stack-only enrichment path. None of the dotnet-* plugins exist in this marketplace (verified in this sweep — same pattern as #405/#412/#422); cloudflare:* and document-skills:* are external.
Fix direction
Move write.md:78's mention under the existing guarded pattern (or drop it). Frame the .NET-only lists explicitly as ".NET-ecosystem plugins — applicable when your stack is .NET" so non-.NET consumers are not handed a dead list as the universal path; keep them optional/gated.
Plugin:
testing· Categories: hardcoded opinion (1), missing seam guard (2)Source: work-readiness sweep (read-only audit vs docs/PLUGIN-PHILOSOPHY.md + docs/MIGRATION-PLAYBOOK.md)
Findings
plugins/testing/skills/write/context/write.md:78— "(detection layer: dotnet-test:test-anti-patterns + dotnet-test:assertion-quality plugins)" — inline parenthetical, NOT under any "invoke only when installed" guardwrite.md:138-142,organize.md:61-64,plan/SKILL.md:105-108,run-e2e/context/e2e.md:134-137,diagnose/context/investigate.md:55-58,diagnose/context/loop.md:110-113—dotnet-test:*,dotnet-diag:*,dotnet-msbuild:*,cloudflare:web-perf,document-skills:webapp-testingWhy it breaks the repo's rules
(1)
write.md:78is a bare unguarded cross-plugin reference — exactly what PLUGIN-PHILOSOPHY's design boundary calls "a defect". (2) Every recommended sibling is .NET-ecosystem-specific, so a plugin billed "across all ecosystems" offers a house-stack-only enrichment path. None of thedotnet-*plugins exist in this marketplace (verified in this sweep — same pattern as #405/#412/#422);cloudflare:*anddocument-skills:*are external.Fix direction
Move
write.md:78's mention under the existing guarded pattern (or drop it). Frame the .NET-only lists explicitly as ".NET-ecosystem plugins — applicable when your stack is .NET" so non-.NET consumers are not handed a dead list as the universal path; keep them optional/gated.