Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Audit, scaffold, and triage agent intent specs against a 9-section template.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"intent-engineering": {
"command": "npx",
"args": [
"-y",
"@swins/intent-engineering-mcp"
]
}
}
}ターミナルでこれを実行します
claude mcp add intent-engineering -- npx -y @swins/intent-engineering-mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"intent-engineering": {
"command": "npx",
"args": [
"-y",
"@swins/intent-engineering-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"intent-engineering": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@swins/intent-engineering-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名はドメイン seanwinslow.com で確認済みです(レジストリがドメインの所有を確認しています)
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.2.0)がレジストリに届いたのは5 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Recta
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Cheaper cross-chain stablecoin routes for AI agents; 5 % of the verified saving, nothing if none.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
intent-engineering is an MCP server that exposes three tools — audit_intent_spec, generate_intent_spec_scaffold, and assess_retrofit_level — letting any MCP-aware client (Claude Desktop, Cursor, Anti-Gravity) review, scaffold, and triage agent intent specs against a 9-section unified template synthesized from production-agent research.
Most agent failures aren't reasoning failures — they're intent failures. The spec is vague, the stop rules are missing, the outcome is an activity disguised as a state. This server makes that gap auditable from inside the harness the agent already runs in. The full reasoning, the rejected alternatives, and what would break in v0 live in docs/EXPLANATION.md.
/etc/passwd a real disclosure bug. Every disk read now routes through one guard: extension allowlist, symlink resolution, root confinement, and a size cap.prepublishOnly guard that fails the build on any console.log in src/, and a changelog rule: no scope change without written approval before code.Engineering teams treat AI agents like reliable coworkers, but agents fail silently when given underspecified intent. The cost is shipped features that solve the wrong problem — and the failure mode is invisible until production. PMs feel this pain twice: once writing the spec, and again when an agent confidently delivers something off-target. There's no shared protocol for "audit this spec before an agent runs on it."
A Model Context Protocol server that exposes three tools any MCP-aware client (Claude Desktop, Cursor, etc.) can call: audit_intent_spec audits a spec against a 25-item rubric, generate_intent_spec_scaffold scaffolds new specs by kind, assess_retrofit_level retrofits older docs. Published to npm as @swins/intent-engineering-mcp and to the official MCP registry as com.seanwinslow/intent-engineering via DNS-verified namespace.
com.seanwinslow/*) over GitHub-handle namespace**: locks the brand surface to a domain I control; required a separate Ed25519 keypair + apex TXT record, which is more upfront friction than mcp-publisher login github.The MCP protocol is essentially a contract for "I am a tool an LLM can call without me writing a wrapper." Once that landed, the server became a thin protocol adapter over an existing skill — and the OPTIONAL-fields pattern I'd developed on a separate knowledge-graph project translated directly.
The part I got wrong is the more useful lesson, and I got it wrong twice. I published a dogfood score of 23/25. Four months later I decided it had been a partial read reported as a whole-file grade, retracted it, and published 14/25 instead. The retraction was the actual error: the original had graded the whole file, and my replacement number was the partial read. Both were published because the tool's output could not tell you how much of the document it had just graded, so neither figure could be checked without going back to the source. A tool that eats its own dog food earns credibility fast. A tool that makes its author's mistakes falsifiable earns more, and it is the harder thing to build.
| Tool | Input | Output |
|---|---|---|
audit_intent_spec | A spec (spec_text or file_path) | Score out of 25, per-section findings, detected anti-patterns, top 3 recommendations |
generate_intent_spec_scaffold | kind (blank / level-1-mvr / full-9-section), optional hints | A paste-ready YAML scaffold + next-step actions |
assess_retrofit_level | An existing prompt or SKILL.md | Recommended retrofit level (L1 / L2 / L3) with blast-radius + complexity + autonomy reasoning |
The 25-item validation checklist, 5 fatal anti-patterns, 4 autonomy levels, and 9-section template all come from the canonical intent-engineering skill. The MCP server is a thin protocol adapter, not a fork.
Requires Node 20+ and an MCP-aware client (Claude Desktop, Cursor, etc.).
One config entry, no clone. Add this to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": { "intent-engineering": { "command": "npx", "args": ["-y", "@swins/intent-engineering-mcp"] } } }
Or from source:
git clone https://github.com/seanwinslow28/sw-mcp-intent-engineering.git
cd sw-mcp-intent-engineering npm install npm run build
Then point the config's command at node with args: [" /build/index.js"].
Restart Claude Desktop. Open Settings → Developer to confirm the server shows as running:
The three tools then appear in the tool list under intent-engineering in any new conversation.
Paste this into Claude Desktop after the server is connected:
Run
audit_intent_specon this spec:
`
## Objective
Make support tickets resolve faster.
## Outcomes
- Tickets close in <2h
- CSAT stays high
## Stop Rules
(none)
`
You'll get back a score out of 25, a list of detected anti-patterns (this spec hits at least three), and three concrete recommendations to fix it. The full I/O contract lives in docs/v0-scope.md §4.
Re-measured whole-file 2026-08-29. The canonical `intent-engineering` SKILL.md scores 23/25 with zero anti-patterns detected. Seven sections pass, two warn, none are missing. That is a grade of all 32,356 characters, and the coverage block in the response says so.
Reproduce it in one call:
audit_intent_spec({ file_path: "<path>/.claude/skills/intent-engineering/SKILL.md" })
The 23/25 above is the figure this page published in May 2026, retracted on 2026-08-28, and restored on 2026-08-29. The retraction was the mistake. Every measurement behind that sentence, so the reasoning can be checked instead of trusted:
| What was graded | Score | Anti-patterns |
|---|---|---|
| May-era file (17,885 chars), whole | 23/25 | none |
| May-era file, first 10,000 chars | 17/25 | 1 |
| Today's file (32,356 chars), whole | 23/25 | none |
| Today's file, first 10,000 chars | 14/25 | 2 |
| Any read starting past the end of the file | 1/25 at the time, 0/25 since | 2 |
Why the original was right. In May the skill was 17,885 characters. max_length caps at 20,000, so the whole file fit inside a single call and Phase 3's "first chunk" was the entire document. The 1/25 rows in that session's round-trip table were reads that started past the end and graded zero characters, not partial grades of real content. (That 1/25 was itself a small bug, fixed the same day as this re-correction: one conditional rubric item treated "not applicable" as a pass, so an unrecognized document collected a point. A document nothing is recognized in now scores 0/25.)
The number has never moved. Graded whole, every revision of the skill in its git history scores the same:
| Revision | Characters | Whole-file score | Fits one 20,000-char call |
|---|---|---|---|
ebf41b3d 2026-03-03 | 17,942 | 23/25, zero anti-patterns | yes |
9c76e762 2026-05-04 | 17,885 | 23/25, zero anti-patterns | yes |
d0117843 2026-06-10 | 17,900 | 23/25, zero anti-patterns | yes |
c8f90d79 2026-07-05 | 32,356 | 23/25, zero anti-patterns | no |
The score is stable across five months and a commit that nearly doubled the file. It was also re-confirmed independently in a 2026-06-17 working session, when the file still fit in one call. What changed on 2026-07-05 was not the grade but the *measurability*: the file crossed the ceiling, and from then on no single call could check the published number.
Why it was retracted anyway. By July the skill had grown to 32,356 characters and crossed the 20,000-character ceiling, so no single call could grade it any more. The 2026-08-28 re-measurement used the 10,000-character default, got 14/25, saw that it did not match 23/25, and concluded the original had been a chunk mistaken for a file. That description of the error was exactly right and was applied to the wrong measurement. The chunk was the new one.
The two mistakes have one cause. For four months this tool could not tell you whether a score covered the whole document, and neither could its author. The May claim and the August retraction were both published without that fact being visible anywhere in the output. One happened to be right and one happened to be wrong, which is the least useful way to be correct.
Two things worth stating plainly, because this is a spec-auditing tool:
"14/25" and "23/25" were the same shape of string. Nothing in the response distinguished a grade of 10,000 characters from a grade of 32,356, so both readings were unfalsifiable at a glance and both got published.Fixed 2026-08-29, and this is what made the fix necessary. audit_intent_spec now grades the whole document by default, and every response carries a coverage block naming the mode, the characters graded, the characters available, and whether the grade is complete. A partial grade can still be asked for. It can no longer be mistaken for a complete one.
At scale: the same server assessed all 118 first-party skills in my Claude Code Superuser Pack with zero parse errors, in under a second — both re-measured 2026-08-28 (94 ms, 0 errors, running the scripts/audit-superuser-pack.ts logic over the same 118 files). In the shipped CSV at examples/superuser-pack-retrofit-assessment.csv (2026-05), 24% scored L1-mvr (the spec just needs an intent header), 36% L2-structured (needs Health Metrics + Decision Authority), and 40% L3-full (autonomous-loop or high-blast-radius skills that warrant a 9-section conversion). The same files as they stand today split 20% / 38% / 42% — the corpus evolved, not the tool. `ass
冒頭だけを表示しています。続きはリポジトリで読めます