WORK-126
ID:WORK-126Status:done

Parse Resolution sections in the plan scanner

Extend the plan scanner to extract ## Resolution sections from work item and bug files into a structured resolution field on PlanEntity.

Priority:highComplexity:moderateMilestone:v1.0.0Source:SPEC-027
changeset-release/main View source

Criteria completion

Criteria completion: 0 of 8 (0%) checked; tracking started on Apr 19, no incremental history yet0%25%50%75%100%Apr 19May 5

Tracking started Apr 19 — check back for trends.

Branches 2
changeset-release/main current done
claude/file-naming-convention-LJdwR donemain done
History 6
  1. f2b3512
    Content editedby Claude
    Add {ID}-{slug}.md filename convention + migrate filenames subcommand
  2. 1676387
    Content editedby Claude
    Accept SPEC-037 and break into work items; fix plan validation issues
  3. f262d7b
    Content editedby Claude
    Backfill source attributes on all 123 work items
  4. da12420
    Content editedby Claude
    Update 8 work items to done status
  5. 2637549
    Content editedby Björn Andersson
    chore(plan): create v1.0.0 milestone, complete v0.9.0, fix acceptance cr
  6. 3e9d54e
    Created (done)by Claude
    Add work items WORK-071 through WORK-075 for SPEC-027

Acceptance Criteria

  • PlanEntity interface in runes/plan/src/types.ts gains an optional resolution field with date, branch, pr, and body subfields
  • parseFile() in runes/plan/src/scanner.ts extracts the Resolution section from the raw source when present
  • Completed: line is parsed into resolution.date (ISO date string)
  • Branch: line is parsed into resolution.branch (backticks stripped)
  • PR: line is parsed into resolution.pr
  • Remaining content goes into resolution.body
  • Files without a ## Resolution section produce resolution: undefined
  • Unit tests cover: full resolution, minimal resolution (just a sentence), missing resolution, resolution with only some fields

Approach

Add a Resolution interface to types.ts. In the scanner, after extracting criteria, locate ## Resolution within the rune's line range and parse it using simple line-prefix matching as described in SPEC-027. The extraction should work on the raw source string (not the AST) since it's a convention-based section, similar to how extractCriteria works.

References

  • SPEC-027