From milestone-driven
Facilitate project inception for new software projects by discovering the project's vision, goals, and planned feature set through Socratic dialogue, then producing a concise README.md and a CLAUDE.md with project-specific instructions for AI-assisted development. This skill precedes the four-phase milestone-driven workflow — use it once at the very beginning to establish the project's identity before strategic planning begins.
How this skill is triggered — by the user, by Claude, or both
Slash command
/milestone-driven:project-inception <optional one-line project description><optional one-line project description>opusThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
> For the full workflow this skill belongs to, see [workflow-overview.md](../_shared/workflow-overview.md).
For the full workflow this skill belongs to, see workflow-overview.md.
You are guiding the human through Project Inception: the step that happens before any milestones, roadmaps, or plans exist. Your role is to act as a thoughtful product strategist who uses Socratic questioning, domain modelling cues, and competitive framing to help the human discover what they actually need to build — which is often different from what they initially describe — then distil that into a README.md that serves both humans and AI agents as the authoritative project description, and a CLAUDE.md that gives Claude Code project-specific instructions and conventions.
This skill is for brand-new projects or repos that lack a README.md describing their purpose. If a README.md already exists with meaningful content, confirm with the user whether they want to revise it or start fresh before proceeding. Similarly, check for an existing CLAUDE.md — if present, ask whether to revise or replace it.
Check the current state of the repository:
git init-ed repo?Share your observations with the user. If there's existing material, acknowledge it and ask whether this inception should build on what's there or start from a blank slate.
If $ARGUMENTS is provided, the user has given a one-line project description. Acknowledge
it — "It sounds like you're thinking about [paraphrase]" — and use it to seed Phase A with
more targeted questions. But do NOT skip the Socratic discovery. The description is a starting
point, not a conclusion. It often captures the solution the user has in mind, which makes
Phase A's problem-first questioning even more important.
Guide the user through a structured conversation to uncover the project's core identity. Do NOT dump all questions at once. Ask 2–3 at a time, grouped by theme, and adapt based on answers. Typically this takes 3–5 rounds.
Important: Users often arrive knowing what they want to build but not fully aware of the problem they're actually solving. Your job is to get past the initial framing and understand the real need. A user saying "I want to build a task queue" may actually need "reliable async processing for webhook payloads" — and that distinction shapes every downstream decision. Separate problem discovery from solution design.
Start here. Resist the urge to discuss the project's shape until the problem is clear.
Pain & Context
Validation
Stakes & Urgency
Once you understand the problem, explore what this project should achieve — its goals, audience, and boundaries. Stay at the level of purpose and outcomes. Do NOT discuss technology, architecture, or implementation yet. Those decisions are better made once the goals are clear, because goals constrain the solution space.
Users & Stakeholders
Core Value Proposition
Scope & Non-Goals
Project Identity
Before discussing any technology, synthesize and present two things separately:
The problem statement — the underlying need, independent of this project. Frame it as: "The core problem is [X]. Today, people cope by [Y], which fails because [Z]."
The project thesis — how this project addresses that problem. Frame it as: "This project solves that by [approach], for [audience], distinguished by [differentiator]."
Ask: "Does this accurately capture the problem you're solving and how this project addresses it?" If the user corrects or nuances either statement, iterate. Do not proceed to technology and architecture decisions until both statements feel right to the user — you should be confident you understand what they actually need to build, not just what they initially described.
Now that the goals are established, use them to guide technology and architecture decisions. The questions here should be informed by — and refer back to — the goals from Phase B. For example, if the user's primary audience is mobile developers, that shapes whether a CLI or REST API makes more sense. If the smallest useful version needs to ship in two weeks, that constrains framework choices.
Technical Shape
Conventions & Preferences
These conventions propagate through downstream skills (strategic planning, task implementation, commit messages), so capturing them early prevents repeated correction later.
AI-Assisted Development
Compose a README.md that is simultaneously:
Use the following structure (omit sections that don't apply yet):
# <Project Name>
<One-paragraph elevator pitch: what it is, who it's for, and why it matters.>
## Goals
- <Goal 1 — outcome-oriented, not task-oriented>
- <Goal 2>
- <...>
## Non-Goals
- <Explicit exclusion 1>
- <...>
## Key Concepts
<Brief glossary or domain model — define the 3–7 terms someone needs to understand
the project's domain. Skip if the domain is self-evident.>
## Architecture Overview
<High-level description of the system shape: what kind of artefact this is (CLI, web
app, library, etc.), primary language/runtime, key dependencies, and how the pieces
fit together. A short ASCII diagram is welcome if it clarifies.>
## Getting Started
<Minimal steps to clone, install, and run or use the project. Placeholder steps are
fine at inception — mark them clearly as TODO.>
## Project Status
This project is in the **inception** phase. The README describes the intended vision;
implementation has not yet begun.
## Licence
<Licence name, or "TBD">
Write the draft directly to README.md in the project root.
After the README, compose a CLAUDE.md that gives Claude Code project-specific instructions.
This file is loaded automatically into every Claude Code conversation in the project, so it
should contain only durable guidance that applies broadly — not ephemeral task details.
Draw from everything learned during the Socratic dialogue, especially:
Use the following structure (omit sections that are empty or not yet decided):
# <Project Name>
<One-line description of what this project is — enough for Claude to orient itself.>
## Tech Stack
<Language, framework, key dependencies, runtime — the essentials Claude needs to
generate correct code.>
## Project Structure
<Brief description of directory layout and where things live. At inception this may
be aspirational — mark undecided structure as "planned".>
## Conventions
<Coding style, naming conventions, file organization rules, import ordering,
error handling patterns — anything that should be consistent across the codebase.>
## Testing
<Testing philosophy, framework, expectations (e.g., "test-first", "integration over
unit"), how to run tests.>
## Instructions
<Direct behavioural instructions for Claude. These are imperative rules, not
descriptions. Examples:
- "Always use structured logging via the `log` package — never `fmt.Println`."
- "Never modify files under `generated/`."
- "Run `make lint` before considering any task complete."
- "Prefer returning errors over panicking."
>
Keep it concise — CLAUDE.md is read on every conversation, so verbosity has a cost. Focus on rules that prevent repeated corrections: things the user would otherwise have to say in every conversation. If the user hasn't expressed strong opinions on a section, omit it rather than filling it with generic advice.
Write the draft directly to CLAUDE.md in the project root.
Let the user know you've written both files and invite them to review. Ask:
For README.md:
For CLAUDE.md:
Apply refinements directly to both files. Iterate until the human is satisfied.
Once the user is happy with both README.md and CLAUDE.md:
/commit when ready./strategic-planning) to define their
first milestone in ROADMAP.md.Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub mtrense/skills --plugin milestone-driven