Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
151 commits
Select commit Hold shift + click to select a range
48ec535
feat: add superpowers
woutervanranst Apr 19, 2026
59e80c7
docs: add representative E2E implementation plan
woutervanranst Apr 19, 2026
030be97
test: define representative E2E dataset contract
woutervanranst Apr 19, 2026
7b11a84
test: tighten E2E dataset contract assertions
woutervanranst Apr 19, 2026
f59e625
test: constrain E2E mutation contract
woutervanranst Apr 19, 2026
a97e054
test: validate E2E dataset definition invariants
woutervanranst Apr 19, 2026
d3ee942
test: reject invalid E2E dataset path mutations
woutervanranst Apr 19, 2026
1fc2808
test: validate E2E dataset relative paths
woutervanranst Apr 19, 2026
0ce6b9a
test: reject non-normalized E2E dataset paths
woutervanranst Apr 19, 2026
12e781c
test: normalize E2E dataset path inputs
woutervanranst Apr 19, 2026
4c218c7
test: materialize deterministic E2E datasets
woutervanranst Apr 19, 2026
0b43e98
test: harden E2E dataset materialization
woutervanranst Apr 19, 2026
b9e0a18
test: add whole-tree E2E assertions
woutervanranst Apr 19, 2026
8fb8ff2
test: add swappable E2E storage backends
woutervanranst Apr 19, 2026
45c1cab
test: restore Azure fixture compatibility
woutervanranst Apr 19, 2026
c0484c9
test: harden E2E backend fixture cleanup
woutervanranst Apr 19, 2026
eb04cdb
test: ungate Azure backend fixture coverage
woutervanranst Apr 19, 2026
86809fd
test: cover live Azure backend context
woutervanranst Apr 19, 2026
1e11601
test: make E2E fixture backend-neutral
woutervanranst Apr 19, 2026
95ebb98
test: harden E2E fixture cache controls
woutervanranst Apr 19, 2026
c9b4457
test: align E2E cache controls with repository paths
woutervanranst Apr 19, 2026
7f8ea5c
test: preserve E2E cache across fixture disposal
woutervanranst Apr 19, 2026
fc8556f
test: scope E2E cache preservation to fixtures
woutervanranst Apr 19, 2026
e69604c
test: coordinate E2E cache disposal per repository
woutervanranst Apr 19, 2026
c2fff21
test: harden E2E fixture disposal lifecycle
woutervanranst Apr 19, 2026
aaa8a4d
test: preserve E2E cache for active fixture cohorts
woutervanranst Apr 19, 2026
e7a1cd5
test: harden E2E cache lifecycle edge cases
woutervanranst Apr 19, 2026
b8072f7
test: define representative E2E scenarios
woutervanranst Apr 19, 2026
f61e494
test: harden representative E2E scenario catalog
woutervanranst Apr 19, 2026
a4cefbb
test: restore representative scenario catalog contract
woutervanranst Apr 19, 2026
874d5f0
Merge remote-tracking branch 'origin/master' into improve-e2e-tests
woutervanranst Apr 19, 2026
6e96e85
test: add representative E2E scenario runner
woutervanranst Apr 19, 2026
b247aa0
test: fix representative scenario runner setup
woutervanranst Apr 19, 2026
508d5d3
test: scope representative runner fixture setup
woutervanranst Apr 19, 2026
bd07273
test: apply representative runner scenario metadata
woutervanranst Apr 19, 2026
120dcc9
test: refine representative runner setup phases
woutervanranst Apr 19, 2026
c6a82cf
test: preserve warm cache across restore cohort
woutervanranst Apr 19, 2026
601143b
test: skip archive setup for empty remote cases
woutervanranst Apr 19, 2026
b8d9d0d
test: align restore setup with scenario source version
woutervanranst Apr 19, 2026
09decea
test: cover representative archive and restore scenarios
woutervanranst Apr 20, 2026
b69f8cd
test: cover archive-tier representative scenarios
woutervanranst Apr 20, 2026
2d8eced
test: retire superseded ad hoc E2E coverage
woutervanranst Apr 20, 2026
b70e32d
docs: describe representative E2E suite
woutervanranst Apr 20, 2026
df27bf2
test: restore opt-in Azure E2E coverage
woutervanranst Apr 20, 2026
ab5029e
chore: modify opencode config
woutervanranst Apr 20, 2026
1b988dd
chore: revert readme
woutervanranst Apr 20, 2026
e99d3db
ci: exclude Docker-backed E2E tests on macOS
woutervanranst Apr 20, 2026
6744e63
test: extract shared test infrastructure
woutervanranst Apr 20, 2026
14b40f3
test: skip Azurite suites when Docker is unavailable
woutervanranst Apr 21, 2026
4a2f2ea
chore: add new project to solution
woutervanranst Apr 22, 2026
1abadec
chore: remove unused references
woutervanranst Apr 22, 2026
c2d9586
chore: remove unused references
woutervanranst Apr 22, 2026
770d124
revertable: drop Arius.E2E.Tests harness self-tests
woutervanranst Apr 22, 2026
b579639
feat: update readme
woutervanranst Apr 23, 2026
9571602
chore: layout
woutervanranst Apr 23, 2026
3526c93
docs: clarify E2E test suite coverage
woutervanranst Apr 23, 2026
d9f4e99
test: use named representative scenarios
woutervanranst Apr 23, 2026
d6c5bbb
chore: merge
woutervanranst Apr 23, 2026
d5379f7
chore: layout
woutervanranst Apr 23, 2026
ba716ff
Merge branch 'improve-e2e-tests' of https://github.com/woutervanranst…
woutervanranst Apr 23, 2026
29dd91a
test: default shared fixtures to encrypted temp roots
woutervanranst Apr 23, 2026
763ae26
chore: layout
woutervanranst Apr 23, 2026
ba33ea6
chore: layout
woutervanranst Apr 23, 2026
97d6051
chore: remove treshold
woutervanranst Apr 23, 2026
8d63d59
feat: add more dup files
woutervanranst Apr 23, 2026
0f5de7c
fix: duplicate file
woutervanranst Apr 23, 2026
ee85476
feat: add spec
woutervanranst Apr 23, 2026
9c6ad90
feat: add plans
woutervanranst Apr 23, 2026
4588350
test: reduce representative synthetic dataset scale
woutervanranst Apr 23, 2026
c38331e
fix: align representative dataset factory knobs
woutervanranst Apr 23, 2026
6dfdead
refactor: introduce representative workflow definitions
woutervanranst Apr 23, 2026
5b170d2
fix: restore scenario entry points and trim workflow shells
woutervanranst Apr 23, 2026
e9f57a6
fix: align representative workflow refactor with task 2 scope
woutervanranst Apr 23, 2026
8ccc0f6
refactor: restore representative workflow task 2 state
woutervanranst Apr 23, 2026
c8244a8
fix: align archive tier workflow outcome contract
woutervanranst Apr 23, 2026
68743fa
refactor: move representative runner into workflow shell
woutervanranst Apr 23, 2026
7614383
fix: restore representative scenario coverage entry points
woutervanranst Apr 23, 2026
e2d261d
fix: restore representative workflow cleanup files
woutervanranst Apr 23, 2026
44e6839
fix: count pending rehydrated archive-tier blobs
woutervanranst Apr 23, 2026
2965557
test: add basic representative workflow steps
woutervanranst Apr 23, 2026
c467a7b
fix: recreate representative fixture after cache reset
woutervanranst Apr 23, 2026
0f5d36e
test: remove representative workflow scaffolding self-test
woutervanranst Apr 23, 2026
f4c7f56
test: add representative workflow remote state assertions
woutervanranst Apr 23, 2026
583d5aa
test: align representative remote state assertions
woutervanranst Apr 23, 2026
ad61607
test: verify remote chunk state in workflow assertions
woutervanranst Apr 23, 2026
6104c30
test: extract representative workflow lifecycle steps
woutervanranst Apr 23, 2026
c0c29c2
test: tighten archive tier lifecycle checks
woutervanranst Apr 23, 2026
1b9f7bc
test: remove archive tier lifecycle self-test
woutervanranst Apr 23, 2026
af1c42e
fix: complete canonical representative workflow coverage
woutervanranst Apr 24, 2026
2390b1c
chore: remove unused usings
woutervanranst Apr 24, 2026
78af6e0
chore: layout
woutervanranst Apr 24, 2026
f8719c0
chore: layout
woutervanranst Apr 24, 2026
e9c83ab
refactor: rename synthetic repository state helpers
woutervanranst Apr 24, 2026
4d31d48
core: add comment
woutervanranst Apr 24, 2026
b5da3eb
chore: layout
woutervanranst Apr 24, 2026
1a396f0
Merge branch 'improve-e2e-tests' of https://github.com/woutervanranst…
woutervanranst Apr 24, 2026
d7c0077
chore: rename
woutervanranst Apr 24, 2026
b043034
chore: layout
woutervanranst Apr 24, 2026
aef5bea
chore: bump nugets
woutervanranst Apr 24, 2026
2453586
refactor: move workflow mechanics beside steps
woutervanranst Apr 24, 2026
7936a8e
fix: enable Azure representative archive-tier workflow
woutervanranst Apr 24, 2026
026178c
Merge branch 'improve-e2e-tests' of https://github.com/woutervanranst…
woutervanranst Apr 24, 2026
4a3fbb9
chore: layout
woutervanranst Apr 24, 2026
af57d33
refactor: inline single-use workflow step helpers
woutervanranst Apr 24, 2026
db04e01
Merge branch 'improve-e2e-tests' of https://github.com/woutervanranst…
woutervanranst Apr 24, 2026
f107f53
chore: layout
woutervanranst Apr 24, 2026
0347233
chore: refactor Helpers.cs
woutervanranst Apr 24, 2026
60944ee
chore: stuff
woutervanranst Apr 24, 2026
4dc53f9
refactor: use explicit versioned source states in e2e workflow
woutervanranst Apr 24, 2026
cc5cb00
chore: refactor magic string
woutervanranst Apr 24, 2026
452fc09
Merge branch 'improve-e2e-tests' of https://github.com/woutervanranst…
woutervanranst Apr 24, 2026
dd86f73
chore: refactor common directory/hash methods
woutervanranst Apr 24, 2026
5056663
chore: refactor to use common root
woutervanranst Apr 24, 2026
496282a
chore: layout
woutervanranst Apr 24, 2026
d170566
docs: clarify restore conflict workflow step
woutervanranst Apr 24, 2026
d8b08df
Merge branch 'improve-e2e-tests' of https://github.com/woutervanranst…
woutervanranst Apr 24, 2026
14fdd40
docs: explain archive tier workflow step
woutervanranst Apr 24, 2026
adc1de6
Merge branch 'improve-e2e-tests' of https://github.com/woutervanranst…
woutervanranst Apr 24, 2026
328ad0d
feat: various improvements
woutervanranst Apr 24, 2026
5585f4a
feat: simplified archivetierlifecycle
woutervanranst Apr 24, 2026
78babf6
Merge branch 'improve-e2e-tests' of https://github.com/woutervanranst…
woutervanranst Apr 24, 2026
39e5ac8
chore: add comments
woutervanranst Apr 24, 2026
314ddf3
refactor: simplify archive tier target selection
woutervanranst Apr 24, 2026
672e6b9
chore: layout
woutervanranst Apr 24, 2026
0f15030
chore: seed fix
woutervanranst Apr 24, 2026
bc84eda
Merge branch 'master' into improve-e2e-tests
woutervanranst Apr 24, 2026
ec8cdf2
chore: update openspec
woutervanranst Apr 24, 2026
b40f961
feat: replace superpower specs & plans with MADR
woutervanranst Apr 24, 2026
5b743a6
Merge branch 'improve-e2e-tests' of https://github.com/woutervanranst…
woutervanranst Apr 24, 2026
36b8ff5
fix: normalize synthetic rename targets before validation
woutervanranst Apr 24, 2026
fe38785
fix: reject normalized Windows absolute dataset paths
woutervanranst Apr 24, 2026
238823c
fix: clean up workflow temp roots on fixture failure
woutervanranst Apr 24, 2026
031212e
fix: dispose repository index before temp root cleanup
woutervanranst Apr 24, 2026
9597a20
chore: layout
woutervanranst Apr 24, 2026
161d2f1
feat: update readme
woutervanranst Apr 24, 2026
e5067b3
chore: adjust AGENTS.MD
woutervanranst Apr 24, 2026
e153696
chore: update ADR
woutervanranst Apr 24, 2026
7f017a1
fix: preserve workflow root cleanup when fixture disposal fails
woutervanranst Apr 24, 2026
61eaacf
fix: reset reused repository fixture temp roots
woutervanranst Apr 24, 2026
b638203
fix: replace silent cleanup catches with diagnostics
woutervanranst Apr 24, 2026
e7f36ab
fix: fail CI gate when one of the test projects fail
woutervanranst Apr 26, 2026
e2c0ec7
fix: skip snapshots for no-op archives
woutervanranst Apr 26, 2026
931fbd1
fix: skip unsupported azurite backend
woutervanranst Apr 26, 2026
e9ca32e
fix: detect missing azurite image startup
woutervanranst Apr 26, 2026
3a08a27
fix: coderabbit
woutervanranst Apr 26, 2026
0e5f894
feat: merge plan w/ previous spec
woutervanranst Apr 26, 2026
b19ec26
chores
woutervanranst Apr 26, 2026
faac98c
fix: keep filetree metadata in snapshot identity
woutervanranst Apr 26, 2026
ebe6a44
chore: edit timeout
woutervanranst Apr 27, 2026
bfa12ff
feat: update agents & readme
woutervanranst Apr 27, 2026
c19ef74
Merge branch 'improve-e2e-tests' of https://github.com/woutervanranst…
woutervanranst Apr 27, 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
102 changes: 0 additions & 102 deletions .agents/skills/ilspy-decompile/SKILL.md

This file was deleted.

2 changes: 1 addition & 1 deletion .github/prompts/opsx-bulk-archive.prompt.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,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 .github/prompts/opsx-explore.prompt.md
Original file line number Diff line number Diff line change
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 @@ -116,14 +116,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 .github/prompts/opsx-onboard.prompt.md
Original file line number Diff line number Diff line change
Expand Up @@ -461,21 +461,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 @@ -513,21 +513,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
14 changes: 0 additions & 14 deletions .github/scripts/Get-DotNetProjectMatrix.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,6 @@ function Test-IsWindowsOnlyProject {
return ($TargetFrameworks | Where-Object { $_ -notmatch '-windows' }).Count -eq 0
}

function Test-RequiresLinuxRunner {
param([xml]$ProjectXml)

return ($ProjectXml.Project.ItemGroup.PackageReference | Where-Object {
[string]$_.Include -match '^Testcontainers(?:\.|$)'
}).Count -gt 0
}

$workspaceRoot = Resolve-Path (Join-Path $PSScriptRoot '..' '..')
$srcRoot = Join-Path $workspaceRoot 'src'
$isWindowsRunner = $RunnerOs -eq 'windows'
Expand All @@ -60,7 +52,6 @@ $projects = Get-ChildItem -Path $srcRoot -Recurse -Filter '*.csproj' |
[xml]$projectXml = Get-Content -Path $projectPath -Raw
$targetFrameworks = Get-ProjectTfms -ProjectXml $projectXml
$isWindowsOnly = Test-IsWindowsOnlyProject -TargetFrameworks $targetFrameworks
$requiresLinuxRunner = Test-RequiresLinuxRunner -ProjectXml $projectXml
$isTestProject = ($projectXml.Project.PropertyGroup | Where-Object {
[string]$_.TestingPlatformDotnetTestSupport -eq 'true'
}).Count -gt 0
Expand All @@ -69,7 +60,6 @@ $projects = Get-ChildItem -Path $srcRoot -Recurse -Filter '*.csproj' |
RelativePath = [System.IO.Path]::GetRelativePath($workspaceRoot, $projectPath).Replace('\', '/')
TargetFrameworks = $targetFrameworks
IsWindowsOnly = $isWindowsOnly
RequiresLinuxRunner = $requiresLinuxRunner
IsTestProject = $isTestProject
}
} |
Expand All @@ -78,10 +68,6 @@ $projects = Get-ChildItem -Path $srcRoot -Recurse -Filter '*.csproj' |
return $false
}

if ($RunnerOs -ne 'linux' -and $_.RequiresLinuxRunner) {
return $false
}

return $isWindowsRunner -or -not $_.IsWindowsOnly
}

Expand Down
2 changes: 1 addition & 1 deletion .github/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.0"
---

Implement tasks from an OpenSpec change.
Expand Down
2 changes: 1 addition & 1 deletion .github/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.0"
---

Archive a completed change in the experimental workflow.
Expand Down
4 changes: 2 additions & 2 deletions .github/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.0"
---

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 .github/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.0"
---

Continue working on a change by creating the next artifact.
Expand Down
28 changes: 14 additions & 14 deletions .github/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.0"
---

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 .github/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.0"
---

Fast-forward through artifact creation - generate everything needed to start implementation in one go.
Expand Down
2 changes: 1 addition & 1 deletion .github/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.0"
---

Start a new change using the experimental artifact-driven approach.
Expand Down
Loading
Loading