How openspec-cn/openspec works
OpenSpec is a Node.js CLI for spec-driven development across AI coding tools. A project maintainer initializes a project, creates and iterates on change artifacts (proposal, specs, design, tasks), applies the change, validates it, and archives it. The graph preserves documented setup, tool adaptation, completions, and telemetry capabilities. Relationships for unsampled subsystems are included only where the README documents them; source-level implementation details are limited to indexed or excerpted evidence.
Main entry points: index.ts OpenSpec CLI · validator.ts Validator · change-parser.ts Change parser · init.ts Project setup
Components 19
CLI entry
- OpenSpec CLI
src/cli/index.ts
Change workflow
- Change commands
src/commands/change.ts - Workflow commands
src/commands/workflow - Artifact graph
src/core/artifact-graph - Change archive
src/core/archive.ts
Specs and validation
- Spec commands
src/commands/spec.ts - Markdown parser
src/core/parsers/markdown-parser.ts - Change parser
src/core/parsers/change-parser.ts - Domain schemas
src/core/schemas - Validator
src/core/validation/validator.ts - Validation command
src/commands/validate.ts
Tool integrations
- Agent command generation
src/core/command-generation - Shell completions
src/core/completions - Completion command
src/commands/completion.ts
Configuration and telemetry
- Project setup
src/core/init.ts - Project configuration
src/core/config.ts - Usage telemetry
src/telemetry/index.ts
Other components
- Project maintainer
- PostHog
Connections 25
- Project maintainer → OpenSpec CLI: runs commands
- OpenSpec CLI → Project setup: initializes project
src/cli/index.ts - OpenSpec CLI → Change commands: dispatches changes
src/cli/index.ts - OpenSpec CLI → Workflow commands: dispatches workflow
src/cli/index.ts - OpenSpec CLI → Change archive: invokes archive
src/cli/index.ts - OpenSpec CLI → Spec commands: dispatches specs
src/cli/index.ts - OpenSpec CLI → Validation command: dispatches validation
src/cli/index.ts - OpenSpec CLI → Completion command: dispatches completion
src/cli/index.ts - OpenSpec CLI → Usage telemetry: tracks command
src/cli/index.ts - Project maintainer → Workflow commands: iterates artifacts
- Workflow commands → Artifact graph: uses artifact guidance
src/commands/workflow/shared.ts - Project maintainer → Change archive: archives change
- Change commands → Change parser: parses change
src/commands/change.ts - Change parser → Markdown parser: parses sections
src/core/parsers/change-parser.ts - Markdown parser → Domain schemas: uses domain types
src/core/parsers/markdown-parser.ts - Change parser → Domain schemas: uses domain types
src/core/parsers/change-parser.ts - Validation command → Validator: runs validation
src/commands/validate.ts - Validator → Change parser: parses changes
src/core/validation/validator.ts - Validator → Markdown parser: parses specs
src/core/validation/validator.ts - Validator → Domain schemas: checks schemas
src/core/validation/validator.ts - Project setup → Project configuration: configures project
src/core/init.ts - Project setup → Agent command generation: generates agent commands
src/core/init.ts - Project maintainer → Agent command generation: uses AI tools
- Completion command → Shell completions: builds completions
src/commands/completion.ts - Usage telemetry → PostHog: sends anonymous events
src/telemetry/index.ts