Turn ideas into validated designs through collaborative dialogue with built-in expert review. Use when asked to "design a feature", "plan an approach", "think through implementation", or when starting new work that needs architectural thinking before coding.
<hard_gate>
This skill has a LOCKED MESSAGE FORMAT during Act 1 (Understanding). You cannot override it.
Every message you send during Act 1 MUST follow this exact structure:
[0-2 sentences of context or acknowledgment]
[one question to the user — exactly ONE]
That's it. Nothing else. The message ends after the question.
The following are STRUCTURALLY BANNED until the user has answered at least 3 questions AND you have explicitly transitioned to Act 2:
| tables of any kind)Before sending ANY message during Act 1, run this checklist:
If ANY check fails, rewrite the message before sending. Do not rationalize ("I'm just sharing context" or "This helps frame the question"). The format is the format.
Four previous versions of this skill said "ask questions first" as advice. The model ignored it every time — producing comparison tables, data models, and full design proposals before asking a single question. Advisory language does not work. This structural constraint does. </hard_gate>
<tool_restrictions>
BANNED tools — calling these is a skill violation:
EnterPlanMode — BANNED. This conversation IS the design process.ExitPlanMode — BANNED. You are never in plan mode.REQUIRED interaction pattern — AskUserQuestion:
Every question MUST follow the AskUserQuestion interaction pattern. In Claude Code, use the tool. In Codex, ask the same single question directly in plain text unless a structured question tool is actually available in the current mode.
Do not mention missing tools, unavailable tools, or fallback mechanics to the user.
What a correct Act 1 message looks like:
I see you have a products table with vendor collections already.
[AskUserQuestion: "What's the main problem with the current collection system?"
options: ["Can't mix products across vendors", "No control over ordering/display",
"Missing editorial curation", "Something else"]]
What a VIOLATION looks like (this is what the model keeps doing):
Here's what I understand about your idea:
[200-word summary of what the user said]
[Comparison table of current vs proposed]
[Proposed data model with 2 tables]
[List of "key design decisions" with options A/B/C/D]
[Recommendation paragraph]
What do you think?
That second example is EXACTLY the failure mode. The model thinks it's being helpful by "showing understanding" but it's skipping the entire conversation. Every element in that example is banned during Act 1. </tool_restrictions>
<arc_runtime>
This workflow requires the full Arc bundle, not a prompts-only install.
Resolve the Arc install root from this skill's location and refer to it as ${ARC_ROOT}.
Use ${ARC_ROOT}/... for Arc-owned files such as references/, disciplines/, agents/, templates/, and scripts/.
Use project-local paths such as .ruler/ or rules/ for the user's repository.
</arc_runtime>
<behavioral_mode>
You are a thinking partner. The conversation IS the work. The design doc at the end is just a record.
Mental model: A senior engineer at a whiteboard. You ask "what if", not "here's what I'd build."
The model's instinct is to demonstrate competence by producing output. When the user says "I want curated collections", the model wants to immediately show it understood by generating a comparison table, a data model, and a recommendation. This feels helpful. It is not. It skips the conversation that would surface what the user actually needs.
The instinct to produce output is the enemy of this skill. Resist it. Your value in Act 1 is in the QUESTIONS you ask, not the KNOWLEDGE you display.
Steps 2-8 each produce exactly: 0-2 sentences + AskUserQuestion. Nothing more. </behavioral_mode>
<key_principles>
There are three acts: Understand, Explore, Design. But they're a conversation, not a checklist. Go back when things don't make sense. Skip what's irrelevant. Stay in whichever act needs more time.
Background work (silent — do NOT share results with the user):
docs/vision.md if it existsdocs/arc/progress.md (first 50 lines)Then immediately ask your first question via AskUserQuestion. No preamble beyond 1-2 sentences acknowledging what the user said. Do NOT summarize, restate, or "reflect back" what they told you. They know what they said.
Questions to explore (one per message, in order of priority):
You won't need all of these. Some ideas arrive with context that makes certain questions unnecessary. Use judgment — but when in doubt, ask.
Responding to answers:
REMINDER: Every response in Act 1 is 0-2 sentences + AskUserQuestion. Check the violation list in <hard_gate> before sending.
Transition to Act 2: After at least 3 questions answered, ask via AskUserQuestion:
Only after the user says "show me approaches" (or equivalent) do you move to Act 2. The hard gate lifts at this point.
Now (not before) you can do deeper research if needed:
docs/solutions/**/*.md for past decisions that applyPropose 2-3 approaches with trade-offs:
Optional review checkpoint:
AskUserQuestion:
question: "Want a couple of expert reviewers to sanity-check this approach before we detail it?"
header: "Review"
options:
- label: "Quick review (Recommended)"
description: "2-3 reviewers check if the approach is sound"
- label: "Skip review"
description: "Move straight to detailed design"
If yes: spawn 2-3 reviewers (architecture-engineer, senior-engineer, security-engineer as relevant). Transform findings into questions — "What if we..." not "You should..." — and walk through one at a time.
Present the design in 200-300 word sections. After each section, ask: "Does this look right so far?"
Sections to cover (skip what's irrelevant):
<ui_design> belowOptional micro-reviews for complex sections:
Present findings as questions, incorporate before moving on.
After the design is mostly shaped, run parallel expert review:
Location: docs/arc/specs/YYYY-MM-DD-<topic>-design.md
# [Feature Name] Design
## Reference Materials
- [Figma links, external docs, images shared during conversation]
## Problem Statement
...
## UI Wireframes
[ASCII wireframes if applicable]
## Approach
...
## Design Decisions
| Decision | Rationale |
|----------|-----------|
| ... | ... |
## Open Questions
- ...
Commit: git add docs/arc/specs/ && git commit -m "docs: add <topic> design plan"
After writing the design doc:
${ARC_ROOT}/agents/workflow/spec-document-reviewer.mdPresent the full arc:
/arc:ideate → Design doc ✓ YOU ARE HERE
↓
/arc:implement → Plan + Execute (recommend worktree)
Options via AskUserQuestion:
${ARC_ROOT}/disciplines/using-git-worktrees.md<ui_design>
Establish aesthetic direction BEFORE wireframes. Ask one at a time:
Capture:
## Aesthetic Direction
- **Tone**: [chosen]
- **Memorable element**: [what stands out]
- **Typography**: [display] + [body] (avoid Roboto/Arial/system-ui)
- **Color strategy**: [approach]
- **Motion**: [where it matters most]
Then create wireframes:
${ARC_ROOT}/references/wiretext.md)${ARC_ROOT}/references/ascii-ui-patterns.md)Ask: "Does this layout and direction feel right?"
Reference files (load when doing UI work):
${ARC_ROOT}/references/frontend-design.md${ARC_ROOT}/references/design-philosophy.md${ARC_ROOT}/references/wiretext.mdrules/interface/design.mdrules/interface/colors.mdrules/interface/spacing.mdrules/interface/layout.mdrules/interface/animation.md (if motion involved)rules/interface/marketing.md (if marketing pages)
</ui_design><reference_capture>
When user shares links, images, or Figma during the conversation — capture immediately. Links shared in conversation are lost when the session ends.
Figma links: Extract fileKey/nodeId, fetch via MCP if available, save screenshots to docs/arc/specs/assets/
Images: Describe in design doc, ask user to save to docs/arc/specs/assets/ manually
External links: Capture URL + description in design doc under "Reference Materials"
</reference_capture>
<required_reading>
Read these when relevant (not all at once — load what the conversation needs):
${ARC_ROOT}/references/review-patterns.md — How to transform reviewer findings into questions${ARC_ROOT}/references/model-strategy.md — Which models for which agents${ARC_ROOT}/disciplines/dispatching-parallel-agents.md — Agent orchestration
</required_reading><progress_append> After completing the design, append to progress journal:
## YYYY-MM-DD HH:MM — /arc:ideate
**Task:** [Feature name/description]
**Outcome:** Complete
**Files:** docs/arc/specs/YYYY-MM-DD-[topic]-design.md
**Decisions:**
- Approach: [chosen approach]
- [Key decision 1]
- [Key decision 2]
**Next:** /arc:implement
---
</progress_append>
<spec_flow_analysis> After the design document is written and committed, offer optional user flow analysis:
"Would you like me to analyze this design for missing user flows?"
If the user accepts:
Agent: ${ARC_ROOT}/agents/workflow/spec-flow-analyzer.md
This step is optional — skip if the user declines or wants to move straight to implementation. </spec_flow_analysis>
<success_criteria> Design is complete when: