analysis-template-creator · diff
git:20260812.cc20b07 to git:20260812.92c38df
102 added, 82 removed. Audit A to A.
---
name: analysis-template-creator
description: >-
- Create and maintain slide templates for analysis frameworks (現状分析・課題
- 特定・戦略分析) in the slide-templates/analysis pack: PEST, Five Forces,
- logic tree, KPI tree, why-why, fishbone, Pareto, gap analysis, process
- pain-points, priority matrix and future additions such as value chain or
- CRT. Use when asked to add or change an analysis-framework slide template,
- or to add a drawing primitive for one (like fishbone/pareto). Encodes the
- framework-specific design rules — the question each method answers, the
- fact/interpretation split, required sources, and misuse guardrails — and
- follows slide-template-creator's schema, validation and registration rules
- for everything else. Route generic (non-framework) page templates to
+ Create and maintain slide templates for analysis frameworks (current-state
+ analysis, problem identification, strategic analysis) in the
+ slide-templates/analysis pack: PEST, Five Forces, logic tree, KPI tree,
+ why-why, fishbone, Pareto, gap analysis, process pain-points, priority
+ matrix and future additions such as value chain or CRT. Use when asked to
+ add or change an analysis-framework slide template, or to add a drawing
+ primitive for one (like fishbone/pareto). Encodes the framework-specific
+ design rules — the question each method answers, the fact/interpretation
+ split, required sources, and misuse guardrails — and follows
+ slide-template-creator's schema, validation and registration rules for
+ everything else. Route generic (non-framework) page templates to
slide-template-creator, and running an analysis to current-state-analysis.
---
+ *[日本語](SKILL.ja.md)*
- # Analysis Template Creator(分析テンプレート作成)
+ # Analysis Template Creator (Analysis Template Authoring)
- 現状分析・課題特定系フレームワークのスライドテンプレートを
- `slide-templates/analysis/` パックに追加・変更する専門スキル。
+ A specialist skill for adding and changing slide templates for current-state
+ analysis and problem-identification frameworks in the
+ `slide-templates/analysis/` pack.
- **スキーマ・検証・登録・互換性の規約は
- [`slide-template-creator`](../slide-template-creator/SKILL.md) が正。**
- このスキルはその上に、分析フレームワーク固有の設計ルールを足すだけで、
- 共通規約を再定義しない。作業ディレクトリは slide-forge ルート、
- コマンドは `.venv/bin/python`。
+ **The schema, validation, registration, and compatibility conventions are
+ owned by [`slide-template-creator`](../slide-template-creator/SKILL.md).**
+ This skill only adds analysis-framework-specific design rules on top of
+ those; it does not redefine the shared conventions. The working directory
+ is the slide-forge root, and the command is `.venv/bin/python`.
## Boundaries
- | 依頼 | 行き先 |
+ | Request | Route |
|---|---|
- | 分析フレームワークのテンプレート新設・変更 | このスキル |
- | 分析以外の汎用ページテンプレート | `slide-template-creator` |
- | 分析を実行してスライドを作る | `current-state-analysis` |
- | ブランド・マスターの作成 | `template-forge` |
- | 生成デッキの目視検査 | `slide-qa` |
+ | Create or change a template for an analysis framework | this skill |
+ | A generic (non-analysis) page template | `slide-template-creator` |
+ | Run an analysis and turn it into slides | `current-state-analysis` |
+ | Create a brand/master | `template-forge` |
+ | Visual inspection of a generated deck | `slide-qa` |
- ## analysis パックの現状
+ ## Current state of the analysis pack
- | category | テンプレート | 主プリミティブ |
+ | category | template | primary primitive |
|---|---|---|
- | macro | `pest-analysis` | `comparison`(4 列) |
- | macro | `five-forces` | `cards` × 5(十字配置) |
+ | macro | `pest-analysis` | `comparison` (4 columns) |
+ | macro | `five-forces` | `cards` × 5 (cross layout) |
| structure | `logic-tree` / `kpi-tree` | `mece_tree` |
| cause | `why-why` | `flow` |
- | cause | `fishbone-diagram` | `fishbone`(patterns.py) |
- | cause | `pareto-analysis` | `pareto`(charts.py) |
+ | cause | `fishbone-diagram` | `fishbone` (patterns.py) |
+ | cause | `pareto-analysis` | `pareto` (charts.py) |
| process | `process-painpoints` | `flow` + `table` |
| gap | `gap-analysis` | `before_after` + `cards` |
| priority | `priority-matrix` | `posmap` |
- SWOT / 3C / ポジショニングマップは `marketing-analysis` パックに既存。
- **重複を作らない**(同じ問いに同じ視覚文法で答えるなら再利用・拡張)。
- category は上記 6 種(macro / structure / cause / process / gap / priority)
- から選び、増やすときは分析の段(環境→業務→構造化→課題定義→優先順位)に
- 対応させる。
+ SWOT / 3C / positioning map already exist in the `marketing-analysis` pack.
+ **Do not create duplicates** (if the same question is answered with the same
+ visual grammar, reuse or extend it). Choose `category` from the six above
+ (macro / structure / cause / process / gap / priority), and when adding a
+ new one, map it to the appropriate stage of analysis (environment → business
+ process → structuring → problem definition → prioritization).
- ## 分析テンプレート固有の設計ルール
+ ## Design rules specific to analysis templates
- `slide-template-creator` の共通規約に加えて、以下を必須とする:
+ In addition to `slide-template-creator`'s shared conventions, the following
+ are mandatory:
- 1. **答える問いを 1 つに固定する。** `answers` に書く。問いが 2 つあるなら
- テンプレートも 2 つ(例: 原因の洗い出しは fishbone、真因の特定は why-why)。
- 2. **事実と解釈のスロットを分ける。** 図の中身(要因・工程・数値)は事実
- スロット、解釈は `insight`(`so_what` に描く)と `title`。insight スロットの
- maxLength は so_what の実容量(本文高 = h − 0.54in、約 46 字/行)から
- 逆算して決める。1 行なら 44、2 行(h ≥ 1.1in)なら 88 が目安。
- 3. **数値が載る手法は `source` 必須**、期間・母数・定義の明記を guardrails で
- 要求する。
- 4. **手法の誤用パターンを guardrails に落とす。** 教科書的定義から「やりがちな
- 間違い」を最低 3 つ書く。例: パレート=合計に意味のある量だけ/率を混ぜ
- ない、なぜなぜ=「人の不注意」で止めない、5F=自社の強み弱みを書かない、
- ギャップ分析=未合意の願望を To-Be に置かない、優先順位=座標は主観評価
- なので評価者・評価日を書く。
- 5. **inferenceLevel を正しく付ける。** 記述(pareto, process-painpoints)/
- 診断(logic-tree, kpi-tree, fishbone)/ 因果(why-why)/ 戦略(PEST, 5F,
- gap, priority)。因果を名乗れるのは因果の連鎖を描く手法だけ。
+ 1. **Fix the question the template answers to exactly one.** Write it in
+ `answers`. If there are two questions, there should be two templates
+ (e.g. enumerating causes is fishbone, identifying the root cause is
+ why-why).
+ 2. **Separate fact slots from interpretation slots.** The content of the
+ diagram (factors, process steps, figures) belongs in fact slots;
+ interpretation goes in `insight` (rendered in `so_what`) and `title`. The
+ `maxLength` of the insight slot should be derived backward from the
+ actual capacity of `so_what` (body height = h − 0.54in, roughly 46
+ characters/line). As a rule of thumb, 44 for one line, 88 for two lines
+ (h ≥ 1.1in).
+ 3. **Methods that carry numeric figures require `source`**, and guardrails
+ must require the period, base, and definition to be stated explicitly.
+ 4. **Encode misuse patterns for the method in guardrails.** From the
+ textbook definition, write at least three "common mistakes." Examples:
+ Pareto — only use quantities where the total is meaningful, do not mix
+ in a rate; why-why — do not stop at "human carelessness"; Five Forces —
+ do not write your own company's strengths/weaknesses; gap analysis — do
+ not place unagreed wishes into To-Be; priority matrix — since the
+ coordinates are a subjective assessment, record the assessor and
+ assessment date.
+ 5. **Assign `inferenceLevel` correctly.** Descriptive (pareto,
+ process-painpoints) / diagnostic (logic-tree, kpi-tree, fishbone) /
+ causal (why-why) / strategic (PEST, 5F, gap, priority). Only methods that
+ draw a causal chain may claim causal.
- ## 新しい手法を追加する手順
+ ## Procedure for adding a new method
- 1. **検索。** `list_slide_templates.py --tag <手法名>` と
- `rg '<手法名>' slide-templates references` で既存・類似を確認する。
- 2. **手法の分解。** 教科書的定義から (a) 答える問い、(b) 入力(事実)と
- 出力(解釈)、(c) 誤用パターンを書き出す。ここが guardrails の材料になる。
- 3. **プリミティブ選定。**
+ 1. **Search first.** Check for existing or similar templates with
+ `list_slide_templates.py --tag <method name>` and
+ `rg '<method name>' slide-templates references`.
+ 2. **Decompose the method.** From the textbook definition, write out (a) the
+ question it answers, (b) inputs (facts) and outputs (interpretation),
+ and (c) misuse patterns. This becomes the material for guardrails.
+ 3. **Select primitives.**
+ Follow
[primitive-selection.md](../slide-template-creator/references/primitive-selection.md)
- に従い既存部品を優先する。フレームワーク固有の形が必要なときだけ
- `patterns.py`(フレームワーク図)か `charts.py`(グラフ)に追加する —
- `fishbone` / `pareto` が前例で、i18n の `register()`、入力検証の
- `ValueError`、`build_deck.py::FIGURES` への登録、`references/patterns.md`
- / `references/charts.md` / `references/template-schema.md` の文書化まで
- がセット。
- 4. **作成と検証。** template.json + example.json を書き、
+ and prefer existing parts. Only add a framework-specific shape to
+ `patterns.py` (framework diagrams) or `charts.py` (charts) when truly
+ needed — `fishbone` / `pareto` are the precedents, and the full set
+ includes registering with i18n's `register()`, input-validation
+ `ValueError`s, registration in `build_deck.py::FIGURES`, and
+ documentation in `references/patterns.md` / `references/charts.md` /
+ `references/template-schema.md`.
+ 4. **Create and validate.** Write template.json + example.json, and run
`validate_slide_templates.py --id <id>` → `--pack analysis` →
- `build_slide_template_catalog.py --pack analysis` を通す。
- **監査指摘ゼロが合格線**(既存パックはすべてゼロ)。
- 5. **視覚 QA。** カタログデッキを生成して `slide-qa` を通し、境界サイズの
- 入力(最長ラベル・最多項目)で崩れないことを確認、QA 成果物を後始末する。
- 6. **登録と報告。** manifest 登録、`current-state-analysis` の対応表への追記、
- 互換性影響の報告(既存スロットの変更は
- [registration-and-compatibility.md](../slide-template-creator/references/registration-and-compatibility.md)
- に従う)。
+ `build_slide_template_catalog.py --pack analysis`. **Zero audit findings
+ is the passing bar** (every existing pack has zero).
+ 5. **Visual QA.** Generate the catalog deck and run it through `slide-qa`,
+ confirm it does not break with boundary-size inputs (longest label, most
+ items), and clean up the QA artifacts afterward.
+ 6. **Registration and reporting.** Register in the manifest, add an entry
+ to `current-state-analysis`'s mapping table, and report the compatibility
+ impact (changes to existing slots follow
+ [registration-and-compatibility.md](../slide-template-creator/references/registration-and-compatibility.md)).
## Safety and quality rules
- - example.json は必ずサンプルと明記する(source スロットに書く)。実在の
- 顧客名・実データを例に使わない。
- - 実行時バリデーション(描画側の ValueError)とスロット制約は二重にする。
- スロット制約は「監査指摘が出ない範囲」に合わせて決め、描画側は「読めなく
- なる入力」を拒否する。
- - 追加・変更のたびに `--pack analysis` 全体と、プリミティブを触った場合は
- 他パックの回帰(marketing-analysis / b2b-sales / scalar-ae / planning)も
- 検証する。
+ - example.json must always be clearly marked as a sample (write this in the
+ source slot). Never use real customer names or real data as examples.
+ - Double up runtime validation (the `ValueError`s on the rendering side) and
+ slot constraints. Slot constraints should be set to "whatever keeps audit
+ findings at zero"; the rendering side should reject "input that would
+ become unreadable."
+ - On every addition or change, verify the entire `--pack analysis`, and if a
+ primitive was touched, also verify regressions in the other packs
+ (marketing-analysis / b2b-sales / scalar-ae / planning).