$npx -y skills add WW-AI-Lab/openclaw-office --skill openspec-proposePropose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.
| 1 | Propose a new change - create the change and generate all artifacts in one step. |
| 2 | |
| 3 | I'll create a change with artifacts: |
| 4 | |
| 5 | - proposal.md (what & why) |
| 6 | - design.md (how) |
| 7 | - tasks.md (implementation steps) |
| 8 | |
| 9 | When ready to implement, run /opsx:apply |
| 10 | |
| 11 | --- |
| 12 | |
| 13 | **Input**: The user's request should include a change name (kebab-case) OR a description of what they want to build. |
| 14 | |
| 15 | **Steps** |
| 16 | |
| 17 | 1. **If no clear input provided, ask what they want to build** |
| 18 | |
| 19 | Use the **AskUserQuestion tool** (open-ended, no preset options) to ask: |
| 20 | |
| 21 | > "What change do you want to work on? Describe what you want to build or fix." |
| 22 | |
| 23 | From their description, derive a kebab-case name (e.g., "add user authentication" → `add-user-auth`). |
| 24 | |
| 25 | **IMPORTANT**: Do NOT proceed without understanding what the user wants to build. |
| 26 | |
| 27 | 2. **Create the change directory** |
| 28 | |
| 29 | ```bash |
| 30 | openspec new change "<name>" |
| 31 | ``` |
| 32 | |
| 33 | This creates a scaffolded change at `openspec/changes/<name>/` with `.openspec.yaml`. |
| 34 | |
| 35 | 3. **Get the artifact build order** |
| 36 | |
| 37 | ```bash |
| 38 | openspec status --change "<name>" --json |
| 39 | ``` |
| 40 | |
| 41 | Parse the JSON to get: |
| 42 | - `applyRequires`: array of artifact IDs needed before implementation (e.g., `["tasks"]`) |
| 43 | - `artifacts`: list of all artifacts with their status and dependencies |
| 44 | |
| 45 | 4. **Create artifacts in sequence until apply-ready** |
| 46 | |
| 47 | Use the **TodoWrite tool** to track progress through the artifacts. |
| 48 | |
| 49 | Loop through artifacts in dependency order (artifacts with no pending dependencies first): |
| 50 | |
| 51 | a. **For each artifact that is `ready` (dependencies satisfied)**: |
| 52 | - Get instructions: |
| 53 | ```bash |
| 54 | openspec instructions <artifact-id> --change "<name>" --json |
| 55 | ``` |
| 56 | - The instructions JSON includes: |
| 57 | - `context`: Project background (constraints for you - do NOT include in output) |
| 58 | - `rules`: Artifact-specific rules (constraints for you - do NOT include in output) |
| 59 | - `template`: The structure to use for your output file |
| 60 | - `instruction`: Schema-specific guidance for this artifact type |
| 61 | - `outputPath`: Where to write the artifact |
| 62 | - `dependencies`: Completed artifacts to read for context |
| 63 | - Read any completed dependency files for context |
| 64 | - Create the artifact file using `template` as the structure |
| 65 | - Apply `context` and `rules` as constraints - but do NOT copy them into the file |
| 66 | - Show brief progress: "Created <artifact-id>" |
| 67 | |
| 68 | b. **Continue until all `applyRequires` artifacts are complete** |
| 69 | - After creating each artifact, re-run `openspec status --change "<name>" --json` |
| 70 | - Check if every artifact ID in `applyRequires` has `status: "done"` in the artifacts array |
| 71 | - Stop when all `applyRequires` artifacts are done |
| 72 | |
| 73 | c. **If an artifact requires user input** (unclear context): |
| 74 | - Use **AskUserQuestion tool** to clarify |
| 75 | - Then continue with creation |
| 76 | |
| 77 | 5. **Show final status** |
| 78 | ```bash |
| 79 | openspec status --change "<name>" |
| 80 | ``` |
| 81 | |
| 82 | **Output** |
| 83 | |
| 84 | After completing all artifacts, summarize: |
| 85 | |
| 86 | - Change name and location |
| 87 | - List of artifacts created with brief descriptions |
| 88 | - What's ready: "All artifacts created! Ready for implementation." |
| 89 | - Prompt: "Run `/opsx:apply` or ask me to implement to start working on the tasks." |
| 90 | |
| 91 | **Artifact Creation Guidelines** |
| 92 | |
| 93 | - Follow the `instruction` field from `openspec instructions` for each artifact type |
| 94 | - The schema defines what each artifact should contain - follow it |
| 95 | - Read dependency artifacts for context before creating new ones |
| 96 | - Use `template` as the structure for your output file - fill in its sections |
| 97 | - **IMPORTANT**: `context` and `rules` are constraints for YOU, not content for the file |
| 98 | - Do NOT copy `<context>`, `<rules>`, `<project_context>` blocks into the artifact |
| 99 | - These guide what you write, but should never appear in the output |
| 100 | |
| 101 | **Guardrails** |
| 102 | |
| 103 | - Create ALL artifacts needed for implementation (as defined by schema's `apply.requires`) |
| 104 | - Always read dependency artifacts before creating a new one |
| 105 | - If context is critically unclear, ask the user - but prefer making reasonable decisions to keep momentum |
| 106 | - If a change with that name already exists, ask if user wants to continue it or create a new one |
| 107 | - Verify each artifact file exists after writing before proceeding to next |