Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
e38c765
Ralph iteration 2: **Replace process.exit() with process.exitCode plus…
ncheaz Apr 25, 2026
14d7d5a
Ralph iteration 3: **Add wait-for-tee drain and explicit exit code…
ncheaz Apr 25, 2026
bc9a9d5
Ralph iteration 4: **Freeze the `check_ralphified()` detection…
ncheaz Apr 25, 2026
8cda209
Ralph iteration 5: **Wire the `init` subcommand routing in main()**
ncheaz Apr 25, 2026
ba313b4
Ralph iteration 6: **Implement the interactive ralphify guard and…
ncheaz Apr 25, 2026
7019abb
Ralph iteration 7: **Inject OPENSPEC-RALPH-BP.md into the prompt…
ncheaz Apr 25, 2026
45e7ead
Ralph iteration 14: **Implement bash unit tests for ralphify_init…
ncheaz Apr 25, 2026
5a803a9
Ralph iteration 15: **Update README.md with ralphify workflow and init…
ncheaz Apr 25, 2026
4384c08
Ralph iteration 16: **Update QUICKSTART.md with ralphify workflow and…
ncheaz Apr 25, 2026
98ad2c0
Ralph iteration 17: **Run final integrated quality gates**
ncheaz Apr 25, 2026
586cdc1
Ralph iteration 1: Remove `.ralph/PRD.md` line from manifest in…
ncheaz Apr 25, 2026
ec0be07
Ralph iteration 2: Remove `generate_prd()` call and PRD write from…
ncheaz Apr 25, 2026
348896d
Ralph iteration 3: Remove `"--prompt-file" "$ralph_dir/PRD.md"` from…
ncheaz Apr 25, 2026
731d2d3
Ralph iteration 4: Remove `read_openspec_artifacts`, `generate_prd`…
ncheaz Apr 25, 2026
aa988ec
Ralph iteration 5: Update `_validateOptions()` in `runner.js` to…
ncheaz Apr 25, 2026
dedcc37
Ralph iteration 6: Update `_validateOptions()` error message to…
ncheaz Apr 25, 2026
4753495
Ralph iteration 7: Update bash tests: fix tests that assert…
ncheaz Apr 25, 2026
0b1638a
Ralph iteration 8: Update JS tests: fix tests that assert…
ncheaz Apr 25, 2026
1d00fc9
Ralph iteration 9: Run full test suite and verify all tests pass
ncheaz Apr 25, 2026
5cef578
Release v3.0.0: bump version and update config
ncheaz Apr 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .cursor/commands/opsx-apply.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Implement tasks from an OpenSpec change.
```

This returns:
- Context file paths (varies by schema)
- `contextFiles`: artifact ID -> array of concrete file paths (varies by schema)
- Progress (total, complete, remaining)
- Task list with status
- Dynamic instruction based on current state
Expand All @@ -47,7 +47,7 @@ Implement tasks from an OpenSpec change.

4. **Read context files**

Read the files listed in `contextFiles` from the apply instructions output.
Read every file path listed under `contextFiles` from the apply instructions output.
The files depend on the schema being used:
- **spec-driven**: proposal, specs, design, tasks
- Other schemas: follow the contextFiles from CLI output
Expand Down
2 changes: 1 addition & 1 deletion .cursor/commands/opsx-bulk-archive.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ This skill allows you to batch-archive changes, handling spec conflicts intellig
Display a table summarizing all changes:

```
| Change | Artifacts | Tasks | Specs | Conflicts | Status |
| Change | Artifacts | Tasks | Specs | Conflicts | Status |
|---------------------|-----------|-------|---------|-----------|--------|
| schema-management | Done | 5/5 | 2 delta | None | Ready |
| project-config | Done | 3/3 | 1 delta | None | Ready |
Expand Down
24 changes: 12 additions & 12 deletions .cursor/commands/opsx-explore.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,10 @@ Depending on what the user brings, you might:
│ Use ASCII diagrams liberally │
├─────────────────────────────────────────┤
│ │
│ ┌────────┐ ┌────────┐
│ │ State │────────▶│ State │
│ │ A │ │ B │
│ └────────┘ └────────┘
┌────────┐ ┌────────┐ │
│ State │────────▶│ State │ │
│ A │ │ B │ │
└────────┘ └────────┘ │
│ │
│ System diagrams, state machines, │
│ data flows, architecture sketches, │
Expand Down Expand Up @@ -119,14 +119,14 @@ If the user mentions a change or you detect one is relevant:

3. **Offer to capture when decisions are made**

| Insight Type | Where to Capture |
|--------------|------------------|
| New requirement discovered | `specs/<capability>/spec.md` |
| Requirement changed | `specs/<capability>/spec.md` |
| Design decision made | `design.md` |
| Scope changed | `proposal.md` |
| New work identified | `tasks.md` |
| Assumption invalidated | Relevant artifact |
| Insight Type | Where to Capture |
|----------------------------|--------------------------------|
| New requirement discovered | `specs/<capability>/spec.md` |
| Requirement changed | `specs/<capability>/spec.md` |
| Design decision made | `design.md` |
| Scope changed | `proposal.md` |
| New work identified | `tasks.md` |
| Assumption invalidated | Relevant artifact |

Example offers:
- "That's a design decision. Capture it in design.md?"
Expand Down
48 changes: 24 additions & 24 deletions .cursor/commands/opsx-onboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -464,21 +464,21 @@ This same rhythm works for any size change—a small fix or a major feature.

**Core workflow:**

| Command | What it does |
|---------|--------------|
| `/opsx:propose` | Create a change and generate all artifacts |
| `/opsx:explore` | Think through problems before/during work |
| `/opsx:apply` | Implement tasks from a change |
| `/opsx:archive` | Archive a completed change |
| Command | What it does |
|-------------------|--------------------------------------------|
| `/opsx:propose` | Create a change and generate all artifacts |
| `/opsx:explore` | Think through problems before/during work |
| `/opsx:apply` | Implement tasks from a change |
| `/opsx:archive` | Archive a completed change |

**Additional commands:**

| Command | What it does |
|---------|--------------|
| `/opsx:new` | Start a new change, step through artifacts one at a time |
| `/opsx:continue` | Continue working on an existing change |
| `/opsx:ff` | Fast-forward: create all artifacts at once |
| `/opsx:verify` | Verify implementation matches artifacts |
| Command | What it does |
|--------------------|----------------------------------------------------------|
| `/opsx:new` | Start a new change, step through artifacts one at a time |
| `/opsx:continue` | Continue working on an existing change |
| `/opsx:ff` | Fast-forward: create all artifacts at once |
| `/opsx:verify` | Verify implementation matches artifacts |

---

Expand Down Expand Up @@ -516,21 +516,21 @@ If the user says they just want to see the commands or skip the tutorial:

**Core workflow:**

| Command | What it does |
|---------|--------------|
| `/opsx:propose <name>` | Create a change and generate all artifacts |
| `/opsx:explore` | Think through problems (no code changes) |
| `/opsx:apply <name>` | Implement tasks |
| `/opsx:archive <name>` | Archive when done |
| Command | What it does |
|--------------------------|--------------------------------------------|
| `/opsx:propose <name>` | Create a change and generate all artifacts |
| `/opsx:explore` | Think through problems (no code changes) |
| `/opsx:apply <name>` | Implement tasks |
| `/opsx:archive <name>` | Archive when done |

**Additional commands:**

| Command | What it does |
|---------|--------------|
| `/opsx:new <name>` | Start a new change, step by step |
| `/opsx:continue <name>` | Continue an existing change |
| `/opsx:ff <name>` | Fast-forward: all artifacts at once |
| `/opsx:verify <name>` | Verify implementation |
| Command | What it does |
|---------------------------|-------------------------------------|
| `/opsx:new <name>` | Start a new change, step by step |
| `/opsx:continue <name>` | Continue an existing change |
| `/opsx:ff <name>` | Fast-forward: all artifacts at once |
| `/opsx:verify <name>` | Verify implementation |

Try `/opsx:propose` to start your first change.
```
Expand Down
6 changes: 3 additions & 3 deletions .cursor/commands/opsx-verify.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Verify that an implementation matches the change artifacts (specs, tasks, design
openspec instructions apply --change "<name>" --json
```

This returns the change directory and context files. Read all available artifacts from `contextFiles`.
This returns the change directory and `contextFiles` (artifact ID -> array of concrete file paths). Read all available artifacts from `contextFiles`.

4. **Initialize verification report structure**

Expand All @@ -49,7 +49,7 @@ Verify that an implementation matches the change artifacts (specs, tasks, design
5. **Verify Completeness**

**Task Completion**:
- If tasks.md exists in contextFiles, read it
- If `contextFiles.tasks` exists, read every file path in it
- Parse checkboxes: `- [ ]` (incomplete) vs `- [x]` (complete)
- Count complete vs total tasks
- If incomplete tasks exist:
Expand Down Expand Up @@ -88,7 +88,7 @@ Verify that an implementation matches the change artifacts (specs, tasks, design
7. **Verify Coherence**

**Design Adherence**:
- If design.md exists in contextFiles:
- If `contextFiles.design` exists:
- Extract key decisions (look for sections like "Decision:", "Approach:", "Architecture:")
- Verify implementation follows those decisions
- If contradiction detected:
Expand Down
6 changes: 3 additions & 3 deletions .cursor/skills/openspec-apply-change/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ compatibility: Requires openspec CLI.
metadata:
author: openspec
version: "1.0"
generatedBy: "1.2.0"
generatedBy: "1.3.1"
---

Implement tasks from an OpenSpec change.
Expand Down Expand Up @@ -39,7 +39,7 @@ Implement tasks from an OpenSpec change.
```

This returns:
- Context file paths (varies by schema - could be proposal/specs/design/tasks or spec/tests/implementation/docs)
- `contextFiles`: artifact ID -> array of concrete file paths (varies by schema - could be proposal/specs/design/tasks or spec/tests/implementation/docs)
- Progress (total, complete, remaining)
- Task list with status
- Dynamic instruction based on current state
Expand All @@ -51,7 +51,7 @@ Implement tasks from an OpenSpec change.

4. **Read context files**

Read the files listed in `contextFiles` from the apply instructions output.
Read every file path listed under `contextFiles` from the apply instructions output.
The files depend on the schema being used:
- **spec-driven**: proposal, specs, design, tasks
- Other schemas: follow the contextFiles from CLI output
Expand Down
2 changes: 1 addition & 1 deletion .cursor/skills/openspec-archive-change/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ compatibility: Requires openspec CLI.
metadata:
author: openspec
version: "1.0"
generatedBy: "1.2.0"
generatedBy: "1.3.1"
---

Archive a completed change in the experimental workflow.
Expand Down
4 changes: 2 additions & 2 deletions .cursor/skills/openspec-bulk-archive-change/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ compatibility: Requires openspec CLI.
metadata:
author: openspec
version: "1.0"
generatedBy: "1.2.0"
generatedBy: "1.3.1"
---

Archive multiple completed changes in a single operation.
Expand Down Expand Up @@ -84,7 +84,7 @@ This skill allows you to batch-archive changes, handling spec conflicts intellig
Display a table summarizing all changes:

```
| Change | Artifacts | Tasks | Specs | Conflicts | Status |
| Change | Artifacts | Tasks | Specs | Conflicts | Status |
|---------------------|-----------|-------|---------|-----------|--------|
| schema-management | Done | 5/5 | 2 delta | None | Ready |
| project-config | Done | 3/3 | 1 delta | None | Ready |
Expand Down
2 changes: 1 addition & 1 deletion .cursor/skills/openspec-continue-change/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ compatibility: Requires openspec CLI.
metadata:
author: openspec
version: "1.0"
generatedBy: "1.2.0"
generatedBy: "1.3.1"
---

Continue working on a change by creating the next artifact.
Expand Down
28 changes: 14 additions & 14 deletions .cursor/skills/openspec-explore/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ compatibility: Requires openspec CLI.
metadata:
author: openspec
version: "1.0"
generatedBy: "1.2.0"
generatedBy: "1.3.1"
---

Enter explore mode. Think deeply. Visualize freely. Follow the conversation wherever it goes.
Expand Down Expand Up @@ -56,10 +56,10 @@ Depending on what the user brings, you might:
│ Use ASCII diagrams liberally │
├─────────────────────────────────────────┤
│ │
│ ┌────────┐ ┌────────┐
│ │ State │────────▶│ State │
│ │ A │ │ B │
│ └────────┘ └────────┘
┌────────┐ ┌────────┐ │
│ State │────────▶│ State │ │
│ A │ │ B │ │
└────────┘ └────────┘ │
│ │
│ System diagrams, state machines, │
│ data flows, architecture sketches, │
Expand Down Expand Up @@ -114,14 +114,14 @@ If the user mentions a change or you detect one is relevant:

3. **Offer to capture when decisions are made**

| Insight Type | Where to Capture |
|--------------|------------------|
| New requirement discovered | `specs/<capability>/spec.md` |
| Requirement changed | `specs/<capability>/spec.md` |
| Design decision made | `design.md` |
| Scope changed | `proposal.md` |
| New work identified | `tasks.md` |
| Assumption invalidated | Relevant artifact |
| Insight Type | Where to Capture |
|----------------------------|--------------------------------|
| New requirement discovered | `specs/<capability>/spec.md` |
| Requirement changed | `specs/<capability>/spec.md` |
| Design decision made | `design.md` |
| Scope changed | `proposal.md` |
| New work identified | `tasks.md` |
| Assumption invalidated | Relevant artifact |

Example offers:
- "That's a design decision. Capture it in design.md?"
Expand Down Expand Up @@ -227,7 +227,7 @@ User: A CLI tool that tracks local dev environments
You: That changes everything.

┌─────────────────────────────────────────────────┐
│ CLI TOOL DATA STORAGE │
CLI TOOL DATA STORAGE │
└─────────────────────────────────────────────────┘

Key constraints:
Expand Down
2 changes: 1 addition & 1 deletion .cursor/skills/openspec-ff-change/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ compatibility: Requires openspec CLI.
metadata:
author: openspec
version: "1.0"
generatedBy: "1.2.0"
generatedBy: "1.3.1"
---

Fast-forward through artifact creation - generate everything needed to start implementation in one go.
Expand Down
2 changes: 1 addition & 1 deletion .cursor/skills/openspec-new-change/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ compatibility: Requires openspec CLI.
metadata:
author: openspec
version: "1.0"
generatedBy: "1.2.0"
generatedBy: "1.3.1"
---

Start a new change using the experimental artifact-driven approach.
Expand Down
50 changes: 25 additions & 25 deletions .cursor/skills/openspec-onboard/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ compatibility: Requires openspec CLI.
metadata:
author: openspec
version: "1.0"
generatedBy: "1.2.0"
generatedBy: "1.3.1"
---

Guide the user through their first complete OpenSpec workflow cycle. This is a teaching experience—you'll do real work in their codebase while explaining each step.
Expand Down Expand Up @@ -468,21 +468,21 @@ This same rhythm works for any size change—a small fix or a major feature.

**Core workflow:**

| Command | What it does |
|---------|--------------|
| `/opsx:propose` | Create a change and generate all artifacts |
| `/opsx:explore` | Think through problems before/during work |
| `/opsx:apply` | Implement tasks from a change |
| `/opsx:archive` | Archive a completed change |
| Command | What it does |
|-------------------|--------------------------------------------|
| `/opsx:propose` | Create a change and generate all artifacts |
| `/opsx:explore` | Think through problems before/during work |
| `/opsx:apply` | Implement tasks from a change |
| `/opsx:archive` | Archive a completed change |

**Additional commands:**

| Command | What it does |
|---------|--------------|
| `/opsx:new` | Start a new change, step through artifacts one at a time |
| `/opsx:continue` | Continue working on an existing change |
| `/opsx:ff` | Fast-forward: create all artifacts at once |
| `/opsx:verify` | Verify implementation matches artifacts |
| Command | What it does |
|--------------------|----------------------------------------------------------|
| `/opsx:new` | Start a new change, step through artifacts one at a time |
| `/opsx:continue` | Continue working on an existing change |
| `/opsx:ff` | Fast-forward: create all artifacts at once |
| `/opsx:verify` | Verify implementation matches artifacts |

---

Expand Down Expand Up @@ -520,21 +520,21 @@ If the user says they just want to see the commands or skip the tutorial:

**Core workflow:**

| Command | What it does |
|---------|--------------|
| `/opsx:propose <name>` | Create a change and generate all artifacts |
| `/opsx:explore` | Think through problems (no code changes) |
| `/opsx:apply <name>` | Implement tasks |
| `/opsx:archive <name>` | Archive when done |
| Command | What it does |
|--------------------------|--------------------------------------------|
| `/opsx:propose <name>` | Create a change and generate all artifacts |
| `/opsx:explore` | Think through problems (no code changes) |
| `/opsx:apply <name>` | Implement tasks |
| `/opsx:archive <name>` | Archive when done |

**Additional commands:**

| Command | What it does |
|---------|--------------|
| `/opsx:new <name>` | Start a new change, step by step |
| `/opsx:continue <name>` | Continue an existing change |
| `/opsx:ff <name>` | Fast-forward: all artifacts at once |
| `/opsx:verify <name>` | Verify implementation |
| Command | What it does |
|---------------------------|-------------------------------------|
| `/opsx:new <name>` | Start a new change, step by step |
| `/opsx:continue <name>` | Continue an existing change |
| `/opsx:ff <name>` | Fast-forward: all artifacts at once |
| `/opsx:verify <name>` | Verify implementation |

Try `/opsx:propose` to start your first change.
```
Expand Down
2 changes: 1 addition & 1 deletion .cursor/skills/openspec-sync-specs/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ compatibility: Requires openspec CLI.
metadata:
author: openspec
version: "1.0"
generatedBy: "1.2.0"
generatedBy: "1.3.1"
---

Sync delta specs from a change to main specs.
Expand Down
Loading
Loading