Found while triaging #278 on 2026-08-31.
What is configured
.codev/config.json > porch.checks.tests overrides the command the tests gate runs. Among its excludes are three named test files, not just directories:
--exclude "**/bugfix-213-architect-restart.test.ts"
--exclude "**/init.test.ts"
--exclude "**/spec-250-vendoring-identities.test.ts"
.codev/config.json is gitignored (.gitignore:11), so this list is machine-local and unversioned.
Why it matters
A builder that reports "porch tests green" has run whatever its machine excludes. Nobody reviewing that claim can see the exclusion list, it does not travel with the repo, and it is not the list CI runs. Three named files are silently outside the gate on this machine, and a different machine has a different set.
This is the shape the project already treats as a defect elsewhere: a check that cannot observe something must not report the same value as a check that observed it and found nothing wrong. Here the gate cannot fail on those three files and says nothing about it.
Concretely today: spec-250-vendoring-identities.test.ts fails on this machine whenever the fork checkout is dirty (#278). The gate is insulated from it, so a builder can pass the gate while its own pnpm test is red, and the two answers disagree with no record of why.
What would close this
- Move the exclusion list somewhere versioned, so it travels and can be reviewed. If a test must be excluded, that decision belongs in the repo with a reason next to it.
- Have the gate report what it excluded, so "tests green" carries its own scope. Silence about an exclusion is the part that misleads.
- Revisit whether
bugfix-213-architect-restart.test.ts and init.test.ts still need excluding, or whether they were quarantined once and forgotten.
Related
#278 is the environmental failure that led here. This issue is about the gate not saying what it skipped, which is independent of that test being fixed.
Found while triaging #278 on 2026-08-31.
What is configured
.codev/config.json>porch.checks.testsoverrides the command the tests gate runs. Among its excludes are three named test files, not just directories:.codev/config.jsonis gitignored (.gitignore:11), so this list is machine-local and unversioned.Why it matters
A builder that reports "porch tests green" has run whatever its machine excludes. Nobody reviewing that claim can see the exclusion list, it does not travel with the repo, and it is not the list CI runs. Three named files are silently outside the gate on this machine, and a different machine has a different set.
This is the shape the project already treats as a defect elsewhere: a check that cannot observe something must not report the same value as a check that observed it and found nothing wrong. Here the gate cannot fail on those three files and says nothing about it.
Concretely today:
spec-250-vendoring-identities.test.tsfails on this machine whenever the fork checkout is dirty (#278). The gate is insulated from it, so a builder can pass the gate while its ownpnpm testis red, and the two answers disagree with no record of why.What would close this
bugfix-213-architect-restart.test.tsandinit.test.tsstill need excluding, or whether they were quarantined once and forgotten.Related
#278 is the environmental failure that led here. This issue is about the gate not saying what it skipped, which is independent of that test being fixed.