Pre-choice usable artifact execution
Purpose & Output Contractの最小の実成果物をmain contextで作成する。effect別のparse/open・secret・irreversible・corrupt guardだけを実行し、現物path・digest・開き方を提示してからaccept-as-is/light/standard/detailedを記録する。accept-as-isはその場でhandoff完了とし、後続sectionを実行しない。
Post-choice selected improvement execution
以下の既存workflow・goal-seek・評価・修正sectionはlight/standard/detailedが記録されてsemantic_evaluator_startedへ遷移した場合だけ実行する。release/exhaustiveは別の明示eventを必要とする。
run-migrate-audit
Purpose & Output Contract
肥大化した prompt / CLAUDE.md / docs を doc/20-migration-path.md の 8 区分に
自動分類し、移行先 Skill 候補(ref-* / run-* / wrap-* / assign-* / delegate-*)と
Hook/CI/CLI 化候補を JSON で出力する。
出力 contract
.claude/handoff/migrate-audit-<session>.json:
{
"input_file": "{{path}}",
"sections": [
{
"heading": "...",
"classification": "always-on|ref|run|wrap|assign|delegate|hook|docs",
"rationale": "...",
"suggested_skill_name": "ref-..."
}
],
"summary": {
"ref_candidates": 0,
"run_candidates": 0,
"hook_candidates": 0,
"kept_in_claude_md": 0
}
}
Boundary
- 入口: 既存 CLAUDE.md / prompt ファイルパス(複数可)
- 出口: 分類 JSON + 各候補に対する空 SKILL.md スケルトン提案
- 非責務: 実際の SKILL.md 生成とその設計評価(
assign-skill-design-evaluator 採点)→ 下流 run-build-skill(内蔵の設計評価ゲート)に委譲
Key Rules
- 入力を物理削除しない(思考リセット ≠ ファイル削除)
- doc/20 Step 1 の 8 区分以外を勝手に作らない
- 抽象化レベル: 入力中の具体的なプロジェクト名 / ドメイン語は
{{var}} 化して提案する
- 分類根拠を 1 行以内で明示する(後段 evaluator が judge できるよう)
ゴールシーク実行
ゴール (Goal)
入力 CLAUDE.md/prompt 群が doc/20 の 8 区分へ分類され、各候補の移行先 Skill 名・根拠を含む分類 JSON と空 SKILL.md スケルトン提案が出力され、依存関係 lint(5 条件含む)を通過した brief が run-build-skill へ引き渡せる形で確定した状態。生成された SKILL.md の設計評価(assign-skill-design-evaluator 採点・閾値判定)は下流 run-build-skill 内蔵ゲートの責務であり、本 skill 自身は verdict を待たず brief/分類の確定で完了する。ゲート未達時の再分類は上位 orchestrator が該当 section で本 skill を再起動して行う(本 skill は評価器も run-build-skill も invoke しないため verdict を自ら受け取らない)。
目的・背景 (Why)
肥大化した prompt/docs の棚卸し分類を機械化し、横展開可能な抽象化された Skill 候補へ落とすため。入力構造(章立て・ドメイン語密度)に依存し固定手順では誤分類耐性が低いので、到達状態(分類 JSON + 依存 lint 通過 brief)をゴールに据える。実際の SKILL.md 生成とその設計評価は責務外(下流 run-build-skill が内蔵ゲートで担う)。
完了チェックリスト (Checklist)
ゴールシークループ
正本 ../run-build-skill/references/goal-seek-paradigm.md の 6 ステップに従う。本スキル固有差分:
- 対象ファイル: 入力 CLAUDE.md/prompt(複数可・read-only / 物理削除禁止)、出力
.claude/handoff/migrate-audit-<session>.json(分類 JSON)と run-build-skill 引き渡し用 brief
- 引き渡し先:
run-build-skill(brief handoff)。設計評価=pair: 宣言の assign-skill-design-evaluator fork 採点は run-build-skill 内蔵ゲートが担い、本 skill は評価器も run-build-skill も直接 invoke せず brief 確定で完了する。ゲート未達 verdict を契機とする再分類は上位 orchestrator が本 skill を再起動して行う(本 skill 自身は verdict を待たない)
- 固定パス/閾値: doc/20 の 8 区分以外を作らない、step7 の 5 条件は全 PASS 必須。下流ゲートの評価器スコア閾値未満は上位 orchestrator 経由で該当 section を再分類差し戻し
- 中間状態(部分完了)で lint を fail させない(
--allow-partial)。決定論的検査は ## 検証/lint へ寄せ [x] 判定する
- 規定周回を超えても未達なら残項目を
open_issues として記録し上位 orchestrator へ差し戻す
局面カタログ (順序は都度判断)
- 入力棚卸し:
python3 plugins/skill-governance-migration/scripts/migrate/audit.py --input <CLAUDE.md path> --output .claude/handoff/migrate-audit-$(date +%s).json
- レビュー: 分類 JSON をユーザー提示し誤分類を手動修正
- brief 生成:
python3 plugins/skill-governance-migration/scripts/migrate/to-brief.py --audit-json .claude/handoff/migrate-audit-<session>.json
- 昇格候補抽出: Gotchas 累積閾値超え →
frontmatter lint -> Hook -> CI -> CLI
- 移行後 lint:
python3 plugins/skill-governance-lint/scripts/lint-dependency-direction.py --skills-dir .claude/skills/
- 引き渡し・再起動受け: 確定 brief を
run-build-skill へ渡す。生成後 SKILL.md の設計評価(assign-skill-design-evaluator fork 採点)は run-build-skill 内蔵ゲートが実施する。ゲート未達時は上位 orchestrator が本 skill を該当 section で再起動し brief を再分類する(本 skill 自身は verdict を待たず brief 確定で完了)
- 依存 lint(5条件):
python3 plugins/skill-governance-lint/scripts/lint-skill-dep-step7.py --skills-dir .claude/skills/
Gotchas
- 中間状態(Step1〜4 部分完了)で lint を fail させない(
--allow-partial モード)
- 具体ドメイン語を Skill 名に焼き込まない(横展開不能になる)
kept_in_claude_md が 0 になったら警告(CLAUDE.md は repo identity 等で最低限残すべき)
Additional Resources
- 設計書 20 章 全 7 ステップ
references/classification-rules.md — 8 区分判定ルール
references/abstraction-checklist.md — 具体名 → 変数化の判定基準