Automated summary
This skill ingests an existing concept document, spec, or brief into GSD-CC by reading it, playing back its own understanding, surfacing gaps and contradictions, and generating standardized project artifacts.
Strengths
- The playback step forces a restatement of the project in the skill's own words (problem, solution, audience, workflow) and waits for user confirmation before continuing
- The analysis step explicitly separates what is clear, what is still vague, and where contradictions were found, then asks targeted follow-ups
- Handles varied inputs: pasted text, single or multiple file paths, and web content pasted into chat
- Honors the language set via "GSD-CC language" in CLAUDE.md and defers to the STATE_MACHINE.json contract instead of inventing phase names
Limitations
- Requires an interactive back-and-forth; nothing is produced until the user validates the playback
- Depends on GSD-CC template files such as STATE_MACHINE.json being available to update .gsd/STATE.md
- Tied to the Claude Code environment (CLAUDE.md, allowed-tools, AskUserQuestion), so it does not port cleanly to other agents
Use it when a concept document, spec, or brief already exists in any format and needs to become clean GSD-CC project artifacts.
Avoid it when starting from a blank page with no source document, or when you need a single non-interactive artifact generation pass.
Security analysis
SafeThe skill is a document-ingestion workflow: it reads a concept file or pasted text, echoes back its understanding, asks clarifying questions via AskUserQuestion, and writes standardized project artifacts. There are no destructive commands, no network calls, no credential handling, and no obfuscated payloads; Bash is granted but not exercised in the visible instructions. The only meaningful risks are the broad Bash/Write grants and reading whatever path the user supplies, both of which are normal for this class of task.
- •Bash is declared in allowed-tools but never used by the visible instructions — unnecessary permission surface
- •Reads user-supplied file paths of arbitrary size/type, which could touch sensitive files if a user points it at them (user-directed, low risk)
- •Depends on external state templates (STATE_MACHINE.json) that define phase rules outside this file and could change behavior
Examples
/gsd-cc-ingest Voici mon concept : une app mobile qui aide les petits producteurs à vendre leurs surplus directement aux restaurants du quartier, avec paiement intégré et logistique mutualisée.../gsd-cc-ingest Regarde ces fichiers : /docs/spec.md et /docs/wireframes.md — importe-les dans GSD-CC.J'ai récupéré ce brief depuis Notion, il est un peu brouillon. /gsd-cc-ingest transforme-le en artefacts de projet propres.name: gsd-cc-ingest description: > Import an existing concept document, spec, or brief into GSD-CC. Analyzes the document, identifies gaps, asks targeted follow-ups, and generates standardized project artifacts. Use when user says /gsd-cc-ingest, pastes a concept, or uploads a document. allowed-tools: Read, Write, Edit, Glob, Bash, AskUserQuestion
/gsd-cc-ingest — Import External Concept
You take an existing document — any format, any quality — and turn it into clean GSD-CC project artifacts. The user may have a polished spec, a rambling Google Doc, a Notion page dump, a PDF, a chat history, or just a wall of text pasted into the chat.
Your job: understand it, verify your understanding, fill the gaps, and produce standardized output.
Language
Check for "GSD-CC language: {lang}" in CLAUDE.md (loaded automatically). All output must use that language. If not found, default to English.
State Contract
Before updating .gsd/STATE.md, follow the phase contract in
./.claude/templates/STATE_MACHINE.json, ~/.claude/templates/STATE_MACHINE.json,
or ./gsd-cc/templates/STATE_MACHINE.json as the source repo fallback.
Do not invent phase names or required-field rules locally.
Step 1: Receive the Input
The input can come in many forms:
- Pasted text — the user copies their concept into the chat
- File path — "here's my concept: /path/to/concept.md"
- Multiple files — "look at these files: /docs/spec.md, /docs/wireframes.md"
- Web content — the user might copy-paste content from a web page into the chat
Read whatever they provide. If it's a file path, use Read. If it's multiple files, read all of them.
Say:
Got it. Let me read through this carefully.
Step 2: Playback — "Here's What I Understood"
Read the entire document. Then explain IN YOUR OWN WORDS what you understood — as a coherent narrative, not a bullet list. This is like telling a friend what the project is about after reading the spec.
OK, I've read through everything. Let me tell you what I understood —
correct me wherever I'm wrong.
Then explain in your own words, structured into clear sections:
THE PROBLEM
{What pain point or need does this address? Why does this project
exist? What's the current situation that's not good enough?}
THE SOLUTION
{What are we building? One paragraph, plain language, no jargon.}
WHO IT'S FOR
{Who uses this? What's their situation? What do they care about?}
HOW IT WORKS
{The core workflow or experience — what happens step by step when
someone uses it? Walk through the main journey.}
HOW IT LOOKS & FEELS
{Design direction, vibe, personality — if the document mentions this.
Skip if the document is purely technical.}
WHAT MAKES IT DIFFERENT
{Why not use an existing solution? What's the unique angle?
Skip if not apparent from the document.}
Did I get that right, or did I misunderstand something?
This is the most important step. Write it like you're explaining the project to someone new. Use simple language. Don't parrot the document back — rephrase it to show you actually understood the intent. Not every section needs to be long — if the document doesn't cover "how it looks", write one sentence or skip it. But the structure helps the user quickly spot where you got it wrong.
Wait for the user's response. They might say:
- "Yes, exactly!" → proceed to Step 3
- "Almost, but X is wrong..." → correct your understanding, rephrase the relevant part, confirm again
- "No, that's not what I meant at all..." → ask what they actually mean, update your understanding, try the playback again
Do NOT proceed until the user confirms you understood correctly. Iterate as many times as needed.
Step 3: Analysis — Clear, Vague, Contradictions
Once the user confirms your understanding, show the structured analysis:
Great. Here's what's clearly defined, what's still vague, and where
I found contradictions:
CLEAR:
✓ {Area 1} — {brief summary}
✓ {Area 2} — {brief summary}
...
VAGUE OR MISSING:
? {Area 1} — {what's unclear}
? {Area 2} — {what's missing}
...
CONTRADICTIONS (if any):
⚠ {Description — "Section 2 says X but section 5 says Y"}
...
I'd like to go through the unclear points with you one by one.
Ready?
Wait for confirmation.
Step 4: Guided Gap-Filling
Go through each vague/missing point ONE AT A TIME. Never ask multiple questions at once. Always use AskUserQuestion for every question — never output a question as plain text.
Use AskUserQuestion with a clear question and, where possible, predefined options to make it easy for the user to respond:
AskUserQuestion:
Question: "{What's unclear, in plain language}"
Header: "{Topic}"
Options:
- label: "{Option A}"
description: "{brief explanation}"
- label: "{Option B}"
description: "{brief explanation}"
- label: "Something else"
description: "I'll explain"
Context: "{Why it matters — one sentence explaining why this affects the project}"
If the question is too open-ended for predefined options, use AskUserQuestion without options (free-text input).
Wait for the answer. Then move to the next point:
Got it. Next one:
{Topic}: ...
Adapt the content of your questions to the user's level (same as /gsd-cc-profile — read the room from how the document is written). Examples of question content by level:
For a technical spec:
- Question content: "Your spec covers the API endpoints but doesn't mention authentication. What's the plan?"
For a non-technical brief:
- Question content: "You described what the dashboard shows, but what happens when someone clicks a number?"
For a vague concept:
- Question content: "You mention 'user management' — what does that mean to you? Just login/signup, or more?"
These are examples of what to ask — the delivery format is always AskUserQuestion.
If the user says "I don't know" or "you decide" — note it as an open question for later phases. Don't push.
After resolving contradictions and filling gaps, summarize what changed:
OK, here's what we clarified:
• {Point 1}: {decision}
• {Point 2}: {decision}
• {Point 3}: left open for later
{Remaining open points} will be addressed during planning.
Step 5: Assess Coverage
After filling gaps, check which GSD-CC artifacts you have enough information for:
| Artifact | Can generate? | Why / why not | |----------|--------------|---------------| | PLANNING.md | Yes/Partial/No | {explanation} | | VISION.md | Yes/Partial/No | {explanation} | | PROJECT.md | Yes/No | {explanation} | | type.json | Yes/No | {explanation} |
Tell the user:
Based on your document and our conversation, I can generate:
✓ PLANNING.md — full project brief
✓ PROJECT.md — elevator pitch
✓ type.json — {type} / {rigor}
◐ VISION.md — partial (you described the core experience in detail
but not the look & feel — want to add that now or later?)
Generate these now?
Step 6: Generate Artifacts
On confirmation, create the .gsd/ directory and write:
.gsd/PLANNING.md
Use the first template path that exists as reference for structure and frontmatter:
./.claude/templates/PLANNING.md~/.claude/templates/PLANNING.md./gsd-cc/templates/PLANNING.md(source repo fallback)
Map the document's content to the standard sections:
- Vision (from the document's intro/summary)
- Users (from any user descriptions, personas, or target audience sections)
- Requirements v1, v2, Out of Scope (from feature lists, must-haves, nice-to-haves)
- Tech Stack (from any technical decisions in the document, or leave for Seed to fill)
- Architecture Decisions (from any technical choices mentioned)
- Open Questions (from remaining gaps)
Source everything. For each section, note where in the original document the information came from. This lets the user verify the mapping.
.gsd/VISION.md (if enough detail)
Only generate this if the document contains detailed descriptions of how things should look, feel, or work from the user's perspective. If it's a dry technical spec, skip VISION.md — the user can create it later with /gsd-cc-vision.
.gsd/PROJECT.md
3-5 sentence elevator pitch, distilled from the document.
.gsd/type.json
Detect project type and rigor from the document content, same logic as
/gsd-cc-seed (see the active seed skill file, preferring
./.claude/skills/seed/SKILL.md, then ~/.claude/skills/seed/SKILL.md, then
./gsd-cc/skills/seed/SKILL.md as a source repo fallback).
.gsd/STATE.md
Use the first template path that exists as reference:
./.claude/templates/STATE.md~/.claude/templates/STATE.md./gsd-cc/templates/STATE.md(source repo fallback)
Initialize with phase: seed-complete (since we're replacing the Seed step).
.gsd/DECISIONS.md
Log any decisions that were already made in the original document:
# Decisions
<!-- Append-only register. Never delete entries, only add. -->
## From Original Concept
- {Decision from document} (source: original concept, section X)
- {Decision from document} (source: original concept, section Y)
## From Ingest Conversation
- {Decision from gap-filling conversation} (reason: {rationale})
.gsd/INGEST-SOURCE.md
Keep a reference to what was ingested:
# Ingest Source
Ingested on: {date}
Source: {file path(s) or "pasted text"}
Original length: ~{word count} words
Gaps identified: {count}
Gaps resolved: {count}
Gaps remaining: {count — these are in PLANNING.md Open Questions}
Step 7: What's Still Missing?
After generating artifacts, honestly assess what wasn't in the document and wasn't covered in the conversation:
✓ Artifacts generated.
Still open — you might want to address these later:
• {Open question 1} — consider /gsd-cc-discuss during planning
• {Open question 2} — could be covered in /gsd-cc-vision
...
These are also listed in PLANNING.md under "Open Questions".
Step 8: Hand Off
✓ Ingest complete.
.gsd/PLANNING.md — project brief (from your document)
.gsd/PROJECT.md — elevator pitch
.gsd/type.json — {type} / {rigor}
.gsd/STATE.md — initialized
.gsd/DECISIONS.md — {n} decisions from your document
.gsd/INGEST-SOURCE.md — reference to source
{.gsd/VISION.md — if generated}
┌─────────────────────────────────────────────┐
│ Start a fresh session to continue: │
│ │
│ 1. Exit this session │
│ 2. Run: claude │
│ 3. Type: /gsd-cc │
│ │
│ Next: roadmap creation. │
│ Optional: /gsd-cc-vision for more detail │
└─────────────────────────────────────────────┘
Do NOT continue in this session. Reading and analyzing the document, the back-and-forth conversation, and generating all artifacts has used a large portion of the available context window. Continuing in this session risks degraded quality in later steps. A fresh session starts with full capacity.
Rules
- Don't assume. If the document says "user management" without detail, ask. Don't invent features.
- Respect the document. The user spent time writing it. Don't dismiss parts of it. If something seems wrong, ask — don't silently fix it.
- Preserve specificity. If the document says "response time under 200ms", put exactly that in the requirements. Don't generalize to "should be fast."
- Flag contradictions, don't resolve them. "Your document says X in section 2 but Y in section 5. Which one is correct?" Don't pick one silently.
- Don't over-generate. If the document is a rough idea on half a page, don't generate a 10-page PLANNING.md full of assumptions. Generate what you have, mark the rest as Open Questions.
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/external-concept-import-mryiqgqm/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/external-concept-import-mryiqgqm' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/external-concept-import-mryiqgqm/download' --output '.skill-downloads/external-concept-import-mryiqgqm/SKILL.md.part' && mv '.skill-downloads/external-concept-import-mryiqgqm/SKILL.md.part' '.skill-downloads/external-concept-import-mryiqgqm/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Tools declared by the author (check availability in your agent): Read, Write, Edit, Glob, Bash, AskUserQuestion
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/external-concept-import-mryiqgqm/SKILL.md' && test -s '.skill-downloads/external-concept-import-mryiqgqm/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/gsd-cc-ingest' && cp -R '.skill-downloads/external-concept-import-mryiqgqm' '.claude/skills/gsd-cc-ingest'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/external-concept-import-mryiqgqm'openskills read 'external-concept-import-mryiqgqm'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/external-concept-import-mryiqgqm/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.