Skip to content

Commit bb1f18c

Browse files
clay-goodclaudeTabishB
authored
docs: comprehensive overhaul — discoverability, explore-first, and closing recurring doc-request issues (#1237)
* docs: comprehensive documentation overhaul (home, mental model, command location, FAQ, glossary, troubleshooting, recipes) Addresses #1228 (docs are fragmented and hard to discover). Additive, docs-only. The single sharpest gap from the issue thread was that nobody explains where slash commands run, hence the new "How Commands Work" page. New docs: - docs/README.md documentation home / index that maps every doc - docs/how-commands-work.md where /opsx:* (chat) vs openspec (terminal) run; "interactive mode" answered - docs/overview.md core concepts at a glance, one page - docs/faq.md consolidated common questions - docs/glossary.md every term in one place - docs/troubleshooting.md concrete fixes for concrete failures - docs/examples.md real changes start to finish (recipes) Small additive edits: - docs/getting-started.md "where do I type this?" callout + first-five-minutes + richer Next Steps - README.md Docs list points at the new home and key new pages Voice: warm, plain, bottom-line-up-front; no em-dashes in prose. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs: make /opsx:explore front and center, plus general polish Per maintainer feedback (Tabish): "the docs in general need some work, alongside making the explore option a lot more front and center." explore ships in the default core profile but every doc led with propose and treated explore as a footnote for "unclear requirements." This reframes the canonical loop as explore -> propose -> apply -> archive and gives explore real prominence. - docs/explore.md (new): dedicated "Explore First" guide. When to use it, what it does/doesn't, a full transcript, handoff to propose, tradeoffs. - getting-started.md: explore added to the flow and first-five-minutes, with a featured callout and Next Steps entry. - overview.md: explore featured in the loop and next-links. - docs/README.md: explore in the opening, pick-your-path, 30-second version, and the doc map. - how-commands-work.md: explore leads the command list with a "good rhythm" note and an optional step in the clean-first-run example. - workflows.md: new first-class "Start by exploring" pattern in the default section (was buried under expanded mode); quick-reference row strengthened. - commands.md / faq.md / glossary.md: explore featured as the place to start. - examples.md: top callout pointing at the explore recipe. - README.md: explore opens the "See it in action" demo and Quick Start, and is added to the Docs list. Docs-only and additive. No em-dashes in prose; links verified. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs: close recurring gaps (existing projects, editing changes, uninstall, context limits) + sync tool list Sweep of open issues and discussions surfaced several questions good docs should answer but didn't. This adds the missing guides and fixes a stale list. New guides: - docs/existing-projects.md: adopting OpenSpec on a large brownfield codebase without documenting everything up front (addresses #510, #1100, #176). Delta-first framing, first-change walkthrough, onboard, importing existing requirements docs, domain organization, monorepo/workspace pointers. - docs/editing-changes.md: how to edit any artifact, update a proposal/spec after starting, go back after implementing, and reconcile manual code edits (addresses #684, #976, #355, #1188, #169, #1206). Enhancements: - installation.md: Updating + Uninstalling sections (addresses #308). - faq.md: new entries for existing codebases, editing artifacts, going back, reconciling manual edits, context limits / long sessions, and uninstalling (addresses #257 among others). - cli.md: --tools list now includes `vibe` and matches AI_TOOLS in src/core/config.ts, with a note pointing at the source (fixes #1213). - Wired the new guides into the docs home, getting-started, and the README. Docs-only and additive. No em-dashes in prose; links and section anchors verified. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs: reconcile coordinate-across-repos docs with the stores model The merge with main pulled in the stores rename (#1190), which retired the workspaces/initiatives/context-store vocabulary and deleted docs/workspaces-beta/. This updates the three docs still describing the old model so they match the new stores model, fixing the vocabulary-sweep test and dead links: - glossary.md: Workspace/Link/Context store/Initiative -> Store/Reference/ Working context/Workset; link to stores-beta/user-guide.md - README.md: replace deleted workspaces-beta/* links with the Stores User Guide and Agent Contract - existing-projects.md: reframe the multi-repo section as stores; drop the dead concepts.md#coordination-workspaces anchor Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: TabishB <tabishbidiwale@gmail.com> Co-authored-by: Tabish Bidiwale <30385142+TabishB@users.noreply.github.com>
1 parent 41ceebe commit bb1f18c

16 files changed

Lines changed: 1455 additions & 9 deletions

README.md

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,14 @@ Our philosophy:
4747
## See it in action
4848

4949
```text
50+
You: /opsx:explore
51+
AI: What would you like to explore?
52+
You: I want dark mode but I'm not sure how to do it cleanly.
53+
AI: Let me look at your styling setup...
54+
Cleanest path here: CSS variables + a small theme context,
55+
with system-preference detection. No new dependencies. Scope it?
56+
You: Yes, let's do it.
57+
5058
You: /opsx:propose add-dark-mode
5159
AI: Created openspec/changes/add-dark-mode/
5260
✓ proposal.md — why we're doing this, what's changing
@@ -94,9 +102,12 @@ cd your-project
94102
openspec init
95103
```
96104

97-
Now tell your AI: `/opsx:propose <what-you-want-to-build>`
105+
Now talk to your AI:
106+
107+
- **Not sure what to build yet?** Start with `/opsx:explore`, a no-stakes thinking partner that reads your code, weighs options, and shapes a plan before anything is written. ([Explore guide](docs/explore.md))
108+
- **Already know what you want?** Go straight to `/opsx:propose <what-you-want-to-build>`.
98109

99-
If you want the expanded workflow (`/opsx:new`, `/opsx:continue`, `/opsx:ff`, `/opsx:verify`, `/opsx:bulk-archive`, `/opsx:onboard`), select it with `openspec config profile` and apply with `openspec update`.
110+
Both are in the default profile. If you want the expanded workflow (`/opsx:new`, `/opsx:continue`, `/opsx:ff`, `/opsx:verify`, `/opsx:bulk-archive`, `/opsx:onboard`), select it with `openspec config profile` and apply with `openspec update`.
100111

101112
> [!NOTE]
102113
> Not sure if your tool is supported? [View the full list](docs/supported-tools.md) – we support 25+ tools and growing.
@@ -105,15 +116,24 @@ If you want the expanded workflow (`/opsx:new`, `/opsx:continue`, `/opsx:ff`, `/
105116
106117
## Docs
107118

119+
**Start here:** the **[Documentation Home](docs/README.md)** maps everything. New to OpenSpec? Read [Getting Started](docs/getting-started.md), then [How Commands Work](docs/how-commands-work.md) (where you actually type `/opsx:propose`).
120+
108121
**[Getting Started](docs/getting-started.md)**: first steps<br>
122+
**[Explore First](docs/explore.md)**: think it through with `/opsx:explore` before you commit<br>
123+
**[How Commands Work](docs/how-commands-work.md)**: where slash commands run vs the CLI<br>
124+
**[Core Concepts at a Glance](docs/overview.md)**: the whole mental model, one page<br>
125+
**[Examples & Recipes](docs/examples.md)**: real changes, start to finish<br>
109126
**[Workflows](docs/workflows.md)**: combos and patterns<br>
127+
**[Existing Projects](docs/existing-projects.md)**: adopt OpenSpec on a brownfield codebase<br>
128+
**[Editing a Change](docs/editing-changes.md)**: update artifacts, go back, reconcile manual edits<br>
110129
**[Commands](docs/commands.md)**: slash commands & skills<br>
111130
**[CLI](docs/cli.md)**: terminal reference<br>
112131
**[Stores](docs/stores-beta/user-guide.md)**: plan in a separate repo, shared across your team (beta)<br>
113132
**[Supported Tools](docs/supported-tools.md)**: tool integrations & install paths<br>
114133
**[Concepts](docs/concepts.md)**: how it all fits<br>
115134
**[Multi-Language](docs/multi-language.md)**: multi-language support<br>
116-
**[Customization](docs/customization.md)**: make it yours
135+
**[Customization](docs/customization.md)**: make it yours<br>
136+
**[FAQ](docs/faq.md)** · **[Troubleshooting](docs/troubleshooting.md)** · **[Glossary](docs/glossary.md)**: quick help
117137

118138

119139
## Community schemas

docs/README.md

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
# OpenSpec Documentation
2+
3+
Welcome. This is the home for everything OpenSpec.
4+
5+
OpenSpec helps you and your AI coding assistant **agree on what to build before any code is written.** You describe the change, the AI drafts a short spec and a task list, you both look at the same plan, and then the work happens. No more discovering halfway through that the AI built the wrong thing.
6+
7+
If you read nothing else, read these two pages:
8+
9+
1. [Getting Started](getting-started.md): install, initialize, and ship your first change.
10+
2. [How Commands Work](how-commands-work.md): where you actually type `/opsx:propose` (hint: in your AI chat, not the terminal). This trips up almost everyone once.
11+
12+
That second one matters more than it looks. OpenSpec has two halves: a command line tool you run in your terminal, and slash commands you give to your AI assistant. Knowing which is which saves you the most common moment of confusion.
13+
14+
> **The best habit to build first: when you're not sure what to build, start with `/opsx:explore`.** It's a no-stakes thinking partner that reads your code, weighs options, and sharpens a fuzzy idea into a concrete plan before any artifact or code exists. The [Explore First](explore.md) guide makes the case.
15+
16+
## Pick your path
17+
18+
**I'm brand new.** Start with [Getting Started](getting-started.md), then skim the [Core Concepts at a Glance](overview.md). When something feels mysterious, the [FAQ](faq.md) and [Glossary](glossary.md) are nearby.
19+
20+
**I have a problem but not a plan.** This is the common case, and it has a dedicated answer: [Explore First](explore.md). Use `/opsx:explore` to think it through with the AI before committing to anything.
21+
22+
**I have a big existing codebase.** You don't document all of it. [Using OpenSpec in an Existing Project](existing-projects.md) shows how to start on real, brownfield code without boiling the ocean.
23+
24+
**I just want to get it working.** [Install](installation.md), run `openspec init`, then read [How Commands Work](how-commands-work.md) so your first slash command lands in the right place.
25+
26+
**I learn by example.** The [Examples & Recipes](examples.md) page walks through real changes start to finish: a small feature, a bug fix, a refactor, an exploration.
27+
28+
**I'm coming from the old workflow.** The [Migration Guide](migration-guide.md) explains what changed and why, and promises your existing work is safe.
29+
30+
**I want to bend it to my team's process.** [Customization](customization.md) covers project config, custom schemas, and shared context.
31+
32+
**Something's broken.** [Troubleshooting](troubleshooting.md) collects the failures people actually hit, with fixes.
33+
34+
## The whole map
35+
36+
### Start here
37+
38+
| Doc | What it gives you |
39+
|-----|-------------------|
40+
| [Getting Started](getting-started.md) | Install, initialize, and run your first change end to end |
41+
| [Explore First](explore.md) | Use `/opsx:explore` to think through an idea before you commit |
42+
| [How Commands Work](how-commands-work.md) | Where slash commands run, what "interactive mode" means, terminal vs chat |
43+
| [Core Concepts at a Glance](overview.md) | The whole mental model on one page: specs, changes, deltas, archive |
44+
| [Installation](installation.md) | npm, pnpm, yarn, bun, Nix, and how to verify it worked |
45+
46+
### Use it day to day
47+
48+
| Doc | What it gives you |
49+
|-----|-------------------|
50+
| [Workflows](workflows.md) | Common patterns and when to reach for each command |
51+
| [Examples & Recipes](examples.md) | Full walkthroughs of real changes, copy-pasteable |
52+
| [Using OpenSpec in an Existing Project](existing-projects.md) | Adopting OpenSpec on a large brownfield codebase |
53+
| [Editing & Iterating on a Change](editing-changes.md) | Update artifacts, go back, reconcile manual edits |
54+
| [Commands](commands.md) | Reference for every `/opsx:*` slash command |
55+
| [CLI](cli.md) | Reference for every `openspec` terminal command |
56+
57+
### Understand it deeply
58+
59+
| Doc | What it gives you |
60+
|-----|-------------------|
61+
| [Concepts](concepts.md) | The long-form explanation of specs, changes, artifacts, schemas, and archive |
62+
| [OPSX Workflow](opsx.md) | Why the workflow is fluid instead of phase-locked, plus an architecture deep dive |
63+
| [Glossary](glossary.md) | Every term defined in one place |
64+
65+
### Make it yours
66+
67+
| Doc | What it gives you |
68+
|-----|-------------------|
69+
| [Customization](customization.md) | Project config, custom schemas, shared context |
70+
| [Multi-Language](multi-language.md) | Generate artifacts in languages other than English |
71+
| [Supported Tools](supported-tools.md) | The 25+ AI tools OpenSpec integrates with, and where files land |
72+
73+
### When you need help
74+
75+
| Doc | What it gives you |
76+
|-----|-------------------|
77+
| [FAQ](faq.md) | Quick answers to the questions people ask most |
78+
| [Troubleshooting](troubleshooting.md) | Concrete fixes for concrete failures |
79+
| [Migration Guide](migration-guide.md) | Moving from the legacy workflow to OPSX |
80+
81+
### Coordinate across repos (beta)
82+
83+
| Doc | What it gives you |
84+
|-----|-------------------|
85+
| [Stores: User Guide](stores-beta/user-guide.md) | Plan in its own repo when your work spans repos or teams |
86+
| [Agent Contract](agent-contract.md) | The machine-readable CLI surfaces agents drive |
87+
88+
## The thirty-second version
89+
90+
```text
91+
1. Install npm install -g @fission-ai/openspec@latest
92+
2. Initialize cd your-project && openspec init
93+
3. Explore (in your AI chat) /opsx:explore ← optional, but a great habit
94+
4. Propose (in your AI chat) /opsx:propose add-dark-mode
95+
5. Build (in your AI chat) /opsx:apply
96+
6. Archive (in your AI chat) /opsx:archive
97+
```
98+
99+
Steps 1 and 2 happen in your terminal. The rest happen in your AI assistant's chat. That split is the one thing worth memorizing, and [How Commands Work](how-commands-work.md) explains exactly why. Step 3 is optional, but starting with `/opsx:explore` when you're unsure is the habit most worth forming.
100+
101+
## Where else to get help
102+
103+
- **Discord:** [discord.gg/YctCnvvshC](https://discord.gg/YctCnvvshC) for questions, ideas, and help.
104+
- **GitHub Issues:** [github.com/Fission-AI/OpenSpec/issues](https://github.com/Fission-AI/OpenSpec/issues) for bugs and feature requests.
105+
- **`openspec feedback "your message"`** sends feedback straight from your terminal (it opens a GitHub issue).
106+
107+
Found something in these docs that's wrong, stale, or confusing? That's a bug. Open an issue or a PR. Documentation improvements are some of the most valuable contributions you can make.

docs/cli.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,9 @@ openspec init [path] [options]
104104

105105
`--profile custom` uses whatever workflows are currently selected in global config (`openspec config profile`).
106106

107-
**Supported tool IDs (`--tools`):** `amazon-q`, `antigravity`, `auggie`, `bob`, `claude`, `cline`, `codex`, `forgecode`, `codebuddy`, `continue`, `costrict`, `crush`, `cursor`, `factory`, `gemini`, `github-copilot`, `iflow`, `junie`, `kilocode`, `kimi`, `kiro`, `opencode`, `pi`, `qoder`, `lingma`, `qwen`, `roocode`, `trae`, `vibe`, `windsurf`
107+
**Supported tool IDs (`--tools`):** `amazon-q`, `antigravity`, `auggie`, `bob`, `claude`, `cline`, `codex`, `forgecode`, `codebuddy`, `continue`, `costrict`, `crush`, `cursor`, `factory`, `gemini`, `github-copilot`, `iflow`, `junie`, `kilocode`, `kimi`, `kiro`, `lingma`, `vibe`, `opencode`, `pi`, `qoder`, `qwen`, `roocode`, `trae`, `windsurf`
108+
109+
> This list mirrors `AI_TOOLS` in `src/core/config.ts`. See [Supported Tools](supported-tools.md) for each tool's skill and command paths.
108110
109111
**Examples:**
110112

docs/commands.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ AI: Created openspec/changes/add-dark-mode/
7272

7373
### `/opsx:explore`
7474

75+
> **Start here when you're unsure.** Explore is a no-stakes thinking partner: it reads your codebase, compares options, and sharpens a fuzzy idea into a concrete plan before any change exists. It ships in the default profile. For the full case and more examples, see the [Explore First](explore.md) guide.
76+
7577
Think through ideas, investigate problems, and clarify requirements before committing to a change.
7678

7779
**Syntax:**

docs/editing-changes.md

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# Editing & Iterating on a Change
2+
3+
**Every artifact in a change is just a Markdown file you can edit at any time.** There is no locked "planning phase," no approval gate, no special edit mode to enter. Want to change the proposal after you've started building? Open `proposal.md` and change it. Realized the design is wrong mid-implementation? Fix `design.md` and keep going. That's the whole answer, and it's by design.
4+
5+
This page is for the moment you think "wait, can I go back and change that?" Yes. Here's how, for each common case.
6+
7+
## Two ways to edit anything
8+
9+
You always have both:
10+
11+
1. **Edit the file directly.** Artifacts are plain Markdown in `openspec/changes/<name>/`. Open `proposal.md`, `design.md`, `tasks.md`, or a delta spec under `specs/` in your editor and change it. Nothing else is required.
12+
13+
2. **Ask your AI to revise it.** In chat, just say what you want: "Update the proposal to drop the caching idea and add a rate-limit section," or "the design should use a queue, not polling." The AI edits the artifact for you, using the rest of the change as context.
14+
15+
Use whichever fits the moment. Small wording tweak? Edit the file. Substantive rethink? Let the AI revise with full context.
16+
17+
## "How do I update the proposal (or specs) after I've started?"
18+
19+
Just update it. Same change, refined.
20+
21+
If you're using the expanded commands, the natural flow is: edit the artifact, then run `/opsx:continue` to pick up from the new state, or `/opsx:apply` to keep implementing against the updated plan. If you're on the default `core` commands, edit the artifact and run `/opsx:apply`; it reads the current files, so it builds against whatever the artifacts now say.
22+
23+
The mental model: artifacts are the live plan, not a signed contract. The AI always works from their current contents, so editing them steers the work.
24+
25+
```text
26+
You: I want to change the approach in this change.
27+
28+
You: [edit design.md, or tell the AI:]
29+
Update design.md to use a background job instead of a synchronous call.
30+
31+
AI: Updated design.md. The task list still fits; want me to continue applying?
32+
33+
You: /opsx:apply
34+
```
35+
36+
This answers a very common question: there's no separate "update proposal" command because you don't need one. The file is the source of truth, and editing it (by hand or via the AI) is the update.
37+
38+
## "How do I go back to review after implementing?"
39+
40+
You don't have to "go back," because you never left. The workflow is fluid: review, edit, and implementation aren't sequential phases you're trapped in.
41+
42+
Concretely, after some `/opsx:apply` work:
43+
44+
- Want to re-examine the plan? Open the artifacts and read them, or run `openspec show <change>` in your terminal for a consolidated view.
45+
- Found something to change? Edit the artifact (or ask the AI to), then continue.
46+
- Want a structured check that the code matches the plan? Run `/opsx:verify` (expanded command). It reports completeness, correctness, and coherence without blocking anything. See [Workflows: Verify](workflows.md#verify-check-your-work).
47+
48+
There's no "review phase" to return to, because review is something you can do at any point, including after implementation.
49+
50+
## "I edited the code by hand. How do I reconcile that with OpenSpec?"
51+
52+
This happens constantly and it's fine. You tweaked something in your editor, and now the code and the artifacts disagree. Bring them back in sync in whichever direction is true:
53+
54+
- **The code is now correct, the spec is stale.** Update the delta spec (and tasks, if relevant) to describe the behavior you actually shipped. The spec should match reality before you archive, because archiving merges the spec into your source of truth.
55+
- **The spec is correct, the code drifted.** Keep building or fixing until the code matches the spec.
56+
57+
A fast way to surface mismatches is `/opsx:verify`: it reads your artifacts and your code and tells you where they diverge. Treat its output as a to-do list for reconciliation, then archive once they agree.
58+
59+
The principle: at archive time, your specs become the truth of record. So before you archive, make the specs honest about what the code does. Manual edits are welcome; just don't let them quietly desync the spec.
60+
61+
## Refining a proposal you're not happy with
62+
63+
If a generated proposal misses the mark, you have three good moves:
64+
65+
- **Iterate in place.** Tell the AI what's off ("the scope is too broad, drop the admin features") and let it revise. Cheapest and usually right.
66+
- **Explore first, then re-propose.** If the problem is that the idea itself is unclear, step back to `/opsx:explore`, think it through, and let a sharper proposal come out of that. See [Explore First](explore.md).
67+
- **Start fresh.** If the intent has fundamentally changed, a new change can be clearer than patching the old one.
68+
69+
That last move has its own decision guide, next.
70+
71+
## When to update vs. start a new change
72+
73+
Short version: **update when it's the same work refined; start new when the intent fundamentally changed or the scope exploded into different work.**
74+
75+
- Same goal, better approach? Update.
76+
- Scope narrowing (ship the MVP now, more later)? Update, then archive, then a new change for phase two.
77+
- The problem itself changed ("add dark mode" became "build a full theming system")? New change.
78+
79+
There's a full flowchart and worked examples in [Workflows: When to Update vs Start Fresh](workflows.md#when-to-update-vs-start-fresh) and a deeper treatment in [OPSX: When to Update vs. Start Fresh](opsx.md#when-to-update-vs-start-fresh).
80+
81+
## A note on tasks
82+
83+
`tasks.md` is a living checklist, not a frozen plan. As you implement, you can add tasks you discover, remove ones that turned out unnecessary, or reorder them. The AI checks items off as it completes them during `/opsx:apply`, and it resumes from the first unchecked task if you come back later. Editing the list mid-flight is expected.
84+
85+
## Where to go next
86+
87+
- [Workflows](workflows.md) - patterns, plus the update-vs-new decision guide
88+
- [Explore First](explore.md) - the place to step back to when an idea needs rethinking
89+
- [Commands](commands.md) - `/opsx:continue`, `/opsx:apply`, and `/opsx:verify` in detail
90+
- [Concepts: Artifacts](concepts.md#artifacts) - what each artifact is for

0 commit comments

Comments
 (0)