Summary
Add optional priority and author fields to per-change metadata (.openspec.yaml), and surface them as columns in openspec list (both the table and --json output).
Use case
When several changes are in flight, the plain Changes: table gives no sense of which one matters most or who owns it:
Changes:
async-privileged-access-audit 0/9 tasks 1d ago
superuser-admin-console 0/31 tasks 9d ago
docker-image-slim-build 0/14 tasks 14d ago
...
With multiple parallel changes (and possibly multiple contributors), it's hard to tell what to pick up next without opening every proposal.md. Attaching a priority and an owner at the change level, and showing them in list, would let a team — or a single person managing many parallel changes — triage without reading each file.
Current behavior
- Per-change metadata lives in
.openspec.yaml next to proposal.md, validated by ChangeMetadataSchema (src/core/change-metadata/schema.ts). It currently supports schema, created, goal, affected_areas, initiative, skip_specs, retire_capabilities — no priority or author.
openspec list (src/core/list.ts) tracks only name, completedTasks, totalTasks, lastModified, and renders name / task-status / relative-time. There's no ownership or priority concept anywhere in the CLI today.
Proposed behavior
- Add
priority: 'low' | 'medium' | 'high' (optional enum) and author (optional free string) to ChangeMetadataSchema.
author is populated automatically at openspec new change time from git config user.name, rather than requiring it to be set by hand. It should still be overridable in .openspec.yaml.
openspec list reads .openspec.yaml per change and adds priority/author columns when present (and to the --json shape), without changing output for changes that don't set them.
Related
Summary
Add optional
priorityandauthorfields to per-change metadata (.openspec.yaml), and surface them as columns inopenspec list(both the table and--jsonoutput).Use case
When several changes are in flight, the plain
Changes:table gives no sense of which one matters most or who owns it:With multiple parallel changes (and possibly multiple contributors), it's hard to tell what to pick up next without opening every
proposal.md. Attaching a priority and an owner at the change level, and showing them inlist, would let a team — or a single person managing many parallel changes — triage without reading each file.Current behavior
.openspec.yamlnext toproposal.md, validated byChangeMetadataSchema(src/core/change-metadata/schema.ts). It currently supportsschema,created,goal,affected_areas,initiative,skip_specs,retire_capabilities— nopriorityorauthor.openspec list(src/core/list.ts) tracks onlyname,completedTasks,totalTasks,lastModified, and rendersname / task-status / relative-time. There's no ownership or priority concept anywhere in the CLI today.Proposed behavior
priority: 'low' | 'medium' | 'high'(optional enum) andauthor(optional free string) toChangeMetadataSchema.authoris populated automatically atopenspec new changetime from git configuser.name, rather than requiring it to be set by hand. It should still be overridable in.openspec.yaml.openspec listreads.openspec.yamlper change and addspriority/authorcolumns when present (and to the--jsonshape), without changing output for changes that don't set them.Related
listcommand to exist at all, before the current one shipped, and never mentions priority/author.openspec dashboard— local read-first UI for stores and changes (embedded server, phased) #1525 (openspec dashboard) — those address conflict detection and a broader UI, not per-change metadata display.