project-librarian 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ko.md +245 -93
- package/README.md +174 -76
- package/SKILL.md +15 -10
- package/dist/args.js +11 -2
- package/dist/code-index-file-policy.js +105 -2
- package/dist/code-index.js +77 -59
- package/dist/hooks.js +78 -0
- package/dist/init-project-wiki.js +234 -166
- package/dist/install-skill.js +2 -9
- package/dist/mcp-server.js +449 -0
- package/dist/migration.js +875 -60
- package/dist/modes.js +205 -59
- package/dist/taxonomy.js +193 -0
- package/dist/templates.js +214 -36
- package/dist/wiki-files.js +15 -27
- package/dist/wiki-graph.js +141 -0
- package/package.json +3 -3
- package/README.ja.md +0 -215
- package/README.zh.md +0 -215
package/README.ja.md
DELETED
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
# Project Librarian
|
|
2
|
-
|
|
3
|
-
[](https://www.npmjs.com/package/project-librarian)
|
|
4
|
-
[](https://opensource.org/licenses/MIT)
|
|
5
|
-
[](https://nodejs.org/)
|
|
6
|
-
[](https://nodejs.org/api/sqlite.html)
|
|
7
|
-
|
|
8
|
-
Codex、Claude Code、Cursor、Gemini CLI のための簡潔なプロジェクトメモリとコード根拠。
|
|
9
|
-
|
|
10
|
-
Project Librarian は、リポジトリローカルの計画 wiki、簡潔な起動 hook、任意の SQLite コード根拠 index を作成します。エージェントはプロジェクト計画から開始し、必要な文書へルーティングされ、リポジトリ全体を繰り返しスキャンせずにコードに基づく根拠を確認できます。
|
|
11
|
-
|
|
12
|
-
言語: [English](README.md) | [한국어](README.ko.md) | [日本語](README.ja.md) | [简体中文](README.zh.md)
|
|
13
|
-
|
|
14
|
-
## 存在理由
|
|
15
|
-
|
|
16
|
-
LLM コーディングエージェントは、セッションごとにプロジェクトを再発見するためにコンテキストとツール呼び出しを消費しがちです。古い会話の読み取り、Markdown のスキャン、ソース検索、関連ファイルの推測が繰り返されます。
|
|
17
|
-
|
|
18
|
-
Project Librarian はエージェントに 2 つのローカル正本を提供します。
|
|
19
|
-
|
|
20
|
-
| 表面 | エージェントが得るもの |
|
|
21
|
-
| --- | --- |
|
|
22
|
-
| `wiki/startup.md` + `wiki/index.md` | 短いセッション開始要約とルーター。必要な計画ページだけを読みます。 |
|
|
23
|
-
| `wiki/canonical/` および `wiki/decisions/` | 現在のプロジェクト事実、制約、リスク、パッケージ契約、CLI 動作、持続的な意思決定。 |
|
|
24
|
-
| `.codex/`、`.claude/`、`.cursor/`、`.gemini/` hook | 全 wiki をロードしない Codex/Claude Code/Cursor/Gemini CLI 起動コンテキスト。 |
|
|
25
|
-
| `GEMINI.md` および `.cursor/rules/` | Gemini CLI と Cursor を同じ簡潔な wiki-first 契約へルーティングする instruction ファイル。 |
|
|
26
|
-
| `.project-wiki/code-evidence.sqlite` | ファイル、シンボル、import、route、所有者、ワークスペースグラフ、レポート、影響確認のための再生成可能なコード根拠。 |
|
|
27
|
-
| 診断とマイグレーションモード | リンク確認、品質確認、マイグレーション受信箱、古い信号のレポート、作業フローの問題発見時の issue draft。 |
|
|
28
|
-
|
|
29
|
-
重要なのは「文書を増やすこと」ではありません。最初のエージェント読み取り量を小さく保ち、より深いプロジェクト正本とコード根拠への信頼できる経路を与えることです。
|
|
30
|
-
|
|
31
|
-
## ベンチマーク結果
|
|
32
|
-
|
|
33
|
-
ベンチマークはメンテナー向けリリース根拠であり、公開ユーザー向け作業フローではありません。README とリリースノートが曖昧な性能表現ではなく、境界付きの数値で説明できるようにする根拠です。
|
|
34
|
-
|
|
35
|
-
現在のローカル測定レポート: `benchmarks/reports/llm/current-local.json` と `benchmarks/reports/llm/current-local.md`。2026-06-10 生成、ChatGPT/Codex auth、`gpt-5.5`、`decision_lookup`、条件ごとに測定 1 回、ウォームアップなし。以下は実際の Codex JSONL usage とローカル wall-clock 測定です。正の delta は Project Librarian 条件が no-Project-Librarian control より多く使ったことを意味します。
|
|
36
|
-
|
|
37
|
-
| Scale | Project Librarian なし | Project Librarian あり | 実測 delta |
|
|
38
|
-
| --- | ---: | ---: | ---: |
|
|
39
|
-
| Small | total 102,655 tokens; input 101,226; 37.15s; command 9回 | total 176,104 tokens; input 173,733; 61.04s; command 15回 | tokens +71.55%; time +64.33%; commands +66.67% |
|
|
40
|
-
| Medium | total 79,340 tokens; input 78,348; 44.28s; command 5回 | total 165,840 tokens; input 163,856; 48.48s; command 10回 | tokens +109.02%; time +9.5%; commands +100% |
|
|
41
|
-
| Large | total 197,097 tokens; input 195,278; 45.87s; command 10回 | total 183,959 tokens; input 181,897; 49.42s; command 13回 | tokens -6.67%; time +7.72%; commands +30% |
|
|
42
|
-
|
|
43
|
-
Claim boundary: この承認済みローカル実行は benchmark claim gate を通過しましたが、clean release baseline ではありません。dirty worktree、条件ごとに 1 回の実行であり、runtime state files が生成 fixture ディレクトリに触れたため、post-run fixture fingerprint validator には clean isolated rerun が必要です。繰り返しの clean actual-LLM 実行で安定した delta が出るまで、Project Librarian の token/time 改善は主張しません。
|
|
44
|
-
|
|
45
|
-
## インストール
|
|
46
|
-
|
|
47
|
-
初期 skill install にだけ `npx` を使います。
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
npx project-librarian install-skill --scope user --agents all
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
現在のリポジトリにインストール:
|
|
54
|
-
|
|
55
|
-
```bash
|
|
56
|
-
npx project-librarian install-skill --scope project --agents all
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
`install-skill` は再利用可能な skill ファイルだけをコピーします。`AGENTS.md`、`CLAUDE.md`、`GEMINI.md`、`wiki/`、`.cursor/rules/`、`.cursor/hooks.json`、`.gemini/settings.json`、`.codex/hooks.json`、`.claude/settings.json` は作成または更新しません。
|
|
60
|
-
|
|
61
|
-
| 状況 | コマンド |
|
|
62
|
-
| --- | --- |
|
|
63
|
-
| 対応するすべての agent にグローバルインストール | `npx project-librarian install-skill --scope user --agents all` |
|
|
64
|
-
| 現在のリポジトリにインストール | `npx project-librarian install-skill --scope project --agents all` |
|
|
65
|
-
| Codex のみ | `npx project-librarian install-skill --agents codex` |
|
|
66
|
-
| Claude Code のみ | `npx project-librarian install-skill --agents claude` |
|
|
67
|
-
| Cursor のみ | `npx project-librarian install-skill --agents cursor` |
|
|
68
|
-
| Gemini CLI のみ | `npx project-librarian install-skill --agents gemini` |
|
|
69
|
-
| インストール結果をプレビュー | `npx project-librarian install-skill --scope project --agents all --dry-run` |
|
|
70
|
-
|
|
71
|
-
## エージェント実行経路
|
|
72
|
-
|
|
73
|
-
インストール後、エージェントは `npx` ではなく、インストール済みのローカルコピーを `node` で実行してください。これにより、制限されたエージェント環境でネットワークアクセスと固定されていないパッケージ実行を避けられます。
|
|
74
|
-
|
|
75
|
-
| インストール先 | 実行経路 |
|
|
76
|
-
| --- | --- |
|
|
77
|
-
| プロジェクト範囲 Codex skill | `node .codex/skills/project-librarian/dist/init-project-wiki.js` |
|
|
78
|
-
| プロジェクト範囲 Claude skill | `node .claude/skills/project-librarian/dist/init-project-wiki.js` |
|
|
79
|
-
| プロジェクト範囲 Cursor skill | `node .cursor/skills/project-librarian/dist/init-project-wiki.js` |
|
|
80
|
-
| プロジェクト範囲 Gemini skill | `node .gemini/skills/project-librarian/dist/init-project-wiki.js` |
|
|
81
|
-
| ユーザー範囲 Codex skill | `node ~/.codex/skills/project-librarian/dist/init-project-wiki.js` |
|
|
82
|
-
| ユーザー範囲 Claude skill | `node ~/.claude/skills/project-librarian/dist/init-project-wiki.js` |
|
|
83
|
-
| ユーザー範囲 Cursor skill | `node ~/.cursor/skills/project-librarian/dist/init-project-wiki.js` |
|
|
84
|
-
| ユーザー範囲 Gemini skill | `node ~/.gemini/skills/project-librarian/dist/init-project-wiki.js` |
|
|
85
|
-
|
|
86
|
-
以下の例では次を使います。
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
PROJECT_LIBRARIAN="node .codex/skills/project-librarian/dist/init-project-wiki.js"
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
インストール先に合うローカル実行経路を使ってください。
|
|
93
|
-
|
|
94
|
-
## 一般的なエージェント作業
|
|
95
|
-
|
|
96
|
-
プロジェクトルートで wiki を作成または更新します。
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
$PROJECT_LIBRARIAN
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
Wiki の検証と保守:
|
|
103
|
-
|
|
104
|
-
| 目的 | エージェントコマンド |
|
|
105
|
-
| --- | --- |
|
|
106
|
-
| wiki 作成または更新 | `$PROJECT_LIBRARIAN` |
|
|
107
|
-
| 既存 docs/wiki のマイグレーション | `$PROJECT_LIBRARIAN --migrate` |
|
|
108
|
-
| 生成された設定の検証 | `$PROJECT_LIBRARIAN --lint` |
|
|
109
|
-
| リンクと文書品質の確認 | `$PROJECT_LIBRARIAN --doctor` |
|
|
110
|
-
| 診断前に生成 routing を更新 | `$PROJECT_LIBRARIAN --doctor --fix` |
|
|
111
|
-
| project wiki 検索 | `$PROJECT_LIBRARIAN --query "authentication decisions"` |
|
|
112
|
-
| 候補メモの保存 | `$PROJECT_LIBRARIAN --capture-inbox --title "Candidate" --content "Details"` |
|
|
113
|
-
| 古い、または未解決の wiki ページの報告 | `$PROJECT_LIBRARIAN --prune-check` |
|
|
114
|
-
| git config を変えず hook ファイルをインストール | `$PROJECT_LIBRARIAN --no-git-config` |
|
|
115
|
-
|
|
116
|
-
コード根拠:
|
|
117
|
-
|
|
118
|
-
| 目的 | エージェントコマンド |
|
|
119
|
-
| --- | --- |
|
|
120
|
-
| 既定の根拠 cache 作成 | `$PROJECT_LIBRARIAN --code-index --code-scope src` |
|
|
121
|
-
| 複数 scope の build | `$PROJECT_LIBRARIAN --code-index --code-scope src --code-scope packages/api` |
|
|
122
|
-
| 増分更新を要求 | `$PROJECT_LIBRARIAN --code-index --incremental` |
|
|
123
|
-
| full rebuild を強制 | `$PROJECT_LIBRARIAN --code-index --code-index-full` |
|
|
124
|
-
| 任意の Tree-sitter backend を使用 | `$PROJECT_LIBRARIAN --code-index --code-parser tree-sitter` |
|
|
125
|
-
| cache 状態を表示 | `$PROJECT_LIBRARIAN --code-status` |
|
|
126
|
-
| index 済みファイル一覧 | `$PROJECT_LIBRARIAN --code-files` |
|
|
127
|
-
| アーキテクチャ/所有者レポートを出力 | `$PROJECT_LIBRARIAN --code-report` |
|
|
128
|
-
| レポート section だけ出力 | `$PROJECT_LIBRARIAN --code-report --code-report-section routes` |
|
|
129
|
-
| 影響根拠を確認 | `$PROJECT_LIBRARIAN --code-impact healthHandler` |
|
|
130
|
-
| index 済みシンボルを検索 | `$PROJECT_LIBRARIAN --code-search-symbol Auth` |
|
|
131
|
-
| 保守的な読み取り専用 SQL を実行 | `$PROJECT_LIBRARIAN --code-query "select path from files order by path"` |
|
|
132
|
-
|
|
133
|
-
コード根拠モードは一度に 1 つだけ実行できます。`--incremental`、`--code-index-full`、`--code-parser` は `--code-index` と一緒に使う場合のみ有効です。
|
|
134
|
-
|
|
135
|
-
## インストールされるファイル
|
|
136
|
-
|
|
137
|
-
- `AGENTS.md`
|
|
138
|
-
- `CLAUDE.md`
|
|
139
|
-
- `GEMINI.md`
|
|
140
|
-
- `wiki/AGENTS.md`
|
|
141
|
-
- `.cursor/rules/project-librarian.mdc`
|
|
142
|
-
- `.codex/hooks.json`
|
|
143
|
-
- `.codex/hooks/wiki-session-start.js`
|
|
144
|
-
- `.claude/settings.json`
|
|
145
|
-
- `.claude/hooks/wiki-session-start.js`
|
|
146
|
-
- `.cursor/hooks.json`
|
|
147
|
-
- `.cursor/hooks/wiki-session-start.js`
|
|
148
|
-
- `.gemini/settings.json`
|
|
149
|
-
- `.gemini/hooks/wiki-session-start.js`
|
|
150
|
-
- `.githooks/prepare-commit-msg`
|
|
151
|
-
- `.githooks/wiki-commit-trailers.js`
|
|
152
|
-
- `wiki/canonical/`, `wiki/decisions/`, `wiki/inbox/`, `wiki/meta/`, `wiki/sources/`, `wiki/migration/`
|
|
153
|
-
- 破棄可能なコード根拠 cache としての `.project-wiki/code-evidence.sqlite`
|
|
154
|
-
|
|
155
|
-
## 仕組み
|
|
156
|
-
|
|
157
|
-
1. Bootstrap は保存優先の wiki 構造と、marker で境界付けられたエージェント指示 section を作成します。
|
|
158
|
-
2. セッション開始 hook は文字数予算付きの `wiki/startup.md` と `wiki/index.md` だけを注入します。
|
|
159
|
-
3. 詳細な計画正本は canonical、decision、source、meta page にあり、エージェントが必要なときに読みます。
|
|
160
|
-
4. `--refresh-index` は新しい wiki page をルーティングし、route が多い場合は `wiki/indexes/auto-*.md` スコープ別ルーターに分割します。
|
|
161
|
-
5. `--code-index` は `.project-wiki/` 配下に破棄可能な SQLite 根拠 cache を作ります。
|
|
162
|
-
6. `--code-report`、`--code-impact`、`--code-search-symbol`、`--code-query` が計画更新用のコード根拠を提供します。
|
|
163
|
-
7. 診断は壊れたリンク、重複 route、orphan page、古いページ、欠落した TL;DR、根拠 gap、マイグレーション方針違反を報告します。
|
|
164
|
-
|
|
165
|
-
マイグレーションはレビュー優先です。`--migrate` は既存 `wiki/` を `wiki_legacy*` として保存し、migration inbox と unit-level coverage ledger を作成し、legacy の意味を現在の wiki ルールに合わせて再構成します。保持またはコピーした legacy 内容は、新しい wiki の方針と構造に合う場合は許容されます。新しい wiki は `wiki_legacy*` への参照に依存してはいけません。
|
|
166
|
-
|
|
167
|
-
## 言語サポート表
|
|
168
|
-
|
|
169
|
-
| 言語 | 拡張子 | 既定の抽出 | Tree-sitter 抽出 | index される根拠 |
|
|
170
|
-
| --- | --- | --- | --- | --- |
|
|
171
|
-
| TypeScript | `.ts`, `.tsx`, `.cts`, `.mts` | `typescript-ast` | `tree-sitter-typescript`, `tree-sitter-tsx` | 関数、クラス、メソッド、変数、interface、type、enum、import、export、呼び出し、一般的な HTTP route |
|
|
172
|
-
| JavaScript | `.js`, `.jsx`, `.cjs`, `.mjs` | `typescript-ast` | `tree-sitter-javascript` | 関数、クラス、メソッド、変数、import、export、`require()` 呼び出し、一般的な HTTP route |
|
|
173
|
-
| Python | `.py` | `python-light` | `tree-sitter-python` | 関数、クラス、`import`、`from ... import` |
|
|
174
|
-
| Go | `.go` | `go-light` | `tree-sitter-go` | 関数、メソッド、型、const、var、単一 import、import block |
|
|
175
|
-
| Rust | `.rs` | 一覧のみ | `tree-sitter-rust` | 関数、struct、enum、trait、impl、`use` import |
|
|
176
|
-
| Java | `.java` | 一覧のみ | `tree-sitter-java` | クラス、interface、enum、メソッド、import |
|
|
177
|
-
| PHP | `.php` | 一覧のみ | `tree-sitter-php` | 関数、クラス、interface、trait、メソッド、namespace use |
|
|
178
|
-
| Kotlin | `.kt`, `.kts` | 一覧のみ | `tree-sitter-kotlin` | 関数、クラス、object、import |
|
|
179
|
-
| Swift | `.swift` | 一覧のみ | `tree-sitter-swift` | 関数、クラス、struct、protocol、enum、import |
|
|
180
|
-
| C | `.c`, `.h` | 一覧のみ | `tree-sitter-c` | 関数、struct、enum、include |
|
|
181
|
-
| C++ | `.cc`, `.cpp`, `.cxx`, `.hpp`, `.hh`, `.hxx` | 一覧のみ | `tree-sitter-cpp` | 関数、class/struct、namespace、enum、include/using |
|
|
182
|
-
| C# | `.cs` | 一覧のみ | `tree-sitter-csharp` | class、interface、struct、enum、メソッド、using |
|
|
183
|
-
|
|
184
|
-
`.rb`、`.vue`、`.css` は認識されますが一覧のみです。設定ファイルは設定根拠または一覧根拠として index されます。
|
|
185
|
-
|
|
186
|
-
## CLI リファレンス
|
|
187
|
-
|
|
188
|
-
エージェント実行にはローカル実行経路を使います。
|
|
189
|
-
|
|
190
|
-
```bash
|
|
191
|
-
$PROJECT_LIBRARIAN [init] [options]
|
|
192
|
-
$PROJECT_LIBRARIAN install-skill [--scope user|project] [--agents codex|claude|cursor|gemini|all|both]
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
重要なオプション: `--migrate`, `--lint`, `--link-check`, `--quality-check`, `--doctor`, `--doctor --fix`, `--migration-lint`, `--migration-quality-check`, `--migration-doctor`, `--query`, `--refresh-index`, `--capture-inbox`, `--issue-draft`, `--issue-create`, `--glossary-init`, `--prune-check`, `--review-migration`, `--no-git-config`, `--code-index`, `--code-report`, `--code-impact`, `--code-search-symbol`, `--code-query`.
|
|
196
|
-
|
|
197
|
-
## 開発
|
|
198
|
-
|
|
199
|
-
```bash
|
|
200
|
-
npm install
|
|
201
|
-
npm run typecheck
|
|
202
|
-
npm run build
|
|
203
|
-
npm test
|
|
204
|
-
npm pack --dry-run
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
メンテナー向けベンチマークコマンドは [benchmarks/README.md](benchmarks/README.md) にあります。これはリリース根拠と公開主張の検証用であり、通常のエンドユーザー設定ではありません。
|
|
208
|
-
|
|
209
|
-
## 着想
|
|
210
|
-
|
|
211
|
-
このプロジェクトは Andrej Karpathy の [LLM Wiki](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) パターンに影響を受けています。
|
|
212
|
-
|
|
213
|
-
## ライセンス
|
|
214
|
-
|
|
215
|
-
MIT
|
package/README.zh.md
DELETED
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
# Project Librarian
|
|
2
|
-
|
|
3
|
-
[](https://www.npmjs.com/package/project-librarian)
|
|
4
|
-
[](https://opensource.org/licenses/MIT)
|
|
5
|
-
[](https://nodejs.org/)
|
|
6
|
-
[](https://nodejs.org/api/sqlite.html)
|
|
7
|
-
|
|
8
|
-
面向 Codex、Claude Code、Cursor 和 Gemini CLI 的简洁项目记忆与代码依据。
|
|
9
|
-
|
|
10
|
-
Project Librarian 会创建仓库本地规划 wiki、简洁启动 hook,以及可选 SQLite 代码依据索引。代理可以从项目计划开始,被路由到正确文档,并在不反复扫描整个仓库的情况下查看由代码支撑的依据。
|
|
11
|
-
|
|
12
|
-
语言: [English](README.md) | [한국어](README.ko.md) | [日本語](README.ja.md) | [简体中文](README.zh.md)
|
|
13
|
-
|
|
14
|
-
## 为什么存在
|
|
15
|
-
|
|
16
|
-
LLM 编码代理经常在每个会话开始时重新发现项目,浪费上下文和工具调用:读取旧对话、扫描 Markdown、搜索源码,并猜测哪些文件重要。
|
|
17
|
-
|
|
18
|
-
Project Librarian 给代理两个本地事实来源。
|
|
19
|
-
|
|
20
|
-
| 表面 | 代理获得什么 |
|
|
21
|
-
| --- | --- |
|
|
22
|
-
| `wiki/startup.md` + `wiki/index.md` | 简短的会话启动摘要和路由器,只读取相关规划页面。 |
|
|
23
|
-
| `wiki/canonical/` 和 `wiki/decisions/` | 当前项目事实、约束、风险、包契约、CLI 行为和持久决策。 |
|
|
24
|
-
| `.codex/`、`.claude/`、`.cursor/` 和 `.gemini/` hooks | 不加载整个 wiki 的 Codex/Claude Code/Cursor/Gemini CLI 启动上下文。 |
|
|
25
|
-
| `GEMINI.md` 和 `.cursor/rules/` | 将 Gemini CLI 和 Cursor 路由到同一个紧凑 wiki-first 契约的 instruction 文件。 |
|
|
26
|
-
| `.project-wiki/code-evidence.sqlite` | 可再生成的代码依据,用于文件、符号、import、route、所有权、工作区图、报告和影响检查。 |
|
|
27
|
-
| 诊断和迁移模式 | 链接检查、质量检查、迁移收件箱、过期信号报告,以及工作流暴露问题时的 issue draft。 |
|
|
28
|
-
|
|
29
|
-
核心不是“写更多文档”,而是让代理第一次读取保持小,并给它可靠路线进入更深的项目事实和代码依据。
|
|
30
|
-
|
|
31
|
-
## 基准结果
|
|
32
|
-
|
|
33
|
-
基准是维护者发布依据,不是公开用户工作流。它让 README 和发布说明用有边界的数字说明价值,而不是使用模糊性能描述。
|
|
34
|
-
|
|
35
|
-
当前本地测量报告:`benchmarks/reports/llm/current-local.json` 和 `benchmarks/reports/llm/current-local.md`,生成于 2026-06-10,ChatGPT/Codex auth,`gpt-5.5`,`decision_lookup`,每个条件 1 次测量运行,无预热。以下值是真实 Codex JSONL usage 和本地 wall-clock 测量。正 delta 表示 Project Librarian 条件比 no-Project-Librarian control 使用更多。
|
|
36
|
-
|
|
37
|
-
| Scale | 未使用 Project Librarian | 使用 Project Librarian | 实测 delta |
|
|
38
|
-
| --- | ---: | ---: | ---: |
|
|
39
|
-
| Small | total 102,655 tokens; input 101,226; 37.15s; command 9次 | total 176,104 tokens; input 173,733; 61.04s; command 15次 | tokens +71.55%; time +64.33%; commands +66.67% |
|
|
40
|
-
| Medium | total 79,340 tokens; input 78,348; 44.28s; command 5次 | total 165,840 tokens; input 163,856; 48.48s; command 10次 | tokens +109.02%; time +9.5%; commands +100% |
|
|
41
|
-
| Large | total 197,097 tokens; input 195,278; 45.87s; command 10次 | total 183,959 tokens; input 181,897; 49.42s; command 13次 | tokens -6.67%; time +7.72%; commands +30% |
|
|
42
|
-
|
|
43
|
-
声明边界:这次经批准的本地运行通过了 benchmark claim gate,但不是 clean release baseline。它基于 dirty worktree、每个条件只运行 1 次,而且 runtime state files 触碰了生成的 fixture 目录,因此 post-run fixture fingerprint validator 需要 clean isolated rerun。在重复的 clean actual-LLM 运行显示稳定 delta 前,不声明 Project Librarian 改善 token 或时间。
|
|
44
|
-
|
|
45
|
-
## 安装
|
|
46
|
-
|
|
47
|
-
只在初始 skill 安装时使用 `npx`。
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
npx project-librarian install-skill --scope user --agents all
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
安装到当前仓库:
|
|
54
|
-
|
|
55
|
-
```bash
|
|
56
|
-
npx project-librarian install-skill --scope project --agents all
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
`install-skill` 只复制可复用的 skill 文件。它不会创建或更新 `AGENTS.md`、`CLAUDE.md`、`GEMINI.md`、`wiki/`、`.cursor/rules/`、`.cursor/hooks.json`、`.gemini/settings.json`、`.codex/hooks.json` 或 `.claude/settings.json`。
|
|
60
|
-
|
|
61
|
-
| 场景 | 命令 |
|
|
62
|
-
| --- | --- |
|
|
63
|
-
| 为所有支持的 agent 全局安装 | `npx project-librarian install-skill --scope user --agents all` |
|
|
64
|
-
| 安装到当前仓库 | `npx project-librarian install-skill --scope project --agents all` |
|
|
65
|
-
| 只安装 Codex | `npx project-librarian install-skill --agents codex` |
|
|
66
|
-
| 只安装 Claude Code | `npx project-librarian install-skill --agents claude` |
|
|
67
|
-
| 只安装 Cursor | `npx project-librarian install-skill --agents cursor` |
|
|
68
|
-
| 只安装 Gemini CLI | `npx project-librarian install-skill --agents gemini` |
|
|
69
|
-
| 预览安装结果 | `npx project-librarian install-skill --scope project --agents all --dry-run` |
|
|
70
|
-
|
|
71
|
-
## 代理运行路径
|
|
72
|
-
|
|
73
|
-
安装后,代理应使用 `node` 运行已安装的本地副本,而不是 `npx`。这可以避免受限代理环境中的网络访问和未固定版本的包执行。
|
|
74
|
-
|
|
75
|
-
| 安装位置 | 运行路径 |
|
|
76
|
-
| --- | --- |
|
|
77
|
-
| 项目范围 Codex skill | `node .codex/skills/project-librarian/dist/init-project-wiki.js` |
|
|
78
|
-
| 项目范围 Claude skill | `node .claude/skills/project-librarian/dist/init-project-wiki.js` |
|
|
79
|
-
| 项目范围 Cursor skill | `node .cursor/skills/project-librarian/dist/init-project-wiki.js` |
|
|
80
|
-
| 项目范围 Gemini skill | `node .gemini/skills/project-librarian/dist/init-project-wiki.js` |
|
|
81
|
-
| 用户范围 Codex skill | `node ~/.codex/skills/project-librarian/dist/init-project-wiki.js` |
|
|
82
|
-
| 用户范围 Claude skill | `node ~/.claude/skills/project-librarian/dist/init-project-wiki.js` |
|
|
83
|
-
| 用户范围 Cursor skill | `node ~/.cursor/skills/project-librarian/dist/init-project-wiki.js` |
|
|
84
|
-
| 用户范围 Gemini skill | `node ~/.gemini/skills/project-librarian/dist/init-project-wiki.js` |
|
|
85
|
-
|
|
86
|
-
下面示例使用:
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
PROJECT_LIBRARIAN="node .codex/skills/project-librarian/dist/init-project-wiki.js"
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
请使用与你的安装位置匹配的本地运行路径。
|
|
93
|
-
|
|
94
|
-
## 常见代理工作流
|
|
95
|
-
|
|
96
|
-
在项目根目录创建或更新 wiki。
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
$PROJECT_LIBRARIAN
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
Wiki 验证和维护:
|
|
103
|
-
|
|
104
|
-
| 目的 | 代理命令 |
|
|
105
|
-
| --- | --- |
|
|
106
|
-
| 创建或更新 wiki | `$PROJECT_LIBRARIAN` |
|
|
107
|
-
| 迁移已有 docs/wiki | `$PROJECT_LIBRARIAN --migrate` |
|
|
108
|
-
| 验证生成的设置 | `$PROJECT_LIBRARIAN --lint` |
|
|
109
|
-
| 检查链接和文档质量 | `$PROJECT_LIBRARIAN --doctor` |
|
|
110
|
-
| 诊断前刷新生成的路由 | `$PROJECT_LIBRARIAN --doctor --fix` |
|
|
111
|
-
| 搜索 project wiki | `$PROJECT_LIBRARIAN --query "authentication decisions"` |
|
|
112
|
-
| 保存候选备注 | `$PROJECT_LIBRARIAN --capture-inbox --title "Candidate" --content "Details"` |
|
|
113
|
-
| 报告过期或未解决的 wiki 页面 | `$PROJECT_LIBRARIAN --prune-check` |
|
|
114
|
-
| 不修改 git config 安装 hook 文件 | `$PROJECT_LIBRARIAN --no-git-config` |
|
|
115
|
-
|
|
116
|
-
代码依据:
|
|
117
|
-
|
|
118
|
-
| 目的 | 代理命令 |
|
|
119
|
-
| --- | --- |
|
|
120
|
-
| 创建默认依据缓存 | `$PROJECT_LIBRARIAN --code-index --code-scope src` |
|
|
121
|
-
| 构建多个范围 | `$PROJECT_LIBRARIAN --code-index --code-scope src --code-scope packages/api` |
|
|
122
|
-
| 要求增量更新 | `$PROJECT_LIBRARIAN --code-index --incremental` |
|
|
123
|
-
| 强制完整重建 | `$PROJECT_LIBRARIAN --code-index --code-index-full` |
|
|
124
|
-
| 使用可选 Tree-sitter backend | `$PROJECT_LIBRARIAN --code-index --code-parser tree-sitter` |
|
|
125
|
-
| 查看缓存状态 | `$PROJECT_LIBRARIAN --code-status` |
|
|
126
|
-
| 列出已索引文件 | `$PROJECT_LIBRARIAN --code-files` |
|
|
127
|
-
| 输出架构/所有权报告 | `$PROJECT_LIBRARIAN --code-report` |
|
|
128
|
-
| 只输出一个报告 section | `$PROJECT_LIBRARIAN --code-report --code-report-section routes` |
|
|
129
|
-
| 查看影响依据 | `$PROJECT_LIBRARIAN --code-impact healthHandler` |
|
|
130
|
-
| 搜索已索引符号 | `$PROJECT_LIBRARIAN --code-search-symbol Auth` |
|
|
131
|
-
| 执行保守的只读 SQL | `$PROJECT_LIBRARIAN --code-query "select path from files order by path"` |
|
|
132
|
-
|
|
133
|
-
代码依据模式一次只能运行一个。`--incremental`、`--code-index-full` 和 `--code-parser` 只有与 `--code-index` 一起使用时才有效。
|
|
134
|
-
|
|
135
|
-
## 会安装什么
|
|
136
|
-
|
|
137
|
-
- `AGENTS.md`
|
|
138
|
-
- `CLAUDE.md`
|
|
139
|
-
- `GEMINI.md`
|
|
140
|
-
- `wiki/AGENTS.md`
|
|
141
|
-
- `.cursor/rules/project-librarian.mdc`
|
|
142
|
-
- `.codex/hooks.json`
|
|
143
|
-
- `.codex/hooks/wiki-session-start.js`
|
|
144
|
-
- `.claude/settings.json`
|
|
145
|
-
- `.claude/hooks/wiki-session-start.js`
|
|
146
|
-
- `.cursor/hooks.json`
|
|
147
|
-
- `.cursor/hooks/wiki-session-start.js`
|
|
148
|
-
- `.gemini/settings.json`
|
|
149
|
-
- `.gemini/hooks/wiki-session-start.js`
|
|
150
|
-
- `.githooks/prepare-commit-msg`
|
|
151
|
-
- `.githooks/wiki-commit-trailers.js`
|
|
152
|
-
- `wiki/canonical/`, `wiki/decisions/`, `wiki/inbox/`, `wiki/meta/`, `wiki/sources/`, `wiki/migration/`
|
|
153
|
-
- 作为可丢弃代码依据缓存的 `.project-wiki/code-evidence.sqlite`
|
|
154
|
-
|
|
155
|
-
## 工作方式
|
|
156
|
-
|
|
157
|
-
1. Bootstrap 创建保留优先的 wiki 结构,以及由 marker 定界的代理指令 section。
|
|
158
|
-
2. 会话启动 hook 只注入带字符预算的 `wiki/startup.md` 和 `wiki/index.md`。
|
|
159
|
-
3. 详细规划事实位于 canonical、decision、source、meta page,代理按需读取。
|
|
160
|
-
4. `--refresh-index` 路由新的 wiki page;route 很多时拆分到 `wiki/indexes/auto-*.md` 分范围路由器。
|
|
161
|
-
5. `--code-index` 在 `.project-wiki/` 下创建可丢弃 SQLite 依据缓存。
|
|
162
|
-
6. `--code-report`、`--code-impact`、`--code-search-symbol`、`--code-query` 为规划更新提供代码依据。
|
|
163
|
-
7. 诊断报告坏链接、重复 route、orphan page、过期页面、缺少 TL;DR、依据 gap 和迁移策略违规。
|
|
164
|
-
|
|
165
|
-
迁移以审查为先。`--migrate` 会把已有 `wiki/` 保存为 `wiki_legacy*`,写入 migration inbox 和 unit-level coverage ledger,并把 legacy 含义按当前 wiki 规则重构。保留或复制的 legacy 内容只要符合新 wiki 的策略和结构即可接受;新的 wiki 不应依赖引用 `wiki_legacy*` 才能被理解。
|
|
166
|
-
|
|
167
|
-
## 语言支持表
|
|
168
|
-
|
|
169
|
-
| 语言 | 扩展名 | 默认提取 | Tree-sitter 提取 | 索引的依据 |
|
|
170
|
-
| --- | --- | --- | --- | --- |
|
|
171
|
-
| TypeScript | `.ts`, `.tsx`, `.cts`, `.mts` | `typescript-ast` | `tree-sitter-typescript`, `tree-sitter-tsx` | 函数、类、方法、变量、interface、type、enum、import、export、调用、常见 HTTP route |
|
|
172
|
-
| JavaScript | `.js`, `.jsx`, `.cjs`, `.mjs` | `typescript-ast` | `tree-sitter-javascript` | 函数、类、方法、变量、import、export、`require()` 调用、常见 HTTP route |
|
|
173
|
-
| Python | `.py` | `python-light` | `tree-sitter-python` | 函数、类、`import`、`from ... import` |
|
|
174
|
-
| Go | `.go` | `go-light` | `tree-sitter-go` | 函数、方法、类型、const、var、单个 import、import block |
|
|
175
|
-
| Rust | `.rs` | 仅清单 | `tree-sitter-rust` | 函数、struct、enum、trait、impl、`use` import |
|
|
176
|
-
| Java | `.java` | 仅清单 | `tree-sitter-java` | 类、interface、enum、方法、import |
|
|
177
|
-
| PHP | `.php` | 仅清单 | `tree-sitter-php` | 函数、类、interface、trait、方法、namespace use |
|
|
178
|
-
| Kotlin | `.kt`, `.kts` | 仅清单 | `tree-sitter-kotlin` | 函数、类、object、import |
|
|
179
|
-
| Swift | `.swift` | 仅清单 | `tree-sitter-swift` | 函数、类、struct、protocol、enum、import |
|
|
180
|
-
| C | `.c`, `.h` | 仅清单 | `tree-sitter-c` | 函数、struct、enum、include |
|
|
181
|
-
| C++ | `.cc`, `.cpp`, `.cxx`, `.hpp`, `.hh`, `.hxx` | 仅清单 | `tree-sitter-cpp` | 函数、class/struct、namespace、enum、include/using |
|
|
182
|
-
| C# | `.cs` | 仅清单 | `tree-sitter-csharp` | class、interface、struct、enum、方法、using |
|
|
183
|
-
|
|
184
|
-
`.rb`、`.vue` 和 `.css` 会被识别,但仅进入清单。配置文件会作为配置依据或清单依据被索引。
|
|
185
|
-
|
|
186
|
-
## CLI 参考
|
|
187
|
-
|
|
188
|
-
代理执行使用本地运行路径。
|
|
189
|
-
|
|
190
|
-
```bash
|
|
191
|
-
$PROJECT_LIBRARIAN [init] [options]
|
|
192
|
-
$PROJECT_LIBRARIAN install-skill [--scope user|project] [--agents codex|claude|cursor|gemini|all|both]
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
重要选项:`--migrate`, `--lint`, `--link-check`, `--quality-check`, `--doctor`, `--doctor --fix`, `--migration-lint`, `--migration-quality-check`, `--migration-doctor`, `--query`, `--refresh-index`, `--capture-inbox`, `--issue-draft`, `--issue-create`, `--glossary-init`, `--prune-check`, `--review-migration`, `--no-git-config`, `--code-index`, `--code-report`, `--code-impact`, `--code-search-symbol`, `--code-query`.
|
|
196
|
-
|
|
197
|
-
## 开发
|
|
198
|
-
|
|
199
|
-
```bash
|
|
200
|
-
npm install
|
|
201
|
-
npm run typecheck
|
|
202
|
-
npm run build
|
|
203
|
-
npm test
|
|
204
|
-
npm pack --dry-run
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
维护者基准命令位于 [benchmarks/README.md](benchmarks/README.md)。它们用于发布依据和公开声明验证,不是普通最终用户设置流程。
|
|
208
|
-
|
|
209
|
-
## 灵感
|
|
210
|
-
|
|
211
|
-
本项目受到 Andrej Karpathy 的 [LLM Wiki](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) 模式启发。
|
|
212
|
-
|
|
213
|
-
## 许可证
|
|
214
|
-
|
|
215
|
-
MIT
|