Logbook

io.github.promptwheel-ai由 GitHub 帳號 promptwheel-ai 發布v0.8.0更新於 Nov 6, 2026

Git-history memory for coding agents: reverts, weakened tests, hot spots, and unreviewed notes.

已驗證STDIO僅桌面知識與記憶開發者工具

概覽

AI 產生的概覽

把儲存庫的 Git 歷史變成助理可讀的記憶:熱點檔案、被回退的做法、被抑制的測試,以及持久化的筆記。

可以做什麼
  • 讀取有界的儲存庫歷史摘要,含熱點、勿重試的回退、抑制清單、脆弱區域與單一檔案歷史
  • 依檔案與事件類型精確篩選完整提交事件紀錄,回傳準確計數並處理截斷
  • 以精簡、有界的分頁回傳同樣的篩選歷史,供助理上下文使用
  • 稽核 HEAD 中仍被抑制的內容、起始時間,以及某項抑制是否反覆出現
  • 在調查某次提交後寫入機器產生、明確未審核的筆記,可選引文會對照原始 Git 物件驗證
適用情境
適合在陌生或歷史密集的儲存庫開始工作、重構或大幅改動之前,或需要判斷通過的測試是否可信時使用。README 也說明其效益並非普遍,主要出現在困難且歷史密集的任務上。
執行需求
以 stdio 本機程序執行,來自 npm 套件 @promptwheel/logbook-mcp,需要 Node.js 18 或更新版本。它讀取本機 Git 儲存庫,無需帳號、API 金鑰或網路存取。README 建議先執行 CLI 的 init 步驟產生歷史產物與助理工作流程檔案。
安裝前請注意
annotate 工具會在沒有人工審核關卡的情況下寫入筆記到儲存庫;筆記標示為機器產生且未審核,提交 annotations.jsonl 會與團隊共享。結論只是線索而非定論,偵測以正規表示式為基礎,會漏掉被 squash 或 rebase 抹掉的歷史,淺層複製也會削弱分析。README 稱儲存庫資料不會傳送到任何地方。

安裝

在 SourceWeft 中

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

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

logbook

[ci] [npm]

Git history is large. When coding agents do not inspect it, they can re-propose approaches a repository already rejected.

Logbook turns a repository's Git history into memory an agent can use: a deterministic recall layer (hotspots, reverted approaches, suppressions, assertion weakening, and bounded history queries) plus durable notes an agent writes down after it investigates why a change happened.

Everything runs locally. The CLI has zero npm dependencies, reads raw Git objects for evidence checks, and never sends repository data anywhere. Node.js 18 or newer is required.

bash
npx -y @promptwheel/logbook@latest init

init analyzes the repo, writes the history artifacts, and installs a compact workflow in AGENTS.md, CLAUDE.md, or .cursorrules so the agent reads history before it plans: read LOGBOOK.md, page each task path with context --file, verify leads with git show, refresh, audit, and annotate what it verified. The same workflow ships as an agent skill in plugin/skills/logbook/SKILL.md.

Its output, shortened:

text
  1,326 commits · 322 files · 7.3 years · 354 authors
  ✓ wrote LOGBOOK.md     hotspots · do-not-retry · suppression ledger  ✓ wrote events.jsonl   1,326 structured events

The examples below use logbook as the binary name. Run them through the exact package above, or install @promptwheel/logbook@latest locally or globally.

Quick start

bash
logbook                                      # refresh the history artifactslogbook context --file src/cache.ts --revert # bounded history for a pathlogbook audit                                # what is still suppressed, and since whenlogbook query --json --file src/cache.ts     # the same events as JSONLlogbook doctor                               # read-only artifact and wiring health

context returns history in pages of at most 20 events and 8 KiB; repeat the identical filters with each NEXT cursor until END complete.

When an agent investigates why a prior change happened during real work, it can preserve the result immediately, with no prompt or human gate:

bash
logbook annotate <commit> "why this approach was rejected" --by codex

The note is durably appended to annotations.jsonl and appears in LOGBOOK.md before the command exits. It is always labeled machine-authored and unreviewed and is bounded in the startup digest. An optional exact quote can be attached with --span, --side, and (for diff evidence) --evidence-file; a quote that does not ground in raw Git objects is rejected rather than guessed.

What it stores

PathPurpose
LOGBOOK.mdBounded history brief for agents: hotspots, do-not-retry reverts, suppressions, weakened assertions, and fragile areas
events.jsonlStructured deterministic history events for tools and queries
annotations.jsonlDurable machine-authored notes, shown in the digest as explicitly unreviewed leads

Commit annotations.jsonl to share the notes with the team, or add it to .gitignore to keep them local to one checkout.

History queries and context economics

context preserves filtered query order but emits pages of at most 20 events and 8 KiB. A cursor is bound to the repository HEAD, filters, analysis window, and ordered event set, so a stale or edited cursor is rejected instead of silently drifting.

The history scan is cached in bounded windows. On a history of tens of thousands of commits a cold run takes tens of seconds, a warm run that reuses the ledger on disk is well under a second, and a repeat call with an unchanged HEAD in an MCP session is milliseconds. LOGBOOK_NO_CACHE=1 forces a rebuild; LOGBOOK_WINDOW=N tunes the window.

In a random 400-repo sample of the top 2,500 GitHub repositories, the median LOGBOOK.md was about 1,000 estimated tokens while the median full git log was 82× larger. See context economics and the bounded context format.

Integrate: CLI, MCP, or import

Three surfaces over the same deterministic history layer:

  • CLI + JSON. logbook query --json (filtered, 200 rows unless you pass --limit) and logbook --json (the full ledger) emit JSONL you can shell from any language. logbook audit --json returns the live suppressions as one array. The JSON is cache-invariant (byte-identical with and without LOGBOOK_NO_CACHE=1), so it is safe to parse in CI.
  • MCP. @promptwheel/logbook-mcp (bin logbook-mcp) serves the history to an agent over the Model Context Protocol: a Claude Code or other MCP client reads hotspots, do-not-retry reverts, and suppression signals without shelling anything.
  • Import. The package is importable and importing it never runs the CLI. queryEvents, analyze, auditHead, and hotspots are exported for advanced in-process use; the scan and cache entry points take explicit options, so the CLI and MCP are the first-class surfaces for most integrations.

The paired check engine, promptwheel, has the matching surface. Both are described in its INTEGRATE.md.

Evidence status

An internal six-task planning experiment on history-dense repos found that agents without history re-proposed already-tried or already-finished work in 4 of 6 repos and 0 of 6 with LOGBOOK.md in context, at about 4.7k extra plan tokens. A later sealed held-out screen on ten new tasks found no advantage over a strong raw-Git instruction, and traced the gap to retrieval rather than the index. The calibrated claim is: valuable on sufficiently difficult, history-dense tasks; not universally better. Details and limits are in wrong-work-benchmark.md and does-it-change-agent-behavior.md.

Honest scope

  • Findings are leads, not verdicts. A suppression means "look here," not misconduct.
  • Detection is deterministic regex over commit subjects and diffs. It misses history erased by squash/rebase and anything never committed.
  • Shallow clones starve historical analysis; fetch the missing history before treating absence as evidence.
  • Code maps explain where code is. Logbook focuses on what happened over time.

Command reference

text
logbook init [path]logbook [path] [--json]logbook audit [path] [--json [--file P ...] [--ref REF]]logbook doctor [path]logbook query [path] [filters] [--json]logbook context [path] [filters] [--cursor TOKEN]logbook annotate SHA "WHY" [optional evidence] [--by WHO]

logbook --help lists every filter and option.

Upgrading

0.11.0 removes logbook refine, logbook journey, and --out. Both commands now fail with not a git repository, and --out is an unknown option. Artifacts always go to the repository root. The analyze result no longer carries first, last, threshold, mentor, abyss, winter, or trials, and renderJourneyAnsi, journeyBeats, almanacStats, GATE_PAT, and MENTOR_PAT are no longer exported. The event and --json shapes, the five MCP tools, and doctor did not change. MCP server 0.8.0 requires this core.

0.10.0 removed the experimental reviewed-decision layer and the OKF export: annotate-draft, pending, accept/accept-draft, accept-lead, reject-lead, check, publish, outcomes, and export. Files that layer left behind (.logbook/, decision-cards.jsonl, annotation-reviews.jsonl) are ignored and can be deleted by hand.

From any release, a normal refresh rewrites a ## Repo memory block that an earlier release generated, so doctor passes after an upgrade. User-edited blocks are never touched. Existing annotations.jsonl rows stay unreviewed digest notes. A JOURNEY.md left by a release before 0.9.7 is ignored and can be deleted. If 0.8 wrote annotations to a custom directory, move that annotations.jsonl to the repository root. Earlier notes are in the git history of this file.

The logbook records what happened; the check verifies what holds

Logbook tells you what history says. promptwheel is the check that verifies whether today's claimed improvement came from the code rather than moving the goalposts.

Apache 2.0.

來源:README.md,提交 acf69e2

工具

5

logbook_digest

The repo's history digest: hotspots, do-not-retry reverts, suppression ledger, fragile areas, notable events, per-file history. Use when starting work in an unfamiliar repo, before a refactor or large change, or when deciding whether green tests can be trusted.

輸入參數repo

logbook_annotate

Persist a machine-authored, explicitly unreviewed note after investigating a commit. It appears immediately in the repo digest. Optional quoted evidence is raw-object verified.

輸入參數bysha必填why必填reposidespanevidenceFile

logbook_audit

What is STILL suppressed in HEAD and since when (blame-dated), with re-silencing fight logs. Use when asked what tests are skipped, what debt is live, or whether a suppression keeps coming back.

輸入參數repo

logbook_query

Filter the full commit-event record with precision. Start with all relevant files + event type before broad grep. Repeated paths use OR; other filters use AND. Returns up to `limit` matches, default 100, with exact counts and explicit truncation recovery.

輸入參數filegreprepofileslimitsinceuntilrevertweakensuppressdowngrade

logbook_context

Return the same filtered history order as logbook_query in compact, bounded pages for agent context. Pass all relevant paths in files; paths use OR and other filters use AND. This is deterministic delivery, not relevance ranking. Repeat identical filters with every NEXT cursor until END complete when completeness matters.

輸入參數filegreprepofilessinceuntilcursorrevertweakensuppressdowngrade

版本歷史

5
  1. v0.8.0最新Nov 6, 2026
  2. v0.6.4Nov 4, 2026
  3. v0.6.3Nov 4, 2026
  4. v0.6.1Nov 4, 2026
  5. v0.4.0Sep 16, 2026

評分

已滿足適用檢查項的 90%

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

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分