Skip to content

feat: bridge OpenSpec context into Superpowers plans#12

Merged
lininn merged 7 commits into
mainfrom
add-project-context-bridge
Jun 17, 2026
Merged

feat: bridge OpenSpec context into Superpowers plans#12
lininn merged 7 commits into
mainfrom
add-project-context-bridge

Conversation

@lininn

@lininn lininn commented Jun 15, 2026

Copy link
Copy Markdown
Owner

Summary

  • scaffold OpenSpec config.yaml project context during openflow init
  • treat legacy openspec/project.md as migration input and warn users to move context into config.yaml
  • require plan-ready.md to carry Project Context and Applicable OpenSpec Rules into Superpowers writing-plans/build/amend flows
  • add tests for config scaffolding and template handoff requirements
  • bump beta version to 0.4.1-beta.0

Verification

  • npm test
  • npm run build
  • npm run lint
  • /code-review medium run; confirmed issues fixed before commit

lininn and others added 7 commits June 15, 2026 18:34
…ty fixes

- Add src/core/workflow-status.ts: programmatic status tracking, conflict
  detection, and dashboard rendering for active OpenSpec changes
- Add src/core/workflow-status.test.ts: 15 tests covering findActiveChanges,
  synthesizeWorkflowStatus, loadWorkflowStatus, detectWorkflowConflicts,
  renderWorkflowDashboard
- Rewrite src/cli/status.ts to render workflow dashboard per active change
- Update templates/SKILL.md: replace simple status table with status-first
  routing via workflow-status.md, conflict detection, and dashboard spec
- Add workflow-status.md maintenance instructions to all 6 phase templates
- Fix ensureOpenSpecProjectContext called unconditionally when user skips
  OpenSpec initialization (P0)
- Replace regex-based YAML key detection with yaml.parse() (P0)
- Unify fs.existsSync calls to use project fileExists/dirExists (P2)
- Bump version to 0.4.1-beta.1
Add a dedicated /openflow init phase that scans project context, captures stack and rule constraints, and lets proposal prompt users to opt into initialization instead of hard-blocking when config.yaml is missing.

Constraint: preserve non-implementation write boundaries for init and proposal phases
Rejected: keep missing config.yaml as a hard gate | would block adoption in real projects
Confidence: high
Scope-risk: moderate
Directive: Treat config.yaml as recommended project context, not a mandatory gate, unless a later workflow change says otherwise
Tested: openspec validate add-openflow-init-phase --strict; npm run check
Not-tested: interactive init against a live heterogeneous project tree
Advance the package version so the new /openflow init workflow can be published as a distinct beta after validation.

Constraint: preserve the existing beta dist-tag lane
Rejected: reuse 0.4.1-beta.1 | already published to beta
Confidence: high
Scope-risk: narrow
Directive: keep version bumps isolated from feature commits when publishing beta releases
Tested: npm run check; openspec validate add-openflow-init-phase --strict
Not-tested: downstream consumer install behavior after publish
Strengthen generated phase aliases and proposal instructions so /openflow-proposal checks openspec/config.yaml before reading project files or creating changes. Existing config continues without prompting; missing config prompts for /openflow init or allows an explicit skip.

Constraint: preserve optional initialization behavior rather than making config.yaml mandatory
Rejected: rely only on proposal.md step ordering | Claude alias invocation skipped the guard before scanning a real project
Confidence: high
Scope-risk: narrow
Directive: Keep alias templates explicit about pre-scan guards because some tools expose aliases as the primary instruction surface
Tested: npm run check
Not-tested: live Claude retry in wmflight after package install
Advance the beta package version so the strengthened pre-scan init guard ships as a distinct testable release.

Constraint: npm beta dist-tag already points at 0.4.1-beta.2
Rejected: republish existing version | npm versions are immutable
Confidence: high
Scope-risk: narrow
Directive: publish this version with the beta dist-tag for wmflight validation
Tested: npm run check; npm pack --dry-run
Not-tested: post-publish global install in Claude
The branch now ships project-context initialization and status-first workflow routing as stable behavior, so the public README, diagrams, and package metadata need to describe the released contract instead of the beta line.

Constraint: npm latest was 0.4.0 before publishing 0.4.1

Rejected: Leave README links on 0.4.0-beta.3 | published docs would point users at stale diagrams and beta assets

Confidence: high

Scope-risk: narrow

Directive: Keep README diagram URLs aligned with package.json before every npm publish

Tested: npm run check; npm pack --dry-run; npm publish --access public; npm view @lininn/openflow@0.4.1 version dist-tags.latest

Co-authored-by: OmX <omx@oh-my-codex.dev>
@lininn lininn merged commit 1b299b9 into main Jun 17, 2026
2 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