Skip to content

docs(tdd): backtick Touched-files paths in 0044–0047 (fix false structural-(a))#131

Merged
cahenesy merged 1 commit into
masterfrom
docs/design/0044-0047-touched-files-backtick-fix
Jun 10, 2026
Merged

docs(tdd): backtick Touched-files paths in 0044–0047 (fix false structural-(a))#131
cahenesy merged 1 commit into
masterfrom
docs/design/0044-0047-touched-files-backtick-fix

Conversation

@cahenesy

Copy link
Copy Markdown
Owner

What

Backtick the ## Touched files path tokens in TDDs 0044–0047 (drafts), resolving the /implement structural-finding(a) halt on 0044 (run 20260610-093522). No design substance changed — format conformance + pinning one reviewer-found bug.

Why — it was a FALSE halt

0044–0047 wrote their touched-files paths as bare text (- scripts/lib/gates.sh — …), but _rework_touched_files (scripts/lib/gates.sh ~:1390) parses "the first backtick-delimited token" per the convention every other TDD uses (- `scripts/lib/gates.sh` — …). So the parser read the description backticks (COVERAGE_MAP, coverage_map_block, gh pr create) as the declared set, and the rework's genuinely in-scope edit to scripts/lib/gates.sh failed the FR-67(a) membership check. Proven by running the parser before/after the fix.

Changes

  • 0044–0047: backticked the path token in ## Touched files. Verified _rework_touched_files now returns the real paths for each.
  • 0044 also pins the genuine major the false halt masked (the Opus reviewer's Finding 1): coverage_map_normalize's diff-presence test grep -qxF "$file" lets an option-shaped citation (--x::name) bypass on GNU grep (CI/prod) — surviving as pinned, defeating FR-78's stated model-independent anti-false-green guarantee. It escaped the eval only because this box wraps grep with ugrep. Added a Failure-mode + a Verification regression case mandating grep -qxF -- "$file". The code fix itself is the resumed bounded-rework's job on the retained build branch.
  • BLOCKERS.md: 0044 entry checked off with the full diagnosis.

Latent runner footgun (candidate gap-closure — NOT fixed here)

tdd-lint does not enforce backticked Touched-files paths, and the two runner parsers disagree: _rework_touched_files (first-backtick) vs _rework_file_declared_bound (em-dash split, tolerates bare paths). The /tdd-author template example itself shows a bare - <path> — <purpose>, so fresh TDDs keep reproducing this. Durable fix: make _rework_touched_files tolerate bare paths, or have tdd-lint require the backtick. Flagged for a future TDD.

Open assumptions & waivers

Open assumptions: none surfaced (mechanical format conformance + pinning a reviewer-found bug; no design interview run).

Verification

  • _rework_touched_files simulation: returns the 5/3/4/3 real paths for 0044/0045/0046/0047 (garbage before).
  • tl_lint structural + --bounds: exit 0 on all four.

After merge

/implement --resumestructural-finding is resumable; 0043 already succeeded (PR #130) and 0044's build branch is retained, so this resumes (not a rebuild). The resumed review re-finds the grep major; the bounded-rework loop — now with a correctly-parsed in-scope set — ships the grep -qxF -- "$file" fix, then the run continues to 0045–0047.

🤖 Generated with Claude Code

…tural-(a))

Resolves the /implement structural-finding(a) halt on TDD 0044 (run
20260610-093522). It was a FALSE HALT: 0044–0047 wrote their ## Touched files
paths as bare text (`- scripts/lib/gates.sh — …`), but _rework_touched_files
(scripts/lib/gates.sh ~:1390) parses "the first backtick-delimited token" per
the convention every other TDD uses (`- `scripts/lib/gates.sh` — …`). So the
parser read description backticks (COVERAGE_MAP, coverage_map_block, gh pr
create) as the declared set, and the rework's genuinely in-scope edit to
scripts/lib/gates.sh failed the FR-67(a) membership check. The rework was never
out of scope.

Fix (no design substance changed):
- Backticked the path token in ## Touched files for all four drafts.
  Verified _rework_touched_files now returns the real paths for each.
- 0044 also pins the GENUINE major the false halt masked (Opus reviewer's
  Finding 1): coverage_map_normalize's diff-presence test `grep -qxF "$file"`
  lets an option-shaped citation (--x::name) bypass on GNU grep (CI/prod),
  surviving as `pinned` and defeating FR-78's model-independent guarantee — it
  escaped the eval only because this box wraps grep with ugrep. Added a
  Failure-mode + a Verification regression case mandating `grep -qxF -- "$file"`.
  The code fix itself is the resumed bounded-rework's job on the retained branch.
- BLOCKERS.md: 0044 entry checked off with the full diagnosis.

Latent runner footgun (candidate gap-closure, NOT fixed here): tdd-lint does
not enforce backticked Touched-files paths, and _rework_touched_files
(first-backtick) disagrees with _rework_file_declared_bound (em-dash split).
Make one tolerant of bare paths, or have tdd-lint require the backtick.

Open assumptions: none surfaced (mechanical format conformance + pinning a
reviewer-found bug; no design interview).

Resolvable via `/implement --resume` once merged (structural-finding is
resumable; 0043 succeeded as PR #130 and 0044's build branch is retained — not
a rebuild).

tl_lint structural + --bounds: exit 0 on all four TDDs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@cahenesy cahenesy merged commit 3cd6058 into master Jun 10, 2026
1 check passed
@cahenesy cahenesy deleted the docs/design/0044-0047-touched-files-backtick-fix branch June 10, 2026 16:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant