Skip to content

testing: evals grade against the private source monorepo's layout and house test stack (+ ghost testing.md ref) #428

Description

@kyle-sexton

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: highSignificant impact, or blocks an imminent release; staff this cycle.status: readyTriaged, unblocked, and fully specified; eligible to pick up.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions