Claude-skill-registry imagine
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/imagine" ~/.claude/skills/majiayu000-claude-skill-registry-imagine && rm -rf "$T"
skills/data/imagine/SKILL.mdImagine — Idea Intake (Interactive)
Invocation
Run this command with either:
- A free-form initial idea (recommended):
/imagine <initial idea text...>
OR
- An existing idea folder id to refine the current idea:
/imagine <IDEA_ID>
Where:
may contain spaces if you pass an initial idea text.$ARGUMENTS- If
is empty, STOP and ask the user to rerun with an initial idea (or an IDEA_ID).$ARGUMENTS
Resolve IDEA_ID (required)
Before using any paths, resolve or create the idea folder:
- If
matches$ARGUMENTS
, treat it as^IDEA-\\d{4}(-.*)?$
and callIDEA_REF
withvf.resolve_idea_id
.idea_ref = $ARGUMENTS - Otherwise, treat
as free-form idea text and call$ARGUMENTS
withvf.create_idea_from_text
.initial_text = $ARGUMENTS - Store the returned
asidea_id
.IDEA_ID - Use
for all paths, YAML headers, and run log entries.IDEA_ID
Goal
Turn a rough idea into a first, reviewable
idea.md stored at:
docs/forge/ideas/<IDEA_ID>/inputs/idea.md
This command is interactive by default:
- Phase 1: draft an idea.md + ask clarifying questions
- Phase 2: after user replies, save the final
and capture answers for future stagesidea.md
Canonical paths (repo-relative)
Ideas root:
docs/forge/ideas/
Per-idea root:
docs/forge/ideas/<IDEA_ID>/
Inputs:
(final target)docs/forge/ideas/<IDEA_ID>/inputs/idea.md
(generated)docs/forge/ideas/<IDEA_ID>/inputs/imagine_questions.md
(captured; append-only)docs/forge/ideas/<IDEA_ID>/inputs/imagine_answers.md
History:
docs/forge/ideas/<IDEA_ID>/runs/<RUN_ID>/imagine_questions.mddocs/forge/ideas/<IDEA_ID>/runs/<RUN_ID>/idea_draft.mddocs/forge/ideas/<IDEA_ID>/runs/<RUN_ID>/idea_final.md
Per-idea logs:
(append-only)docs/forge/ideas/<IDEA_ID>/run_log.md
(rolling status)docs/forge/ideas/<IDEA_ID>/manifest.md
Directory handling
Ensure these directories exist (create them if missing):
docs/forge/ideas/docs/forge/ideas/<IDEA_ID>/inputs/docs/forge/ideas/<IDEA_ID>/runs/<RUN_ID>/
If you cannot create directories or write files directly, output the artifacts as separate markdown blocks labeled with their target filenames and include a short note listing missing directories.
Step 0 — Resolve or create IDEA_ID
Use the tool-based resolution logic from Resolve IDEA_ID (required) above, then proceed:
- If
exists, use it as the base idea.docs/forge/ideas/<IDEA_ID>/inputs/idea.md - If it does not exist, proceed as a new idea using the resolved/created
.IDEA_ID
Step 1 — Create the idea workspace (if missing)
Ensure per-idea files exist:
(create if missing; can start empty)docs/forge/ideas/<IDEA_ID>/run_log.md
(create if missing; template below)docs/forge/ideas/<IDEA_ID>/manifest.md
Step 2 — Run identity
Generate:
as a filesystem-safe id (Windows-safe, noRUN_ID
), e.g.::2026-01-14T05-22-41Z_imagine-8f3c
Also capture:
as ISO-8601 time (may include timezone offset)generated_at
Step 3 — Gather context
If refining an existing idea
Include file contents in context:
- Existing idea (if present): @docs/forge/ideas/<IDEA_ID>/inputs/idea.md
If creating a new idea
Use
$ARGUMENTS (initial idea text) as the base.
Step 4 — Produce clarifying questions
Create 5–12 questions, optimized to reduce ambiguity without over-scoping.
Guidance:
- Prefer questions that resolve: target user, core problem, non-goals, constraints, MVP vs later, inputs/outputs.
- Avoid implementation rabbit holes unless the idea explicitly mentions them.
- If the idea implies a framework/tooling product, ask about: audience, intended workflow, what “done†looks like.
Write questions to:
(overwrite allowed)docs/forge/ideas/<IDEA_ID>/inputs/imagine_questions.mddocs/forge/ideas/<IDEA_ID>/runs/<RUN_ID>/imagine_questions.md
Step 5 — Draft idea.md
(REVIEWABLE)
idea.mdCreate a draft idea document based on:
- the base idea (existing idea.md or initial text)
- reasonable assumptions clearly marked
- TODO markers where answers are needed
Write draft to:
docs/forge/ideas/<IDEA_ID>/runs/<RUN_ID>/idea_draft.md
Do NOT write to
inputs/idea.md yet.
Step 6 — Ask the user and stop (Phase 1)
In chat, present:
- The generated questions as a numbered list.
- A short note: “Reply with answers in the same numbered format. Optionally include edits to the draft idea.â€
- Also present the draft idea (or a short summary + tell where it was saved, depending on tool limits).
Then append a run_log entry with:
- Status:
NEEDS_USER_INPUT - Run-ID:
<RUN_ID> - Outputs so far:
,inputs/imagine_questions.mdruns/<RUN_ID>/idea_draft.md
STOP and wait for the user reply.
Phase 2 — Capture answers, finalize inputs/idea.md
inputs/idea.mdWhen the user replies:
Step 7 — Persist answers (append-only)
Append the user’s answers to:
docs/forge/ideas/<IDEA_ID>/inputs/imagine_answers.md
Format:
### <ISO-8601> — Answers for <RUN_ID> <user answers verbatim, lightly formatted if needed>
Step 8 — Produce final idea.md
idea.mdUpdate the draft by incorporating answers:
- Replace TODOs with decisions
- Move information into correct sections
- Keep scope stable; do not add new requirements beyond what the user confirmed
- If something remains unclear, keep it in an “Open Questions†section (but keep it short)
Write final to BOTH:
(overwrite allowed)docs/forge/ideas/<IDEA_ID>/inputs/idea.mddocs/forge/ideas/<IDEA_ID>/runs/<RUN_ID>/idea_final.md
Step 9 — Update logs + manifest
Append a SUCCESS entry to:
docs/forge/ideas/<IDEA_ID>/run_log.md
And create/update manifest:
- if
exists, update only the keys undermanifest.md
sectionIdea
Output Format: idea.md
(Markdown + YAML header)
idea.mdWrite
idea.md with a YAML header followed by sections.
YAML header (example)
--- doc_type: idea idea_id: "<IDEA_ID>" generated_by: "Imagine (Idea Intake)" generated_at: "<ISO-8601>" run_id: "<RUN_ID>" source: - "user_input ($ARGUMENTS or existing inputs/idea.md)" qa: questions: "inputs/imagine_questions.md" answers: "inputs/imagine_answers.md (appended)" status: "Draft" ---
Recommended sections
Idea
One-liner
(1 sentence)
Problem / Motivation
- ...
Target Users
- ...
Goals
- ...
Non-Goals
- ...
Constraints
- ...
Inputs
- ...
Outputs
- ...
High-level Workflow
- ...
- ...
Success Criteria
- ...
Open Questions (if any)
- ...
Logging Requirements: run_log.md
(append-only)
run_log.mdAppend entries with this shape:
Phase 1 (needs input)
### <ISO-8601 timestamp> — Imagine (Idea Intake) - Idea-ID: <IDEA_ID> - Run-ID: <RUN_ID> - Mode: new | refine - Inputs: - user_input ($ARGUMENTS) OR inputs/idea.md (if refining) - Outputs: - inputs/imagine_questions.md - runs/<RUN_ID>/imagine_questions.md - runs/<RUN_ID>/idea_draft.md - Status: NEEDS_USER_INPUT - Notes: - <1–3 bullets on main unknowns>
Phase 2 (finalized)
### <ISO-8601 timestamp> — Imagine (Idea Intake) — Finalize - Idea-ID: <IDEA_ID> - Run-ID: <RUN_ID> - Outputs: - inputs/imagine_answers.md (appended) - inputs/idea.md - runs/<RUN_ID>/idea_final.md - Status: SUCCESS | SUCCESS_WITH_WARNINGS | FAILED - Notes: - <1–5 bullets on key decisions captured>
Manifest template (if creating new)
# Manifest — <IDEA_ID> ## Idea - idea_status: Draft - last_updated: <YYYY-MM-DD> - last_run_id: <RUN_ID> - latest_inputs: - inputs/idea.md - inputs/imagine_questions.md - inputs/imagine_answers.md - notes: - <optional bullets>
Failure handling
If the initial idea is extremely short/vague:
- Still generate questions
- Draft
with placeholders/TODOsidea.md - Do not invent details