From 7fd38a518578bb51919c1c54305b6605400238c3 Mon Sep 17 00:00:00 2001 From: Shinsuke Kagawa Date: Mon, 29 Jun 2026 18:01:39 +0900 Subject: [PATCH 1/3] refine(task-executor): add Unimplemented Dependency Handling rule MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Define how the executor handles a dependency that is absent or unimplemented. A missing dependency is a stop condition only when preserving the required contract needs it and no local, reversible construct can stand in: - Establish the required contract from an already-read source first; when the contract source itself is missing (a `Dependencies:` deliverable that does not exist and no read source defines it), escalate via design_compliance_violation — a stand-in cannot preserve an undefined contract. - One or more interchangeable local constructs preserve the contract → proceed and record the integration handoff in Investigation Notes. - No construct preserves the contract, or constructs differ on an architectural trade-off → escalate via design_compliance_violation (reusing the existing escalation type, no new enum). Applied to both agents-en/task-executor.md and agents-en/task-executor-frontend.md (frontend adapts terminology: UI Spec, component hierarchy / data flow direction). Co-Authored-By: Claude Opus 4.8 (1M context) --- .claude/agents-en/task-executor-frontend.md | 10 ++++++++++ .claude/agents-en/task-executor.md | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/.claude/agents-en/task-executor-frontend.md b/.claude/agents-en/task-executor-frontend.md index 872b7f3..ae52da0 100644 --- a/.claude/agents-en/task-executor-frontend.md +++ b/.claude/agents-en/task-executor-frontend.md @@ -183,6 +183,16 @@ This gate runs only when the task file's "Investigation Targets" section lists a 2. **Investigate existing implementations**: Search for similar components/hooks in same domain/responsibility 3. **Execute determination**: Determine continue/escalation per "Mandatory Judgment Criteria" above +#### Unimplemented Dependency Handling + +Applies when Pre-implementation Verification finds a dependency this task requires is absent or unimplemented (e.g., a Design Doc / UI Spec component or hook marked "requires new creation"). Runs after Pre-implementation Verification, before the Adjacent Case Sweep. Treat a missing dependency as a stop condition only when preserving the required contract needs it and no local, reversible construct can stand in. + +1. Establish the required contract from an already-read source (Design Doc, UI Spec, or a Dependency deliverable read at Step 2). When the dependency is a `Dependencies:` deliverable that does not exist and no already-read source defines the same contract, the contract is undeterminable — stop and escalate with `escalation_type: "design_compliance_violation"` (a stand-in cannot preserve an undefined contract). +2. Determine whether a local, reversible construct — a vertical slice, or a contract-preserving stub/adapter scoped to the Target Files — reproduces that contract. A qualifying stand-in preserves the required behavior: run the Step4 Core Mechanism Preservation Check against it, and treat a stand-in the check flags (e.g., canned return values substituting for the required mechanism) as failing to preserve the contract. +3. Branch on the result: + - One or more local, reversible constructs preserve the contract and any alternatives are interchangeable (no architectural trade-off between them) → proceed with one and record the integration handoff (what the real dependency must later provide, and where it connects) in Investigation Notes. + - No local construct preserves the contract, or two or more valid constructs differ on an architectural trade-off (placement, component hierarchy / data flow direction, contract shape) — consistent with the Iron Rule → stop and escalate with `escalation_type: "design_compliance_violation"` per the Escalation Response table; populate every field the row requires — map the Design Doc / UI Spec requirement for the dependency to `details.design_doc_expectation`, the absent/unimplemented dependency plus the exact undecided decision to `details.actual_situation`, and also set `details.why_cannot_implement`, `details.attempted_approaches[]`, and `claude_recommendation` per the table. + #### Adjacent Case Sweep (Required when the task file has a `Change Category` field set to one or more of `bug-fix`, `regression`, `state-change`, `boundary-change`) Runs after Pre-implementation Verification, before the Binding Decision Check. This step fires on the field value the task decomposition wrote — read the field value and treat it as authoritative for whether the sweep applies. diff --git a/.claude/agents-en/task-executor.md b/.claude/agents-en/task-executor.md index c69cecf..5cca130 100644 --- a/.claude/agents-en/task-executor.md +++ b/.claude/agents-en/task-executor.md @@ -183,6 +183,16 @@ This gate runs only when the task file's "Investigation Targets" section lists a 2. **Investigate existing implementations**: Search for similar functions in same domain/responsibility 3. **Execute determination**: Determine continue/escalation per "Mandatory Judgment Criteria" above +#### Unimplemented Dependency Handling + +Applies when Pre-implementation Verification finds a dependency this task requires is absent or unimplemented (e.g., a Design Doc component marked "requires new creation"). Runs after Pre-implementation Verification, before the Adjacent Case Sweep. Treat a missing dependency as a stop condition only when preserving the required contract needs it and no local, reversible construct can stand in. + +1. Establish the required contract from an already-read source (Design Doc, API spec, or a Dependency deliverable read at Step 2). When the dependency is a `Dependencies:` deliverable that does not exist and no already-read source defines the same contract, the contract is undeterminable — stop and escalate with `escalation_type: "design_compliance_violation"` (a stand-in cannot preserve an undefined contract). +2. Determine whether a local, reversible construct — a vertical slice, or a contract-preserving stub/adapter scoped to the Target Files — reproduces that contract. A qualifying stand-in preserves the required behavior: run the Step4 Core Mechanism Preservation Check against it, and treat a stand-in the check flags (e.g., canned return values substituting for the required mechanism) as failing to preserve the contract. +3. Branch on the result: + - One or more local, reversible constructs preserve the contract and any alternatives are interchangeable (no architectural trade-off between them) → proceed with one and record the integration handoff (what the real dependency must later provide, and where it connects) in Investigation Notes. + - No local construct preserves the contract, or two or more valid constructs differ on an architectural trade-off (placement, dependency direction, contract shape) — consistent with the Iron Rule → stop and escalate with `escalation_type: "design_compliance_violation"` per the Escalation Response table; populate every field the row requires — map the Design Doc requirement for the dependency to `details.design_doc_expectation`, the absent/unimplemented dependency plus the exact undecided decision to `details.actual_situation`, and also set `details.why_cannot_implement`, `details.attempted_approaches[]`, and `claude_recommendation` per the table. + #### Adjacent Case Sweep (Required when the task file has a `Change Category` field set to one or more of `bug-fix`, `regression`, `state-change`, `boundary-change`) Runs after Pre-implementation Verification, before the Binding Decision Check. This step fires on the field value the task decomposition wrote — read the field value and treat it as authoritative for whether the sweep applies. From d0c1da52fba95e14101c091cb4a4233404a5cb10 Mon Sep 17 00:00:00 2001 From: Shinsuke Kagawa Date: Mon, 29 Jun 2026 18:51:07 +0900 Subject: [PATCH 2/3] refine(task-executor): mirror Unimplemented Dependency Handling into ja sources MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Port the Unimplemented Dependency Handling rule to the Japanese source agents, matching the files' established tone and terminology (代替 for stand-in, 垂直スライス for vertical slice, Step4 中核メカニズム 保全チェック, 鉄則; Design Doc / UI Spec / Target Files / Investigation Notes kept in English per file convention). - Unify "preserve" as 保全 throughout (契約保全 stub/adapter), consistent with Step4 中核メカニズム保全チェック. - Keep "exact undecided decision" precision as 具体的な未決の判断. Keeps both ja agents in sync with the en sources committed in 7fd38a5. Co-Authored-By: Claude Opus 4.8 (1M context) --- .claude/agents-ja/task-executor-frontend.md | 10 ++++++++++ .claude/agents-ja/task-executor.md | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/.claude/agents-ja/task-executor-frontend.md b/.claude/agents-ja/task-executor-frontend.md index 7083e02..d5a308f 100644 --- a/.claude/agents-ja/task-executor-frontend.md +++ b/.claude/agents-ja/task-executor-frontend.md @@ -183,6 +183,16 @@ task_file パスはオーケストレータが渡す入力。プロンプトで 2. **既存実装調査**:同ドメイン・責務で類似コンポーネント・hook を検索 3. **判定実行**:上記「必須判断基準」に従い継続・エスカレーション判定 +#### 未実装依存の取り扱い + +実装前確認で、このタスクが必要とする依存が存在しない、または未実装であると判明した場合に適用する(例: Design Doc / UI Spec のコンポーネントまたは hook で「新規作成が必要」とマークされたもの)。実装前確認の後、隣接ケース走査の前に実行する。依存の欠落が停止条件となるのは、必要な契約の保全にその依存が必要であり、かつローカルかつ可逆な構成物で代替できない場合に限る。 + +1. まず既読のソース(Design Doc、UI Spec、Step 2 で読み込んだ依存成果物)から必要な契約を確定する。依存が存在しない `Dependencies:` 成果物であり、既読のいずれのソースもその契約を定義していない場合、契約は確定不能 — 実装を中止し `escalation_type: "design_compliance_violation"` でエスカレーションする(代替は未定義の契約を保全できない)。 +2. ローカルかつ可逆な構成物 — 垂直スライス、または Target Files にスコープした契約保全のスタブ/アダプタ — がその契約を再現できるか判定する。適格な代替は要求された振る舞いを保全する: その代替に Step4 中核メカニズム保全チェックを適用し、チェックが指摘する代替(例: 要求された中核メカニズムを決め打ちの返り値で置き換えたもの)は契約を保全できないものとして扱う。 +3. 結果で分岐する: + - 1つ以上のローカルかつ可逆な構成物が契約を保全し、かつ複数ある場合も互いに交換可能(それらの間にアーキテクチャ的トレードオフがない)→ そのうち1つで実装を進め、統合時の引き継ぎ(実際の依存が後で提供すべきもの、および接続箇所)を Investigation Notes に記録する。 + - 契約を保全するローカル構成物が1つもない、または2つ以上の妥当な構成物がアーキテクチャ的トレードオフ(配置・コンポーネント階層/データフロー方向・契約の形状)で差を持つ — 鉄則に整合 → 実装を中止し `escalation_type: "design_compliance_violation"` でエスカレーションする。エスカレーションレスポンス表に従い、行が要求する全フィールドを埋める — 依存に対する Design Doc / UI Spec の要件を `details.design_doc_expectation`、欠落/未実装の依存と具体的な未決の判断を `details.actual_situation` に対応づけ、`details.why_cannot_implement` / `details.attempted_approaches[]` / `claude_recommendation` は表に従う。 + #### 隣接ケース走査(タスクファイルの `Change Category` フィールドが `bug-fix` / `regression` / `state-change` / `boundary-change` のいずれかに設定されている場合は必須) 実装前確認の後、Binding Decision チェックの前に実行する。このステップはタスク分解が書き込んだフィールド値で発火する — フィールド値を読み、走査を適用するかの判断はそれを正本とする。 diff --git a/.claude/agents-ja/task-executor.md b/.claude/agents-ja/task-executor.md index 9d2a9fc..fca76d7 100644 --- a/.claude/agents-ja/task-executor.md +++ b/.claude/agents-ja/task-executor.md @@ -183,6 +183,16 @@ task_file パスはオーケストレータが渡す入力。プロンプトで 2. **既存実装調査**:同ドメイン・責務で類似機能を検索 3. **判定実行**:上記「必須判断基準」に従い継続・エスカレーション判定 +#### 未実装依存の取り扱い + +実装前確認で、このタスクが必要とする依存が存在しない、または未実装であると判明した場合に適用する(例: Design Doc で「新規作成が必要」とマークされたコンポーネント)。実装前確認の後、隣接ケース走査の前に実行する。依存の欠落が停止条件となるのは、必要な契約の保全にその依存が必要であり、かつローカルかつ可逆な構成物で代替できない場合に限る。 + +1. まず既読のソース(Design Doc、API仕様、Step 2 で読み込んだ依存成果物)から必要な契約を確定する。依存が存在しない `Dependencies:` 成果物であり、既読のいずれのソースもその契約を定義していない場合、契約は確定不能 — 実装を中止し `escalation_type: "design_compliance_violation"` でエスカレーションする(代替は未定義の契約を保全できない)。 +2. ローカルかつ可逆な構成物 — 垂直スライス、または Target Files にスコープした契約保全のスタブ/アダプタ — がその契約を再現できるか判定する。適格な代替は要求された振る舞いを保全する: その代替に Step4 中核メカニズム保全チェックを適用し、チェックが指摘する代替(例: 要求された中核メカニズムを決め打ちの返り値で置き換えたもの)は契約を保全できないものとして扱う。 +3. 結果で分岐する: + - 1つ以上のローカルかつ可逆な構成物が契約を保全し、かつ複数ある場合も互いに交換可能(それらの間にアーキテクチャ的トレードオフがない)→ そのうち1つで実装を進め、統合時の引き継ぎ(実際の依存が後で提供すべきもの、および接続箇所)を Investigation Notes に記録する。 + - 契約を保全するローカル構成物が1つもない、または2つ以上の妥当な構成物がアーキテクチャ的トレードオフ(配置・依存方向・契約の形状)で差を持つ — 鉄則に整合 → 実装を中止し `escalation_type: "design_compliance_violation"` でエスカレーションする。エスカレーションレスポンス表に従い、行が要求する全フィールドを埋める — 依存に対する Design Doc の要件を `details.design_doc_expectation`、欠落/未実装の依存と具体的な未決の判断を `details.actual_situation` に対応づけ、`details.why_cannot_implement` / `details.attempted_approaches[]` / `claude_recommendation` は表に従う。 + #### 隣接ケース走査(タスクファイルの `Change Category` フィールドが `bug-fix` / `regression` / `state-change` / `boundary-change` のいずれかに設定されている場合は必須) 実装前確認の後、Binding Decision チェックの前に実行する。このステップはタスク分解が書き込んだフィールド値で発火する — フィールド値を読み、走査を適用するかの判断はそれを正本とする。 From 6c2e91898240dde07910b1043068e97d11feafc5 Mon Sep 17 00:00:00 2001 From: Shinsuke Kagawa Date: Mon, 29 Jun 2026 18:53:28 +0900 Subject: [PATCH 3/3] chore: release 1.25.1 Add Unimplemented Dependency Handling rule to task-executor / -frontend (en/ja). See CHANGELOG for details. Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 6 ++++++ package.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d7e86b6..34ea885 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.25.1] - 2026-06-29 + +### Added + +- **Unimplemented-dependency handling** (agents) — `task-executor` / `-frontend` gain a rule for a dependency the task requires that is absent or unimplemented: it is a stop condition only when preserving the required contract needs it and no local, reversible construct (a vertical slice, or a contract-preserving stub/adapter scoped to the Target Files) can stand in. The required contract is established from an already-read source first — a missing `Dependencies:` deliverable whose contract no read source defines escalates as `design_compliance_violation`; one or more interchangeable constructs proceed with the integration handoff recorded in Investigation Notes; no viable construct, or constructs that differ on an architectural trade-off, escalate (reusing the existing escalation type, no new enum). Applied across en/ja. + ## [1.25.0] - 2026-06-25 ### Added diff --git a/package.json b/package.json index db70db3..5163202 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-ai-project", - "version": "1.25.0", + "version": "1.25.1", "packageManager": "npm@10.8.2", "description": "TypeScript boilerplate with skills and sub-agents for Claude Code. Prevents context exhaustion through role-based task splitting.", "keywords": [