fix(state): deduplicate extractField into shared helper with regex escaping
Two defensive hardening changes: 1. state.cjs: Replace two identical inline extractField closures (cmdStateSnapshot and buildStateFrontmatter) with a shared stateExtractField(content, fieldName) helper at module scope. The helper uses escapeRegex on fieldName before interpolation into RegExp constructors, preventing breakage if a field name ever contains regex metacharacters. Net removal of duplicated logic. 2. gsd-plan-checker.md: Bound the "relevant" definition in the exhaustive cross-check instruction. A requirement is "relevant" only if ROADMAP.md explicitly maps it to this phase or the phase goal directly implies it — prevents false blocker flags for requirements belonging to other phases. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
committed by
Lex Christopherson
parent
8b8d1074b8
commit
641cdbdae7
@@ -447,7 +447,7 @@ Session persists | 01 | 3 | COVERED
|
||||
|
||||
For each requirement: find covering task(s), verify action is specific, flag gaps.
|
||||
|
||||
**Exhaustive cross-check:** Also read PROJECT.md requirements (not just phase goal). Verify no PROJECT.md requirement relevant to this phase is silently dropped. Any unmapped requirement is an automatic blocker — list it explicitly in issues.
|
||||
**Exhaustive cross-check:** Also read PROJECT.md requirements (not just phase goal). Verify no PROJECT.md requirement relevant to this phase is silently dropped. A requirement is "relevant" if the ROADMAP.md explicitly maps it to this phase or if the phase goal directly implies it — do NOT flag requirements that belong to other phases or future work. Any unmapped relevant requirement is an automatic blocker — list it explicitly in issues.
|
||||
|
||||
## Step 5: Validate Task Structure
|
||||
|
||||
|
||||
Reference in New Issue
Block a user