agentleFS
ayutazayutaz/piper-plus/.claude/skills/sync-docs/SKILL.md

sync-docs

Skill240 starsChanged 17 days agoMITView on GitHub

コミット前にエージェントチームで全ドキュメント (CLAUDE.md / README / CHANGELOG / docs/) を監査し、コード変更に応じて自動更新します。大規模変更時の documentation drift を予防。

22 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use review-pr, release and 1 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • DockerSkill

    review-pr

    Review one or more incoming Docker documentation pull requests as a maintainer. Independently validate technical claims, assess editorial fit and information architecture, choose a verdict, and draft exact inline or PR-wide feedback behind a confirmation gate. Use for requests such as "review PR 123", "is this PR correct?", "does this information belong here?", "validate this PR", or "help review backlog PRs". Do not use to maintain or fix a PR you own; use maintain-pr for that.

    Also in 3 projects that use this

  • MicrosoftSkill

    release

    Use ONLY when the user explicitly asks to cut/publish a Huabu desktop release or tag a version. Performs an outward action — bumps the version in apps/desktop/package.json, commits + annotated-tags vX.Y.Z, and pushes the branch + tag. That tag push auto-builds the macOS/Windows installers and publishes a GitHub Release. Provides `status`, `bump`, `tag-push`, and a one-command `run` (bump → tag-push).

    Also in 3 projects that use this

  • MicrosoftSkill

    handoff

    Compact the current conversation into a handoff document for another agent to pick up.

    Also in 3 projects that use this

The file

Files
SKILL.md

ドキュメント同期 (エージェントチーム並列監査)

コード変更に対して CLAUDE.md / README / CHANGELOG / docs/features / docstring を一括で監査し、更新が必要な箇所を検出して自動適用します。

前提

このスキルは コミット前 に使うことを想定しています。コミット済みの変更と未ステージ変更の両方を対象にします。

入力

  • $ARGUMENTS が空: dev..HEAD (現在のブランチの全変更) + 未コミット変更
  • $ARGUMENTS = staged: ステージ済み変更のみ (git diff --cached)
  • $ARGUMENTS = HEAD~3..HEAD: 特定のコミット範囲
  • $ARGUMENTS = ファイルパス: そのファイルの変更のみ

現在の状態

  • ブランチ: !git rev-parse --abbrev-ref HEAD
  • dev との差分ファイル数: !git diff --name-only dev..HEAD 2>/dev/null | wc -l | tr -d ' '
  • 未コミット変更: !git status --short 2>/dev/null | wc -l | tr -d ' '

フェーズ 1: 変更サマリ収集

  1. git diff --name-only で変更ファイルをカテゴリ分類:
    • 実装 (src/python_run/piper_plus/*.py, src/python/g2p/**, src/rust/piper-core/**, src/cpp/*.cpp, src/csharp/**, src/go/**, src/wasm/openjtalk-web/src/*.js)
    • テスト (*/tests/**, */test/**)
    • ビルド (*.toml, *.json, CMakeLists.txt, *.yml)
    • ドキュメント (*.md, docs/**)
  2. 各カテゴリのファイル数と代表ファイルを記録

フェーズ 2: 並列ドキュメント監査 (エージェントチーム)

以下の 7 エージェントを 1 メッセージで並列起動 します:

Agent 1: CLAUDE.md 監査

subagent_type: Explore task: CLAUDE.md の「実装済み機能」「重要なファイルパス」「OpenAI 互換 API」セクションを確認し、実装変更に対する追加・修正が必要か判定。新規モジュール/クラス/HTTP エンドポイント/テストファイルが未記載なら、具体的な diff を提案。

Agent 2: ルート README 監査

subagent_type: Explore task: README.md, README_EN.md, README.*.md (他言語) の Features / Interfaces / Feature Support Matrix を確認。新機能が各ランタイムで利用可能になった場合、対応 runtime 行を更新。

Agent 3: ランタイム別 README 監査

subagent_type: Explore task: src/python_run/README.md, src/python_run/README_http.md, src/wasm/openjtalk-web/README.npm.md, src/rust/piper-cli/README.md, src/go/README.md を確認。API 例・CLI フラグ・HTTP エンドポイントが最新か判定。

Agent 4: CHANGELOG 監査

subagent_type: Explore task: CHANGELOG.md と src/wasm/openjtalk-web/CHANGELOG.md の [Unreleased] セクションが、コード変更 (新機能/バグ修正/破壊的変更) を反映しているか確認。未反映なら具体的な markdown を提案。

Agent 5: docs/features・docs/spec 監査

subagent_type: Explore task: docs/features/*.md と docs/spec/*.toml / *.md を確認。新機能の専用ドキュメントが必要か、既存の仕様ファイル (ort-session-contract.toml, short-text-contract.toml, phoneme-timing-contract.toml など) の更新が必要か判定。

Agent 6: docstring / JSDoc 整合性監査

subagent_type: Explore task: 変更された公開 API (関数・クラス・メソッド) に docstring / JSDoc / TypeScript 型定義があるか確認。新規 public API に docstring がない、または既存の docstring が実装と齟齬している箇所を検出。

Agent 7: Version Drift 監査 (release-versions.toml canonical)

subagent_type: Explore task: 以下の 3 段階で version-drift を検出する。

  1. Canonical 抽出: docs/spec/release-versions.toml を読み、各ランタイム (python, rust, dotnet.core, dotnet.cli, npm.synthesis, npm.g2p, swift.synthesis, swift.g2p, kotlin.android_g2p) の expected_prefix を取得。これを canonical truth とする。
  2. CLAUDE.md ランタイム別パッケージ表との照合: CLAUDE.md の「ランタイム別パッケージ」表 (見出し | ランタイム | パッケージ | バージョン | を含む table) を抽出し、各ランタイムの記載バージョンが expected_prefix で始まるかを確認。不一致なら drift 報告。
  3. docs/spec/*.toml 内 version comment 監査: 全 docs/spec/*.toml を grep で # v1\.|# v0\. 等の version reference comment を抽出し、release-versions.toml の expected_prefix とずれていないか確認 (例: audio-format-contract.toml の # v1.12.0 で HiFi-GAN は削除 が canonical と矛盾していないか)。
  4. CHANGELOG.md unreleased 重複検査: CHANGELOG.md の [Unreleased] セクションに、既に release tag が付いた version (release-versions.toml::expected_prefix で始まる version) への reference が残っていないか確認。残っていれば「release 後の cleanup 漏れ」として報告。
  5. README ランタイム matrix 整合性: README.md および README_EN.md の Feature Support Matrix / ランタイム表に書かれたバージョン番号が canonical と一致するか確認。

報告形式は他の Agent と同じく markdown diff。 drift が見つからなければ「全 N ランタイム version 整合」と報告。

各エージェントには以下を渡します:

  • 変更ファイル一覧 (フェーズ 1 の出力)
  • 対象ディレクトリ
  • 「読み取りのみ、変更提案は markdown diff 形式で報告」という指示

フェーズ 3: 更新提案の統合

7 エージェントの結果を収集し、以下の形式で 統合レポート を作成:

## ドキュメント監査結果

### 🔴 更新必須 (機能との不整合)
| ファイル | 問題 | 提案 |
|---------|------|------|
| CLAUDE.md | 新機能 X が未記載 | 「## 実装済み機能」に新セクション追加 |
| ... | ... | ... |

### 🟠 更新推奨 (品質向上)
| ファイル | 問題 | 提案 |
|---------|------|------|
| README.md | Feature matrix 未更新 | ... |

### 🟢 更新不要
(問題なしのファイル一覧)

フェーズ 4: ユーザー確認 → 自動適用

  1. 統合レポートをユーザーに提示
  2. ユーザーの承認を得る (「適用してください」等)
  3. 承認後、各エージェントが提案した変更を Edit tool で適用
  4. 変更後、git diff で最終確認

フェーズ 5: コミット準備

適用が完了したら、以下を表示:

  • 更新されたファイルのリスト
  • /commit skill を呼び出してコミットするよう促す
  • または、ドキュメント更新を別コミットに分ける提案

注意事項

  • ユーザーの承認なしに勝手に適用しない (フェーズ 3 → 4 の間で確認を取る)
  • 既存の正しい記述を破壊しない (削除・書き換えは最小限)
  • 監査のみ要求された場合 (例: /sync-docs --audit-only) は フェーズ 4 をスキップ
  • 大規模変更 (>500 行) では特に CLAUDE.md / CHANGELOG の更新を重点確認
  • 新規 test ファイルが追加された場合、CLAUDE.md の「テスト」項目に件数を追記することを検討

実行例

/sync-docs
→ フェーズ 1-3 を実行し、監査レポートを提示
→ ユーザー承認後、フェーズ 4-5 を実行

/sync-docs staged
→ ステージ済み変更のみを監査

/sync-docs HEAD~3..HEAD
→ 直近 3 コミットを監査

期待効果

PR #349 で発生した「ドキュメント更新を一括で後付けする」パターンを、コミット単位で小さく防止 します。エージェントチームを並列で動かすことで、7 観点の監査を短時間で完了できます。

Agent 7 (Version Drift 監査) により、release-versions.toml を canonical とした以下の drift を一括検出:

  • CLAUDE.md ランタイム別パッケージ表のバージョン番号
  • docs/spec/*.toml 内に埋め込まれた version comment (# v1.12.0 で削除 等)
  • CHANGELOG.md [Unreleased] の release 済み version reference 残留
  • README Feature Support Matrix のランタイム version

memory feedback_data_asset_distribution.md で記録された「新規データファイル追加時 7 箇所の package metadata 更新」を補強する観点。

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.