Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Shared records for AI agents: engineering decisions, bug history, rules, and work state through MCP.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"hunch": {
"command": "npx",
"args": [
"-y",
"@davesheffer/hunch",
"mcp"
]
}
}
}在终端中运行这条命令
claude mcp add hunch -- npx -y @davesheffer/hunch mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"hunch": {
"command": "npx",
"args": [
"-y",
"@davesheffer/hunch",
"mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"hunch": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@davesheffer/hunch",
"mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 davesheffer 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(1.38.1)于2个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Zendesk
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况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.
Zendesk MCP Pack — tickets, users, organizations via OAuth.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
▶ [Watch Hunch Memory in 2 minutes](https://www.youtube.com/watch?v=m2PM6pV7D9Y), then the 7-episode series on setup, hooks, memory capture, delivery, rules, drift and teams.
A new agent session should not mean explaining the project all over again. A second agent should be able to check a recorded decision, see the evidence behind completed work, and find an outstanding commitment.
Hunch keeps that record in Git and makes the relevant parts available to your agents. It started with engineering memory: why code exists, which approach failed before, and which rules a change must preserve. It also ships a state server for sharing decisions, action records, and commitments across authorized organization, team, user, and repository scopes.
The goal is simple: agents working from the same maintained record, with sources they can inspect. Hunch supplies memory and checks; the assistant still does the work.
Requires Node 22.13+ and a Git repository.
npm i -g @davesheffer/hunch
cd your-repo hunch init hunch backfill --since 90d # optional: draft memory from recent history
If the shell reports that hunch is not found, initialize without a global binary from the repository directory: npx -y @davesheffer/hunch@latest init.
Reload your assistant, then ask:
Why is this built this way, and what should I preserve when changing it?
hunch init indexes the code, configures supported assistant integrations, and adds memory instructions while preserving existing settings. For Codex hooks, review and trust the commands in /hooks, then start a new session. Memory is advisory by default. Blocking requires an explicitly trusted rule and strict enforcement.
Hunch works with Claude Code, Codex, Cursor, VS Code/Copilot, Windsurf, Antigravity, and other MCP clients. Automatic context and hook coverage vary by assistant; a connected MCP server alone does not prove they are running. Check your integration.
| Need | How Hunch helps |
|---|---|
| Stop explaining old decisions | Saves decisions, rejected alternatives, bug history, corrections, and open findings with their sources. |
| Understand a change before making it | Connects memory to code symbols and dependencies; shows affected code and recorded architectural intent. |
| Keep agents informed across sessions | Delivers a focused brief for a task through MCP and supported lifecycle hooks. |
| Check the rules your team chose | Evaluates supported constraints and code relationships without a model in the blocking path. |
| See what happened during a task | Separates delivered memory, the agent's reported use, rule results, and observed command results in a contribution report. |
| Share project memory with teammates | Keeps repository memory in Git, with an optional dedicated private memory repository. |
| Share work state across agents | Serves authorized records through HTTP, MCP, the state CLI, and typed TypeScript and Python clients. |
| Inspect what the agents know | A read-only browser view shows current records, commitments, completed work and writer-supplied citations. |
| Keep access and conventions explicit | Optional per-record audiences, key-bound credentials and sourced conventions use the same state contract. |
For example, a team fixes a logout bug by keeping sessions on the server. Months later, an agent proposes removing that code. Hunch can surface the original reason and rejected alternative before the edit. A supported, trusted rule can flag the conflict; strict mode can block it. Recording the lesson and configuring the integration are what make this possible.
| Command | Use it for |
|---|---|
hunch context " " --profile builder | Get a focused brief before starting |
hunch why | Understand decisions and past bugs behind code |
hunch structure [target] | Inspect indexed files and symbols |
hunch findings [scope] | See known gaps that still need work |
hunch impact origin/main | See what a branch could affect |
hunch check --working | Check current changes against recorded rules |
hunch conform | Check supported architectural relationships |
hunch now | Read recent decisions and the recorded roadmap |
hunch doctor | Diagnose setup and storage problems |
For enforcement after reviewing and trusting the relevant rules:
hunch firmness strict
hunch check --staged --strict
Generated notes, observed habits, and imported documents do not silently gain blocking authority.
From each repository that uses Hunch:
hunch update
If the shell reports that hunch is not found, run npx -y @davesheffer/hunch@latest update from the repository instead.
Or ask your agent to “update Hunch.” The command installs the latest release, aligns configured integration pins, repairs known legacy launch commands, and refreshes Hunch instructions. It preserves unrelated settings and intentionally disabled hooks.
Installed interactive CLI commands can also show a cached update notice. At most once every 24 hours, a detached worker asks npm for the package's public latest version; hooks, MCP, CI, servers, the updater, non-interactive commands, and source checkouts skip that request. Set HUNCH_NO_UPDATE_CHECK=1 or NO_UPDATE_NOTIFIER=1 to disable it.
--global to update both.hunch integrations repair-pins./hooks to review and trust changed commands, then start a new session. A changed version pin changes the command and requires renewed trust.Verify the setup:
hunch integrations check
hunch integrations check --harness codex --probe --require mcp hunch integrations check --harness codex --require context
The first command checks configuration. The probe starts a fresh MCP process and reads memory. The context check requires observed hook delivery on the expected version, so run it after the new assistant session begins. --require fails when the named capability is not verified; none of these checks proves that a model followed the advice.
hunch uninstall --dry-run # show what would change
hunch uninstall # remove what Hunch installed; keep .hunch/ (your memory) hunch uninstall --purge # also delete .hunch/, the derived cache and Hunch's .gitignore blocks
It removes the instruction blocks, MCP entries, agent and git hooks, merge driver, slash commands and CI workflow that Hunch installed, and leaves your own content in those files alone. If a file it needs to edit can't be parsed, it changes nothing and says which file. It writes .hunch-removed: while that file exists, no Hunch command sets Hunch up here again. Commit it so every clone stays opted out; to reinstall, delete it and run hunch init. Close running hunch mcp / hunch serve processes first, so they can't recreate files.
Task reports answer: what memory reached this task, what did the agent say it used, and what checks actually ran?
The normal agent instructions request a completion card with a link to a local evidence report. You can also inspect reports directly:
hunch task list
hunch report --html
A delivered lesson, an agent's claim, and a passing test are different evidence. Hunch keeps them separate. Automatic presentation depends on the host following the task lifecycle; missing evidence stays unverified.
One maintainer connects a dedicated private Git repository:
hunch shared --repo git@github.com:acme/project-hunch-memory.git
git add .gitignore .hunch/team.json git commit -m "chore: connect shared Hunch memory" git push
Teammates install Hunch, pull the code, and run hunch shared --trust once per machine: it shows the store URL from .hunch/team.json and connects only after that explicit consent. Then run hunch init. Until a machine trusts the store, Hunch refuses to clone it or route memory there. Normal Git access controls the shared repository. Credentials, local clone paths, and private overlays stay out of the committed pointer. Use hunch shared --sync to retry synchronization; add --no-auto-commit when captures should wait for explicit sync.
This shares a project's engineering memory. The state server below adds authenticated access across multiple scopes.
A coding agent needs to know why a module exists. An operations agent may need to know whether a customer action was completed or who owes the next follow-up. Both need a maintained record they can check.
Hunch ships hunch serve: a self-hosted HTTP service for organization, team, user, and repository records. A configured identity determines which scopes an agent may access. Optional record audiences further restrict access; optional key-bound credentials require proof from the configured private key on each request.
Open /operator on your server to inspect current records, completed work and commitments in a read-only browser view. Writer-supplied citations can point to an exact summary field or text passage and its recorded sources. They show traceability; they do not prove that a source supports a claim.
Agents can use the same contract through MCP, hunch state read|write|records|subscribe, the @davesheffer/hunch/state TypeScript client, or the Python client. The Python package is built and tested from this repository; it is not yet published to PyPI. Scoped conventions let a person record sourced user, team or organization preferences. Those preferences remain advisory and do not silently become blocking rules.
Records can describe decisions, action outcomes, commitments, entities, relationships, and summaries that name their dependencies. Actions retain their status, including unknown or unverified outcomes. Repeated writes have stable identities, conflicting current decisions are refused, and confirmed human records receive protections against agent overwrites. These are defined checks on structured records; Hunch cannot establish every fact in the outside world on its own.
This is what deterministic state means here: explicit rules govern the stored record, rather than having each agent reconstruct it from scratch. Git holds the durable data; SQLite is a rebuildable index. The server binds to loopback and requires deployment and agent integration by its operator. Hunch does not provide a managed CRM or email connector service.
See the full documentation.
The vision is continuity across people, tools, and agents: an operations agent records a customer
只显示了开头部分;其余内容请在仓库中阅读