specpack

io.github.THE-KIPDEV由 GitHub 帳號 THE-KIPDEV 發布v0.1.0更新於 Oct 25, 2026

Audit and write CLAUDE.md / AGENTS.md / Cursor rules; generate full build specs for new projects.

已驗證Streamable HTTP可網頁執行效率與工作流開發者工具

概覽

AI 產生的概覽

檢查並產生 AI 編碼代理讀取的指令檔(CLAUDE.md、AGENTS.md、Cursor 規則),並把問卷答案轉成完整的專案建置規格。

可以做什麼
稽核代理檔案:為 CLAUDE.md、AGENTS.md 和 Cursor 規則計算冗餘分數,列出應保留、刪除或外移的行並提供精簡副本(僅限本機伺服器)。依倉庫清單產生精簡的代理檔案,不寫入任何內容(僅限本機伺服器)。列出七種支援的專案類型,並取得某一類型的問卷。依答案產生確定性的建置規格及配套代理檔案,可寫入指定輸出目錄。讓伺服器端 AI 依自然語言描述填寫問卷答案,並查詢方案與剩餘額度。
適用情境
適合在維護 CLAUDE.md、AGENTS.md 或 Cursor 規則、想刪減浪費 token 的行時使用;也適合在啟動新專案時,依簡短描述產生結構化的建置規格和代理檔案。
執行需求
本機 npm 套件需 Node.js 18 或更新版本,透過 npx 執行;也提供遠端 streamable HTTP 端點,但兩個本機檔案工具僅存在於本機伺服器。免費額度無需帳號;選用 API 金鑰可透過 SPECPACK_API_KEY 或 Authorization Bearer 標頭提供,以取得更多規格和 AI 草稿。規格與 AI 工具需要網路存取。
安裝前請注意
規格和 AI 草稿工具會把你的答案或專案描述傳送到 prompt-generator-website.com;audit 和 init 維持離線。AI 草稿會消耗有限的免費額度(無金鑰時三次),更多需付費 Pass 或 Pro。generate_spec 可向輸出目錄寫入檔案。API 金鑰是機密,儲存在本機設定檔中。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 specpack,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.THE-KIPDEV%2Fspecpack/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "specpack": {
      "type": "http",
      "url": "https://prompt-generator-website.com/mcp"
    }
  }
}

README

specpack

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.

bash
npx specpack audit          # bloat score for the agent files in this repo (offline)npx specpack init           # write a lean AGENTS.md from your manifests (offline)npx specpack spec --describe "Booking app for dog groomers with deposits and SMS reminders"

[npm] [CI] [license]

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:

text
$ npx specpack audit CLAUDE.mdCLAUDE.md  59% bloat  · 44 lines · ~341 tokens every session  10 keep · 12 cut · 15 offload of 37 non-empty lines · ceiling 200, trimmed files land near 60  Over half of this file is doing nothing. It is not neutral weight — it is what your real rules are competing against.
     3  cut     You are an expert senior full-stack developer with 10 years of experience.        ↳ role-play preamble: CLAUDE.md is project memory, not a system prompt. "You are an expert…" costs tokens and changes nothing about the code produced.     4  cut     Please always write clean, readable and maintainable code.        ↳ default behaviour: Removing this line does not make the model write worse code — it already tries to do this. It only dilutes the lines that matter.     5  cut     IMPORTANT: follow best practices at all times.     …    12  cut     - Next.js 15.1        ↳ restates a manifest: package.json / composer.json / requirements.txt already state this, and the agent reads them. Keep it only if the version pin has a non-obvious reason.     …    18  offload ## Database schema        ↳ situational section: Only a fraction of your sessions need this. Move the section to its own file and point at it with @docs/… so it loads when the task asks for it.     …    31  offload src/        ↳ file tree: Root of a pasted directory tree. The agent can run ls and get the real one — a copy goes stale after the first refactor.     …  Trimmed copy (8 lines): specpack audit CLAUDE.md --trimmed

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
--trimmedprint only the keep-only version (> CLAUDE.trimmed.md)
--jsonevery line with verdict, rule and reason, plus stats and the trimmed file
--allalso list the kept lines and why
--max-bloat <pct>exit code 1 when a file is above the threshold

In CI

yaml
# .github/workflows/agent-files.ymlname: Agent fileson: [pull_request]jobs:  audit:    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v4      - run: npx -y specpack audit --max-bloat 30

specpack init — a lean AGENTS.md from what the repo already says

Reads 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:

text
$ npx specpack init✓ Wrote AGENTS.md (37 lines, 0% bloat)  Scanned from package.json, tsconfig.json, prisma/schema.prisma, .nvmrc, docker-compose.yml, .env.example, .gitignore, .claude/commands/.
markdown
# AGENTS.md — ledgerly
Invoicing app for freelancers. A web application.
## Stack- Next.js (App Router)- Tailwind CSS- Zod- Stripe- Vitest- Playwright- ESLint- TypeScript (strict)- Prisma + PostgreSQL (schema: prisma/schema.prisma)- Local services via Docker Compose (docker-compose.yml): db
## Commands- `pnpm dev` — `next dev --turbopack -p 3001` (port 3001)- `pnpm build` — `next build`- `pnpm start` — `next start`- `pnpm test` — `vitest run`- `pnpm test:e2e` — `playwright test`- `pnpm lint` — `next lint`- `pnpm db:migrate` — `prisma migrate dev`- `pnpm db:seed` — `tsx prisma/seed.ts`- `docker compose up -d`
## Project rulesThese are things the agent cannot guess from the code. Follow them exactly.- Use pnpm (pnpm-lock.yaml), not npm or yarn — another package manager ignores the lockfile.- Runtime: Node 20 (.nvmrc).- Environment variables are listed in `.env.example`; the real `.env` is git-ignored — do not commit it.<!-- Add the rules the code cannot tell the agent, one per line: the directory scheduled for deletion,     money stored in cents, the command that must never run against staging. -->

Then add the rules only you know under Project rules — that is the part that matters.

Option
--format agentsAGENTS.md (default)
--format claudeCLAUDE.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 allthe three
--dry-run / --forcepreview / overwrite (existing files are never overwritten otherwise)

specpack spec — a full build spec for a new project

For 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.

bash
# AI drafts the answers from a description (10–40 s), then the spec is generatednpx specpack spec --describe "Booking app for dog groomers with deposits and SMS reminders" --out ./groombook
# your own answers (see GET /questions in the API)npx specpack spec --answers answers.json --type saas
# or answer the questionnaire in the terminalnpx specpack spec

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.

MCP server

Seven tools for Claude Code, Cursor, Windsurf, VS Code and any MCP client:

ToolWhere it runs
audit_agent_filelocalbloat score, lines to cut/offload with reasons, trimmed copy
draft_agent_filelocallean AGENTS.md / CLAUDE.md / Cursor rule from the manifests (returns it, writes nothing)
list_project_typesAPIthe 7 project types
get_questionnaireAPIevery question for a type; the agent fills it from the conversation and the repo
generate_specAPIspec + agent files, written to output_dir if given (files picks which). No AI on the server
draft_answersAPIAI fills the questionnaire from a description (uses an AI draft)
get_usageAPIplan and what is left

Claude Code

bash
claude mcp add specpack -- npx -y specpack mcp

Cursor (.cursor/mcp.json), Windsurf, Claude Desktop

json
{  "mcpServers": {    "specpack": { "command": "npx", "args": ["-y", "specpack", "mcp"], "env": { "SPECPACK_API_KEY": "" } }  }}

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_….

bash
claude mcp add --transport http specpack https://prompt-generator-website.com/mcp

Library

ts
import { audit, scanProject, renderAgentsMd, SpecpackClient } from "specpack";
const { stats, lines, trimmed } = audit(fs.readFileSync("CLAUDE.md", "utf8"));console.log(`${stats.bloat}% bloat`, lines.filter((l) => l.verdict === "cut").length, "lines to cut");
const agentsMd = renderAgentsMd(scanProject("."));
const client = new SpecpackClient({ apiKey: process.env.SPECPACK_API_KEY });const draft = await client.draft("A booking app for dog groomers");const spec = await client.createSpec(draft.type, draft.answers); // spec.spec, spec.files["AGENTS.md"]…

createMcpServer() is exported from specpack/mcp. API errors are SpecpackError with code (quota_exceeded, unauthorized, invalid_request, …), status and upgradeUrl.

Reference

  • Exit codes: 0 ok · 1 failure, or --max-bloat exceeded · 2 usage error or quota exceeded.
  • Environment: SPECPACK_API_KEY, SPECPACK_API_URL (testing), NO_COLOR.
  • Key storage: ~/.config/specpack/config.json ($XDG_CONFIG_HOME honoured), mode 600.
  • HTTP API: API-V1.md.
  • Privacy: audit and init read local files and send nothing. spec sends your answers or description to prompt-generator-website.com.

License

MIT © Kipdev

來源:README.md,提交 782b7f0

工具

5

list_project_types

List project types

The project types the spec generator knows (saas, ecommerce, business, marketplace, blog, webapp, landing), with what each covers.

無需輸入參數。

get_questionnaire

Get the questionnaire

The questions for one project type: universal questions first, then type-specific ones. Each has an id, a type (text, textarea, select, radio, multiselect, boolean, number), options where relevant, and sometimes a condition (ask it only when another answer matches). Answer from what you know of the project, then pass the answers to generate_spec. Only project_name and project_description are required; skipped questions fall back to defaults.

輸入參數type必填

generate_spec

Generate the spec and agent files

Turns questionnaire answers into a complete build specification (stack, database schema, auth flows, pages, design system, SEO, security, legal, deployment, file structure) and the matching agent files. Deterministic: the same answers always give the same bytes. Values: select/radio = one option value, multiselect = array of option values, boolean = true/false, number = number. Returns the requested files; by default AGENTS.md (full spec + working agreement) and CLAUDE.md (imports AGENTS.md) — write them at the repository root. Uses one spec from the quota (2 free without an API key).

輸入參數type必填filesanswers必填

draft_answers

Draft answers with AI

Asks the server's AI (Claude) to fill the whole questionnaire from a plain-language project description; returns the project type, the answers and the assumptions it made. Takes 10-40 s and consumes one AI draft (3 free without an API key). Prefer answering get_questionnaire yourself when you already know the project; use this when you only have a one-line idea. Review the assumptions with the user before calling generate_spec.

輸入參數typedescription必填

get_usage

Plan and usage

Current plan and quota usage (specs and AI drafts) for the API key, or for this address when no key is set.

無需輸入參數。

版本歷史

1
  1. v0.1.0最新Sep 18, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分