Help us improve
Share bugs, ideas, or general feedback.
From vantage-point
VP の Lead × Wing × Memory orchestration による開発フロー — hearing → 議論 → spec memory → wing handoff → 並列追跡 → merge の 6 phase。 「並列開発」 「lead wing」 「handoff」 「並列 wing」 「control surrender」 「dev flow」 等のキーワードで invoke
npx claudepluginhub chronista-club/claude-plugins --plugin vantage-pointHow this skill is triggered — by the user, by Claude, or both
Slash command
/vantage-point:dev-flowThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **AI ネイティブ開発フロー** — VP の lane (= lead + wing) + wiremsg + creo memory が揃ったことで物理的に成立した「**lead で idea / 議論を練り、 wing に handoff、 lead が orchestrate**」 手法。 chronista-style と統合した formalization。
Creates p5.js generative art with seeded randomness, noise fields, and interactive parameter exploration. Use for algorithmic art, flow fields, or particle systems.
Share bugs, ideas, or general feedback.
AI ネイティブ開発フロー — VP の lane (= lead + wing) + wiremsg + creo memory が揃ったことで物理的に成立した「lead で idea / 議論を練り、 wing に handoff、 lead が orchestrate」 手法。 chronista-style と統合した formalization。
伝統的 dev = code 書く / PR / merge、 spec は markdown / 議論は Slack / trail は git log で分散。 VP × creo は memory を背骨に、 lane を実行体に、 wire を transport にして 1 つの orchestrated stream に統合する。
詳細仕様: creo memory mem_1CbUUzvguCptQPU4eWTKHx (= 本 skill の canonical reference)
用語注: VP は wing を 1 用語に統一する。 「worker」 は VP の文脈には存在しない — 役割 / 動的主体としても wing そのものが立つ (= 「wing が question を投げる」 「wing が completed を報告する」)。 wing = lane-cloned worktree + echoes claude session を含む環境 + 動的主体の合成体。
hearing で要件抽出 (= chronista-style:hearing)council で多角検証 (= 4 voice)mode field で自己認識kind field) ┌─ idle (= echoes 起動済、 task 未受領)
│
▼ lead 「task」 wire
working (= wing 作業中、 lead 介入なし) ← control 手放してる
│
├─→ hitl_pending (= wing 「question」 wire 送信、 lead reply 待ち) ← control 手放してない
│ │ lead 「approve/modify/clarify」 wire
│ ▼
│ working (= 自走再開) ← control 再 surrender
│
└─→ completed (= wing 「complete」 wire、 lead review 待ち) ← lead に control 戻る
│
▼ merge
merged / closed
│
stuck (= dirty_count あり + last_commit なし、 詰まってる可能性) ← lead 介入候補
fn flow_state(wing: &WingState, thread: &[WireMsg]) -> FlowState {
let last_msg = thread.last();
match (last_msg, wing.dirty_count > 0, wing.last_commit) {
(None, _, _) => FlowState::Idle,
(Some(m), _, _) if m.from == lead && m.kind == "task" => FlowState::Working,
(Some(m), _, _) if m.from == wing && m.kind == "question" => FlowState::HitlPending,
(Some(m), _, _) if m.from == wing && m.kind == "complete" => FlowState::Completed,
(Some(m), true, None) if m.from == lead => FlowState::Stuck,
_ => FlowState::Working,
}
}
// control_surrender = true iff state ∈ {Working, Completed} && (last_msg.from == wing || last_msg is None)
kind taxonomy (= state derivation の入力)| kind | from | 意味 |
|---|---|---|
task | lead → wing | 初手 handoff spec |
question | wing → lead | 質問 / decision 依頼 |
ack | wing → lead | 受領 / progress |
decision | wing → lead | 自己判断 表明 |
approve / modify / clarify | lead → wing | reply |
complete | wing → lead | 完了報告 |
request | wing → lead | action 依頼 (= dogfood 等) |
Phase 1: idea / hearing → spark memory (status:spark)
↓
Phase 2: 議論 / refinement → status:in-progress + annotate trail (= voice)
↓
Phase 3: spec 確定 → status:done memory (= derivedFrom / extends で lineage)
↓
Phase 4: 分解 + wing 作成 → vp lane new + wire_send + tmux nudge (= mode 選択)
↓
Phase 5: 並列追跡 → wire_recv + wing_status.last_commit + control state
↓ ↑
│ │ HITL escalation (= wing question wire)
↓
Phase 6: 統合 + merge → PR review (moody-blues / santa-method) → merge → retrospect memory
│
└→ learnings → Phase 1 へ feedback loop
各 phase が memory に stream で trail、 後 session が context-engine 経由で auto-load。
| mode | 条件 | 例 |
|---|---|---|
| auto (= control 手放す) | spec 明確 / ambiguity 少 / test-driven / 既知 pattern | fmt fix、 単純 refactor、 docs update、 schema migration boilerplate |
| HITL (= control 握る) | 設計判断含む / spec 内 ambiguity / dogfood feedback 要 | 新 architecture、 schema 設計、 UX 判断、 API 変更 |
動的 shift trigger:
| tool | layer | 用途 |
|---|---|---|
vp lane new <name> <branch> | wing 作成 | dir + echoes spawn (= zero-config で 3 file auto-symlink) |
mcp__vantage-point__wire_send | message | thread 化 inter-agent msg (= reply_to で chain) |
mcp__vantage-point__wire_recv | message | inbox から msg 取得 (= read cursor 進む) |
tmux send-keys | nudge | wing idle 時に wire を読ませる起動 prompt |
mcp__vantage-point__list_lanes | state | wing progress 追跡 (= wing_status.last_commit / dirty_count) |
mcp__vantage-point__show | view | PP (Paisley Park) に構想 visualize (= HTML / markdown / image) |
mcp__creo-memories-mito__remember | persist | memory trail (= atlas + tags + supersedes) |
gh pr merge --auto --squash | ship | CI 通過後自動 merge |
| skill | dev flow phase |
|---|---|
hearing | P1 (= 要件抽出) |
codeflow | P1-4 orchestrate (= ヒアリング → SDG → 実装) |
spec-design-guide | P3 (= Why/What/How を memory に) |
council | P2 (= 4 voice 合議) |
sex-pistols | P4 (= 並列 wing dispatch、 6 unit coordinate) |
santa-method | P6 (= 2 reviewer 独立検証) |
route | P3-4 (= goal までの path 探索) |
agent-introspection | P5 (= wing failure self-debug) |
size-stepper | P4-5 (= $variables 演奏、 spec interaction = music) |
vp lane new <slug> <user>/<slug>
→ wing dir 作成 + echoes auto spawn
→ zero-config で .mcp.json / CLAUDE.local.md / .env auto-symlink
mcp__vantage-point__wire_send
to: ["agent@<project>/<slug>"]
body: {
kind: "task",
title: "...",
task_spec: "<markdown 仕様>",
mode: "auto" | "hitl", // wing 自己認識用
priority: "high",
scope_outs: ["..."]
}
tmux send-keys -t vp-<project>-<slug>-echoes \
"lead から task が届いています。 mcp__vantage-point__wire_recv で確認して着手。" \
Enter
mcp__vantage-point__list_lanes → wing_status.last_commit + dirty_count
mcp__vantage-point__wire_recv → wing question / 完了報告
→ control state を derive (= 5 state FSM)
mcp__vantage-point__wire_send
to: ["agent@<project>/<slug>"]
reply_to: "<wing msg id>"
body: { kind: "approve" | "modify" | "clarify", ... }
→ control 再 surrender (= wing 自走に戻る)
6 phase + control surrender awareness のフル一周実演:
| phase | 出来事 |
|---|---|
| P1 | dogfood 摩擦: VP repo で vp lane new が .claude/wing-files.kdl 不在で hard fail |
| P2 | ヒアリング: principle 8 個確定 (= visible-first / blocklist / toggle / search 全 file 等) → ultrathink で paradigm shift 議論 (= KDL Ruby × creo Schema Registry × Projection Engine) |
| P3 | spec 確定: 4 段 pivot を decision memory mem_1CbUPuphWcEQq39MGX8k7z で記録 |
| P4 | 4 wing handoff: nexus-server (= VP federation hub server scaffold) / pp-content-persist (= PP state SurrealDB 永続化) / mcp-cli-audit (= mcp ↔ cli pair gap 埋め) / flow-tools (= dev-flow primitives 実装) |
| P5 | 並列追跡: list_lanes で wing_status 確認、 wire_recv で question 受信、 thread reply で approve。 各 wing の control 状態を 5 state FSM で識別 |
| P6 | merge pending: PR #460 (XDG) + PR #461 (zero-config) auto-merge 仕掛け中、 nexus-server PR #466 merge 済 (= autonomous 完結) |
特徴:
memory は dev flow の 背骨:
従来: spec は markdown / 議論は Slack / trail は git log で分散。 新: idea → 議論 → spec → 実装 → review → learn が 全部 memory で trail、 lead / wing / cross-project が同 memory graph に access、 AI agent が一級市民として参加。
3 つ揃って「人 + AI が pair で開発する environment」 が物理的に成立。
lead の orchestration = 「どの wing から control を手放し、 どこで握り直すか」 の判断連鎖。 5 state FSM で wire pattern から derive、 lead は wing 群の control 状態を一望し、 必要な wing にだけ介入する。 これは 「複数 wing を同時並走させながら lead の認知 cost を一定に保つ」 構造で、 並列 dev の規模拡張を可能化。
mem_1CbUUzvguCptQPU4eWTKHx (= 本 skill の dev-flow overview)mem_1CbUPuphWcEQq39MGX8k7z (= creo × KDL Ruby × Projection Engine 構想、 本 flow の future state)hearing / codeflow / council / sex-pistols / santa-method / route / agent-introspection / size-stepperscope 拡大時に hybrid 分割: