You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
Help turn ideas into fully formed designs and specs through natural collaborative dialogue.
Start by understanding the current project context, then ask questions one at a time to refine the idea. Once you understand what you're building, present the design and get user approval.
<HARD-GATE> Do NOT invoke any implementation skill, write any code, scaffold any project, or take any implementation action until you have presented a design and the user has approved it. This applies to EVERY project regardless of perceived simplicity. </HARD-GATE>Every project goes through this process. A todo list, a single-function utility, a config change — all of them. "Simple" projects are where unexamined assumptions cause the most wasted work. The design can be short (a few sentences for truly simple projects), but you MUST present it and get approval.
You MUST create a task for each of these items and complete them in order:
project-ci-cd skill to assess needs and check permissionsdocs/design/README.md with project type info and mermaid diagramsgraph TD
A["Explore project context"] --> B["Ask clarifying questions"];
B --> C["Propose 2-3 approaches"];
C --> D["Present design sections"];
D --> E{"User approves design?"};
E -->|no, revise| D;
E -->|yes| F["Confirm terminology and formats"];
F --> G{"Replacing core technology?"};
G -->|yes| H["Trace migration points"];
G -->|no| I["Implementation feasibility check"];
H --> I;
I --> J["Boundary case check"];
J --> K["Write design doc"];
K --> L["Invoke writing-plans skill"];
classDef endnode fill:#f9f;
classDef decision fill:#ddf;
classDef process fill:#e6f2ff;
class L endnode;
class E,G decision;
class A,B,C,D,F,H,I,J,K process;
The terminal state is invoking writing-plans. Do NOT invoke frontend-design, mcp-builder, or any other implementation skill. The ONLY skill you invoke after brainstorming is writing-plans.
Understanding the idea:
Exploring approaches:
project-ci-cd skill for assessmentPresenting the design:
Confirming terminology (Step 5): After design approval, verify:
Technology migration validation (Step 6): This step is triggered when the design replaces a core technology — i.e., any runtime, database, framework, or language that appears in 3+ files or has a public API. Library upgrades or minor dependency swaps do NOT trigger this step.
When triggered, you MUST:
Example:
## Migration: Lua → Python
### Files to Update
- src/executor/lua_bridge.lua → src/executor/python_runner.py
- src/script/validator.py (lua_script → python_script)
- docs/design/executor/README.md (API examples)
### Migration Checklist
- [ ] Update all references in code
- [ ] Update all references in docs
- [ ] Update all references in examples
- [ ] Verify with grep: no "lua_" remaining
State: "This involves a technology migration. I am verifying all files that need updating."
After design approval, before writing design doc:
For critical logic paths (state machines, first-time vs recurring, complex data flow):
Example pseudo-code:
# color mode: fixed position after first detection
if is_first_detection:
save_position(target_region)
extract_color_from_position()
else:
# Use saved position, don't re-locate
extract_color_from_saved_position()
This catches design gaps early (like "first vs subsequent" logic we missed).
Trigger: Only for significant changes (new features, API modifications, data model changes). Skip for trivial changes (typos, config tweaks, single-line fixes).
After implementation feasibility check, before writing design doc:
For any new feature or significant change:
Checklist template:
## Boundary Cases
### Usage Scenarios (min 5)
1. [Scenario 1]
2. [Scenario 2]
3. [Scenario 3]
4. [Scenario 4]
5. [Scenario 5]
### Key Parameters
- param_name: default=X, range=[min,max], edge_cases=[...]
### Error Handling
- error_condition → expected_behavior
Why: Recent analysis shows 70%+ fix commits were due to incomplete initial implementation. Adding boundary checks reduces iteration cycles. Pairs with writing-plans skill's Testing Scenarios and Boundary Conditions fields.
Documentation:
docs/design/README.mdImplementation:
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer