Repository navigation
Make canonical TypeScript work verifiable - #16
Merged
Merged
Conversation
Adds the typescript job to CI, teaches policy-guard that src/ is product code, and updates the working contract and both runbooks for a repository that now holds two runtimes with different jobs. ADR 0002 records which parts of this came from the specification and which the implementation side chose. The researcher answer that resolved the heading, filename and priority mismatches is recorded in the feedback file, because a Google Doc is not where this repository keeps its decisions. Refs #14 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Closes #14 — the policy half. The product half merged as #15.
Achieved outcome
Canonical TypeScript work now has a required check behind it, and both runbooks, the
working contract and the structural guard describe a repository that holds two
runtimes with different jobs. Without this, the first M0 unit of work would have
arrived with no evidence and the acceptor would have been right to refuse it forever.
Changed artifacts
.github/workflows/ci.ymltypescriptjob:npm ci, typecheck, test, build on Node LTSAGENTS.mddocs/zendev/AUTHOR_RUNBOOK.mdFILEcarries its extension;READY/FROZENonly;P0topriority:high,P1topriority:normaldocs/zendev/ACCEPTOR_RUNBOOK.mdscripts/policy_guard.pysrc/is product codescripts/tests/test_policy_guard.pydocs/adr/0002-...mddocs/spec/FEEDBACK_TO_RESEARCHER.mdWorth knowing about the sequence
This change had to be split from #15, and the guard is what forced it: a diff holding
both
AGENTS.mdandsrc/index.tsis refused, so the toolchain had to land before thepolicy that describes it. The ordering was not planning — it was the control firing on
its author. That is the intended behavior.
Acceptance criteria (remaining half of #14)
AGENTS.mdand both runbooks name both verification pathspolicy_guardtreatssrc/as product codeChecks
python -m unittest discover -s scripts/testspassednpm run typecheck,npm testpassedpolicy_guard --base origin/masterpassedci.ymlparsepassedbuild-and-test,typescript,policy-guardtypescriptjob itselfnot_runlocallyNot checked
Whether
npm cibehaves on a clean Linux runner withlts/*. It worked on Node24.19.0 on Windows with a committed lockfile; the checks tab on this pull request is
the actual evidence.
Highest-risk area for review
The claim that both suites are required. Adding a job to
ci.ymldoes not make itrequired — branch protection has to list it. That is a repository setting, not a
file in this diff, and it is the remaining gate below.
Remaining gate
After merge,
typescriptmust be added to the required status checks onmaster.Until then the job runs but does not block, so a red TypeScript check could still be
merged. Once it is in place, arming the schedules is the last step.
🤖 Generated with Claude Code