By JasonLo
A toolkit of four Claude Code skills (spec-init, spec-constitution, spec-intent, spec-check) for the AI-era spec workflow.
Verify code against the open intents under specs/INTENT/ and specs/CONSTITUTION.md and report drift. Use when the user wants to check that the implementation still matches the spec, after editing any intent.md, after amending the constitution, or as a pre-PR audit. Triggers on "check for drift", "verify against intent", "does the code match the spec", "audit against constitution", "spec-check", "/spec-check".
Create or amend specs/CONSTITUTION.md — the non-negotiable project principles every other spec- skill validates against. Use when the user wants to set project principles, define architectural constraints, lock in testing or code-quality standards, surface principles from existing project setup, or amend an existing constitution. Triggers on "set up constitution", "create CONSTITUTION.md", "amend principle", "project principles", "lock in standards", "what are the rules for this project", "survey codebase principles", "infer principles from project setup", "/spec-constitution".
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".
Draft, propose, refine, or supersede an intent under specs/INTENT/I-N-<slug>/intent.md using EARS outcomes. Use when the user describes a new feature in loose terms, wants to capture intent before coding, asks for a spec, wants the agent to draft an intent for them to accept or refine, wants to refine an existing intent, or wants to retire an intent in favor of a successor. Triggers on "write an intent doc", "spec this feature", "capture intent", "new intent", "draft intent", "propose an intent", "draft an intent for me", "quick intent", "just build it and capture the intent", "refine intent", "supersede intent", "what's the intent", "/spec-intent", "/spec-intent propose".
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Status: experimental — interfaces may change before v1.
A toolkit of four Claude Code skills (the spec- family) for the AI-era spec workflow. Enough structure for a solo developer or small team to think clearly and capture intent, without the ceremony of GitHub Spec Kit, OpenSpec, or BMAD-METHOD.
Four artifacts, and one rule: you write intents, Claude writes code, /spec-check grades the code against each intent and derives the status — you never set it by hand.
| Artifact | What it holds | Who owns it |
|---|---|---|
specs/CONSTITUTION.md | Project-wide principles every intent must respect (optional) | You — via /spec-constitution |
specs/INTENT/I-N-<slug>/intent.md | One feature's problem + EARS outcomes | You — via /spec-intent (author it, or accept the agent's proposal) |
specs/INTENT/I-N-<slug>/plan.md | Optional, regenerable implementation plan | The agent — via /plan |
CLAUDE.md pointer block | Wiring that tells Claude which files are which | /spec-init |
An intent climbs a status ladder as more of its EARS outcomes pass:
draft → in_progress → complete (drops back if a passing outcome later breaks;
superseded = retired for a successor)
Everything else below is detail on those four files.
Requires Claude Code. Skills are modular agent capabilities Claude Code loads from ./.claude/skills/ (per-project) or ~/.claude/skills/ (global).
Pick one route. Both pull from the same repo.
Plugin marketplace (Claude Code v2.1+) — installs into Claude Code's plugin cache, supports /plugin update, namespaces skills as /lite-spec:spec-*:
/plugin marketplace add JasonLo/lite-spec
/plugin install lite-spec@lite-spec
Curl installer — copies skill folders into ./.claude/skills/ (per-project) or ~/.claude/skills/ (global), keeps bare skill names (/spec-init, /spec-intent, …):
curl -LsSf https://raw.githubusercontent.com/JasonLo/lite-spec/main/scripts/install.sh | sh
The two routes differ only in slash-command naming; natural-language triggers ("set up lite-spec", "check for drift", etc.) work either way. The rest of this README uses the bare names — prefix with lite-spec: if you installed via the plugin route.
/spec-init
Creates specs/ and wires the CLAUDE.md pointer block so future Claude sessions know which spec files are human-owned vs. agent-writable.
/spec-intent new "<title>" # open an intent: problem, EARS outcomes, non-goals... plan (optional) ... # /spec-intent offers to hand the intent to /plan... write code .../spec-check # verify the code still satisfies your open intentsTwo ways to open an intent. /spec-intent new "<title>" interviews you section by section — you author it. /spec-intent propose flips that: the agent drafts the whole intent from context (problem, EARS outcomes, non-goals, constraints) and you just accept or refine it — a fast, capture-first path for when you'd rather build than answer a questionnaire. Either way nothing lands in specs/INTENT/ until you approve, and Claude may proactively offer propose when it's about to build something no open intent covers.
Optional, once you have a couple of intents: /spec-constitution locks in project-wide rules (test runner, linter, architecture) that every intent is then checked against. Intents work fine without it — add it when you want the guardrails.
Each /spec-intent new creates specs/INTENT/I-N-<slug>/intent.md (the experiments/ and checks/ subfolders are added only when something needs them). After writing the intent, /spec-intent (in any of new/propose/refine/supersede) offers to hand it to /plan; on yes, the resulting implementation plan is written to specs/INTENT/I-N-<slug>/plan.md — an agent-writable, regenerable sibling. Multiple intents may be open at once; /spec-check iterates every non-terminal intent and derives each one's status from outcome pass-counts.
/spec-intent asks you to phrase each success criterion as an EARS statement:
WHEN
<trigger>THE SYSTEM SHALL<response>.
Two other forms count too: IF <condition> THEN THE SYSTEM SHALL <response> for invariants, and WHILE <state> THE SYSTEM SHALL <response> for continuous behavior. One outcome per line. That's the whole notation — the structure is what lets /spec-check grade each SHALL individually instead of vibe-checking the feature as a whole.
npx claudepluginhub jasonlo/lite-spec --plugin lite-specCurated collection of Claude Code skills for Python, ML, data engineering, and developer productivity
Persistent file-based planning for AI coding agents. Crash-proof markdown plans (task_plan.md, findings.md, progress.md) that survive context loss and /clear, with an opt-in completion gate and multi-agent shared state. Manus-style. Works with Claude Code, Codex CLI, Cursor, Kiro, OpenCode and 60+ agents via the SKILL.md standard. Includes Arabic, German, Spanish, and Chinese (Simplified and Traditional).
Claude harness - A harness for solo developers (Vibecoders) to handle full-cycle contract development.
Core skills library for Claude Code: TDD, debugging, collaboration patterns, and proven techniques
Harness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses
Tools to maintain and improve CLAUDE.md files - audit quality, capture session learnings, and keep project memory current.
Plugin-safe Claude Code distribution of Antigravity Awesome Skills with 1,561 supported skills.