run-intake-kickoff · v0.1.0 · 2026-08-24 · sha256 de8cd31dcc504105
run-intake-kickoff v0.1.0A
Immutable. This exact content is served forever at /api/v1/blob/de8cd31dcc504105.
---
name: run-intake-kickoff
description: intake セッション起動直後にパターン・深度・痛点 3 軸を確定したいとき、run-skill-intake から phase 1 として呼ばれて kickoff.json を生成したいときに使う。
allowed-tools:
- Read
- Write
- Bash
- AskUserQuestion
kind: run
goal_seek:
engine: inline
fork: inline
user-invocable: true
effect: local-artifact
source: plugins/skill-intake
source-tier: internal
last-audited: 2026-05-24
audit-trigger: monthly
hierarchy_level: L1
rubric_refs: []
role_suffix: null
owner: team-platform
since: 2026-05-22
version: 0.1.0
responsibility_refs:
- prompts/R1-main.md
schema_refs:
- schemas/output.schema.json
manifest: workflow-manifest.json
feedback_contract: # per-skill 評価基準(SSOT=scripts/feedback_contract_ssot.py)
activation_state: semantic_evaluator_started
max_iterations: 3
criteria:
- id: IN1
loop_scope: inner
text: 生成された output/<hint>/kickoff.json が schemas/output.schema.json 準拠かつ scripts/validate-kickoff-json.py exit 0 で、pattern/depth/skill_name_hint/pain_ranking の4項目と qa_log[] を充足する
verify_by: script
- id: IN2
loop_scope: inner
text: skill_name_hint が pain 動詞+目的語から kebab-case で決定論的生成され、社名・個人名等の固有名詞を含まず、同一 qa_log なら sha256 一致する
verify_by: lint
- id: OUT1
loop_scope: outer
text: 本スキルが「セッション起動・3軸(pattern/depth/pain)確定・kickoff.json emit」に責務を絞り、5軸シート充足・深掘り(Phase5)・可視化・mode判定へ逸脱せず、AskUserQuestion を完全直列で発行する設計になっている
verify_by: elegant-review
artifact_delivery:
contract: artifact-delivery-v1
state_machine:
initial: artifact_created
states: [artifact_created, minimal_guard_passed, artifact_presented, user_choice_recorded, semantic_evaluator_started, handoff_complete]
transitions:
- {from: artifact_created, event: minimum_guard_pass, to: minimal_guard_passed}
- {from: minimal_guard_passed, event: present_actual_artifact, to: artifact_presented}
- {from: artifact_presented, event: record_user_choice, to: user_choice_recorded}
- {from: user_choice_recorded, event: accept-as-is, to: handoff_complete}
- {from: user_choice_recorded, event: "light|standard|detailed", to: semantic_evaluator_started}
- {from: semantic_evaluator_started, event: improvement_complete, to: handoff_complete}
pre_choice_forbidden: [semantic-evaluator, task-fork, subagent, multi-worker, revise-loop]
accept_contexts: {evaluator: 0, improver: 0}
release: explicit-only
exhaustive: explicit-only
runtime_root_policy: host-skill-path
---
## 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-kickoff
## 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
intake セッションの最初の phase。ユーザー初期発話から **3 軸 (pattern A-E / depth / pain ranking)** を AskUserQuestion で 1 問ずつ確定し、後続 phase の共通基盤となる `kickoff.json` を生成する。本スキルは「セッション起動・3 軸確定・kickoff.json emit」に責務を絞り、5 軸シート充足 (`run-intake-interview`)、深掘り (Phase 5)、可視化 (`run-intake-visualize`)、mode 判定 (`run-intake-next-action`) は行わない。
**入力**: 初期発話 (自由記述、orchestrator から渡される)
**出力**: `output/<hint>/kickoff.json` (`schemas/output.schema.json` 準拠)
**完了条件**: `pattern` / `depth` / `skill_name_hint` / `pain_ranking` 4 項目が揃い、`scripts/validate-kickoff-json.py` exit 0。
### 出力 JSON 形式
```json
{
"pattern": "A|B|C|D|E",
"depth": "quick|standard|detailed",
"skill_name_hint": "<kebab-case>",
"pain_ranking": [{"task": "...", "frequency_per_week": 3, "minutes_per_run": 30}],
"initial_utterance": "...",
"timestamp": "ISO8601",
"qa_log": [{"question": "...", "answer": "..."}]
}
```
## Key Rules
1. **3 軸のみ確定**: pattern / depth / pain ranking。仮説検証 (assumption-challenger)、6 軸プロファイル (user-profiler)、5 軸シート (`run-intake-interview`) には踏み込まない。
2. **AskUserQuestion は 1 問ずつ**: Q1 (pattern) → Q2 (depth) → Q3-N (pain) を順次。並列・束ね質問禁止。
3. **語彙は beginner 既定**: 初対面のため平易語を使用 (`vocabulary_tier` 確定は後続 phase の責務)。
4. **口語→技術用語の整形は許可**: 「定型作業」→「ルーチンタスク」など軽整形は可。本旨改変・要約は禁止 (生回答を `qa_log[]` に保存)。
5. **skill_name_hint に固有名詞を直書きしない**: 社名・個人名は variable_abstraction (Layer 1.2)。
6. **pattern E (不明) 許容**: 確定不能時は E で進め、Phase 8 Gate A 時点で再判定する。
## ゴールシーク実行
### ゴール (Goal)
初期発話を起点に `output/<hint>/kickoff.json` が `schemas/output.schema.json` 準拠で生成され、`scripts/validate-kickoff-json.py` exit 0、4 項目 (`pattern` / `depth` / `skill_name_hint` / `pain_ranking`) すべて充足、`qa_log[]` に Q&A 時系列を保存した状態。
### 目的・背景 (Why)
3 軸が曖昧なまま後続 phase に進むと、interview の質問数が爆発し、profile / 5 軸シート / 可視化が手戻りする。固定手順では初期発話の粒度・ユーザーの語彙差・痛点列挙数に脆く、未充足軸を都度埋めるゴールシークが必要。本スキルは制御フェーズの第一歩として「最小 3 軸の合意」を機械検証可能な形で固定する。
### 完了チェックリスト (Checklist)
- [ ] 初期発話を改変・要約せず受領し、整形後文も本旨保持
- [ ] Q1 で `pattern` ∈ {A, B, C, D, E} を 1 つ選択 (E 許容、`references/pattern-catalog.md` 提示後)
- [ ] Q2 で `depth` ∈ {quick, standard, detailed} を確定 (`references/depth-criteria.md` 提示後)
- [ ] Q3-N で `pain_ranking[]` を 1〜3 件、各要素に `task` / `frequency_per_week` / `minutes_per_run` を充足 (`references/pain-ranking-template.md` 準拠)
- [ ] `skill_name_hint` を pain 動詞 + 目的語から kebab-case で決定論的に生成 (固有名詞混入なし、同 qa_log なら sha256 一致)
- [ ] AskUserQuestion を並列発行していない (完全直列)
- [ ] `output/<hint>/kickoff.json` が `schemas/output.schema.json` 準拠
- [ ] `python3 ${PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-plugins/skill-intake}}/skills/run-intake-kickoff/scripts/validate-kickoff-json.py output/<hint>/kickoff.json` exit 0
- [ ] `qa_log[]` に質問・回答ペアが時系列で保存され、ユーザー回答は生のまま
- [ ] 本スキルの責務外 (5 軸シート充足・深掘り・mode 判定) に踏み込んでいない
### ゴールシークループ
固定手順ではなく、上記チェックリストを唯一の停止条件とする。未充足軸を特定 → 次に出すべき AskUserQuestion (3 択 + 自由入力) を立案 → 回答取得 → `qa_log[]` 追記 → checklist 自己評価、を反復する (上限は `prompts/R1-main.md` Layer 4 反復回数)。`workflow-manifest.json` の phase 順 P1-pattern → P2-depth → P3-pain → P4-emit に従い、各 phase の `fatal_exit_codes` 検出時は即停止して未充足項目を stderr に列挙する。
## Gotchas
1. **責務逸脱禁止**: 「真の課題は?」などの深掘りは Phase 5 (assumption-challenger)、5 軸シートは `run-intake-interview` の責務。本 phase で踏み込むと同意ループを誘発する。
2. **AskUserQuestion 3 連発禁止**: 必ず 1 問ずつ。並列質問は認知負荷が高く回答品質が落ちる。
3. **pattern E は逃げではない**: 確定不能時の正当な選択肢として扱い、Phase 8 Gate A で再判定する設計に従う。
4. **skill_name_hint 固有名詞**: 社名・個人名を直書きすると後続成果物全体に漏洩する。variable_abstraction で抽象化。
5. **validate-kickoff-json.py 自動修正禁止**: FAIL 時は不足項目をユーザー提示し、LLM 判断で勝手に埋めない。
## Additional Resources
- `workflow-manifest.json` — P1-P4 phase 定義・dependsOn・entryHook/exitHook・fatal_exit_codes
- `prompts/R1-main.md` — R1-pattern-depth-pain-confirm 7 層プロンプト (Layer 1-7)
- `schemas/output.schema.json` — kickoff.json 正本スキーマ
- `references/pattern-catalog.md` — pattern A-E の選択肢と判定基準
- `references/depth-criteria.md` — quick / standard / detailed の判断基準
- `references/pain-ranking-template.md` — 痛点構造化フォーマット
- `references/resource-map.yaml` — machine-readable リソース一覧
- `scripts/validate-kickoff-json.py` — 出力 JSON の schema validate
- 後続 phase: `run-intake-interview` (5 軸シート), `run-intake-visualize`, `run-intake-next-action`, `run-intake-finalize`