3.3 KiB
3.3 KiB
name, description, category, tags
| name | description | category | tags | |||
|---|---|---|---|---|---|---|
| openspec:work | Start working on an OpenSpec change with full context loading. | openspec |
|
Purpose
This command helps you start or resume work on an OpenSpec change proposal. It:
- Shows the OpenSpec dashboard with all changes
- Loads the change context (proposal, design, tasks)
- Tracks the active change for session persistence
- Enables automatic context loading on session resume
Steps
-
Show OpenSpec dashboard
- Run
openspec viewto display all changes with progress - Output the dashboard so user can see status
- Run
-
Select change to work on
- Ask user: "Which change would you like to work on? (provide change ID)"
- Change ID is the folder name in
openspec/changes/ - Example:
add-dark-mode,fix-auth-bug,refactor-api
-
Verify change exists
- Check that
openspec/changes/<change-id>/directory exists - If not found, show error: "Change '' not found. Run 'openspec view' to see available changes."
- Exit if not found
- Check that
-
Load change context
- Read and display key files in this order:
openspec/changes/<change-id>/proposal.md- The WHY (goals, motivation)openspec/changes/<change-id>/design.md- The HOW (living doc with approach)openspec/changes/<change-id>/tasks.md- The WHAT (checklist of work)
- If design.md doesn't exist, note: "No design.md yet. Create one to track your approach and decisions."
- Read and display key files in this order:
-
Update active change tracker
-
Write to
openspec/active.json:{ "change": "<change-id>", "started": "<ISO 8601 timestamp>", "lastCheckpoint": "<ISO 8601 timestamp>" } -
Use JavaScript/TypeScript Date:
new Date().toISOString()
-
-
Confirm and guide next steps
-
Show success message:
✓ Now working on: <change-id> Context loaded: - Proposal: <brief summary from proposal.md> - Tasks: <X> remaining, <Y> completed Next steps: 1. Review the proposal and design above 2. Work through tasks in tasks.md sequentially 3. Use /openspec:checkpoint to save progress 4. Use /openspec:status to check progress anytime 5. Use /openspec:done when all tasks complete The SessionStart hook will automatically load this context if you resume later.
-
Error Handling
- If
openspecCLI not found: "OpenSpec CLI not installed. Run 'npm install -g @fission-codes/openspec'" - If no changes exist: "No OpenSpec changes found. Create one with /openspec:proposal"
- If
openspec/directory doesn't exist: Show error (should be created by 'openspec init') - If active.json write fails: Show error but continue (non-critical)
Example Usage
User: /openspec:work
Assistant: [Runs openspec view, shows dashboard]
Which change would you like to work on? (provide change ID)
User: add-dark-mode
Assistant: [Loads proposal.md, design.md, tasks.md]
[Updates active.json]
[Shows success message with context summary]
Notes
- This command wraps
openspec viewand adds context loading - The active.json file enables session resume via SessionStart hook
- design.md serves as the "living doc" (Reddit's context.md equivalent)
- Use /openspec:checkpoint frequently to update design.md with progress