Skip to main content

docsweep

English version: README.en.md

AI コーディングツール(Claude Code / Codex 等)が生成する plan_*.md / bugfix_*.md / pending_*.md蓄積・陳腐化問題を解決する クロスプラットフォーム CLI + Web UI ツール。

H1 ステータスラベル([完了] / [計画] / [廃止] 等)を機械的に読み取り、完了を各プロジェクトの archive/ へ自動移送し、陳腐化を「要判断」フラグで可視化し、複数プロジェクトを横断 INDEX で一望できます。

OKF(Open Knowledge Format)v0.2 対応

docsweep は OKF v0.2 の公式仕様 に合わせ、Markdown frontmatter の type / status を機械可読に扱います。 OKF の status は文書ライフサイクル(draft / stable / deprecated)なので、 docsweep の作業状態(planned / in-progress / watching / done / discarded / pending)は拡張フィールド docsweep_state に分離しています。

type と追加フィールドは OKF の方針どおり閉じた登録簿にせず、docsweep が標準管理する plan / bugfix / pending 以外も壊さず保持します。manual / reference / setup は 静的な知識文書として扱い、H1 ラベルは 人間向け表示として併用し、旧形式の status: planned なども読み取り互換を維持します。 既存ファイルを移行するときは migrate-frontmatter --dry-run で差分を確認してから --apply を実行してください。

詳細な対応表は docs/okf-mapping.md、Bundle の構造は docs/okf-export-format.md を参照してください。

インストール

pip install docsweep                  # コア + CLI(wings の主要コマンド・SQLite 索引込み)
pip install 'docsweep[all]'           # Web UI / 対話レビュー / MCP / watch / resurrect も含む
pip install 'docsweep[watch]'         # index-watch のみ追加(watchdog)
pip install 'docsweep[resurrect]'     # resurrect の embedding 経路(sentence-transformers)

docsweep は PATH に docsweep コマンドを通さない運用を標準にしています。 CLI / Web UI / MCP は、Python 実行ファイルから module として起動できます。

python -m docsweep triage
python -m docsweep mcp
python -m docsweep serve --root ~/dev

MCP クライアントへ登録する場合も、docsweep mcp ではなく python -m docsweep mcp を推奨します。より再現性を上げるなら、command には Python 実行ファイルの絶対パスを指定します。

{
  "mcpServers": {
    "docsweep": {
      "command": "C:\\Users\\you\\AppData\\Local\\Programs\\Python\\Python312\\python.exe",
      "args": ["-m", "docsweep", "mcp"]
    }
  }
}

上記の Python312インストールされている Python のバージョンに置き換えてください。 確認方法: Windows は where python、macOS / Linux は which python3。 もしくは python -c "import sys; print(sys.executable)" でフルパスが取れます。

docsweep ... は Python の Scripts/bin ディレクトリが PATH に入っている環境向けの短縮形です。

インストール後どこに置かれて、どう使えるか(OS 別)

pip install docsweepPython の site-packages にライブラリを配置します。 別バイナリは生成されず、python -m docsweep ... で起動するのが標準動線です。

共通の挙動

  • docsweep/ パッケージ本体: 起動中の Python が解決する site-packages に展開される
  • 設定・状態: ~/.docsweep/(全 OS 共通の論理パス)
  • MCP 設定: AI クライアント(Claude Code 等)の設定ファイルに python -m docsweep mcp を 1 行登録するだけ
  • PATH 設定不要: docsweep を PATH に通さなくても、python -m docsweep ... ですべての機能にアクセス可能

Windows

項目 場所
Python 実体(per-user 標準インストール) C:\Users\<you>\AppData\Local\Programs\Python\Python3XX\python.exe
docsweep 本体(pip install 後) C:\Users\<you>\AppData\Local\Programs\Python\Python3XX\Lib\site-packages\docsweep\
docsweep 設定・状態 C:\Users\<you>\.docsweep\(= %USERPROFILE%\.docsweep\ = ~/.docsweep
docsweep ショートカット ...\Python3XX\Scripts\docsweep.exe(PATH 通っていれば docsweep 直で起動可)

Windows ストア版 Python は避けることを推奨%LOCALAPPDATA%\Microsoft\WindowsApps\python.exe 経由のストア版は仮想ストア配置の制約で Scripts/ ディレクトリへの書き込みが弾かれることがあり、 pip install 自体は通っても docsweep.exe ランチャーが正しく作られない/PATH に乗らないトラブルが 起きます。python.org 配布のインストーラ(per-user)か pyenv-win を使うのが安全です。

# インストール
pip install 'docsweep[all]'

# 起動(PATH を気にせず常に動く形)
python -m docsweep triage
python -m docsweep serve --root D:\dev
python -m docsweep mcp

# MCP 登録例(~\.claude\mcp.json)— 絶対パスにすると Python 切替時も安定
# {
#   "mcpServers": {
#     "docsweep": {
#       "command": "C:\\Users\\you\\AppData\\Local\\Programs\\Python\\Python312\\python.exe",
#       "args": ["-m", "docsweep", "mcp"]
#     }
#   }
# }
# Python312 は実環境のバージョンに置換。確認: `where python` または `python -c "import sys; print(sys.executable)"`

macOS

項目 場所
Python 実体(Homebrew 例) /opt/homebrew/bin/python3 (Apple Silicon) / /usr/local/bin/python3 (Intel)
docsweep 本体 /opt/homebrew/lib/python3.XX/site-packages/docsweep/ 等(python3 -m site で確認)
docsweep 設定・状態 ~/.docsweep/(= /Users/<you>/.docsweep/
docsweep ショートカット /opt/homebrew/bin/docsweep 等(PATH に既に入っていることが多い)
# インストール(PEP 668 で system Python 保護がかかっていれば --user か venv 経由を選ぶ)
pip3 install 'docsweep[all]'

# 起動
python3 -m docsweep triage
python3 -m docsweep serve --root ~/dev
python3 -m docsweep mcp

# MCP 登録例(~/.claude/mcp.json)
# {
#   "mcpServers": {
#     "docsweep": {
#       "command": "/opt/homebrew/bin/python3",
#       "args": ["-m", "docsweep", "mcp"]
#     }
#   }
# }
# 自環境の Python パスは `which python3` で確認

Linux

PEP 668 注意(Ubuntu 23.04+ / Debian 12+ / Fedora 38+ など): 近年の distro は system Python を保護しており、 素の pip installerror: externally-managed-environment で拒否されます。 解決策は venv--userpipx のいずれか(下記コマンド例の通り)。 --break-system-packages フラグでの強行は OS 管理パッケージとコンフリクトする原因になるので推奨しません。

項目 場所
Python 実体(distro pkg / pyenv 等) /usr/bin/python3 / ~/.pyenv/versions/3.XX.X/bin/python
docsweep 本体 /usr/lib/python3.XX/site-packages/docsweep/~/.local/lib/python3.XX/site-packages/docsweep/--user 利用時)
docsweep 設定・状態 ~/.docsweep/
docsweep ショートカット /usr/local/bin/docsweep / ~/.local/bin/docsweep(PATH に ~/.local/bin が無い distro では PATH 設定要)
# 多くの distro は system Python を pip で汚せない。venv か --user か pipx を推奨
python3 -m venv ~/.venvs/docsweep && source ~/.venvs/docsweep/bin/activate
pip install 'docsweep[all]'

# または
pip install --user 'docsweep[all]'

# 起動
python3 -m docsweep triage
python3 -m docsweep serve --root ~/dev
python3 -m docsweep mcp

# MCP 登録例(~/.claude/mcp.json)— venv 内 Python の絶対パスを指定する
# {
#   "mcpServers": {
#     "docsweep": {
#       "command": "/home/you/.venvs/docsweep/bin/python",
#       "args": ["-m", "docsweep", "mcp"]
#     }
#   }
# }
# 自環境の Python パスは `which python3` で確認

インストール形態を選ぶ

方式 向き不向き
直接 pip install(ユーザー Python に入れる) 個人ツールとして気軽に使いたい時。最短手数
venv 隔離python -m venv ... で専用環境) 依存をユーザー Python に混ぜたくない時。MCP 設定は venv 内 Python の絶対パスを書く
pipx(CLI として隔離 install) docsweep CLI だけ使う時。MCP からは pipx の内部 venv Python を絶対パス指定
pip install -e .(リポを clone して editable install) 自分で docsweep を開発・拡張する時。src 編集が即反映

アンインストール

pip uninstall docsweep
# 設定を消したい場合は別途
rm -rf ~/.docsweep                # macOS / Linux
Remove-Item -Recurse ~/.docsweep  # Windows PowerShell

使い方

朝の入口は brief: 何も思い出せなくても python -m docsweep brief で「今日の 1 個」が断定的に出ます。 プロジェクト横断は python -m docsweep cross。詳細: docs/ai-agent-integration.md

# === wings(v0.2 系)の主要新コマンド ===

# 朝の入口 — 今日 1 個だけやろうを断定する(cwd プロジェクト)
python -m docsweep brief
python -m docsweep brief --all              # 全プロジェクト横並び要約
python -m docsweep brief --continue         # 末尾の対話を出さず context を即クリップボードへ

# 全プロジェクト束ねた俯瞰 — top_pick + 凍結予備軍 + project_summaries
python -m docsweep cross
python -m docsweep cross --project alpha,beta
python -m docsweep cross --explain plan_x.md   # スコア内訳

# 会話履歴から plan/bugfix/pending の草案を抽出(heuristic / LLM mock)
python -m docsweep capture --from clipboard
python -m docsweep capture --from file ./conv.md --save-all

# plan の「変更予定ファイル」と実装実態の整合チェック
python -m docsweep linkcheck --json

# 親 plan と child plan の closeout 検査(read-only。状態変更・archive はしない)
python -m docsweep closeout-check --path docs/local/plan_<parent>.md --to watching --json

# 状態遷移を提案(ruleset / 将来 LLM 委譲)+ 一括適用
python -m docsweep auto-triage --suggest > decisions.json
python -m docsweep auto-triage --apply decisions.json --dry-run

# 関係性ネットワーク(plan/bugfix/pending と frontmatter related のグラフ)
python -m docsweep graph --json

# archive と現役の類似ペアを抽出(embedding opt-in / 既定は Jaccard)
python -m docsweep resurrect --threshold 0.5

# SQLite 索引 ~/.docsweep/index.db
python -m docsweep index-sync               # 差分のみ取り込み(高速)
python -m docsweep index-rebuild            # 全件再構築
python -m docsweep index-watch              # ファイル監視で自動同期(watchdog 必要)

# === 従来コマンド(既存・後方互換) ===

# スキャン(既定は要判断+保留のみ表示)
python -m docsweep --root ~/dev
python -m docsweep ./thisproject            # config 不要の単発スキャン
python -m docsweep scan --all --json        # 全件を機械可読 JSON で

# 自動移送(cron / CI / AI 委譲向け・非対話)。done/discarded のみ・様子見は守る
python -m docsweep sweep --dry-run
python -m docsweep sweep

# 横断 INDEX を再生成(.docsweep/INDEX.md と INDEX.json)
python -m docsweep index
python -m docsweep pending                  # 全プロジェクトの [保留] だけ一発表示
python -m docsweep report                   # 人間向け週次レポート
python -m docsweep summary                  # AI に渡す圧縮 JSON

# リリース整理(様子見をまとめて完了へ昇格し archive へ)
python -m docsweep promote --state watching --to done

# 対話チェックリスト(人間専用)
python -m docsweep review

# テンプレ即生成
python -m docsweep new plan my-topic
python -m docsweep new bugfix crash-on-start
python -m docsweep new plan my-topic --split 3  # child に docsweep_parent を付ける

# OKF 互換 zip でエクスポート(docsweep を抜けても md が腐らないことを実演する材料)
python -m docsweep export --okf                          # ./docsweep-okf-<date>.zip
python -m docsweep export --okf --out /tmp/snapshot.zip  # 出力先を明示
python -m docsweep export --okf --include-archive        # archive/ 配下も含める

# 任意 Bundle を read-only 検査(未知 type / 追加キー / 壊れた link は警告扱い)
python -m docsweep okf-check ./bundle --json
python -m docsweep okf-profiles

# profile は既定では同梱 JSON。外部 profile は明示したときだけ取得する
python -m docsweep export --okf --okf-profile ./okf-profile.json
python -m docsweep okf-check ./bundle --okf-profile https://raw.githubusercontent.com/<org>/<repo>/<sha>/okf.json --okf-profile-sha256 <sha256>

# 運用ルールを各プロジェクトへ注入/取り消し(CLAUDE.md=正本・AGENTS.md はそこを指すポインタ)
python -m docsweep inject --project ./foo --preset claude-jp
python -m docsweep inject --project ./foo --no-guidance   # 導線を省きラベル節だけ(導線をグローバルに寄せる場合)
python -m docsweep eject  --project ./foo                  # 管理ブロックだけ剥がす(手書きは温存。--purge で .docsweep.yaml も)

# 個人グローバルへ「セッション開始時に triage を読む」導線+due ルールを一度だけ注入(全プロジェクトで有効)
python -m docsweep inject --global                         # 既定 agent=claude(~/.claude/CLAUDE.md に @import 1 行)
python -m docsweep inject --global --agent codex           # ~/.codex/AGENTS.md にインライン(CODEX_HOME 尊重)
python -m docsweep inject --global --lang en               # 注入文言を英語で生成(プロジェクト注入でも --lang 可)
python -m docsweep eject  --global

python -m docsweep list                                    # 注入済み(プロジェクト+グローバル)一覧

# Web UI(UX 主役・127.0.0.1・初回だけ ?token= 付き URL、以降は Cookie で /board を直接開ける)。注入/解除もダッシュボードから(プレビュー必須)
python -m docsweep serve --root ~/dev

# MCP サーバー(AI エージェント面・stdio)
python -m docsweep mcp

Web UI(看板)はこんな見た目です。

やり忘れ列

「完了」「廃止」になったカードは archive 候補列にまとまり、まとめて archive へ送れます。

archive 候補列

状態モデル(一直線・単一正本)

plan:    [保留] → [計画] → [実行中] → [様子見] → [完了]
bugfix:           [実行中] → [様子見] → [完了]
         (どちらも、どの状態からでも [廃止] へ分岐できる)
  • [様子見] = 直したが寝かせ中。自動移送されません(再発確認の待機列として守る)。
  • [完了] / [廃止] だけが archive 対象。[廃止] は削除ではなく archive/ へ隔離(復元可能)。
  • ラベル語彙・archive 可否・自動移送可否は states: 設定が 唯一の正本で、検出・Web 表示・ 注入テンプレを全部そこから導出します。

設定の層

優先順位 ① CLI フラグ > ② プロジェクト .docsweep.yaml > ③ グローバル ~/.docsweep/config.yaml。 グローバルだけ書けば体感 1 層。.docsweep.yaml は置いた時だけ部分上書きで効きます。

よくある 3 パターン(グローバル ~/.docsweep/config.yaml

プロジェクト境界は .git / package.json / pyproject.toml 等の実体マーカーで自動判定するので、 root の中で各プロジェクトがどの深さにあっても OK(フォルダ階層を決め打ちしない)。

A. 1 つの親ディレクトリ以下を丸ごと管理

roots:
  - ~/dev

B. 飛び飛びの複数ディレクトリを管理

roots:
  - ~/dev/github/public
  - ~/dev/works/clientA
  - ~/dev/works/clientB
  - /d/sandbox/experiments

C. 用途別に切り替えたい(profiles)

roots:
  - ~/dev/github/public        # 既定(無引数)で見る範囲
profiles:
  work:                         # python -m docsweep triage --profile work
    - ~/dev/works/clientA
    - ~/dev/works/clientB
  all:                          # python -m docsweep triage --profile all
    - ~/dev/github/public
    - ~/dev/works

一回きりの単発スキャンは config を書かずに位置引数で指定もできます:

python -m docsweep triage ~/dev/foo ~/projects/bar

作業 queue と private ドキュメント

new / capture --save-all / MCP capture_save は、同じプロジェクト相対 work_dir に保存します。 未設定時の既定は docs/local で、プロジェクトに docs/ があるかどうかで保存先は変わりません。

work_dir: docs/local       # プロジェクト相対。例: docs/ai
work_policy: private       # private は Git ignore / tracked 状態を保存前に検査
secret_policy: block       # high-confidence secret は拒否。warn / off も選択可

解決順は CLI の --work-dir / --work-policy / --secret-policy、プロジェクト設定、 グローバル設定の順です。private queue は export の既定対象から除外され、brief / triage は Git ignore されていても設定済み queue を確認できます。秘密情報の警告や JSON / UI の表示には本文・値の一部を含めません。 必要な場合だけ --allow-sensitive を明示してください。

初回は python -m docsweep init で既定設定を作り、各プロジェクトでは python -m docsweep inject の導線と python -m docsweep new plan <topic> を使います。

AI エージェント連携

wings(v0.2 系)の方針: 「全 AI 対応」を最優先し、自然言語起動の価値が高い 朝の入口 3 toolbrief / cross / capture_extract+capture_save)だけを MCP に露出、それ以外は CLI 直叩き で 全 AI に対応します。詳細・自然言語マッピング表は docs/ai-agent-integration.md

推奨運用: MCP 登録せず CLI 一本化

各 AI ツール(Claude Code / Codex / Cursor …)に MCP サーバーを個別登録するより、 CLI 経由(python -m docsweep ...)を AI に直接叩かせる運用が最もシンプルです。

  • インストール 1 回で全 AI ツールから使える(MCP 登録は AI ツールごとに別ファイル)
  • 戻り値・triage の中身は MCP と同じ — AI から見た体験はほぼ変わらない
  • 唯一の手間は AI 側で python -m docsweep を allowlist に追加 すること

Claude Code の場合、~/.claude/settings.jsonpermissions.allow に 1 行追記:

{
  "permissions": {
    "allow": [
      "Bash(python -m docsweep:*)"
    ]
  }
}

docsweep からは この JSON を自動で書き換えません(権限境界の操作になるため)。 ユーザーが意図的に貼り付ける運用に倒しています。MCP として使いたい場合は 上の「MCP 登録例」を使ってください(こちらも自動登録はしません)。

triage の中身

python -m docsweep triage(または MCP の triage ツール)は、要判断+保留を古い順に絞った残作業countsitems[]needs_fix[] で返します。各 item は rel(相対パス)・title(H1)・ state(ラベル)・typeage_dayssummaryactionsdiscard/keep/resume/relabel/promote の閉じた集合)を持ち、エージェントは「次にどのファイルの何を続けるか」を判断 → python -m docsweep apply で 機械実行します。横断 INDEX 全体の俯瞰は python -m docsweep summary。docsweep 自身は AI API を叩きません(ベンダー非依存)。

セッション開始時に AI へ自動でこの残作業を渡すには python -m docsweep inject --global(Claude は @import、 Codex はインラインで「作業前に triage を読む」導線を個人グローバル設定へ一度だけ注入)。

特定プロジェクトだけ調べたい時(--project

複数 root を横断管理していると、AI からの自然言語クエリは「全体」より 「<このリポ> だけ」になりがちです。sweep / promote / triage / scan / summary は 共通の --project <name> フラグでプロジェクト名(境界フォルダ名)に絞り込めます。

# 「many-ai-cli の archive 移送対象いくつ?」
python -m docsweep sweep --dry-run --project many-ai-cli

# 「docsweep プロジェクトの様子見昇格候補は?」
python -m docsweep promote --dry-run --project docsweep

# 「many-ai-cli の残作業ある?」
python -m docsweep triage --project many-ai-cli

# 「docsweep プロジェクトの全件だけ JSON で吐いて」
python -m docsweep scan --all --project docsweep --json

# 「docsweep プロジェクトの俯瞰を圧縮 JSON で」
python -m docsweep summary --project docsweep

絞り込みは スキャンルートを動かさず後段でフィルタ します。各プロジェクトの .gitignoredocs/local/ を除外していても、グローバル config の roots: から見えていれば対象になります (位置引数 . で当該プロジェクトを単発スキャンすると .gitignore で除外されて 0 件になる 落とし穴を回避するための設計)。

triage / summarycounts も per-project スコープに揃えて返します(フィルタ後の items 数と一致するので、AI/人間どちらが見ても齟齬がありません)。

MCP 経由でも同じく引数で絞れます。例: triage(project="many-ai-cli") / summary(project="docsweep") / sweep(project="many-ai-cli", dry_run=True)。CLI と MCP で引数名・挙動を完全に揃えています。

詳細は docs/conventions.mdtemplates/AGENT_GUIDE.md を参照してください。

ライセンス

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

docsweep-0.4.0.tar.gz (2.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

docsweep-0.4.0-py3-none-any.whl (781.8 kB view details)

Uploaded Python 3

File details

Details for the file docsweep-0.4.0.tar.gz.

File metadata

  • Download URL: docsweep-0.4.0.tar.gz
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for docsweep-0.4.0.tar.gz
Algorithm Hash digest
SHA256 76b505010e3fbbc17d0fd2f506de79e456c34aa24dba560e42857e1b17269fbd
MD5 d05e853daa75e3d13b025a183120fd74
BLAKE2b-256 081750b76ab2b21df4bdddb9e5040d4b734db22932eeb609b1837f5f1549ed65

See more details on using hashes here.

Provenance

The following attestation bundles were made for docsweep-0.4.0.tar.gz:

Publisher: publish.yml on ishizakahiroshi/docsweep

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file docsweep-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: docsweep-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 781.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for docsweep-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0cba087127735572ade975fab0497f88b73bc0035f64e392b96c3f5fac04664f
MD5 b193453c74ce7139a220da43a13d4d4f
BLAKE2b-256 f9ec36f0185deb529867b31bf7c6590993d628d2195d6328f96780b9b692cf58

See more details on using hashes here.

Provenance

The following attestation bundles were made for docsweep-0.4.0-py3-none-any.whl:

Publisher: publish.yml on ishizakahiroshi/docsweep

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 files

0.3.1

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page