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-intake-visualize
Runtime root contract
runtime_root_policy: host-skill-path を適用する。
- Claude Codeでは
CLAUDE_PLUGIN_ROOT をplugin rootとして使用する。
- Codexではホストが提示したこの
SKILL.md のabsolute pathから、plugin manifestを持つ祖先を上方探索して論理 PLUGIN_ROOT を解決する。
cwd からplugin rootを推測せず、literal placeholderをshellへ渡さない。各shell invocation内で解決済みabsolute pathを PLUGIN_ROOT に設定する。
prompts/ 配下はこのowner Skill契約を継承する。
Purpose & Output Contract
Phase 7 (intake aggregator) 担当。sheet.md + purpose.json + options.json を読み、Mermaid 12 種 + SVG 8 種のカタログから §0〜§11 の各セクションへ 1〜3 図を決定論的に配置し、SVG は同梱済み PNG (assets/cvis-*.png) を配置して Notion 互換化する。各 Phase の機械可読定義は workflow-manifest.json、責務別プロンプトは prompts/R1-main.md (R1-deterministic-figure-placement)、データ契約は schemas/output.schema.json を参照。
入力: sheet.md, purpose.json, options.json, アセットカタログ (plugins/skill-intake/assets/)
出力:
output/<hint>/visuals.json (schemas/output.schema.json 準拠、section → [{figure_id, type, png_path}])
output/<hint>/visuals/*.png (PNG 群)
完了条件: 全 12 セクションに 1〜3 図配置 + scripts/verify-visuals.py PASS + カタログ外 figure_id ゼロ + 同入力 2 回連続実行で visuals.json が完全一致 (determinism)。
Key Rules
- カタログ外創作禁止: Mermaid 12 + SVG 8 の
figure_id 集合外は採用しない (R1 不変ルール / Layer 1.1)。違反時 exit 2。
- SVG は同梱済み PNG を配置: Notion は SVG ネイティブ非対応。静的 SVG 8 種は事前レンダリング済み
plugins/skill-intake/assets/cvis-*.png を plugins/skill-intake/scripts/render_to_image.py (bundled-copy、外部依存ゼロ) 経由で配置し、Mermaid は同スクリプトが mmdc で PNG 化する。cvis SVG/PNG は固定資産であり、改版時は catalog_version と同期して SVG/PNG を両方更新する (stale parity 防止)。
- 図数 1〜3 上限: 1 セクション 4 図以上は過剰可視化として禁止 (
schemas/output.schema.json maxItems=3)。
- 倫理ガード:
sheet.md にない事実を図に注入しない (誤情報生成防止、Layer 1.2)。
- 図解マスト 8 ルール強制:
references/visualization-mandatory-pointer.md 経由で aggregator 正本ルールを適用。
- 決定論性: LLM はカタログ照合のみ、context-fork 不要。同入力で出力一致。
ゴールシーク実行
ゴール (Goal)
sheet.md + purpose.json + options.json を入力に、全 12 セクション (§0〜§11) へ Mermaid 12 + SVG 8 カタログ既存図を 1〜3 図ずつ決定論的に配置し、Notion 互換 PNG と visuals.json (schemas/output.schema.json 準拠) を生成し、verify-visuals.py が PASS した状態にする。
目的・背景 (Why)
intake aggregator は最終 Notion 公開前に「全セクション 1 図以上」の網羅性を要求する (図解マスト 8 ルール)。図解の創作は誤情報注入リスクが高く、また Notion は SVG ネイティブ非対応であるため PNG 化が必須。固定手順では入力 §の充足度・カタログ照合の失敗・PNG 生成失敗など実行時文脈に脆く、未充足条件を都度埋めるゴールシーク方式が要る。LLM はカタログ照合のみで創作を行わないため context-fork 不要、ただし網羅・整合・決定論の三条件は機械検証する。
完了チェックリスト (Checklist)
ゴールシークループ
- 現状評価:
visuals.json 既存内容と verify-visuals.py 出力を読み、Checklist の未達項目を列挙。
- 手順生成: 未達項目ごとに解消手順を立案 (例: §5 図ゼロ → mapping 表参照 → カタログから該当 figure_id を選択 / SVG エントリに PNG なし →
render_to_image.py 起動)。
- 実行: prompts/R1-main.md R1 に従い決定論的にカタログ照合→
visuals.json 更新→render_to_image.py で PNG 化。
- 検証:
verify-visuals.py 起動 + schema validate + 2 回連続実行 diff で determinism 確認。
- 反復: 全 Checklist 充足まで戻る。カタログに該当図が無い場合は Key Rule 1 に従い exit 2 で停止しエスカレーション (LLM が勝手にカタログ拡張しない)。
各 Phase (P1-section-scan / P2-select / P3-render / P4-emit) の dependsOn / entryHook / exitHook / fatal_exit_codes は workflow-manifest.json 参照。
Gotchas
- PNG 1 枚欠落で全体停止: 後続 Phase 10 (Notion 公開) が All-or-Nothing で fail する。本スキル内で全 PNG 生成を保証してから完了とする。
- カタログ拡張は別 phase: 新規図種が必要な場合は本スキルで創作せず TODO 起票し aggregator/設計側へ差し戻し (Key Rule 1)。
- 並列書込み衝突: セクション単位で並列化可能だが PNG 書込みパスの衝突回避必須 (Layer 6.2)。
output/<hint>/visuals/<section>-<figure_id>.png のように一意化。
- 絶対パス漏出:
png_path は workspace 起点の相対パスで記録 (Layer 4.3)。
- render_to_image.py のパス: 正本は
plugins/skill-intake/scripts/render_to_image.py (aggregator 共有)。本スキル scripts/ 配下ではない。
- mapping 表の正本:
references/section-figure-mapping.md は薄い pointer。詳細スコアは plugins/skill-intake/references/mermaid-visualization-guide.md。
Additional Resources
references/resource-map.yaml を最初に読む (機械可読 read_when 一覧)。主要参照:
workflow-manifest.json — P1-section-scan / P2-select / P3-render / P4-emit の機械可読定義
prompts/R1-main.md — R1-deterministic-figure-placement (7 層プロンプト、Layer 1-7)
schemas/output.schema.json — visuals.json の正本スキーマ (additionalProperties:false, items 1-3)
references/section-figure-mapping.md — §0〜§11 と Mermaid/SVG 図種の対応表 (aggregator guide.md への pointer)
references/visualization-mandatory-pointer.md — 図解マスト 8 ルールへの参照ガイド
scripts/verify-visuals.py — visuals.json + PNG 群の網羅性/整合性検証
- 上流:
plugins/skill-intake/scripts/render_to_image.py (Mermaid→PNG + SVG 同梱 PNG 配置の共有スクリプト)
- 上流:
plugins/skill-intake/assets/ (Mermaid 12 + SVG 8 カタログ正本)
- 呼出元:
run-skill-intake Phase 7 (P7-visualize) / 後続: Phase 8 (P8-summary, skill-intake-summarizer)