ideate
Turn ideas into validated feature specs 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 product and technical shaping before coding.
What this skill does
<hard_gate>
# STOP — Structural Constraint
This skill has a LOCKED MESSAGE FORMAT during Act 1 (Understanding). You cannot override it.
## Act 1 Message Format (MANDATORY)
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.
## Banned Output During Act 1
The following are STRUCTURALLY BANNED until the user has answered at least 3 questions AND you have explicitly transitioned to Act 2:
- Tables (markdown `|` tables of any kind)
- Data models or schemas
- Code blocks or pseudocode
- Bullet lists longer than 3 items
- Comparison charts
- Architecture descriptions
- Proposed approaches or recommendations
- "Here's what I understand so far" summaries longer than 2 sentences
- Any paragraph longer than 3 sentences
## Violation Detection
Before sending ANY message during Act 1, run this checklist:
1. Does the message contain a markdown table? → VIOLATION. Delete it.
2. Does the message contain a code block? → VIOLATION. Delete it.
3. Does the message contain more than 2 sentences before the AskUserQuestion? → VIOLATION. Cut it down.
4. Does the message contain a "?" outside of AskUserQuestion? → VIOLATION. Move it into the tool.
5. Does the message propose any solution, approach, or design? → VIOLATION. Replace with a question about the user's intent.
6. Is the message longer than 4 lines of text (excluding the tool call)? → VIOLATION. Shorten it.
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.
## Why This Exists
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>
# Tool Rules
**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.
- ONE AskUserQuestion per message
- If you need to ask 3 things, that's 3 separate turns
- 0-2 sentences of context before the tool call, then STOP
- Multiple choice with 2-4 options preferred over open-ended
**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>
# This Is a Conversation, Not a Task
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 Failure Mode (This Is What You Keep Doing)
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.
## Correct Flow
1. User says idea
2. You ask what problem it solves (AskUserQuestion)
3. User answers
4. You ask who it's for (AskUserQuestion)
5. User answers
6. You ask about scope (AskUserQuestion)
7. User answers
8. You ask if they're ready for approaches (AskUserQuestion)
9. User says yes
10. NOW you can produce tables, schemas, proposals
Steps 2-8 each produce exactly: 0-2 sentences + AskUserQuestion. Nothing more.
</behavioral_mode>
<key_principles>
# Principles
- **Act 1 is structurally locked** — 0-2 sentences + AskUserQuestion, nothing else, until user approves transition to Act 2
- **One AskUserQuestion per message** — if you need 3 things, that's 3 turns
- **Multiple choice preferred** — 2-4 concrete options. Open-ended only when choices can't be reduced
- **YAGNI ruthlessly** — "Do we need this in v1?"
- **Explore alternatives** — 2-3 approaches before settling (Act 2 only). Lead with your recommendation
- **Incremental validation** — Present design in sections, check each before continuing (Act 3 only)
- **Be flexible** — Go back and clarify when something doesn't make sense
</key_principles>
<process>
# The Conversation
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.
## Act 1: Understand the Idea
**Background work (silent — do NOT share results with the user):**
- Check `docs/vision.md` if it exists
- Note the project type and obvious constraints
- Use what you learn to ask BETTER questions — not to produce summaries
**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):**
1. What problem does this solve?
2. Who is it for?
3. What does success look like?
4. What's in scope and what's not?
5. Are there constraints (technical, timeline, compatibility)?
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:**
- User says "I'm not sure" → narrow it: offer 2-3 concrete options via AskUserQuestion
- Vague answer → get specific: "Can you give me an example?" via AskUserQuestion
- Something contradicts → clarify via AskUserQuestion with the two interpretations as options
- User is stuck → offer options referencing existing code: "The way [feature] works is X. Is this similar?"
**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 Related in Design
contribute
IncludedLocal-only OSS contribution command center. Auto-refreshes the user's in-flight PR and issue state on invoke so conversations start with full context — no need to brief Claude on what's in flight. Helps the user find issues to contribute to on GitHub, builds per-repo dossiers of what each upstream expects (CLA, DCO, branch convention, AI policy, draft-first, review bots, issue templates), runs deterministic gates before any external action so AI-assisted contributions don't reach maintainers as slop. State is markdown-only: candidate files at ~/.contribute-system/candidates/, repo dossiers at ~/.contribute-system/research/, append-only event log at ~/.contribute-system/log.jsonl. No database, no cloud calls. Use when the user asks about their PRs / issues / contributions, wants to find new work to take on, claim an issue, build/refresh a repo's dossier, or draft a Design Issue or PR. Trigger with "/contribute", "what's my PR status", "find a contribution", "claim issue X", "draft a Design Issue for Y", "refresh dossier for Z".
architectural-analysis
IncludedUser-triggered deep architectural analysis of a codebase or scoped subtree across eight modes — information architecture, data flow, integration points, UI surfaces, interaction patterns, data model, control flow, and failure modes. This skill should be used when the user asks to "diagram this codebase," "map the architecture," "show the data flow," "give me an ERD," "trace control flow," "find the integration points," "verify the layout pattern," "audit the UX architecture," or any similar request whose primary deliverable is mermaid diagrams plus cited reports under docs/architecture/. Dispatches haiku/sonnet sub-agents in parallel for per-mode exploration, then verifies every citation mechanically before any node lands in a diagram. Not for one-off prose explanations of code (use code-explanation) or for high-level system design from scratch (use system-design).
mcp
IncludedModel Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript. Capabilities: build MCP servers, integrate external APIs, discover/execute MCP tools, manage multi-server configs, design agent-centric tools. Actions: create, build, integrate, discover, execute, configure MCP servers/tools. Keywords: MCP, Model Context Protocol, MCP server, MCP tool, stdio transport, SSE transport, tool discovery, resource provider, prompt template, external API integration, Gemini CLI MCP, Claude MCP, agent tools, tool execution, server config. Use when: building MCP servers, integrating external APIs as MCP tools, discovering available MCP tools, executing MCP capabilities, configuring multi-server setups, designing tools for AI agents.
react-native-skia
IncludedDesign, build, debug, and optimise high-polish animated graphics in React Native or Expo using @shopify/react-native-skia, Reanimated, and Gesture Handler. Use when the user wants canvas-driven UI, shaders, paths, rich text, image filters, sprite fields, Skottie, video frames, snapshots, web CanvasKit setup, or performance tuning for custom motion-heavy elements such as loaders, hero art, cards, charts, progress indicators, particle systems, or gesture-driven surfaces. Also use when the user asks for fluid, glow, glass, blob, parallax, 60fps/120fps, or GPU-friendly animated effects in React Native, even if they do not explicitly say "Skia". Do not use for ordinary form/layout work with standard views.
plaid
IncludedProduct Led AI Development — guides founders from idea to launched product. Six capabilities: Idea (discover a product idea), Validate (pressure-test the idea against fatal flaws, problem reality, competition, and 2-week MVP feasibility), Plan (vision intake + document generation), Design (translate image references into a design.md spec), Launch (go-to-market strategy), and Build (roadmap execution). Use when someone says "PLAID", "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "plan a product", "define my vision", "generate a PRD", "product strategy", "plaid design", "design from image", "translate image to design", "create design.md", "extract design tokens", "plaid launch", "go-to-market", "launch plan", "GTM strategy", "launch playbook", "plaid build", "build the app", "start building", or "execute the roadmap".
nextjs-framer-motion-animations
IncludedAdds production-safe Motion for React or Framer Motion animations to Next.js apps, including reveal, hover and tap micro-interactions, whileInView, stagger, AnimatePresence, layout and layoutId transitions, reorder, scroll-linked UI, and lightweight route-content transitions. Use when the user asks to add, refactor, or debug Motion or Framer Motion in App Router or Pages Router codebases, especially around server/client boundaries, reduced motion, LazyMotion, bundle size, hydration, or route transitions. Avoid for GSAP-style timelines, WebGL or 3D scenes, heavy scroll storytelling, or CSS-only effects unless Motion is explicitly requested.