Repository navigation
TDD 0073: requirements review gate (coverage scan, prd-lint, requirements-reviewer, overrides) - #200
Merged
cahenesy merged 6 commits intoOct 15, 2026
Conversation
Observations 1-9c and 13-19 of TDD 0073's Verification plan: the PRD pre-pass driven in temp git repos, the tl:prd-lint block under env -i, the requirements-reviewer contract and the /prd-author skill text. Red against master: prd-lint.sh, prd_lint.py, the agent and the skill step do not exist. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01NpGG21Y2VGGhTQaFr4oshB
- ux_record.py: expose parse_requirements(); parse_prd is built on it and tl_ux_ui_reqs output is byte-identical (obs 9). - prd_lint.py + prd-lint.sh: the mechanical PRD pre-pass (delta, check: placeholder, acceptance.missing, id.duplicate, id.malformed, override.rationale, info vague.term), scoped to ## Requirements, with line-level newness against the integration branch's PRD, the retired-id marker, and the documented degrade lines (FR-103, FR-105). - agents/requirements-reviewer.md: the fixed reviewer prompt, R-n cited findings, override re-check, ### Non-findings, REQUIREMENTS_REVIEW verdict (FR-104, FR-105, FR-110, FR-87). - skills/prd-author: coverage scan (FR-102), the tl:prd-lint block, fresh mktemp reviewer dispatch by prompt file, the override flow, and the ## Coverage scan / ## Requirements review commit-body sections. - implement-gate: register the prd-lint and requirements-review evals. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01NpGG21Y2VGGhTQaFr4oshB
Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01NpGG21Y2VGGhTQaFr4oshB
Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01NpGG21Y2VGGhTQaFr4oshB
…s script) A relative BASH_SOURCE dir plus the helpers' cd into the linted repo made tl_prd_lint run <linted-repo>/scripts/lib/prd_lint.py when the library was sourced by a relative path. Found in the 0073 build review (N1). Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01NpGG21Y2VGGhTQaFr4oshB
Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01NpGG21Y2VGGhTQaFr4oshB
This was referenced Oct 12, 2026
cahenesy
deleted the
build/20261012-165626/0073-requirements-review-gate
branch
October 15, 2026 13:41
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.
Implements TDD 0073: the requirements review gate for
/prd-author(PRD FR-102–FR-105, FR-110; refs #195). Plugin 3.54.0 → 3.55.0.What it adds
initial/finalClear, Partial or Missing, ranked by impact × uncertainty. The result goes in a## Coverage scantable in the PR body.scripts/lib/prd-lint.sh+prd_lint.py(FR-103), built on 0070's requirement parser.git -C … ls-tree/show.## Requirements.placeholderfires only on new lines.acceptance.missinghandles line breaks.id.duplicateandid.malformedrequire a digit after the hyphen, and the retired-marker form is accepted.override.rationaleenforces 20–400 characters.vague.termreports as info.agents/requirements-reviewer.md(FR-104, FR-110).R-n <severity> — docs/PRD.md:<line> — <finding>format,### Non-findingswith quotes, andREQUIREMENTS_REVIEW: PASS|BLOCK.- "<finding>" — overridden: <rationale>. A fresh reviewer re-checks it on the next run, so a boilerplate rationale gets re-blocked./prd-author. Thetl:prd-lintblock, the review step (freshmktemp, dispatched by prompt file, never reused on resume), the override loop, and the new PR-body sections.Gates (run 20261012-165626)
tl_ux_ui_reqsis byte-identical before and after the parser refactor.-I -Bisolation, no parse failure reads as clean; all 10 declared deviations acceptedReviewer behaviour (parent-dispatched fixtures, obs 10–12):
BLOCKciting the line.PASS, with a correctly formatted quoted non-finding.overridden.The first "clean" fixture was itself contradictory, and the reviewer correctly blocked it. That is recorded as a fixture defect.
Post-review fix (N1): when
prd-lint.shwas sourced by a relative path, itscdinto the linted repo made it run that repo's ownscripts/lib/prd_lint.py. The script dir is now resolved absolutely. Test7e2443b(the planted script must never run) went red, then fix583eba5made it green. Gates were re-recorded on the new HEAD.Deviations (accepted)
--degradedflag.tl_prd_deltasends degrade lines to stderr.## Requirements.id.malformedchecks every new line in## Requirements.**<ID>** *Retired….prd_lint.pyis located by the script's own directory.Non-blocking residuals
prd-lint: <msg>, notprd-lint: internal error: …).## Open questionsis flagged major. That conflicts with the "move it to Open questions" self-review advice and is a design follow-up.TL_REPOis out of contract.🤖 Generated with Claude Code
https://claude.ai/code/session_01NpGG21Y2VGGhTQaFr4oshB