From lite-spec
Initialize a repo to use the lite-spec workflow — the specs/ tree and CLAUDE.md pointer block. Use when bootstrapping a new project, adding lite-spec to an existing repo, or repairing a broken or partial setup. Triggers on "set up lite-spec", "initialize lite-spec", "bootstrap spec workflow", "add lite-spec to this repo", "wire up CLAUDE.md", "init specs", "/spec-init".
How this skill is triggered — by the user, by Claude, or both
Slash command
/lite-spec:spec-initThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are the bootstrap skill for **lite-spec**. You prepare a repo so the other `spec-` skills can run cleanly: you create the `specs/` directory, wire `CLAUDE.md` with thin pointers that load context lazily (progressive disclosure), and surface the next step the user should take.
You are the bootstrap skill for lite-spec. You prepare a repo so the other spec- skills can run cleanly: you create the specs/ directory, wire CLAUDE.md with thin pointers that load context lazily (progressive disclosure), and surface the next step the user should take.
This skill has two modes: bootstrap (no lite-spec markers present) and repair (some markers exist but the setup is incomplete or inconsistent). The skill MUST be idempotent — running it twice on the same repo MUST be safe and MUST NOT clobber existing content.
.git/, package.json, pyproject.toml, Cargo.toml, go.mod, or a top-level README.md). If none of these markers exist, refuse and ask the user to confirm they're in the right directory.README.md first heading.The whole point of this skill is to wire CLAUDE.md so Claude loads the minimum context up-front and pulls in the spec files only when relevant. To preserve that:
specs/CONSTITUTION.md or any specs/INTENT/I-N-<slug>/intent.md into CLAUDE.md. Pointer lines only.CLAUDE.md. Mention skills by name and folder; the SKILL.md files load themselves on invocation.spec-constitution / spec-intent create the files on first use — the pointers should already be there waiting.CLAUDE.md body MUST stay under ~40 lines after this skill runs. If it would exceed that, you're inlining too much — move content into specs/ or a docs/ file the pointer references.Before doing anything, scan and classify:
specs/ exists? (directory)specs/CONSTITUTION.md, specs/INTENT/ (directory) — each present or absent?CLAUDE.md exists at the repo root?CLAUDE.md exists, does it already contain a lite-spec pointer block (look for the marker <!-- lite-spec:pointer-block:start -->, the durable anchor this skill writes via its template — robust against cosmetic heading edits)?spec- skills installed somewhere reachable? Check .claude/skills/spec-* (per-project) and ~/.claude/skills/spec-* (global). Report which (if any), but do NOT install them — that's the user's call.Bootstrap = no specs/ directory AND (no CLAUDE.md OR CLAUDE.md has no lite-spec pointer block).
Repair = anything else (partial setup detected).
specs/ and specs/INTENT/ as empty directories. Do NOT create CONSTITUTION.md or any I-N-<slug>/ folder here — those go through their dedicated skills, which is the careful path. Do NOT add .gitkeep files; each directory becomes meaningful (and committable) the first time a spec skill writes into it. specs/INTENT/ is the only spec subdirectory spec-init creates — it pre-exists so /spec-intent new doesn't have to bootstrap the tree on first use.CLAUDE.md at the repo root with the pointer block below. If CLAUDE.md already exists, do NOT overwrite it — instead, append the pointer block as a new section after existing content, and leave the rest alone.Next: /spec-constitution — bootstrap creates an empty specs/ tree, so CONSTITUTION.md is always missing after this run and ratifying it is the unambiguous next step. See "Handoff convention" below.CLAUDE.md pointer blockThe exact structure lives in CLAUDE.template.md (sibling of this SKILL.md). Read that file at runtime, substitute <project-name> with the inferred or user-supplied name, and write the result to the target repo's CLAUDE.md. Keep all paths and headings verbatim so other skills can grep for them.
Notes on the block:
<!-- lite-spec:pointer-block:start --> and <!-- lite-spec:pointer-block:end --> HTML comments wrap the three lite-spec sections in the template. They are the durable anchor that other spec- skills grep for — keep them verbatim. Heading text inside the block is human-editable; the markers are not.CLAUDE.md already exists, do NOT overwrite the file. Append only the three lite-spec sections ("Read before non-trivial work", "Spec file ownership", "Spec workflow"), wrapped in the start/end markers, after existing content. Always skip the # CLAUDE.md H1 and the "What this repo is" section when appending — those belong to the existing file. Emit the H1 and the "What this repo is" intro only when creating CLAUDE.md from scratch.The repair path MUST be conservative — never overwrite existing user content, never rewrite spec files, never renumber intents. You're filling in gaps, not normalizing style.
specs/ and specs/INTENT/ if missing. Do not add .gitkeep files — see the bootstrap note above.CLAUDE.md only if CLAUDE.md lacks the <!-- lite-spec:pointer-block:start --> marker. If CLAUDE.md is absent entirely, create it with the full block (H1, "What this repo is", then the marker-wrapped three sections). If it exists but lacks the marker, append only the three lite-spec sections — wrapped in the start/end markers — after existing content. Never re-emit the # CLAUDE.md H1 or the "What this repo is" intro when appending to an existing file.specs/CONSTITUTION.md or any specs/INTENT/I-*-*/intent.md. If one of these is missing, simply note it in the report and suggest the relevant skill (/spec-constitution or /spec-intent new).specs/CONSTITUTION.md if it exists. The repair MUST NOT introduce CLAUDE.md content that violates a principle (e.g., inlining a large doc when the constitution caps doc lengths — the spirit applies to CLAUDE.md too).Next: line only when the next step is unambiguous: Next: /spec-constitution if CONSTITUTION.md is the sole missing spec file, else Next: /spec-intent new if the INTENT/ tree is the sole gap. If multiple spec files are missing, list them as plain bullets and omit the Next: line — the user picks. See "Handoff convention" below.Every skill in the lite-spec family ends its run report with at most one Next: /<skill> [args] line — the suggested next action when the post-state clearly implies one. Omit the line entirely when the next action is code work, "nothing", or genuinely ambiguous — silence is the terminal signal, and a stale or pushy "Next:" line is worse than none. The user is free to ignore the suggestion; it's a pointer, not a command.
CLAUDE.md body. Append only.CONSTITUTION.md or any INTENT/I-N-<slug>/intent.md from within spec-init. This skill is bootstrap-scope. The spec files are authored by their dedicated skills (/spec-constitution, /spec-intent); spec-init only creates the empty specs/ and specs/INTENT/ scaffold.spec- skills into .claude/skills/ for the user. Report whether they're reachable; if not, point them at the README's installation snippet.AGENTS.md or other cross-tool portability files.CLAUDE.md (progressive disclosure).specs/ and specs/INTENT/ exist (both empty until a spec skill writes its first file — no .gitkeep in either).CLAUDE.md exists at the repo root and contains the marker-wrapped pointer block.Next: /<skill> line per the Handoff convention above (omitted when the next action is ambiguous or there's nothing to suggest)./spec-constitution and /spec-intent.CLAUDE.md that already exists in a spec file or another doc.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 jasonlo/lite-spec --plugin lite-spec