#1899·OpenSpec

Feature request: surface priority and author in openspec list

Author: arutshCreated Sep 16, 2026Updated Sep 16, 2026

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

  • Not the same as #927 (closed) — that asked for a list command to exist at all, before the current one shipped, and never mentions priority/author.
  • Not the same as #1669 / #1387 (parallel-change overlap detection) or #1525 (openspec dashboard) — those address conflict detection and a broader UI, not per-change metadata display.