Entry point of the self-organizing skill chain. Launched right after task creation. Asks 5-7 questions, determines task type (product / feature / fix), waits for approval — then proposes the next skill per branch: product → habit-first, feature → arch-first, fix → audit-first. Principle: without a defined type, the downstream skills are built on guesses. idea-first closes this gap before all the others. Use when: automatically as the first step after task creation; manually before any task ...
Scanned 9/3/2026
Install to Claude Code
npx -y skills add bearded-illirian/trailmark --skill idea-first --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Idea First?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/bearded-illirian-idea-first)More formats (shields.io, HTML) on the badges page.
---
name: idea-first
description: |
Entry point of the self-organizing skill chain. Launched right
after task creation. Asks 5-7 questions, determines task type
(product / feature / fix), waits for approval — then proposes the
next skill per branch: product → habit-first, feature → arch-first,
fix → audit-first.
Principle: without a defined type, the downstream skills are built
on guesses. idea-first closes this gap before all the others.
Use when: automatically as the first step after task creation;
manually before any task needing type + scope check
---
# Idea-First Protocol
Idea-first is the **entry point** of the self-organizing skill chain. Runs right after the task is created, before any technical analysis.
**Why:** without an explicit definition of the task type the next skills are built on guesses — arch-first decomposes a fix into blocks when audit-first was needed, library-first looks in a non-existent layer, the agent goes into code when habit design is required.
Idea-first closes this gap with a 5-10 minute dialog.
**Key principle:** idea-first **does not read code** — it determines the task type through dialog. Code is read by the next skills.
## Input
A new task description just registered by the fast-track flow.
## Output
`idea-first-{N}.md` fixing the task type (product / feature / fix) and scope, after 5-7 discovery questions and user approval.
## Hands off to
`habit-first` (product), `arch-first` (feature), or `audit-first` (fix), based on the classified type.
---
## Step 0 — Check task context
Ensure `{log_dir}` and `{slug}` are known.
If not — run resolver (list recent tasks, prompt user), then continue.
**Cannot skip.** Without `{log_dir}` the artifact will not be saved.
---
## Step 0.5 — Hot-fix exception
If the task is an obvious small edit (one line, a typo, a known problem with a known fix) — **skip all of idea-first** and go straight to execute.
### Signs of a hot-fix
| Sign | Example |
|---|---|
| One line / one value | Change timeout from 30 to 60 sec |
| Typo / formatting | Fix a typo in a button label |
| Known fix for a known problem | Remove a duplicate in SQL you added yourself |
| Time to complete < 5 minutes | — |
### What to output
```
Looks like a hot-fix — one line / obvious edit.
Skipping idea-first → going straight to execute.
If more complex than it looks — say "stop" and we'll launch idea-first.
```
Then 3 short steps:
1. **Register block 1 in task_blocks** — hot-fix = one task = one block. `atom_type='manual'`, `source='idea-first'`. `INSERT OR IGNORE` guards repeats.
2. **Execute** — Claude does the edit manually (Read / Edit / Bash). After completion — commit + push, remember `{last_commit_hash}`.
3. **Finalize via `$ship-first` task-level** — invoke WITHOUT `{block_num}` → activates task-level mode: closes block 1, updates STATUS.md, appends sessions.md.
**Hot-fix branch is done here.** No `flow-first-*.md` / `library-first-*.md` / `plan-first-*.md` — that's specific to the short path.
If unsure whether it's a hot-fix — launch idea-first. Better 5 minutes of calibration than the wrong way.
---
## Step 1 — Discovery questions
Ask 5-7 open questions. Understand the task at the why / for-whom / how-often level, not only technical.
### Baseline set
| # | Question | What we're figuring out |
|---|---|---|
| 1 | What hurts — what problem are we solving? | Type of pain |
| 2 | Is this new or already exists? | Product vs feature vs fix |
| 3 | Who will use it — only you or others? | Habit-fit / scope |
| 4 | How often — every day / by event / one-off? | Habit loop (if a product) |
| 5 | Is there something similar already in the project? | Anchors for the next skill |
| 6 | What should exist at the end — in one sentence? | Final scope |
| 7 | (optional) Deadline or background? | Work mode |
### Rules
- **Open-ended, not yes/no** — "who will use it?" not "is it for you?"
- **One at a time** — don't dump all 7 at once
- **Adapt on the fly** — clear "fix" signal → skip habit questions
### Shortened mode
If task.md already shows the type — ask only 2-3 clarifying questions, not all 7.
---
## Step 2 — Task type determination
### Three types
| Type | Sign | Next skill |
|---|---|---|
| **New product** | Building from scratch, for people, habit loop needed | `habit-first` |
| **New feature** | Adding inside existing product/system | `arch-first` |
| **Fix / problem** | Something broke or works incorrectly | `audit-first` |
### Heuristics
| Sign from answers | Type |
|---|---|
| "Want to build X for myself/team/clients" | New product |
| "Add Y into existing Z" | New feature |
| "Extend the functionality of A" | New feature |
| "Broken", "not working", "bug" | Fix |
| "Security hole", "vulnerability" | Fix |
| "Audit", "find gaps in X" | Fix |
### Subtypes
| Subtype | Type | Specific |
|---|---|---|
| Hot-fix | Fix | Already cut off in Step 0.5 |
| Refactoring | Fix | Not a bug — still audit-first |
| Epic / large task | Any | 5+ blocks → arch-first regardless of type |
| Skill / agent | Feature | AI infra special case |
### If unambiguous determination fails
Show options with rationale, ask user. Do not guess.
---
## Step 3 — Calibration + approval
Before writing the artifact — show user the determined type + scope and wait for explicit approval.
### Output format
```
Based on the answers I determined:
**Type:** {product / feature / fix}
**Subtype:** {if any}
**Scope:** {1-2 sentences}
**Out of scope:** {what we don't do}
Next step → {habit-first / arch-first / audit-first}
Ok? Or correct me.
```
### Variants
| Answer | Action |
|---|---|
| "ok" / "go" / "yes" | Proceed to Step 4 |
| Type correction | Update → show again → wait for approval |
| Scope correction | Update → show again → wait for approval |
| "stop" | Stop, wait for instructions |
**Prohibited:** proceeding to Step 4 without explicit type approval.
---
## Step 4 — Write the artifact
After approval — write `idea-first-{N}.{R}.md` to `{log_dir}` and register in routing DB.
Default `{N}` = `0` (task-level, since idea-first runs before block decomposition).
### File format
```markdown
> 🔗 Task: {log_dir}/task.md
# Idea-First — {N}.{R}
**Date:** {date}
**Task:** {slug}
## Type
**{product / feature / fix}** — {subtype if any}
## Scope
{1-2 sentences}
## Out of scope
{what we don't do}
## Discovery answers
| # | Question | Answer |
## Next skill
`{habit-first / arch-first / audit-first}` — because {rationale}
```
Register in task_artifacts + append row to `## Task files` in task.md.
---
## Step 5 — Route to the next skill
After writing the artifact — **automatically** invoke the next skill per type. Do not ask.
| Task type | Next skill | What it does |
|---|---|---|
| New product | `Skill('habit-first')` | Designs habit loop → outputs Habit Brief → hands off to arch-first |
| New feature | `$arch-first` | Decomposes into blocks → pins decisions |
| Fix / problem | `$audit-first` | Audit across 6 planes → gap table |
Context (`{log_dir}`, `{slug}`, artifact path) is passed via session — the next skill picks it up at Step 0.
---
## Anti-patterns
### ❌ Guess the task type from the title without questions
Received "migration logic" → decided "feature, going to arch-first" without discovery. The user meant a fix of an existing migration mechanism.
**Rule:** 5-7 questions (or 2-3 shortened) mandatory. Type derived from answers, not the title.
### ❌ Move to the next skill without type approval
Determined type → immediately called `Skill(arch-first)` without showing calibration. The user had no chance to correct.
**Rule:** Step 3 (calibration + approval) is mandatory. Explicit "ok" before Step 4.
### ❌ Read code inside idea-first
Asked 2 questions and went to grep the project structure "to understand better". That's the job of flow-first / audit-first.
**Rule:** idea-first works only through dialog. No Read / grep / find. Code reading in the next skills.
### ❌ Ignore the hot-fix exception
One-line config change. Agent honestly asked 7 questions, wrote an artifact, called arch-first. 30 minutes on a five-second edit.
**Rule:** Step 0.5 hot-fix exception — always check. Obvious one-step edit → skip idea-first.
### ❌ Inlining the skill instead of Skill()
Agent received task → executed idea-first protocol manually from memory, without `Skill()` tool. Outdated / incomplete protocol version, no accuracy guarantee.
**Rule:** always launch via `$idea-first`. Never imitate inline.
---
## Related skills
- **habit-first** — designs the habit loop for new products; invoked from idea-first for the "product" branch
- **arch-first** — decomposes features into blocks; invoked for "feature"
- **audit-first** — scans across 6 planes for fixes; invoked for "fix"
- **ship-first** — closes the task at the end; also handles the hot-fix short-path finalization
---
## Step 99 — Log invocation
```bash
sqlite3 {routing_db} \
"INSERT INTO skill_invocations (task_id, block_num, skill_name, invoked_at)
VALUES ('{slug}', '{N}', 'idea-first', datetime('now'))" 2>/dev/null || true
```
If `{slug}` / `{N}` are unknown the row is written with empty values; `|| true` keeps a logging failure from aborting the skill.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!