| name | run-dev-graph-init |
| description | dev-graph を呼出し元 repository/worktree 内へ冪等初期化したいとき、6 content root と repo-local config/state/templates/hook fallback を安全に用意したいときに使う。 |
| version | 0.1.0 |
| owner | harness maintainers |
| source | plugin-plans/dev-graph/component-inventory.json#C01 |
| kind | run |
| prefix | run |
| hierarchy | L1 |
| user-invocable | true |
| disable-model-invocation | false |
| argument-hint | [--repo-root PATH] [--hook-source plugin|project-fallback] [--dry-run] |
| allowed-tools | ["Read","Write","Edit","Bash","Glob","Grep","AskUserQuestion","Skill","Agent"] |
| script_refs | ["../../scripts/resolve-repo-context.py","../../scripts/validate-graph-schema.py"] |
| schema_refs | ["../../schemas/graph-node.schema.json","../../schemas/repo-config.schema.json"] |
| reference_refs | ["../../schemas/repo-config.schema.json","../../templates/template-contract.json","../../references/claude-code-hooks-contract.md"] |
| responsibility_refs | ["prompts/R1-elicit.md","prompts/R2-plan.md","prompts/R3-init.md","prompts/R4-template.md","prompts/R5-hooks.md"] |
| responsibilities | [{"id":"R1-elicit","name":"elicit","prompt_required":true,"summary":"C24でcaller repository rootとrepo-local configを解決し、symlink sourceとcontent authorityを分離する。保存先は質問しない"},{"id":"R2-plan","name":"plan","prompt_required":true,"summary":"6 content root (issues/tasks/specs/architecture/features/docs)、frontmatter、routing policyに加え、GitHub enabled=false既定のissue repository/複数Project/field mapping/auto-add設定雛形を組み立てる。保存先やnode IDをユーザーへ求めない"},{"id":"R3-init","name":"init","prompt_required":true,"summary":"resolved repo内へrepository_idを埋めたconfig/content/state/cache/locksを生成し、GitHub設定はowner/project number/field nameだけをrepo-local保存、token/node IDは保存しない"},{"id":"R4-template","name":"template","prompt_required":true,"summary":"共通/5kind/architecture 5 subtype/API/system phase/system task overlay/template contractを`.dev-graph/templates/`へ冪等scaffoldし、利用者編集済み版は上書きしない"},{"id":"R5-hooks","name":"hooks","prompt_required":true,"summary":"C25のplugin hookを共有既定とする。project fallbackはplain-symlink導入時だけ許可し、effective plugin hookが見えれば拒否する。C24で検証した`.claude/dev-graph-plugin`からC10/C25全eventを既存settingsへpreview付きdeep-mergeし、override/二重登録を診断してrollback manifestを残す"}] |
| combinators | ["with-goal-seek","with-feedback-contract"] |
| goal_seek | {"engine":"inline","fork":"subagent","max_loops":5} |
| completeness_exempt | ["manifest: goal_seek.engine=inline が未達 checklist から実行局面を都度選ぶため、固定 phase の workflow-manifest.json は適用外。停止条件と配線は本文 ## ゴールシーク実行を正本とする。"] |
| feedback_contract | {"max_iterations":3,"criteria":[{"id":"IN1","loop_scope":"inner","text":"validate-graph-schema.py で初期グラフストアを送信前検証しスキーマの必須キー欠落が 0 件","verify_by":"script"},{"id":"OUT1","loop_scope":"outer","text":"初期化後にissues/tasks/specs/architecture/features/docsの6 rootとrouting policyとグラフストアが揃い、二回目initで構造が変化しないことを受入テストが確認する","verify_by":"live-trial"},{"id":"OUT2","loop_scope":"outer","text":"初期化後に `.dev-graph/templates/` へ全kind templateがscaffoldされ、二回目initでも利用者編集を上書きしない","verify_by":"test"},{"id":"OUT3","loop_scope":"outer","text":"同一symlink harnessをrepo A/Bから実行して各repo固有config/docs/stateだけを読み書きし、cross-read/write 0件、absolute stored path 0件、project-root不一致とbroken content linkは診断付きfail-closedになり、harness link切断はhost launcher preflightが起動前検出する","verify_by":"test"},{"id":"OUT4","loop_scope":"outer","text":"GitHub設定雛形がenabled=falseで冪等生成され、owner/project number/field mappingを保持する一方、token/project/item/field node IDを正本configへ保存しない","verify_by":"test"},{"id":"OUT5","loop_scope":"outer","text":"plugin hookを既定にしproject fallback選択時だけ既存.claude/settings.jsonへ非破壊mergeされ、二重登録0件、既存key/hash変更0件、managed/disabled診断とrollbackが再現できる","verify_by":"test"}]} |