WORK-130
ID:WORK-130Status:done

Support attribute clearing in plan CLI update command

The update command can set or replace attribute values but cannot remove them. Once you set --assignee claude or --milestone v1.0.0, there's no way to unset it. Support empty string as "clear": --assignee "" removes the attribute from the tag.

Priority:lowComplexity:simpleSource:SPEC-037
changeset-release/main View source

Criteria completion

Criteria completion: 5 of 5 (100%) 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
main doneclaude/file-naming-convention-LJdwR done
History 3
  1. f2b3512
    Content editedby Claude
    Add {ID}-{slug}.md filename convention + migrate filenames subcommand
  2. a295513
    Content editedby Claude
    Mark all SPEC-037 work items done with acceptance criteria and resolutio
  3. 1676387
    Created (done)by Claude
    Accept SPEC-037 and break into work items; fix plan validation issues

Acceptance Criteria

  • --assignee "" removes the assignee attribute from the rune tag
  • --milestone "" removes the milestone attribute from the rune tag
  • Works for any optional attribute (assignee, milestone, source, tags, complexity)
  • Change summary shows "removed" for cleared attributes (e.g., assignee: claude → (removed))
  • Tests for attribute clearing

References

  • SPEC-037 — Plan Package Hardening (Part 4: Missing CLI Capability)

Resolution

Completed: 2026-04-12

Branch: claude/spec-037-breakdown-docs-Whj40

What was done

  • Added removeAttr() helper to update.ts
  • Empty string values trigger attribute removal instead of setting empty
  • Skip enum validation for empty strings
  • 4 new tests for attribute clearing