skills/notifications-extract-all/SKILL.md
.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 段階で挙動を壊さず適用する。自動マージ禁止、自律ループ対象外。
npx skillsauth add hirokimry/vibecorp notifications-extract-allInstall 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] 本スキルは
.github/workflows/**とhooks/**に embed された CEO 向け通知文 を.claude/rules/notification-prompt-extraction.md基準で個別.mdファイルに切り出す。 diff 提案 → CEO 承認 → 書換の 2 段階を必須とする。自動マージは禁止。 本スキルは自律改善ループの自動実行対象外(.claude/rules/autonomous-restrictions.md不可領域 4 / 6 該当)。
本スキルが切り出し提案の対象とするファイル種別は以下とする。
| 種別 | パス | 切り出し対象 |
|------|------|------------|
| 🤖 GHA workflow | .github/workflows/**/*.yml, .github/workflows/**/*.yaml | gh issue comment --body "..." / gh pr comment --body "..." / actions/github-script の script: 等 |
| 🪝 hook シェル | hooks/**/*.sh | echo / printf / cat <<EOF で出力する CEO 向けエラー・警告文 |
切り出し先(notification-prompt-extraction.md の規定パス):
| 由来 | 切り出し先 |
|------|----------|
| GHA workflow | .github/workflows/messages/<name>.md |
| hook シェル | hooks/messages/<name>.md |
skills/**/SKILL.md のプロンプトテンプレ → 兄弟スキル /prompts-extract-all の管轄docs/ 配下の純粋なドキュメント → /docs-rewrite-all/notifications-extract-all
/notifications-extract-all --target workflows
/notifications-extract-all --target hooks
--target 未指定なら workflow / hook を順次処理する本スキルは以下 8 段階を順に進める。各段は前段の出力を受け取り次段へ渡す。
| ステップ | 名称 | 役割 | |---------|------|------| | 1️⃣ | 列挙 | 対象ファイルを収集する | | 2️⃣ | 照合 | 基準と機械的に突き合わせる | | 3️⃣ | 委譲 | CISO Agent を呼び出す | | 4️⃣ | 提案 | diff を CEO に提示する | | 5️⃣ | 承認 | CEO の判断を待つ | | 6️⃣ | 書換 | 承認分のみファイルに反映する | | 7️⃣ | 配布版同期 | ローカル配布版スナップショットを同期する | | 8️⃣ | レポート | 結果を CEO 向けに整形する |
find .github/workflows -type f \( -name '*.yml' -o -name '*.yaml' \) -print
find hooks -type f -name '*.sh' -print
node_modules, vendor 等)は対象外各ファイル内の通知文候補を以下のパターンで grep / awk 抽出する。
| 由来 | 抽出パターン |
|------|------------|
| GHA workflow | --body "..."、script: ブロック、heredoc(<<EOF / <<-EOF) |
| hook シェル | echo "..." / printf "..." / cat <<EOF(連続行) |
抽出した候補に対し、notification-prompt-extraction.md の 指針 MUST 全項目 と 禁止パターン全項目 を 1 件ずつ突き合わせる。
.claude/rules/notification-prompt-extraction.md が Single Source of Truth通知文は CEO が GitHub UI で読む文面であり、情報露出経路を含むため CISO に委譲する。
Agent ツールで CISO を起動し、以下のプロンプト要素を含める。
.claude/rules/notification-prompt-extraction.md / .claude/rules/communication.md / .claude/rules/markdown.md)CISO は複数並列で起動してよい(各 CISO は別ファイルを扱うため競合しない)。
ステップ 3 で集めた書き換え案をファイル単位の diff として整形し、以下を明示する。
permissions: / secrets: セクションを巻き込んでいないこと提示は ファイル単位 にまとめる。CEO の指示で「まとめて見る」と言われた場合のみ複数ファイル同時提示に切り替える。
CEO に以下の選択肢を提示する。
| 選択肢 | 効果 | |--------|------| | ✅ 全採用 | 提示した diff を全て切り出し対象に取る | | 🔢 項目選択 | 採用したい項目の番号を指定する | | ⏭️ スキップ | このファイルの切り出しを保留する | | ✋ 中止 | スキル全体を中止する |
CEO 承認なしに本体ファイルを書き換えない。AskUserQuestion ツールで選択肢を明示提示してもよい。
ステップ 5 で承認された項目のみ反映する。手順は以下。
.md ファイルを Write で新規作成(通知文本体をそのまま配置)Edit で書き換え(--body "..." → --body-file <path>、echo "..." → cat "${SCRIPT_DIR}/messages/<name>.md").md の中身と元の通知文を diff -q または cmp -s で whitespace 含めて厳密一致 することを確認bash tests/test_*.sh を全件走らせ、通過することを確認書き換えは ファイル単位の commit で行う(後追いで diff を追跡できるように)。
[!NOTE] workflow yaml の実 CI 動作確認はローカル不能。SKILL.md の本動線では文字列厳密一致 + テスト全件通過までを担保し、push 後の CI 結果は CEO がレビューする運用とする。
書き換えた本体に対応するローカル配布版スナップショット(.claude/vibecorp-base/)があれば同内容で同期する。
install.sh が生成するローカルスナップショット(.claude/.gitignore で除外).md 自体は templates/claude/ 配下に同期する経路は持たない(vibecorp プラグインの skills/hooks は skills/ / hooks/ ディレクトリそのものが配布元).claude/rules/communication.md の 30 秒ルール(一覧性・状態絵文字で変化が一目で掴める)を満たすレポートを返す。
## /notifications-extract-all レポート
- ✅ 対象ファイル数: N
- ✅ 切り出し提案: M
- ✅ CEO 承認: A
- ✅ 切り出し完了: A
- ✅ 配布版同期: B
- ⚠️ スキップ: S
- 🔒 除外保護(permissions/secrets): 検出 K 件、全て除外維持
- ✅ 挙動不変性検証: 文字列厳密一致 全件 PASS / テスト全件 PASS
状態絵文字の選び方:
以下は 絶対に切り出さない(巻き込み禁止)。
| 除外対象 | 理由 |
|---------|------|
| permissions: セクション | autonomous-restrictions.md 不可領域 6(CI エージェント) |
| secrets: セクション | 同上 |
| $'...'(ANSI-C クォート) | 機械検出困難、初版スコープ外 |
| $(cat ...) / $(echo ...) 動的展開 | 文脈依存で意味が変わる |
| 短い通知文(閾値以下) | notification-prompt-extraction.md の閾値で除外 |
| エージェントログ・デバッグ出力 | CEO 向けではない開発者向け出力(>&2 リダイレクト等) |
ステップ 2 の照合フェーズで除外検出を必ず実行し、ステップ 4 の提案で「🔒 除外確認」を明示する。
本スキルは以下の理由により .claude/rules/autonomous-restrictions.md の 不可領域 4(ガードレール: skills/**) と 不可領域 6(CI エージェント: .github/workflows/**) に該当する。
.github/workflows/** 配下の yaml を書き換える(不可領域 6)hooks/** 配下のシェルを書き換える(ガードレール周辺)そのため:
/vibecorp:diagnose → /vibecorp:autopilot → /vibecorp:ship-parallel)の自動実行対象外diagnose-active スタンプ中は diagnose-guard.sh のデフォルト deny で実行不可| エージェント | 専門領域 | 本スキルでの担当 |
|-------------|---------|----------------|
| ciso | セキュリティ・情報露出 | 通知文の切り出し提案(CEO 向け文面、情報露出経路を含むため) |
CISO は 管轄ファイルのみ 切り出し提案する。
本スキル固有の指針のみを定義する。切り出し基準そのものは .claude/rules/notification-prompt-extraction.md を Single Source of Truth として参照する。
🔒 除外ルールを必ず先に確認する
permissions: / secrets: / $'...' / $(cat ...) / 動的展開 / 短文を巻き込まない🛑 diff 提案 → CEO 承認 → 書換の 2 段階を守る
🔍 挙動不変性検証(文字列厳密一致 + テスト全件通過)を必ず実行する
bash tests/test_*.sh 全件を走らせ通過させる📦 ローカル配布版スナップショットを同期する
.claude/vibecorp-base/ 配下に対応ファイルがあれば同内容で同期する🛡️ 自律ループ対象外宣言を尊重する
本スキル固有の禁止のみを定義する。切り出し基準の禁止パターンは notification-prompt-extraction.md を参照する。
permissions: / secrets: セクションに踏み込む
autonomous-restrictions.md 不可領域 6 違反、最大の攻撃経路を開く$(cat ...) / $(echo ...))を機械的に切り出す
.claude/rules/notification-prompt-extraction.md.claude/rules/communication.md.claude/rules/markdown.md.claude/rules/shell.md.claude/rules/autonomous-restrictions.md/prompts-extract-all/docs-rewrite-all / /prompts-rewrite-alldata-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 段階で挙動を壊さず適用する。自動マージ禁止、自律ループ対象外。
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 段階で挙動を壊さず適用する。自動マージ禁止。
documentation
`docs/**/*.md` + `README.md` + `CHANGELOG.md` を一括棚卸しし、 `.claude/rules/document-writing.md` と機械的に照合する。 領域別に C*O へ書き換えを委譲し、diff 提案 → CEO 承認 → 書換の 2 段階で自動マージを禁じる。`LICENSE` は除外する。 「/vibecorp:docs-rewrite-all」「ドキュメント全書き直し」「ドキュメント棚卸し」 と言った時に使用。