WORK-030
ID:WORK-030Status:done

plan update Command

Priority:highComplexity:moderateSource:SPEC-022
changeset-release/main View source

Criteria completion

No incremental history — criteria tracking started on Apr 19.

Branches 3
History 5
  1. f2b3512
    Content editedby Claude
    Add {ID}-{slug}.md filename convention + migrate filenames subcommand
  2. f262d7b
    Content editedby Claude
    Backfill source attributes on all 123 work items
  3. feda13e
    Content editedby Claude
    Implement `plan update` command (WORK-030)
  4. ebe0c64
    Content editedby Claude
    Migrate plan files to {% ref %} xref syntax (WORK-021)
  5. 30b2ae0
    Created (done)by Claude
    Add 9 work items for SPEC-022 (Plan CLI) implementation

Summary

In-place editing of plan file attributes and acceptance criteria checkboxes. This is the highest-value command for AI agent workflows — it enables structured status transitions (refrakt plan update {% ref "WORK-020" /%} --status in-progress) and criterion tracking (refrakt plan update {% ref "WORK-020" /%} --check "Schema validates") without manually editing Markdoc files.

Acceptance Criteria

  • Finds entity file by ID scan (using scanner from WORK-028)
  • --status <status> edits the rune tag's status attribute in place
  • --check "text" toggles - [ ] to - [x] for matching criterion (substring match)
  • --uncheck "text" toggles - [x] to - [ ]
  • Validates attribute values against rune schema (rejects invalid statuses like --status working)
  • Multiple flags combine in a single call (--status in-progress --assignee claude --milestone v0.5.0)
  • --format json outputs structured change summary with old and new values
  • Reports error on ambiguous criterion match (multiple lines match substring)
  • Exit codes: 0 = success, 1 = validation error, 2 = entity not found
  • Tests for attribute editing, checkbox toggling, validation, ambiguity detection, and error cases

Approach

Use the scanner (WORK-028) to find the file by ID. Read the file content as a string. For attribute changes, regex-replace the opening tag line to update the target attribute. For checkbox toggling, find the matching - [ ] or - [x] line by substring and flip the bracket. Write the modified string back to the same file.

Validation uses the rune schema's attribute enum values (already defined in runes/plan/src/tags/).

Dependencies

  • WORK-027 (plugin architecture)
  • WORK-028 (plan file scanner)

References

  • SPEC-022 (Plan CLI)