skills/sync-edit/SKILL.md
/vibecorp:sync-check で検出された不整合を、各職種エージェントに委任して修正する。 各エージェントは自分の管轄ファイルのみ編集する。 「/vibecorp:sync-edit」「整合性を直して」と言った時に使用。
npx skillsauth add hirokimry/vibecorp sync-editInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
[!IMPORTANT]
/vibecorp:sync-checkで検出された不整合を 各職種エージェントに委任して 修正する。 各エージェントは 自分の管轄ファイルだけ を編集する(越境禁止)。.claude/knowledge/{role}/の書込みはknowledge/bufferworktree 経由限定。
/vibecorp:sync-check の結果に基づき、不整合を各 C*O / SM に委任して直す。本スキルはスタンプを発行しない(スタンプは sync-check のみが発行する)。
/vibecorp:sync-check が先に実行されていること。C*O 委任編集の .claude/knowledge/{role}/ 配下への書き込みは knowledge/buffer worktree 経由で行う(docs/specification.md の「自動反映フロー」原則)。作業ブランチへの直書きは protect-knowledge-direct-writes.sh フックで deny される。
. "$CLAUDE_PROJECT_DIR/.claude/lib/knowledge_buffer.sh"
knowledge_buffer_ensure || { echo "[sync-edit] buffer 準備失敗。作業ブランチへの直書きはフックで deny されるため処理を中止" >&2; exit 1; }
knowledge_buffer_lock_acquire || { echo "[sync-edit] ロック取得失敗(${VIBECORP_LOCK_TIMEOUT:-60}s)" >&2; exit 2; }
trap knowledge_buffer_lock_release EXIT
BUFFER_DIR="$(knowledge_buffer_worktree_dir)"
なお docs/ 配下(specification.md / design-philosophy.md / POLICY.md / cost-analysis.md / ai-organization.md)は本スキルの管轄では作業ブランチに書く(ドキュメントは PR 経由で main に直接反映する仕様)。.claude/knowledge/{role}/ のみ buffer worktree 経由とする。
直前の /vibecorp:sync-check の結果を参照し、修正が必要なファイルと担当エージェントを特定する。
修正が必要な管轄を持つエージェントを Agent ツールで順次起動 する(ロールファイルの競合防止)。
デフォルト(CTO / CPO):
| エージェント | 管轄ファイル(書込先) | 編集権限 |
|-------------|------------|---------|
| CTO | docs/specification.md(技術スタック部分・作業ブランチ)、.claude/rules/(作業ブランチ)、${BUFFER_DIR}/.claude/knowledge/cto/(buffer worktree) | 管轄のみ |
| CPO | docs/specification.md(プロダクト仕様部分・作業ブランチ)、${BUFFER_DIR}/.claude/knowledge/cpo/(buffer worktree) | 管轄のみ |
拡張時(上記に加えて追加可能):
| エージェント | 管轄ファイル(書込先) | 編集権限 |
|-------------|------------|---------|
| 法務 | docs/POLICY.md(作業ブランチ)、${BUFFER_DIR}/.claude/knowledge/legal/(buffer worktree) | 管轄のみ |
| 経理 | docs/cost-analysis.md(作業ブランチ)、${BUFFER_DIR}/.claude/knowledge/accounting/(buffer worktree) | 管轄のみ |
| SM | docs/ai-organization.md(作業ブランチ)、${BUFFER_DIR}/.claude/knowledge/sm/(buffer worktree) | 管轄のみ |
knowledge/ の記事 は、内容の領域に応じて該当する職種エージェントが編集する。書込先は必ず ${BUFFER_DIR} 配下(作業ブランチ直書きはフックで deny される)。
各エージェントに以下を渡して Agent ツールで起動する。
重要: 各エージェントは hooks による権限チェックを受けるため、ロール宣言が必須。プロンプトは skills/sync-edit/prompts/agent-call-cxo-sync-edit.md を参照する。
注意: エージェントは順次起動する(並列だとロールファイルが競合する)。
各エージェントの出力に ### 判断記録(記録先取得失敗) セクションが含まれる場合、当該エージェントの knowledge/ 書込みが buffer 取得失敗で失敗している。判断内容を結果レポート末尾の「⚠️ 手動反映が必要な判断記録」ブロックに転記し、ユーザーに docs/migration-knowledge-buffer.md の手順での手動反映を促す。
ヘッダー名は厳格指定(バリエーション禁止)。検知は アンカー付き grep(行頭 ^ + 行末 $)で行う。
if echo "$agent_output" | grep -q '^### 判断記録(記録先取得失敗)$'; then
# 結果レポートに「⚠️ 手動反映が必要な判断記録」ブロックとして転記
fi
knowledge_buffer_commit は差分なしを成功扱い(exit 0)するため || true は不要。実際の git エラーを握り潰さないために、commit 失敗時は push を中止する。
push_status="success"
if ! knowledge_buffer_commit "chore(knowledge): sync-edit fixes $(date +%Y-%m-%d)"; then
echo "[sync-edit] commit 失敗。push は中止します。buffer 内容を確認してください: ${BUFFER_DIR}" >&2
push_status="failed (commit 失敗)"
elif ! knowledge_buffer_push; then
echo "[sync-edit] push 失敗。commit は ${BUFFER_DIR} に保持。手動 push: git -C ${BUFFER_DIR} push origin knowledge/buffer" >&2
push_status="failed (worktree に保持)"
fi
全エージェントの修正結果を統合し、以下のフォーマットで出力する。
## sync-edit 結果
### 修正内容
#### CTO(技術設計)
- docs/design-philosophy.md: {変更の要約}(作業ブランチ)
- ${BUFFER_DIR}/.claude/knowledge/cto/decisions.md: {変更の要約}(buffer worktree)
#### CPO(プロダクト)
- docs/specification.md: {変更の要約}(作業ブランチ)
#### 法務(拡張時のみ)
- docs/POLICY.md: {変更の要約}(作業ブランチ)
### 出力ステータス
- buffer commit: 成功 / 失敗(差分なしスキップ)
- buffer push: 成功 / 失敗(失敗時は ${BUFFER_DIR} に保持)
### ⚠️ 手動反映が必要な判断記録(フォールバック発動時のみ)
{各エージェントの「### 判断記録(記録先取得失敗)」セクションをここに転記}
→ docs/migration-knowledge-buffer.md の手順で手動反映してください
### 次のステップ
→ `/vibecorp:sync-check` を再実行して整合性を確認してください
修正完了後、必ず /vibecorp:sync-check の再実行を案内する。sync-edit 自身はスタンプを発行しない(スタンプは sync-check のみが発行する)。
protect-knowledge-direct-writes.sh フックで deny される。git add / git commit / git push は knowledge_buffer_* ヘルパー経由でのみ実行する。\(...) を使わない — Bash 上で \ がエスケープ文字、() がサブシェルとして解釈され、意図しない展開やパースエラーを引き起こすため。必ず + で結合する。2>/dev/null、|| echo、; echo 等のリダイレクトやフォールバックを付加しない(根拠)。data-ai
skills/**/SKILL.md 内に embed された 5 行以上のエージェント呼出プロンプトテンプレ・長文ブロックを .claude/rules/notification-prompt-extraction.md 基準で skills/<skill>/prompts/<name>.md に切り出す migration skill。「/prompts-extract-all」「プロンプト切り出し」「プロンプト extract」「SKILL.md プロンプト migration」と言った時に使用。検出は awk でフェンスコードブロックを抽出して行数カウント、要否判定は LLM が閾値・用途軸・命名規約と照合。diff 提案 → CEO 承認 → 書換の 2 段階で挙動を壊さず適用する。自動マージ禁止、自律ループ対象外。
documentation
.github/workflows/**/*.{yml,yaml} の --body 通知文と hooks/**/*.sh の長文 echo/printf/heredoc を .claude/rules/notification-prompt-extraction.md 基準で個別 .md ファイルに切り出す migration skill。「/notifications-extract-all」「通知文切り出し」「通知文 extract」「workflow 通知 migration」と言った時に使用。検出は grep で機械絞り込み、要否判定は LLM が閾値・命名規約と照合。diff 提案 → CEO 承認 → 書換の 2 段階で挙動を壊さず適用する。自動マージ禁止、自律ループ対象外。
development
`**/*.sh` / `**/*.js` / `**/*.ts` / `**/*.py` / `**/*.rb` / `**/*.go` / 設定ファイル等のコード内コメントを一括棚卸しし、 `.claude/rules/code-comments.md` と機械的に照合する。 diff 提案 → CEO 承認 → 書換の 2 段階で自動マージを禁じる。 生成コード・`node_modules`・`vendor`・`dist`・`build` 等は除外する。 「/vibecorp:comments-rewrite-all」「コメント全書き直し」「コード内コメント棚卸し」 と言った時に使用。
development
skills/**/SKILL.md・agents/*.md・.claude/rules/*.md を .claude/rules/prompt-writing.md 基準で一括書き直し提案するスキル。「/prompts-rewrite-all」「プロンプト書き直し」「スキル一括書き直し」「エージェント書き直し」と言った時に使用。claude-code-guide サブエージェントで Claude Code 公式仕様(docs.claude.com)を確認し、prompt-writing.md の指針 MUST / 禁止パターンと照合する。diff 提案 → CEO 承認 → 書き換えの 2 段階で挙動を壊さず適用する。自動マージ禁止。