Skip to content

docs: migrate the change process to OpenSpec#121

Merged
Postlog merged 1 commit into
mainfrom
migrate-to-openspec
Jun 28, 2026
Merged

docs: migrate the change process to OpenSpec#121
Postlog merged 1 commit into
mainfrom
migrate-to-openspec

Conversation

@Postlog

@Postlog Postlog commented Jun 28, 2026

Copy link
Copy Markdown
Owner

Why

Adopt OpenSpec (the spec-driven schema) as the planning and change-documentation process, replacing the ADR catalog (the CHANGELOG stays). ADRs capture point-in-time decisions, but the project had no maintained, machine-checkable description of what the system currently does. OpenSpec gives us a living behavior contract (openspec/specs/) plus a structured change workflow (proposal / design / tasks + spec deltas), with slash commands and a validating CLI.

What changes

  • Full spec baselineopenspec/specs/<capability>/spec.md for 12 capabilities (admin-auth, admin-users, user-provisioning, nodes, fleet, mihomo-config, mihomo-rendering, config-ownership, subscription-delivery, rule-provider-mirror, database-migrations, platform), ~50 requirements in the requirement + WHEN/THEN scenario format. All pass openspec validate --specs --strict.
  • OpenSpec scaffoldopenspec/config.yaml (project context + per-artifact rules) and openspec/changes/ (+ archive/).
  • /opsx:* workflow generated under .claude/ (5 commands + 5 skills). The blanket .claude gitignore is narrowed to .claude/settings.local.json so the commands/skills are tracked and the workflow is reproducible for contributors, CI, and review.
  • Process rewriteAGENTS.md, CONTRIBUTING.md, README.md, and the CHANGELOG.md header now point at OpenSpec instead of ADRs.
  • ADR closuredocs/decisions/ becomes a frozen historical archive; docs/decisions/0010-adopt-openspec.md records the switch and docs/decisions/README.md marks the freeze. Existing ADRs (0001–0009) are kept, immutable.

Decisions (agreed up front)

  • Full spec baseline (reverse-engineered from the current code), not just an empty bootstrap.
  • OpenSpec replaces ADR; the CHANGELOG and existing ADRs stay.
  • .gitignore fixed so only genuinely-local files stay ignored.

Notes

  • No Go code is touched; go build ./... and go vet ./... are green (sanity only).
  • English-only guard stays clean (no new non-Latin text).
  • The #TBD references in CHANGELOG.md / ADR-0010 will be replaced with this PR's number before merge.

🤖 Generated with Claude Code

@Postlog Postlog force-pushed the migrate-to-openspec branch from c22e26a to 48cdb09 Compare June 28, 2026 14:16
Adopt OpenSpec (the spec-driven schema) as the planning and change-documentation
process, replacing the ADR catalog (the CHANGELOG stays). Seed a full spec baseline
under openspec/specs/ (12 capabilities, validated by `openspec validate --specs
--strict`), add the /opsx:* workflow under .claude/ (narrow the blanket .claude
gitignore to settings.local.json so the commands/skills are tracked), and rewrite
the process in AGENTS.md / CONTRIBUTING.md / README.md. Remove the docs/decisions/
ADR catalog (kept in git history); the migration's own rationale lives in the
archived change openspec/changes/archive/2026-06-28-adopt-openspec/.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
@Postlog Postlog force-pushed the migrate-to-openspec branch from 48cdb09 to 0fa2d10 Compare June 28, 2026 14:27
@Postlog Postlog merged commit a755bc5 into main Jun 28, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant