Files
OpenSpec/docs/glossary.md
T
Clay GoodandClaude Opus 5 9a61f3f30d docs(installation): add an AI-assistant setup prompt (#1466)
* docs(installation): add an AI-assistant setup prompt

Adds a provider-neutral "Install with your AI assistant" section to
docs/installation.md with one copyable prompt that detects the runtime and
package manager, installs the CLI, runs `openspec init --tools <id>`, and
verifies the result. Surfaced from the README Quick Start and the docs map.
The manual package-manager instructions stay the source of truth.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* docs(installation): harden the AI-assistant prompt and link it from the install paths

Adversarial review found the first draft's verify step false-failing on healthy
installs and its guardrails unenforceable. The prompt now reports what init
actually printed instead of asserting config.yaml and command files (config.yml
is equally valid; six tools and delivery=skills correctly generate zero
commands), warns that --tools auto-cleans legacy files including opsx-*.md
prompts under $HOME, picks the package manager by what's on PATH rather than by
lockfile, scopes yarn to 1.x, and stops cleanly on EACCES, a missing pnpm global
bin dir, or a version-manager shim.

Also links the flow from getting-started, the docs map, troubleshooting, and the
website CTA; notes Berry dropped `yarn global`; replaces `npm bin -g` (removed in
npm 9) with `npm prefix -g`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* docs(installation): close the gaps two trial runs found in the setup prompt

Two assistants (different models) ran the prompt end to end in sandboxes, one
on Cursor and one on Codex with deliberately messy legacy files. Both finished
with a working, verified setup. Their findings:

- Cursor's commands are `/opsx-propose`, not `/opsx:propose`. The prompt named
  the colon form and init's summary agrees with it, so the assistant would have
  handed back a command the tool doesn't match. It now takes the spelling from
  the files init created.
- "List whatever you find and wait for my go-ahead" was undefined when the list
  is empty, i.e. on every fresh project. It now says to carry on.
- `openspec --version` succeeding doesn't prove it's the copy just installed;
  an older one earlier on PATH shadows it. Step 3 now compares the two.
- The request asked for confirmation before privileged/global changes; the
  prompt only stopped reactively on failure. It now shows the global install
  command and waits.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* docs: correct the core profile to six workflows and the tool count to 30+

Two long-standing inaccuracies, found while verifying the install docs.

`CORE_WORKFLOWS` (src/core/profiles.ts:14) is six — propose, explore, apply,
update, sync, archive — and a real `openspec init` generates six skills and six
commands. Eleven pages listed five, omitting `update`; migration-guide listed
four and filed `sync` under the expanded set. supported-tools also dropped
`update` from the full workflow-ID list. docs/commands.md was already right and
is untouched, as are flow diagrams that show a typical path rather than a
profile roster.

The tool count was written as both "25+" and "30+" against 34 supported tools.
Now consistently "30+".

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* docs: address CodeRabbit review on the AI-assisted install flow

- Windows puts global npm binaries directly in the prefix directory, not in a
  `bin/` subdirectory; the troubleshooting fix I added said otherwise.
- Tell the assistant to stop rather than improvise when none of npm/pnpm/yarn/bun
  is available, and point Nix users at the Nix section.
- Drop the blockquote on the getting-started pointer so it isn't a second `>`
  block adjacent to the explore callout (markdownlint MD028).

Two other comments were already fixed in 1bf0706 (stop on a PATH problem; map
the user's answer to an exact tool id).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 00:39:47 +00:00

7.5 KiB

Glossary

Every OpenSpec term in one place, defined in plain language. Skim it once and the rest of the docs read faster.

Terms are grouped by topic, then alphabetized within each group.

The core nouns

Spec. A document describing how part of your system behaves. Specs live in openspec/specs/, are organized by domain, and are made of requirements and scenarios. The spec is the agreed-upon answer to "what does this software do?" See Concepts.

Source of truth. The openspec/specs/ directory as a whole. It holds the current, agreed-upon behavior of your system. Changes propose edits to it; archiving applies them.

Change. One unit of work, packaged as a folder under openspec/changes/<name>/. A change holds everything about that work: its proposal, design, tasks, and the spec edits it introduces. One change, one feature or fix.

Artifact. A document inside a change. The standard artifacts are the proposal, the delta specs, the design, and the tasks. They're created in dependency order and feed into each other.

Delta spec. A spec inside a change that describes only what's changing, using ADDED, MODIFIED, and REMOVED sections, rather than restating the entire spec. This is what lets OpenSpec edit existing systems cleanly. See Concepts.

Domain. A logical grouping for specs, like auth/, payments/, or ui/. You choose domains that match how you think about your system.

Inside a spec

Requirement. A single behavior the system must have, usually written with an RFC 2119 keyword: "The system SHALL expire sessions after 30 minutes." Requirements state the what, not the how.

Scenario. A concrete, testable example of a requirement in action, typically in Given/When/Then form. Scenarios make a requirement verifiable: you could write an automated test from one.

RFC 2119 keywords. The words MUST, SHALL, SHOULD, and MAY, which carry standardized meaning about how strict a requirement is. MUST and SHALL are absolute. SHOULD is recommended with room for exceptions. MAY is optional. The name comes from the internet standards document that defined them.

The artifacts

Proposal (proposal.md). The why and what of a change: its intent, scope, and high-level approach. The first artifact you create.

Design (design.md). The how: technical approach, architecture decisions, and the files you expect to touch. Optional for simple changes.

Tasks (tasks.md). The implementation checklist, with checkboxes. The AI works through it during /opsx:apply and checks items off as it goes.

The lifecycle

Archive. The act of finishing a change. Its delta specs merge into the main specs, and the change folder moves to openspec/changes/archive/YYYY-MM-DD-<name>/. After archiving, your specs describe the new reality. See Concepts.

Sync. Merging a change's delta specs into the main specs without archiving the change. Usually automatic (archive offers to do it), but available on its own as /opsx:sync for long-running changes. See Commands.

Workflow and commands

OPSX. The current standard OpenSpec workflow, built around fluid actions instead of rigid phases. Its slash commands all start with /opsx:. See OPSX Workflow.

Slash command. A command you type into your AI assistant's chat, like /opsx:propose. Slash commands drive the workflow. They are not terminal commands. See How Commands Work.

Explore (/opsx:explore). The thinking-partner command. It reads your codebase, compares options, and clarifies a fuzzy idea into a concrete plan, creating no artifacts and writing no code. The recommended starting point whenever you have a problem but not yet a plan. See Explore First.

CLI. The openspec program you run in your terminal. It sets up projects, lists and validates changes, opens the dashboard, and archives. The terminal half of OpenSpec. See CLI.

Skill. A folder of instructions (.../skills/openspec-*/SKILL.md) that your AI assistant auto-detects and follows. Skills are the emerging cross-tool standard for delivering the OpenSpec workflow to your assistant.

Command file. A per-tool slash command file (.../commands/opsx-*). The older delivery mechanism, still supported alongside skills. You rarely touch these directly.

Profile. The set of slash commands installed in your project. Core (the default) is propose, explore, apply, update, sync, archive. The expanded set adds new, continue, ff, verify, bulk-archive, onboard. Change it with openspec config profile.

Delivery. Whether OpenSpec installs skills, command files, or both for your tools. Configured globally and applied with openspec update.

Customization

Schema. The definition of which artifacts a workflow has and how they depend on one another. The built-in default is spec-driven (proposal → specs → design → tasks). You can fork it or write your own. See Customization.

Template. A Markdown file inside a schema that shapes what the AI generates for a given artifact. Editing a template changes the AI's output immediately, with no rebuild.

Project config (openspec/config.yaml). Per-project settings: the default schema, the context: injected into every planning request, and per-artifact rules:. The easiest way to teach OpenSpec about your stack and conventions. See Customization.

Context injection. Putting project background in config.yaml's context: field so it's automatically added to every artifact the AI generates. More reliable than hoping the AI reads a separate file.

Dependency graph. The directed graph formed by artifact requires: relationships. It's a DAG (directed acyclic graph: arrows only point forward, never in a loop), and OpenSpec uses it to know what you can create next.

Enablers, not gates. The principle that artifact dependencies show what becomes possible next, not what's required next. You can revisit and edit any artifact at any time. See Core Concepts at a Glance.

Coordination across repos (beta)

These terms apply only if your planning spans more than one repo. They're in beta. Most users can ignore them. See the Stores User Guide.

Store. A standalone repo whose whole job is planning. It has the same openspec/ shape you already know (specs and changes) plus a small identity file. You register it on your machine once, by name, and then any OpenSpec command can work in it from anywhere.

Reference. A declaration, in a code repo's openspec/config.yaml, of a store that repo draws on. References are read-only: the repo keeps its own root, and openspec instructions gains an index of the referenced store's specs, each with the exact command to fetch it.

Working context. What openspec context assembles for the current repo: its OpenSpec root plus every store it references, each with how to fetch it. The answer to "what am I working with?"

Workset. A personal, machine-local set of folders you open together (a store alongside the code repos you work on). Created explicitly with openspec workset create; nothing about those local paths is committed to the shared planning repo.

See also