アプリ・Webサービス・業務ツールの制作を、証拠分析→確定的な初稿→要件定義→体験設計→機能分解→実装→品質ゲート→リリース判定の手順ゲート制で進めるスキル。質問で要件を埋めるのではなく、依頼文・既存コード・資料・ログから最有力案を選び、動く成果物を先に出して差分で改善する。ユーザーが「アプリを作りたい」「ツールを作って」「〜を自動化したい」「システム化したい」「要件定義」「仕様を決めたい」「UI/UXを設計して」「体験を良くしたい」「機能を洗い出して」「MVPを決めたい」「品質チェック」「リリースしていいか判断して」などと言ったら必ず使用する。外部データの取込・マスタ・締め処理を伴う業務システムでは references/data-lifecycle.md も併用する。新規・既存を問わずアプリの制作・改善・リニューアルで使用する。
run-intake-visualize
ヒアリング結果に図解を配置したいとき、Mermaid 12 と独自 SVG 8 から各セクションに 1〜3 図を選択して visuals.json と PNG を生成したいときに使う。
含まれるファイル(8)
- SKILL.md11.5 KB
- prompts/R1-main.md7.0 KB
- references/resource-map.yaml266 B
- references/section-figure-mapping.md255 B
- references/visualization-mandatory-pointer.md146 B
- schemas/output.schema.json1.1 KB
- scripts/verify-visuals.py1.5 KB
- workflow-manifest.json3.2 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
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.jsonmaxItems=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がschemas/output.schema.jsonに validate (additionalProperties:false 含む) - 全 12 セクション (§0〜§11) に 1〜3 図が配置 (4 図以上ゼロ、ゼロ図ゼロ)
-
visuals.jsonの全figure_idが Mermaid 12 + SVG 8 カタログ id 集合に包含 (カタログ外創作ゼロ) -
type=svgの全エントリが対応 PNG (output/<hint>/visuals/*.png) を保有し、png_pathは workspace 相対 -
python3 ${PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-plugins/skill-intake}}/skills/run-intake-visualize/scripts/verify-visuals.py output/<hint>/visuals.json output/<hint>/visuals/が exit 0 (網羅性・整合性 PASS。第 1 引数=visuals.json、第 2 引数=PNG 出力 dir、両方必須) - 同
sheet.md+purpose.jsonで 2 回連続実行し(section → figure_id)が完全一致 (determinism) -
sheet.mdにない事実が図へ注入されていない (倫理ガード、Layer 1.2) -
references/section-figure-mapping.mdの §×図種対応表に基づく配置で、逸脱は理由付き
ゴールシークループ
- 現状評価:
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-intakePhase 7 (P7-visualize) / 後続: Phase 8 (P8-summary,skill-intake-summarizer)
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
Webアプリの準備→要件定義→設計→実装→公開→品質ゲートを実行する内部オーケストレーター。Claude Codeの /build-app /improve-app、Codexの $build-app / $improve-app から明示的に委譲された場合、custom agent起動時、または利用者が $app-orchestrator を明示した場合だけ使用する。一般のアプリ相談から暗黙起動しない。
run-extract-blueprint が生成した章別ブループリントの忠実性を独立 context で評価したいとき、事実/推測区別と粒度と被覆を検証し draft_hash に束縛した PASS/FAIL verdict をローカル品質ゲート (C01 の周回内の受入判定・差し戻し) へ渡したいときに使う。
確認点で利用者が見る深さを選んだあと打ち合わせ資料を作り手とは別の目で確かめたいとき、正確さ・言葉・見た目・シンプルさの指摘を資料の編集なしで受け取りたいときに使う。
生成した handout 資料が初心者に伝わるか読みやすさレビューを依頼したいとき、独立 context のレビュアーから指摘と根拠つきの verdict を回収したいときに使う。
Notion ページを描画する直前に粒度を検証したいとき、info-collector-agent ページと同等の section 充足度を section_canonical_map 基準で機械検証したいときに使う。