Plugin: testing · Category: hardcoded opinion / source-repo coupling (1) — highest-severity finding for this plugin
Source: work-readiness sweep (read-only audit vs docs/PLUGIN-PHILOSOPHY.md + docs/MIGRATION-PLAYBOOK.md)
Findings
plugins/testing/skills/diagnose/evals/evals.json:6-7 — expected_output asserts "identifies the MonolithApi.Tests collection fixture issue — … [Collection(MonolithApiTestFixture.CollectionName)]"
plugins/testing/skills/write/evals/evals.json:12-13 — "integration tests for a new Platform.Messaging library … co-located Platform.Messaging.Tests/ in libs/dotnet/"
plugins/testing/skills/write/evals/evals.json:7 — "places in co-located {Project}.Tests/ directory. References testing.md for framework conventions (xUnit v3, Shouldly)"
Why it breaks agnosticism
MonolithApi, MonolithApiTestFixture.CollectionName, Platform.Messaging, and libs/dotnet/ are the source monorepo's actual project names and directory layout; xUnit v3 + Shouldly are that shop's frameworks. The eval expected_output asserts these as CORRECT behavior — the fixture meant to prove repo-agnosticism instead grades against one private repo's layout. Violates PLUGIN-PHILOSOPHY "Design boundary" (no repository names / undocumented consumer layout) and migration-gate "de-couple from the source repo". Bonus defect: evals.json:7 references testing.md, a ghost file — this plugin ships write.md/organize.md; the ref survived from the source plugin.
Fix direction
Rewrite eval prompts/expected_output to neutral phrasing grading the DECISION (co-locate vs centralize, fixture-collision recognition) without naming any project, path, or framework — or supply a fixture repo whose conventions the skill reads (seam 3) so expected_output cites "the project's documented naming/location". Drop or repoint the ghost testing.md reference.
Plugin:
testing· Category: hardcoded opinion / source-repo coupling (1) — highest-severity finding for this pluginSource: work-readiness sweep (read-only audit vs docs/PLUGIN-PHILOSOPHY.md + docs/MIGRATION-PLAYBOOK.md)
Findings
plugins/testing/skills/diagnose/evals/evals.json:6-7— expected_output asserts "identifies the MonolithApi.Tests collection fixture issue — …[Collection(MonolithApiTestFixture.CollectionName)]"plugins/testing/skills/write/evals/evals.json:12-13— "integration tests for a new Platform.Messaging library … co-located Platform.Messaging.Tests/ in libs/dotnet/"plugins/testing/skills/write/evals/evals.json:7— "places in co-located {Project}.Tests/ directory. References testing.md for framework conventions (xUnit v3, Shouldly)"Why it breaks agnosticism
MonolithApi,MonolithApiTestFixture.CollectionName,Platform.Messaging, andlibs/dotnet/are the source monorepo's actual project names and directory layout; xUnit v3 + Shouldly are that shop's frameworks. The eval expected_output asserts these as CORRECT behavior — the fixture meant to prove repo-agnosticism instead grades against one private repo's layout. Violates PLUGIN-PHILOSOPHY "Design boundary" (no repository names / undocumented consumer layout) and migration-gate "de-couple from the source repo". Bonus defect:evals.json:7referencestesting.md, a ghost file — this plugin shipswrite.md/organize.md; the ref survived from the source plugin.Fix direction
Rewrite eval prompts/expected_output to neutral phrasing grading the DECISION (co-locate vs centralize, fixture-collision recognition) without naming any project, path, or framework — or supply a fixture repo whose conventions the skill reads (seam 3) so expected_output cites "the project's documented naming/location". Drop or repoint the ghost
testing.mdreference.