The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Specpack listing page.
Lint and generate the files your AI coding agent reads — CLAUDE.md, AGENTS.md, .cursorrules,
Cursor rules — and turn a project description into a full build spec. CLI, library and MCP server.
CLAUDE.md / AGENTS.md are loaded into the agent's context on every session. Every line that
restates package.json, pastes a file tree or tells the model to "write clean code" costs tokens and
competes with the two rules that actually matter. specpack audit finds those lines; specpack init
starts you at the trimmed end.
Node ≥ 18. No account needed. audit and init never touch the network.
specpack audit — how much of your memory file does nothing?Each line is classified keep, cut (removing it changes nothing: role-play preamble, generic
advice, restated manifests, duplicates, emphasis inflation, prose) or offload (true but
situational: file trees, schema dumps, endpoint lists, long code blocks, setup/deploy sections — move
them to their own file and reference them with @docs/…). Same rules as the browser tool at
prompt-generator-website.com/claude-md-audit.
Real output on a typical file:
Without arguments it audits every agent file in the current directory: CLAUDE.md, AGENTS.md,
.cursorrules, .windsurfrules, .github/copilot-instructions.md, CLAUDE.local.md,
.cursor/rules/*.mdc. - reads stdin.
| Option | |
|---|---|
--trimmed | print only the keep-only version (> CLAUDE.trimmed.md) |
--json | every line with verdict, rule and reason, plus stats and the trimmed file |
--all | also list the kept lines and why |
--max-bloat <pct> | exit code 1 when a file is above the threshold |
specpack init — a lean AGENTS.md from what the repo already saysReads package.json (scripts, lockfile → package manager, framework), tsconfig.json, the Prisma
schema, pyproject.toml / requirements*.txt (uv, Poetry), composer.json, go.mod, Cargo.toml,
Gemfile, Makefile, Docker Compose, .nvmrc, .env.example, .claude/commands. Only what a file
states is written: nothing is guessed, no patch versions, no "You are an expert" preamble. Sections with
nothing detected are left out.
Real output on a Next.js + Prisma repository:
Then add the rules only you know under Project rules — that is the part that matters.
| Option | |
|---|---|
--format agents | AGENTS.md (default) |
--format claude | CLAUDE.md — imports @AGENTS.md when it exists, plus Claude Code specifics (slash commands, .mcp.json servers) |
--format cursor | .cursor/rules/project.mdc (always-applied rule) |
--format all | the three |
--dry-run / --force | preview / overwrite (existing files are never overwritten otherwise) |
specpack spec — a full build spec for a new projectFor a project that does not exist yet, prompt-generator-website.com
turns a questionnaire (7 project types: SaaS, e-commerce, business site, marketplace, blog, web app,
landing page) into a complete specification — stack, database schema, authentication, type-specific
features, pages, design, SEO, security, legal, deployment, file structure — plus AGENTS.md,
CLAUDE.md, .cursor/rules/project.mdc, .cursorrules, .windsurfrules and
.github/copilot-instructions.md that keep the agent on-spec for the whole build.
The spec engine is deterministic: the same answers always give the same bytes. Free without an
account: 2 specs and 3 AI drafts. More: a 7-day Pass or Pro at
prompt-generator-website.com/pricing; then
specpack login pgw_… (or SPECPACK_API_KEY). specpack whoami shows what is left.
Seven tools for Claude Code, Cursor, Windsurf, VS Code and any MCP client:
| Tool | Where it runs | |
|---|---|---|
audit_agent_file | local | bloat score, lines to cut/offload with reasons, trimmed copy |
draft_agent_file | local | lean AGENTS.md / CLAUDE.md / Cursor rule from the manifests (returns it, writes nothing) |
list_project_types | API | the 7 project types |
get_questionnaire | API | every question for a type; the agent fills it from the conversation and the repo |
generate_spec | API | spec + agent files, written to output_dir if given (files picks which). No AI on the server |
draft_answers | API | AI fills the questionnaire from a description (uses an AI draft) |
get_usage | API | plan and what is left |
Claude Code
Cursor (.cursor/mcp.json), Windsurf, Claude Desktop
Remote, nothing to install (streamable HTTP; audit_agent_file and draft_agent_file read local files, so they only exist in the local server):
https://prompt-generator-website.com/mcp — optional header Authorization: Bearer pgw_….
createMcpServer() is exported from specpack/mcp. API errors are SpecpackError with code
(quota_exceeded, unauthorized, invalid_request, …), status and upgradeUrl.
0 ok · 1 failure, or --max-bloat exceeded · 2 usage error or quota exceeded.SPECPACK_API_KEY, SPECPACK_API_URL (testing), NO_COLOR.~/.config/specpack/config.json ($XDG_CONFIG_HOME honoured), mode 600.audit and init read local files and send nothing. spec sends your answers or
description to prompt-generator-website.com.MIT © Kipdev