Help us improve
Share bugs, ideas, or general feedback.
From arc
Turns vague ideas into concrete feature specs through structured dialogue with expert review agents. Use when starting new work that needs product and technical shaping.
npx claudepluginhub howells/arc --plugin arcHow this skill is triggered — by the user, by Claude, or both
Slash command
/arc:ideateThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<hard_gate>
Guides structured brainstorming to refine ideas into approved designs and specs via dialogue, expert consultation, and review loops before implementation. Enforces for all projects.
Guides collaborative brainstorming to explore intent, clarify requirements, propose designs, and secure approval before implementing features or changes.
Turns ideas into approved designs and specs via structured dialogue: context exploration, questions, proposals, reviews. Enforces before any feature, component, or change implementation.
Share bugs, ideas, or general feedback.
<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.
Paths in this skill use these conventions:
agents/..., references/..., disciplines/..., templates/..., scripts/..., rules/..., skills/<name>/... are Arc-owned files at the plugin root. Resolve the plugin root from this skill's filesystem location — it's the directory containing agents/ and skills/../... is local to this skill's directory..ruler/..., docs/..., src/..., or any project-relative path refers to the user's project repository.
</arc_runtime><behavioral_mode>
You are a thinking partner. The conversation IS the work. The feature spec 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, Specify. 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 existsThen 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 the detailed spec"
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 spec in 200-300 word sections. After each section, ask: "Does this look right so far?"
Sections to cover (skip what's irrelevant):
<ui_requirements> belowOptional micro-reviews for complex sections:
Present findings as questions, incorporate before moving on.
After the spec is mostly shaped, run parallel expert review:
Location: docs/arc/specs/YYYY-MM-DD-<topic>-spec.md
# [Feature Name] Feature Spec
## Reference Materials
- [Figma links, external docs, images shared during conversation]
## Problem Statement
...
## UI Requirements
[User-visible states, interactions, and any external visual direction]
## Approach
...
## Design Decisions
| Decision | Rationale |
|----------|-----------|
| ... | ... |
## Open Questions
- ...
Commit: git add docs/arc/specs/ && git commit -m "docs: add <topic> feature spec"
After writing the feature spec:
agents/workflow/spec-document-reviewer.mdPresent the full arc:
/arc:ideate → Feature spec ✓ YOU ARE HERE
↓
/arc:implement → Plan + Execute
Options via AskUserQuestion:
<ui_requirements>
Arc does not create independent visual direction, brand systems, or UI polish workflows. If the work needs visual design, use an external source of truth such as Chiaroscuro, Figma, an existing docs/brand-system.md, or a user-provided design brief. Arc can capture that source and translate it into implementation-relevant requirements.
Ask only what is needed for product behavior and implementation:
Capture external visual direction if provided:
## UI Requirements
- **Screens/states**: [screens, empty/loading/error/success states]
- **Interactions**: [primary user actions and feedback]
- **Existing patterns**: [components/routes to follow]
- **Visual source of truth**: [Chiaroscuro spec, Figma, brand-system doc, existing app pattern, or none]
- **Open design needs**: [anything that should be sent to an external design workflow before implementation]
If visual direction is missing and the feature depends on it, do not invent it. Ask whether to:
Low-fidelity structural sketches are acceptable when they clarify flow, but they are not visual direction. Use inline ASCII only when it helps implementation understand layout or state relationships. </ui_requirements>
<reference_capture>
When user shares links, images, Figma, or external design specs 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 the spec, ask user to save to docs/arc/specs/assets/ manually
External links/specs: Capture URL + description in the spec under "Reference Materials"
</reference_capture>
<required_reading>
Read these when relevant (not all at once — load what the conversation needs):
references/review-patterns.md — How to transform reviewer findings into questionsreferences/model-strategy.md — Which models for which agentsdisciplines/dispatching-parallel-agents.md — Agent orchestration
</required_reading><spec_flow_analysis> After the feature spec is written and committed, offer optional user flow analysis:
"Would you like me to analyze this spec for missing user flows?"
If the user accepts:
Agent: 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> Spec is complete when: