Plugin: verification · Categories: hardcoded opinion (1), incomplete externalization (2)
Source: work-readiness sweep (read-only audit vs docs/PLUGIN-PHILOSOPHY.md + docs/MIGRATION-PLAYBOOK.md)
Findings
plugins/verification/skills/confirm/SKILL.md:69 — "otherwise use these portable defaults:"
:72 — **/*.razor, **/*.razor.cs, **/*.cshtml, **/wwwroot/** (Blazor/ASP.NET)
:73 — **/appsettings*.json (.NET)
:74 — **/*.csproj, **/*.props, **/*.targets, **/Directory.Build.* (MSBuild)
plugins/verification/skills/confirm/context/outcome.md:70 — "this portable one"
Why it breaks agnosticism
.NET/Blazor-specific globs presented as "portable defaults" in a plugin whose README asserts "Works in any repo." A Python/Node/Go consumer gets a default that silently never matches its runtime-affecting files, so E2E/arch-test auto-triggers never fire — a silent-skip defect, not graceful degradation. The mislabel ("portable") is the specific violation; the taxonomy itself is fine.
Fix direction
Rename to "reference .NET/Blazor defaults" and route real values through a named consumer seam (see the sibling "override seams gestured but never located" issue). Ship stack-neutral defaults (app source dirs, ecosystem manifest globs) or take an explicit "no portable default — declare per project" stance. Never a stack masquerading as universal.
Plugin:
verification· Categories: hardcoded opinion (1), incomplete externalization (2)Source: work-readiness sweep (read-only audit vs docs/PLUGIN-PHILOSOPHY.md + docs/MIGRATION-PLAYBOOK.md)
Findings
plugins/verification/skills/confirm/SKILL.md:69— "otherwise use these portable defaults:":72—**/*.razor,**/*.razor.cs,**/*.cshtml,**/wwwroot/**(Blazor/ASP.NET):73—**/appsettings*.json(.NET):74—**/*.csproj,**/*.props,**/*.targets,**/Directory.Build.*(MSBuild)plugins/verification/skills/confirm/context/outcome.md:70— "this portable one"Why it breaks agnosticism
.NET/Blazor-specific globs presented as "portable defaults" in a plugin whose README asserts "Works in any repo." A Python/Node/Go consumer gets a default that silently never matches its runtime-affecting files, so E2E/arch-test auto-triggers never fire — a silent-skip defect, not graceful degradation. The mislabel ("portable") is the specific violation; the taxonomy itself is fine.
Fix direction
Rename to "reference .NET/Blazor defaults" and route real values through a named consumer seam (see the sibling "override seams gestured but never located" issue). Ship stack-neutral defaults (app source dirs, ecosystem manifest globs) or take an explicit "no portable default — declare per project" stance. Never a stack masquerading as universal.