fix(signals): require a code file before manifest_missing_tests fires - #5852
Merged
JSONbored merged 1 commit intoJul 14, 2026
Merged
Conversation
manifest_missing_tests fired on any PR with configured test expectations and no changed test file, even when the PR touched no code at all (a single .mdx catalog entry, a README edit). Production evidence: roughly half of the PRs this blocked on JSONbored/awesome-claude merged anyway, overwhelmingly content-only registry submissions with nothing a test could cover. The sibling local_diff_missing_tests check already guards on codeFileCount > 0; port the same guard to both buildFocusManifestGuidance implementations (src/signals/focus-manifest.ts and the packages/loopover-engine copy) so a docs/content-only PR no longer trips a test-coverage finding it has nothing to satisfy, while a PR mixing code with docs still requires tests as before.
Contributor
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5852 +/- ##
=======================================
Coverage 95.11% 95.11%
=======================================
Files 586 586
Lines 46480 46482 +2
Branches 14860 14860
=======================================
+ Hits 44209 44211 +2
Misses 1515 1515
Partials 756 756
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
JSONbored
deleted the
fix/manifest-missing-tests-docs-only-false-positive
branch
July 14, 2026 19:53
13 tasks
This was referenced Jul 14, 2026
Closed
Closed
Closed
This was referenced Jul 15, 2026
Closed
Closed
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
manifest_missing_testsfired on any PR with configured test expectations and no changed test file, even when the PR touched no code at all. Real production evidence: on JSONbored/awesome-claude, this check blocked 18 PRs and 9 merged anyway (50% false-positive rate), overwhelmingly single-file.mdx/README.mdcatalog-registration PRs with nothing a test could cover.local_diff_missing_testscheck already guards oncodeFileCount > 0; this PR ports the same guard to bothbuildFocusManifestGuidanceimplementations (src/signals/focus-manifest.tsand thepackages/loopover-enginecopy) so they stay in sync.Scope
type(scope): short summaryConventional Commit format.CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Validation
git diff --checknpm run actionlintnpm run typechecknpm run test:coveragelocally — 851 passed, 0 failed (full unsharded run). Both branches of the newcodeFileCount > 0guard are exercised: fires when a code file exists, does not fire on a docs/content-only change, still fires on a mixed code+docs change.npm run test:workers— not run, see note belownpm run build:mcp/npm run test:mcp-pack— not run, see note belownpm run ui:openapi:check/ui:lint/ui:typecheck/ui:build— not run, see note belownpm audit --audit-level=moderate— clean, 0 vulnerabilitiesIf any required check was skipped, explain why:
test:workers,build:mcp/test:mcp-pack, and theui:*checks were not run. This change is confined tosrc/signals/focus-manifest.ts,packages/loopover-engine/src/focus-manifest/guidance.ts, and their unit tests — no Workers runtime, MCP package, API route, OpenAPI schema, or UI code is touched. Rannpm run test:coverage(unsharded) andnpm run test:engine-parityinstead, which exercise this exact code path end-to-end and confirmed no golden-fixture drift.Safety
UI Evidence
N/A — no UI/frontend/docs change.
Notes
test/unit/queue-2.test.ts) was incidentally relying on this exact bug: its fixture used aREADME.md-only changed file to test an unrelated "an ignored-bot author still gets the deterministic gate" behavior. Fixed the fixture to use a code file so it continues to test its actual subject instead of silently depending on the false positive.