Collaboratively define requirements and scope for a DuploCloud project, then save the spec to the platform.
Read and follow the brainstorming approach described in skills/write_spec/spec-writing.md throughout this process.
Follow these steps in order:
Step 0 — Verify spec ticket is active:
Run:
python3 -c "import json,sys; d=json.load(open('.duplocloud/state.json')); sys.exit(0 if d.get('spec_ticket_id') else 1)" 2>/dev/null"No active spec ticket found. Please run
/duplo:activate_ticketfirst to create or resume a spec ticket."
Step 1 — Fetch current spec content:
python3 ~/.duplocloud/bin/duplo_ticket.py --get-specStep 2a — Empty spec: gather requirements:
Ask the user one open-ended high-level question:
"What would you like to achieve as part of this project?"
Ask clarifying questions one at a time (see spec-writing.md) to understand goals, requirements, scope boundaries, and success criteria. Avoid technical implementation questions — only ask about technical systems if needed to define scope boundaries. Then proceed to Step 3.
Step 2b — Non-empty spec: review and iterate:
Show the existing spec content to the user. Ask:
"I found an existing spec draft. Would you like to continue refining it, or start fresh?"
Ask clarifying questions one at a time to understand what needs to change. Then proceed to Step 3.
Step 3 — Draft the spec:
Write a well-structured spec covering: goals, requirements, scope (in/out), success criteria, stakeholders, and any technical boundaries needed to scope the work. Do NOT include architecture decisions, implementation approaches, or technology choices — those belong in the plan. Save it locally:
# Write the spec content to .duplocloud/spec.mdShow the draft to the user, then ask:
"Does this draft look good, or would you like changes?"
.duplocloud/spec.md again, and re-ask.Step 4 — Confirm and save to platform:
Ask the user:
"The spec looks good! How would you like to proceed?"
- Save — push content to the platform (stays in Draft)
- Save and Approve — push content and mark the spec as Approved
- Cancel — keep the local draft only, don't push
python3 ~/.duplocloud/bin/duplo_ticket.py --save-spec --spec-file .duplocloud/spec.mdExit 0: tell the user "Spec saved to the DuploCloud platform (Draft)."
Exit 1: show the error to the user.
If Save and Approve:
python3 ~/.duplocloud/bin/duplo_ticket.py --save-spec --spec-file .duplocloud/spec.md --approveExit 0: tell the user "Spec saved and approved on the DuploCloud platform."
Exit 1: show the error to the user.
If Cancel: stop — the local draft remains at .duplocloud/spec.md.
0b53740
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.