UNPKG

@fission-ai/openspec

Version:

AI-native system for spec-driven development

143 lines (109 loc) 5.89 kB
export function getNewChangeSkillTemplate() { return { name: 'openspec-new-change', description: 'Start a new OpenSpec change using the experimental artifact workflow. Use when the user wants to create a new feature, fix, or modification with a structured step-by-step approach.', instructions: `Start a new change using the experimental artifact-driven approach. **Input**: The user's request should include a change name (kebab-case) OR a description of what they want to build. **Steps** 1. **If no clear input provided, ask what they want to build** Use the **AskUserQuestion tool** (open-ended, no preset options) to ask: > "What change do you want to work on? Describe what you want to build or fix." From their description, derive a kebab-case name (e.g., "add user authentication" → \`add-user-auth\`). **IMPORTANT**: Do NOT proceed without understanding what the user wants to build. 2. **Determine the workflow schema** Use the default schema (omit \`--schema\`) unless the user explicitly requests a different workflow. **Use a different schema only if the user mentions:** - A specific schema name → use \`--schema <name>\` - "show workflows" or "what workflows" → run \`openspec schemas --json\` and let them choose **Otherwise**: Omit \`--schema\` to use the default. 3. **Create the change directory** \`\`\`bash openspec new change "<name>" \`\`\` Add \`--schema <name>\` only if the user requested a specific workflow. This creates a scaffolded change at \`openspec/changes/<name>/\` with the selected schema. 4. **Show the artifact status** \`\`\`bash openspec status --change "<name>" \`\`\` This shows which artifacts need to be created and which are ready (dependencies satisfied). 5. **Get instructions for the first artifact** The first artifact depends on the schema (e.g., \`proposal\` for spec-driven). Check the status output to find the first artifact with status "ready". \`\`\`bash openspec instructions <first-artifact-id> --change "<name>" \`\`\` This outputs the template and context for creating the first artifact. 6. **STOP and wait for user direction** **Output** After completing the steps, summarize: - Change name and location - Schema/workflow being used and its artifact sequence - Current status (0/N artifacts complete) - The template for the first artifact - Prompt: "Ready to create the first artifact? Just describe what this change is about and I'll draft it, or ask me to continue." **Guardrails** - Do NOT create any artifacts yet - just show the instructions - Do NOT advance beyond showing the first artifact template - If the name is invalid (not kebab-case), ask for a valid name - If a change with that name already exists, suggest continuing that change instead - Pass --schema if using a non-default workflow`, license: 'MIT', compatibility: 'Requires openspec CLI.', metadata: { author: 'openspec', version: '1.0' }, }; } export function getOpsxNewCommandTemplate() { return { name: 'OPSX: New', description: 'Start a new change using the experimental artifact workflow (OPSX)', category: 'Workflow', tags: ['workflow', 'artifacts', 'experimental'], content: `Start a new change using the experimental artifact-driven approach. **Input**: The argument after \`/opsx:new\` is the change name (kebab-case), OR a description of what the user wants to build. **Steps** 1. **If no input provided, ask what they want to build** Use the **AskUserQuestion tool** (open-ended, no preset options) to ask: > "What change do you want to work on? Describe what you want to build or fix." From their description, derive a kebab-case name (e.g., "add user authentication" → \`add-user-auth\`). **IMPORTANT**: Do NOT proceed without understanding what the user wants to build. 2. **Determine the workflow schema** Use the default schema (omit \`--schema\`) unless the user explicitly requests a different workflow. **Use a different schema only if the user mentions:** - A specific schema name → use \`--schema <name>\` - "show workflows" or "what workflows" → run \`openspec schemas --json\` and let them choose **Otherwise**: Omit \`--schema\` to use the default. 3. **Create the change directory** \`\`\`bash openspec new change "<name>" \`\`\` Add \`--schema <name>\` only if the user requested a specific workflow. This creates a scaffolded change at \`openspec/changes/<name>/\` with the selected schema. 4. **Show the artifact status** \`\`\`bash openspec status --change "<name>" \`\`\` This shows which artifacts need to be created and which are ready (dependencies satisfied). 5. **Get instructions for the first artifact** The first artifact depends on the schema. Check the status output to find the first artifact with status "ready". \`\`\`bash openspec instructions <first-artifact-id> --change "<name>" \`\`\` This outputs the template and context for creating the first artifact. 6. **STOP and wait for user direction** **Output** After completing the steps, summarize: - Change name and location - Schema/workflow being used and its artifact sequence - Current status (0/N artifacts complete) - The template for the first artifact - Prompt: "Ready to create the first artifact? Run \`/opsx:continue\` or just describe what this change is about and I'll draft it." **Guardrails** - Do NOT create any artifacts yet - just show the instructions - Do NOT advance beyond showing the first artifact template - If the name is invalid (not kebab-case), ask for a valid name - If a change with that name already exists, suggest using \`/opsx:continue\` instead - Pass --schema if using a non-default workflow` }; } //# sourceMappingURL=new-change.js.map