ai-delivery-workflow 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/FILE-REFERENCE.zh-CN.md +1 -1
- package/docs/MAINTENANCE-VERIFICATION.zh-CN.md +2 -2
- package/docs/PROJECT-MANUAL.zh-CN.md +1 -1
- package/docs/agents/workflow-manager-current-state.md +1 -1
- package/lib/communication-confirmation.mjs +177 -0
- package/lib/project-bootstrap.mjs +267 -3
- package/lib/project-installer.mjs +25 -1
- package/package.json +1 -1
- package/skills/ai-delivery-bootstrap/SKILL.md +4 -0
- package/skills/ai-delivery-checkpoint-task/SKILL.md +2 -0
- package/skills/ai-delivery-checkpoint-task/references/checkpoint-contract.md +2 -0
- package/skills/ai-delivery-close-version/SKILL.md +13 -10
- package/skills/ai-delivery-close-version/references/version-closeout-contract.md +2 -1
- package/skills/ai-delivery-define-product/SKILL.md +6 -3
- package/skills/ai-delivery-design-architecture/SKILL.md +10 -5
- package/skills/ai-delivery-design-architecture/assets/architecture-template/architecture-gate.yaml +2 -0
- package/skills/ai-delivery-design-architecture/assets/architecture-template/prototype-architecture-validation.yaml +2 -0
- package/skills/ai-delivery-design-architecture/references/architecture-contract.md +4 -0
- package/skills/ai-delivery-design-experience/SKILL.md +5 -3
- package/skills/ai-delivery-design-experience/assets/experience-template/product-prototype-reconciliation.yaml +2 -0
- package/skills/ai-delivery-design-experience/assets/experience-template/ui-handoff.yaml +3 -0
- package/skills/ai-delivery-design-experience/references/experience-contract.md +2 -2
- package/skills/ai-delivery-design-tests/SKILL.md +4 -0
- package/skills/ai-delivery-develop-iteration/SKILL.md +6 -1
- package/skills/ai-delivery-develop-iteration/assets/development-template/candidate-manifest.yaml +2 -0
- package/skills/ai-delivery-execute-work-package/SKILL.md +4 -2
- package/skills/ai-delivery-orchestrate/SKILL.md +2 -0
- package/skills/ai-delivery-orchestrate/assets/codebase-template/AGENTS.md +14 -0
- package/skills/ai-delivery-orchestrate/assets/codebase-template/CODEBASE_GUIDE.md +124 -0
- package/skills/ai-delivery-orchestrate/assets/codebase-template/docs/CODEBASE_INDEX.md +87 -0
- package/skills/ai-delivery-orchestrate/assets/communication-template/confirmation-examples.yaml +67 -0
- package/skills/ai-delivery-orchestrate/assets/communication-template/confirmation-summary.yaml +42 -0
- package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/iterations/ITER-0001/02-solution-design/product-impact-assessment.yaml +42 -0
- package/skills/ai-delivery-orchestrate/references/codebase-document-contract.md +91 -0
- package/skills/ai-delivery-orchestrate/references/communication-confirmation-contract.md +52 -0
- package/skills/ai-delivery-orchestrate/references/product-impact-assessment-contract.md +87 -0
- package/skills/ai-delivery-orchestrate/scripts/confirmation-state.mjs +30 -0
- package/skills/ai-delivery-orchestrate-release/SKILL.md +3 -1
- package/skills/ai-delivery-plan-iteration/SKILL.md +6 -1
- package/skills/ai-delivery-prepare-platform/SKILL.md +1 -1
- package/skills/ai-delivery-prepare-release/SKILL.md +2 -0
- package/skills/ai-delivery-review-change/SKILL.md +3 -1
- package/skills/ai-delivery-validate-artifacts/SKILL.md +10 -7
- package/skills/ai-delivery-validate-artifacts/references/artifact-contract.md +2 -1
- package/skills/ai-delivery-verify-candidate/SKILL.md +5 -2
- package/skills/ai-delivery-verify-candidate/references/candidate-verification-contract.md +1 -1
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# 代码库索引
|
|
2
|
+
|
|
3
|
+
> 本索引面向代码仓库管理者和 Agent。路径均相对于代码仓库根目录;工程规范见 [`CODEBASE_GUIDE.md`](../CODEBASE_GUIDE.md)。
|
|
4
|
+
|
|
5
|
+
| 项目 | 内容 |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| 状态 | `<observed | approved | stale>` |
|
|
8
|
+
| 适用代码提交 | `<commit-or-tag>` |
|
|
9
|
+
| 最后核对 | `<YYYY-MM-DD>` |
|
|
10
|
+
| 维护责任 | `<team-or-role>` |
|
|
11
|
+
| 正式依据 | `<architecture / standards / task references>` |
|
|
12
|
+
|
|
13
|
+
## 1. 先从哪里看
|
|
14
|
+
|
|
15
|
+
| 目标 | 首选位置 | 说明 |
|
|
16
|
+
| --- | --- | --- |
|
|
17
|
+
| 启动应用 | `<path>` | `<what it assembles>` |
|
|
18
|
+
| 查找接口或路由 | `<path>` | `<protocol/entrypoint>` |
|
|
19
|
+
| 查找业务规则 | `<path>` | `<domain/application boundary>` |
|
|
20
|
+
| 查找数据访问 | `<path>` | `<repository/adapter>` |
|
|
21
|
+
| 查找测试 | `<path>` | `<native test convention>` |
|
|
22
|
+
| 查找部署配置 | `<path>` | `<environment/deployment boundary>` |
|
|
23
|
+
|
|
24
|
+
## 2. 顶层目录
|
|
25
|
+
|
|
26
|
+
| 路径 | 职责 | 主要入口 | 关联测试 | 风险 | 状态 |
|
|
27
|
+
| --- | --- | --- | --- | --- | --- |
|
|
28
|
+
| `<path>` | `<purpose>` | `<entrypoints>` | `<tests>` | `<low/medium/high>` | `<status>` |
|
|
29
|
+
|
|
30
|
+
普通源码目录按职责归类;入口文件、跨层适配器、持久化/鉴权/部署配置和高风险模块可单独列在“关键文件索引”。
|
|
31
|
+
|
|
32
|
+
## 3. 模块索引
|
|
33
|
+
|
|
34
|
+
### `<module path>`
|
|
35
|
+
|
|
36
|
+
`<one-sentence responsibility>`
|
|
37
|
+
|
|
38
|
+
| 项目 | 内容 |
|
|
39
|
+
| --- | --- |
|
|
40
|
+
| 入口 | `<path>` |
|
|
41
|
+
| 业务规则 | `<path>` |
|
|
42
|
+
| 数据访问 | `<path>` |
|
|
43
|
+
| 主要测试 | `<path/command>` |
|
|
44
|
+
| 允许依赖 | `<modules or interfaces>` |
|
|
45
|
+
| 禁止依赖 | `<private implementation or layer>` |
|
|
46
|
+
| 高风险变更 | `<risk triggers>` |
|
|
47
|
+
| 维护状态 | `<status>; 最近核对 <commit>` |
|
|
48
|
+
|
|
49
|
+
重复模块按同一结构追加,避免把每个普通文件写成独立说明。
|
|
50
|
+
|
|
51
|
+
## 4. 关键文件索引
|
|
52
|
+
|
|
53
|
+
| 文件 | 作用 | 修改前先读 | 测试/验证 | 风险 | 生成或外部维护 |
|
|
54
|
+
| --- | --- | --- | --- | --- | --- |
|
|
55
|
+
| `<relative path>` | `<purpose>` | `<guide/decision/test contract>` | `<test or command>` | `<low/medium/high>` | `<no/generated/external>` |
|
|
56
|
+
|
|
57
|
+
## 5. 典型定位路径
|
|
58
|
+
|
|
59
|
+
### `<change type>`
|
|
60
|
+
|
|
61
|
+
1. 从 `<entrypoint or module>` 开始;
|
|
62
|
+
2. 检查 `<contract or dependency>`;
|
|
63
|
+
3. 在 `<layer>` 实施业务变更;
|
|
64
|
+
4. 更新或运行 `<tests>`;
|
|
65
|
+
5. 如果结构、入口、依赖或风险变化,更新本索引并关联 `<reference>`。
|
|
66
|
+
|
|
67
|
+
## 6. 不应从索引直接推断的内容
|
|
68
|
+
|
|
69
|
+
- 索引不能替代实际源码、测试和当前 Git 状态核对;
|
|
70
|
+
- `observed` 条目只是扫描观察,不能视为已批准架构;
|
|
71
|
+
- `generated` 文件通过生成命令更新,不直接编辑;
|
|
72
|
+
- 索引未列出的文件不等于允许修改;任务允许文件范围和正式安全规则优先;
|
|
73
|
+
- CodeGraph、Semble 或索引给出的定位结果都必须回到具体源码和测试确认。
|
|
74
|
+
|
|
75
|
+
## 7. 维护记录
|
|
76
|
+
|
|
77
|
+
当顶层目录、模块、入口、依赖方向、测试位置、生成流程、部署入口或安全边界变化时更新本索引。
|
|
78
|
+
|
|
79
|
+
| 字段 | 值 |
|
|
80
|
+
| --- | --- |
|
|
81
|
+
| `source_commit` | `<commit>` |
|
|
82
|
+
| `last_reviewed` | `<YYYY-MM-DD>` |
|
|
83
|
+
| `status` | `<observed | approved | stale>` |
|
|
84
|
+
| `owner` | `<team-or-role>` |
|
|
85
|
+
| `references` | `<architecture / standards / tasks>` |
|
|
86
|
+
|
|
87
|
+
发现路径失效、提交漂移或内容冲突时,先标记为 `stale`;不要自动覆盖维护者文档。
|
package/skills/ai-delivery-orchestrate/assets/communication-template/confirmation-examples.yaml
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
schema_version: 1
|
|
2
|
+
summary_id: CONFIRMATION-EXAMPLE-0001
|
|
3
|
+
version: 2
|
|
4
|
+
status: confirmed
|
|
5
|
+
node: 01-product-shaping
|
|
6
|
+
iteration_id: ITERATION-EXAMPLE-0001
|
|
7
|
+
task_id: TASK-EXAMPLE-0001
|
|
8
|
+
owner: product-and-architecture-reviewers
|
|
9
|
+
source_revision: EXAMPLE-SOURCE-REVISION
|
|
10
|
+
updated_at: 2026-08-23T00:00:00Z
|
|
11
|
+
frontier_round: 2
|
|
12
|
+
shared_understanding: true
|
|
13
|
+
shared_understanding_actor: human:product-owner
|
|
14
|
+
shared_understanding_confirmed_at: 2026-08-23T00:05:00Z
|
|
15
|
+
grouping_rationale: null
|
|
16
|
+
records:
|
|
17
|
+
- confirmation_id: CONF-PRODUCT-0001
|
|
18
|
+
question_id: Q-PRODUCT-0001
|
|
19
|
+
parent_decision_id: null
|
|
20
|
+
frontier_round: 1
|
|
21
|
+
category: business_decision
|
|
22
|
+
status: confirmed
|
|
23
|
+
question: "Which problem is in the first release?"
|
|
24
|
+
recommendation: "Start with preventing missed handoffs."
|
|
25
|
+
options:
|
|
26
|
+
- id: MISSED-HANDOFFS
|
|
27
|
+
label: "Prevent missed handoffs"
|
|
28
|
+
rationale: "Matches the observed operational pain and keeps scope narrow."
|
|
29
|
+
decision: "Prevent missed handoffs"
|
|
30
|
+
rationale: "The sponsor prioritizes accountability over reporting breadth."
|
|
31
|
+
actor: human:product-owner
|
|
32
|
+
confirmed_at: 2026-08-23T00:01:00Z
|
|
33
|
+
depends_on: []
|
|
34
|
+
evidence_refs: ["bootstrap-report@1"]
|
|
35
|
+
authority_refs: ["product-manual@1"]
|
|
36
|
+
impact_refs: ["scope-baseline@1"]
|
|
37
|
+
owner: product-owner
|
|
38
|
+
next_action: "Ask the dependent architecture boundary question."
|
|
39
|
+
next_action_owner: agent
|
|
40
|
+
supersedes: null
|
|
41
|
+
superseded_by: null
|
|
42
|
+
- confirmation_id: CONF-ARCH-0001
|
|
43
|
+
question_id: Q-ARCH-0001
|
|
44
|
+
parent_decision_id: CONF-PRODUCT-0001
|
|
45
|
+
frontier_round: 2
|
|
46
|
+
category: architecture_decision
|
|
47
|
+
status: confirmed
|
|
48
|
+
question: "Should handoff ownership be enforced in the workflow state model?"
|
|
49
|
+
recommendation: "Enforce explicit owner transfer and zero-mutation waits."
|
|
50
|
+
options:
|
|
51
|
+
- id: EXPLICIT-OWNER
|
|
52
|
+
label: "Explicit owner transfer"
|
|
53
|
+
rationale: "Prevents an agent from guessing through a user wait."
|
|
54
|
+
decision: "Explicit owner transfer"
|
|
55
|
+
rationale: "The sponsor accepts the additional checkpoint fields for auditability."
|
|
56
|
+
actor: human:maintainer
|
|
57
|
+
confirmed_at: 2026-08-23T00:04:00Z
|
|
58
|
+
depends_on: [CONF-PRODUCT-0001]
|
|
59
|
+
evidence_refs: ["checkpoint-contract@1"]
|
|
60
|
+
authority_refs: ["architecture-baseline@1", "architecture-gate@1"]
|
|
61
|
+
impact_refs: ["checkpoint-contract@1"]
|
|
62
|
+
owner: architecture-owner
|
|
63
|
+
next_action: "Link both decisions to the approved baselines before Gate completion."
|
|
64
|
+
next_action_owner: agent
|
|
65
|
+
supersedes: null
|
|
66
|
+
superseded_by: null
|
|
67
|
+
open_questions: []
|
package/skills/ai-delivery-orchestrate/assets/communication-template/confirmation-summary.yaml
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
schema_version: 1
|
|
2
|
+
summary_id: CONFIRMATION-SUMMARY-0001
|
|
3
|
+
version: 1
|
|
4
|
+
status: draft
|
|
5
|
+
node: 01-product-shaping
|
|
6
|
+
iteration_id: ITERATION-0001
|
|
7
|
+
task_id: TASK-0001
|
|
8
|
+
owner: team-or-role
|
|
9
|
+
source_revision: REPLACE_WITH_CODE_OR_WORKFLOW_COMMIT
|
|
10
|
+
updated_at: REPLACE_WITH_ISO_TIMESTAMP
|
|
11
|
+
frontier_round: 1
|
|
12
|
+
shared_understanding: false
|
|
13
|
+
shared_understanding_actor: null
|
|
14
|
+
shared_understanding_confirmed_at: null
|
|
15
|
+
grouping_rationale: null
|
|
16
|
+
records:
|
|
17
|
+
- confirmation_id: CONF-0001
|
|
18
|
+
question_id: Q-0001
|
|
19
|
+
parent_decision_id: null
|
|
20
|
+
frontier_round: 1
|
|
21
|
+
category: business_decision
|
|
22
|
+
status: proposed
|
|
23
|
+
question: "What decision must the user make?"
|
|
24
|
+
recommendation: "Recommended option and why."
|
|
25
|
+
options:
|
|
26
|
+
- id: OPTION-A
|
|
27
|
+
label: "Option A"
|
|
28
|
+
rationale: "Tradeoff and evidence."
|
|
29
|
+
decision: null
|
|
30
|
+
rationale: null
|
|
31
|
+
actor: null
|
|
32
|
+
confirmed_at: null
|
|
33
|
+
depends_on: []
|
|
34
|
+
evidence_refs: []
|
|
35
|
+
authority_refs: []
|
|
36
|
+
impact_refs: []
|
|
37
|
+
owner: product-owner
|
|
38
|
+
next_action: "Ask Q-0001 and wait for the user's answer."
|
|
39
|
+
next_action_owner: user
|
|
40
|
+
supersedes: null
|
|
41
|
+
superseded_by: null
|
|
42
|
+
open_questions: []
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
artifact_id: PRODUCT-IMPACT-ASSESSMENT-0001
|
|
2
|
+
artifact_type: product-impact-assessment
|
|
3
|
+
version: 1
|
|
4
|
+
iteration_id: ITER-0001
|
|
5
|
+
status: draft
|
|
6
|
+
producer_skill: ai-delivery-design-architecture
|
|
7
|
+
source_node: 02-solution-design
|
|
8
|
+
input_artifacts: []
|
|
9
|
+
product_baseline:
|
|
10
|
+
id: PRODUCT-BASELINE-0001
|
|
11
|
+
version: 1
|
|
12
|
+
checksum: REPLACE_WITH_SHA256
|
|
13
|
+
decision: clarification-required
|
|
14
|
+
trigger:
|
|
15
|
+
kind: prototype-adjustment
|
|
16
|
+
summary: REPLACE_WITH_OBSERVED_CHANGE
|
|
17
|
+
affected_product_assets:
|
|
18
|
+
terminals: []
|
|
19
|
+
features: []
|
|
20
|
+
stories: []
|
|
21
|
+
acceptance_criteria: []
|
|
22
|
+
non_functional_requirements: []
|
|
23
|
+
business_terms: []
|
|
24
|
+
affected_design_assets:
|
|
25
|
+
experience_changes: []
|
|
26
|
+
prototype_pages: []
|
|
27
|
+
review_scenes: []
|
|
28
|
+
architecture_decisions: []
|
|
29
|
+
quality_budgets: []
|
|
30
|
+
confirmation:
|
|
31
|
+
questions: []
|
|
32
|
+
summary_ref: .workflow/communication/confirmation-summary.yaml
|
|
33
|
+
return:
|
|
34
|
+
required: true
|
|
35
|
+
node: 01-product-shaping
|
|
36
|
+
mode: prototype-reconciliation
|
|
37
|
+
reason: REPLACE_WITH_REASON
|
|
38
|
+
rebaselines_required: []
|
|
39
|
+
stale_artifacts: []
|
|
40
|
+
product_reconciliation_ref: null
|
|
41
|
+
evidence: []
|
|
42
|
+
blocking_issues: []
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Codebase Documentation Contract
|
|
2
|
+
|
|
3
|
+
This contract defines the project-owned documentation that lives in the independent code repository. It is a writing and validation contract, not a second workflow state store.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
code/
|
|
9
|
+
├─ AGENTS.md
|
|
10
|
+
├─ CODEBASE_GUIDE.md
|
|
11
|
+
└─ docs/
|
|
12
|
+
└─ CODEBASE_INDEX.md
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
- `CODEBASE_GUIDE.md` is the human-readable handbook for repository maintainers and contributors.
|
|
16
|
+
- `AGENTS.md` is a short agent entrypoint. It contains only high-priority rules and conditional pointers into the handbook and index.
|
|
17
|
+
- `docs/CODEBASE_INDEX.md` is the human-readable navigation map for directories, modules, entrypoints, tests, dependencies, risks, and maintenance ownership.
|
|
18
|
+
|
|
19
|
+
The first release uses Markdown as the source of truth. A YAML or database projection is out of scope until a real consumer and synchronization contract exist.
|
|
20
|
+
|
|
21
|
+
## Authority
|
|
22
|
+
|
|
23
|
+
The project workflow repository remains authoritative for approved architecture, standards, formal state, task scope, Gates, and release identity. Code-repository documentation explains how to apply those decisions while working in source. When the handbook conflicts with an approved workflow artifact, stop relying on the conflicting section, report the conflict, and update the handbook through the owning workflow node.
|
|
24
|
+
|
|
25
|
+
The environment is authoritative for facts it already expresses precisely, such as package scripts, compiler options, CI jobs, and directory names. The handbook should capture rationale, conventions, risks, and entrypoints that the environment cannot express reliably; it should link to rather than duplicate long configuration files.
|
|
26
|
+
|
|
27
|
+
## Audience and language
|
|
28
|
+
|
|
29
|
+
Write for a repository maintainer first. Use plain Simplified Chinese for explanatory prose and preserve technical identifiers, paths, commands, schemas, and protocol values exactly. A maintainer should be able to answer these questions without reading source code first:
|
|
30
|
+
|
|
31
|
+
1. What is this project and where does execution start?
|
|
32
|
+
2. How do I install, run, test, debug, review, and release it?
|
|
33
|
+
3. Which layers and modules may depend on each other?
|
|
34
|
+
4. Which paths are high risk, generated, externally maintained, or not directly editable?
|
|
35
|
+
5. Which tests and evidence are required after a change?
|
|
36
|
+
6. Who maintains this document and when must it be updated?
|
|
37
|
+
|
|
38
|
+
## Guide sections
|
|
39
|
+
|
|
40
|
+
`CODEBASE_GUIDE.md` must contain, or explicitly link to, these sections:
|
|
41
|
+
|
|
42
|
+
1. project overview and ownership;
|
|
43
|
+
2. quick start and verified commands;
|
|
44
|
+
3. repository map and runtime entrypoints;
|
|
45
|
+
4. layering and dependency direction;
|
|
46
|
+
5. naming, testing, error, logging, configuration, security, and migration conventions;
|
|
47
|
+
6. change workflow and verification expectations;
|
|
48
|
+
7. risks, generated files, protected paths, and rollback notes;
|
|
49
|
+
8. documentation ownership, freshness, approval references, and update triggers.
|
|
50
|
+
|
|
51
|
+
## Index fields
|
|
52
|
+
|
|
53
|
+
Every index row describes a directory or a key file relative to the code-repository root. Use these columns when applicable:
|
|
54
|
+
|
|
55
|
+
| Field | Meaning |
|
|
56
|
+
| --- | --- |
|
|
57
|
+
| `path` | Relative path; never an absolute path or a path containing `..`. |
|
|
58
|
+
| `purpose` | Why the directory or file exists. |
|
|
59
|
+
| `entrypoints` | Main executable, route, public API, or command entrypoints. |
|
|
60
|
+
| `tests` | Relevant native test paths or commands. |
|
|
61
|
+
| `dependencies` | Important allowed dependencies or consumers. |
|
|
62
|
+
| `risk` | `low`, `medium`, or `high`, with a short reason for `high`. |
|
|
63
|
+
| `generated` | Whether a command regenerates the content. |
|
|
64
|
+
| `owner` | Team or role responsible for keeping the entry accurate. |
|
|
65
|
+
| `source_commit` | Code commit the entry was checked against. |
|
|
66
|
+
| `last_reviewed` | ISO date of the latest human or validator review. |
|
|
67
|
+
| `status` | `observed`, `approved`, or `stale`. |
|
|
68
|
+
| `references` | Architecture, standards, task, test, or operational references. |
|
|
69
|
+
|
|
70
|
+
Directory-level rows are the default. Use file-level rows for entrypoints, cross-layer adapters, persistence/authentication/deployment configuration, generated boundaries, and high-risk modules. The index is not required to enumerate every ordinary source file.
|
|
71
|
+
|
|
72
|
+
## Freshness and safety
|
|
73
|
+
|
|
74
|
+
- `observed` means discovered by Bootstrap or a tool and not yet approved by a maintainer.
|
|
75
|
+
- `approved` means reviewed against the current code and the relevant approved architecture/standards.
|
|
76
|
+
- `stale` means the recorded `source_commit` or referenced path may no longer describe the code.
|
|
77
|
+
- A missing, stale, conflicting, or path-invalid entry must be reported before code modification relies on it.
|
|
78
|
+
- Never put credentials, private keys, production data, or large source excerpts in these files.
|
|
79
|
+
- `init` and `upgrade` must preserve existing code-repository documentation. Any creation or revision must be explicit, reviewable, and attributable to the owning workflow task.
|
|
80
|
+
|
|
81
|
+
## Writing quality
|
|
82
|
+
|
|
83
|
+
Prefer short paragraphs, tables, links, and concrete examples. Put the answer before the background. Keep one rule in one authoritative location. Link to formal workflow artifacts instead of copying their full contents. Every procedural section should end with a checkable command, file, review, or evidence criterion.
|
|
84
|
+
|
|
85
|
+
## Completion checklist
|
|
86
|
+
|
|
87
|
+
- A maintainer can find the runtime entrypoint, test entrypoint, and high-risk paths within one screen of navigation.
|
|
88
|
+
- Every high-risk index row names its tests, owner, and update trigger.
|
|
89
|
+
- Commands are verified from repository configuration or a recorded validation run.
|
|
90
|
+
- All paths resolve inside the code repository and all status/commit metadata is current.
|
|
91
|
+
- Conflicts with workflow architecture or standards are explicitly linked and not silently resolved in prose.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Communication Confirmation Contract
|
|
2
|
+
|
|
3
|
+
This contract records structured user decisions without storing a conversation transcript. It is a traceability index, not a second product, architecture, standards, task, or formal-state authority.
|
|
4
|
+
|
|
5
|
+
## Placement and authority
|
|
6
|
+
|
|
7
|
+
Store a mutable draft and its later immutable revisions under the current workflow repository's version-scoped node directory:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
.workflow/iterations/<iteration-id>/<node-id>/confirmation-summary.yaml
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The summary may point to product, architecture, standards, task, Gate, or release artifacts, but those owning artifacts remain authoritative. A `confirmed` record is incomplete until its `authority_refs` points to the owning artifact or explicitly records the handoff that will create it.
|
|
14
|
+
|
|
15
|
+
Do not store full chat transcripts, credentials, production data, or model reasoning. Preserve only the question, recommendation, decision, rationale, evidence references, impact, and next action needed to resume safely.
|
|
16
|
+
|
|
17
|
+
## Knowledge categories
|
|
18
|
+
|
|
19
|
+
Allowed `category` values are:
|
|
20
|
+
|
|
21
|
+
- `observed_fact`: source, configuration, Git, test, or runtime fact found by the Agent;
|
|
22
|
+
- `business_fact`, `business_decision`, `domain_term`, `business_constraint`;
|
|
23
|
+
- `architecture_decision`;
|
|
24
|
+
- `standard_decision`;
|
|
25
|
+
- `risk`, `assumption`, `open_question`;
|
|
26
|
+
- `execution_fact`, `execution_decision`.
|
|
27
|
+
|
|
28
|
+
Facts require `evidence_refs`. User decisions require `actor`, `decision`, and `confirmed_at`; an Agent recommendation is never approval. `domain_term` records must point to the Product Manual Business Glossary or a superseding product artifact. `architecture_decision` records must point to an architecture baseline, decision record, or architecture Gate.
|
|
29
|
+
|
|
30
|
+
## Confirmation statuses
|
|
31
|
+
|
|
32
|
+
`proposed` is waiting for a decision. `confirmed` and `rejected` close a decision. `deferred` remains unresolved and must retain a responsible owner and next action. `superseded` is historical and must point to the replacement through `supersedes` or `superseded_by`.
|
|
33
|
+
|
|
34
|
+
## Decision tree and frontier
|
|
35
|
+
|
|
36
|
+
Each record has a stable `confirmation_id`, a `question_id`, a `frontier_round`, and optional `depends_on` decision IDs. The current frontier consists only of `proposed` records whose dependencies are closed by `confirmed`, `rejected`, or a valid superseding record. A dependency cycle, unknown dependency, or proposed record with unresolved dependencies is invalid rather than silently skipped.
|
|
37
|
+
|
|
38
|
+
The default interaction policy is one user decision per round. Multiple questions may be presented together only when they are independent, low-risk, and the summary explicitly records the grouping rationale.
|
|
39
|
+
|
|
40
|
+
## Shared understanding
|
|
41
|
+
|
|
42
|
+
Set `shared_understanding: true` only after the current frontier is empty and the user has confirmed the summary. `deferred` and `open_question` records may remain, but each must identify an owner and an idempotent `next_action`. A node must not perform an action that depends on an unresolved decision.
|
|
43
|
+
|
|
44
|
+
## Wait and mutation boundary
|
|
45
|
+
|
|
46
|
+
When `next_action_owner` is `user` or `external`, the task remains a zero-mutation wait state. Recovery reports the exact recorded question or wait condition; it does not activate tasks, mutate formal state, register artifacts, or change Git. After the required input arrives, the controlled task CLI transfers ownership to `agent` with a new idempotent next action.
|
|
47
|
+
|
|
48
|
+
## Superseding and provenance
|
|
49
|
+
|
|
50
|
+
Never edit a confirmed record in place. A correction creates a new record with `supersedes`, retains the previous checksum/reference, and routes affected artifacts stale or back to their owning node. Every summary revision should retain `summary_id`, `version`, `source_revision`, `owner`, and `updated_at`.
|
|
51
|
+
|
|
52
|
+
See `assets/communication-template/confirmation-examples.yaml` for a maintainer-readable two-round example: a confirmed product decision opens an architecture frontier, and shared understanding is recorded only after both decisions have authority references.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Product Impact Assessment Contract
|
|
2
|
+
|
|
3
|
+
`product-impact-assessment.yaml` is the shared design-stage receipt for any finding that may change an approved product baseline. It is an impact record, not a product decision. Product intent, scope, terminology, priority, risk acceptance, and terminal selection remain owned by `01-product-shaping`.
|
|
4
|
+
|
|
5
|
+
## When to create one
|
|
6
|
+
|
|
7
|
+
Create one before continuing `02-solution-design` when design discovers any of the following:
|
|
8
|
+
|
|
9
|
+
- a Prototype adjustment changes user-visible behavior, acceptance, or a terminal;
|
|
10
|
+
- a new logical terminal, Page, Review Scene, or channel is needed;
|
|
11
|
+
- a quality, security, privacy, compliance, availability, performance, or cost requirement changes product tradeoffs;
|
|
12
|
+
- an architecture constraint changes a goal, business rule, scope, priority, risk acceptance, or terminology;
|
|
13
|
+
- a user confirmation is needed to choose between materially different product outcomes.
|
|
14
|
+
|
|
15
|
+
Use `no-impact` only when the evidence proves that approved product behavior, scope, terminals, terminology, acceptance, and non-functional requirements are unchanged.
|
|
16
|
+
|
|
17
|
+
## Controlled values
|
|
18
|
+
|
|
19
|
+
`decision` is one of:
|
|
20
|
+
|
|
21
|
+
- `no-impact`: design may continue after recording evidence;
|
|
22
|
+
- `architecture-only`: only implementation structure changes and approved product behavior is unchanged;
|
|
23
|
+
- `product-update-required`: product must create and approve a successor baseline;
|
|
24
|
+
- `clarification-required`: a user decision is needed before classification can close.
|
|
25
|
+
|
|
26
|
+
`status` is `draft`, `awaiting-product`, `resolved`, `invalid`, or `superseded`. A resolved `no-impact` or `architecture-only` assessment has `status: resolved`; `product-update-required` and `clarification-required` remain `awaiting-product` until a valid product reconciliation receipt is linked.
|
|
27
|
+
|
|
28
|
+
## Required fields
|
|
29
|
+
|
|
30
|
+
```yaml
|
|
31
|
+
artifact_id: PRODUCT-IMPACT-ASSESSMENT-0001
|
|
32
|
+
artifact_type: product-impact-assessment
|
|
33
|
+
version: 1
|
|
34
|
+
iteration_id: ITER-0001
|
|
35
|
+
status: draft
|
|
36
|
+
producer_skill: ai-delivery-design-architecture
|
|
37
|
+
source_node: 02-solution-design
|
|
38
|
+
input_artifacts: []
|
|
39
|
+
product_baseline:
|
|
40
|
+
id: PRODUCT-BASELINE-0001
|
|
41
|
+
version: 1
|
|
42
|
+
checksum: SHA256
|
|
43
|
+
decision: clarification-required
|
|
44
|
+
trigger:
|
|
45
|
+
kind: prototype-adjustment
|
|
46
|
+
summary: "Describe the observed change"
|
|
47
|
+
affected_product_assets:
|
|
48
|
+
terminals: []
|
|
49
|
+
features: []
|
|
50
|
+
stories: []
|
|
51
|
+
acceptance_criteria: []
|
|
52
|
+
non_functional_requirements: []
|
|
53
|
+
business_terms: []
|
|
54
|
+
affected_design_assets:
|
|
55
|
+
experience_changes: []
|
|
56
|
+
prototype_pages: []
|
|
57
|
+
review_scenes: []
|
|
58
|
+
architecture_decisions: []
|
|
59
|
+
quality_budgets: []
|
|
60
|
+
confirmation:
|
|
61
|
+
questions: []
|
|
62
|
+
summary_ref: .workflow/communication/confirmation-summary.yaml
|
|
63
|
+
return:
|
|
64
|
+
required: true
|
|
65
|
+
node: 01-product-shaping
|
|
66
|
+
mode: prototype-reconciliation
|
|
67
|
+
reason: "Explain why product ownership is required"
|
|
68
|
+
rebaselines_required: []
|
|
69
|
+
stale_artifacts: []
|
|
70
|
+
product_reconciliation_ref: null
|
|
71
|
+
evidence: []
|
|
72
|
+
blocking_issues: []
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Every listed asset uses a stable ID. Every input and evidence item pins a version and checksum when one exists. `return.node` is `01-product-shaping` for `product-update-required` and `clarification-required`; it is the owning design phase for a closed `no-impact` or `architecture-only` result.
|
|
76
|
+
|
|
77
|
+
## Closure and propagation
|
|
78
|
+
|
|
79
|
+
1. The producing design skill writes the assessment and checkpoints it before asking a user question or changing downstream artifacts.
|
|
80
|
+
2. `product-update-required` or `clarification-required` blocks the current design handoff. Product owns the question and writes `product-prototype-reconciliation.yaml` plus a new approved product baseline when needed.
|
|
81
|
+
3. A successor product baseline supersedes the input baseline. Affected architecture, experience, planning, test, and delivery artifacts become `stale` until revalidated against the successor checksum.
|
|
82
|
+
4. `architecture-only` may continue only when the assessment explicitly proves no product asset changed and any major architecture decision has its own approval.
|
|
83
|
+
5. `no-impact` and `architecture-only` do not authorize editing a frozen Prototype or approved product baseline.
|
|
84
|
+
|
|
85
|
+
## Compatibility
|
|
86
|
+
|
|
87
|
+
The existing `prototype-impact-assessment.yaml` remains a Prototype-local evidence record. Its `assessments`, review checksums, and adjustment log are consumed as `input_artifacts` or `affected_design_assets`; it must be wrapped by this contract before a cross-node return or final handoff. The old `decision: changes-required` maps to `product-update-required` only when an affected product asset is listed; otherwise it maps to `architecture-only` or `clarification-required` after review.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { readConfirmationSummary } from "../../../lib/communication-confirmation.mjs";
|
|
3
|
+
|
|
4
|
+
const [command, file] = process.argv.slice(2);
|
|
5
|
+
if (!command || !file || !["validate", "frontier"].includes(command)) {
|
|
6
|
+
console.error("Usage: confirmation-state.mjs <validate|frontier> <confirmation-summary.yaml>");
|
|
7
|
+
process.exit(2);
|
|
8
|
+
}
|
|
9
|
+
try {
|
|
10
|
+
const result = readConfirmationSummary(file);
|
|
11
|
+
const payload = {
|
|
12
|
+
summary_checksum: result.checksum,
|
|
13
|
+
valid: result.validation.valid,
|
|
14
|
+
errors: result.validation.errors,
|
|
15
|
+
warnings: result.validation.warnings,
|
|
16
|
+
frontier: result.validation.frontier,
|
|
17
|
+
blocked_proposals: result.validation.blocked_proposals,
|
|
18
|
+
};
|
|
19
|
+
process.stdout.write(`${JSON.stringify(command === "frontier" ? {
|
|
20
|
+
summary_checksum: payload.summary_checksum,
|
|
21
|
+
valid: payload.valid,
|
|
22
|
+
errors: payload.errors,
|
|
23
|
+
frontier: payload.frontier,
|
|
24
|
+
blocked_proposals: payload.blocked_proposals,
|
|
25
|
+
} : payload, null, 2)}\n`);
|
|
26
|
+
process.exit(result.validation.valid ? 0 : 1);
|
|
27
|
+
} catch (error) {
|
|
28
|
+
console.error(error.message);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
@@ -18,7 +18,7 @@ Coordinate `R00` through `R10`. Never infer release intent from completed versio
|
|
|
18
18
|
## Route Release Nodes
|
|
19
19
|
|
|
20
20
|
1. `R01-version-selection`: invoke `$ai-delivery-assemble-release` to calculate and freeze the version selection, including the R00 `main` snapshot and exactly one target `version-ready` Tag.
|
|
21
|
-
2. `R02-release-eligibility`: require continuous lineage, immutable tags, eligible artifacts, and the unchanged R00 main snapshot. For incremental release the snapshot must precede the target Tag; for same-version redeploy the target Tag must already be reachable from the snapshot. Also require every adjacent code and workflow ancestry edge, available images, compatible migrations/configuration, and no stale candidate.
|
|
21
|
+
2. `R02-release-eligibility`: require continuous lineage, immutable tags, eligible artifacts, and the unchanged R00 main snapshot. For incremental release the snapshot must precede the target Tag; for same-version redeploy the target Tag must already be reachable from the snapshot. Also require every adjacent code and workflow ancestry edge, available images, compatible migrations/configuration, a resolved or superseded product impact assessment, and no stale candidate.
|
|
22
22
|
3. `R03-material-aggregation`: aggregate checksummed requirements, architecture, prototypes, code, images, configuration, migrations, tests, risks, operations, and rollback materials.
|
|
23
23
|
4. `R04-release-candidate`: invoke `$ai-delivery-manage-git`'s `scripts/release-git.mjs create-candidate` with `--release-id`, `--release-branch`, `--expected-main`, one `--source-tag`, its exact `--source-commit`, `--receipt`, and `--apply`. It creates `release/<release-id>-<slug>` from that snapshot. It merges the Tag with `--no-ff` for incremental release; for same-version redeploy when the Tag is already in the snapshot, it freezes that snapshot as the no-new-merge candidate. A moved `main` invalidates this release ID's candidate instead of changing its base.
|
|
24
24
|
5. `R05-release-verification`: invoke `$ai-delivery-verify-candidate` with `scope: release`, bound to the exact candidate merge commit. Any release-fix creates a new candidate and repeats affected verification.
|
|
@@ -31,3 +31,5 @@ Coordinate `R00` through `R10`. Never infer release intent from completed versio
|
|
|
31
31
|
Run routine formal `verify` at every handoff and reserve `verify --history` for R10 or an explicit history audit. Preserve failed releases and evidence. Stop instead of replaying a production action after recovery.
|
|
32
32
|
|
|
33
33
|
Read [release-workflow-contract.md](references/release-workflow-contract.md) and use the request and selection assets.
|
|
34
|
+
|
|
35
|
+
Validate the confirmation summary and require an explicit release decision linked to the release artifact. Proposed, deferred, or superseded records cannot authorize release; ambiguity returns to its owning node and leaves the release waiting.
|
|
@@ -23,7 +23,7 @@ This Skill owns the planning task phases inside `03-delivery-readiness` and conv
|
|
|
23
23
|
|
|
24
24
|
## Preflight
|
|
25
25
|
|
|
26
|
-
Read approved product, final architecture, and experience baselines; exact `ui-handoff.yaml`; aligned `product-prototype-reconciliation.yaml`; experience/requirement change sets; interaction, visual, component, and page-component contracts; the exact confirmed Prototype revision and checksum; its source and review-bundle checksums; the normalized terminal, Page, Review Scene, trigger-condition, route, and UI Mapping catalogs; and the accepted architecture receipt; current backlog; production state; applicable standards; and
|
|
26
|
+
Read approved product, final architecture, and experience baselines; exact `ui-handoff.yaml`; aligned `product-prototype-reconciliation.yaml`; experience/requirement change sets; interaction, visual, component, and page-component contracts; the exact confirmed Prototype revision and checksum; its source and review-bundle checksums; the normalized terminal, Page, Review Scene, trigger-condition, route, and UI Mapping catalogs; and the accepted architecture receipt; current backlog; production state; applicable standards; unresolved risks; and the code repository handbook/index entries for affected paths. Require `development_readiness: ready-for-development` and reject stale changes, missing or conflicting references, non-passing decisions, or identity/checksum mismatches. Never infer a relationship from a file name or catalog order. Distinguish product priority from technical execution order.
|
|
27
27
|
|
|
28
28
|
## Workflow
|
|
29
29
|
|
|
@@ -54,9 +54,14 @@ Read approved product, final architecture, and experience baselines; exact `ui-h
|
|
|
54
54
|
- `slice-experience-change-traceability.csv` showing which added/modified/retired experience changes enter each slice;
|
|
55
55
|
- replanning rules and current plan baseline.
|
|
56
56
|
- a draft `scope-manifest.yaml` whose approved contents are frozen through `scope freeze`; later `scope amend` revisions are append-only and budget `scope warn` records never mutate it.
|
|
57
|
+
- handbook/index readiness receipt recording the consulted `source_commit`, path/command/test validation, maintainer owner, and whether affected documentation needs an approved update.
|
|
57
58
|
|
|
58
59
|
Do not output component-level technical tasks. The development orchestrator derives those just in time from a selected slice and the latest architecture.
|
|
59
60
|
|
|
61
|
+
## Confirmation Boundary
|
|
62
|
+
|
|
63
|
+
Read the current confirmation summary before proposing scope. Agent-verifiable facts require evidence; only product-owner scope choices and risk acceptance become user questions. Append each answer, recompute the frontier, and keep unresolved business decisions out of `scope freeze`.
|
|
64
|
+
|
|
60
65
|
Read [planning-contract.md](references/planning-contract.md) and use `assets/planning-template/` for a new iteration.
|
|
61
66
|
|
|
62
67
|
## Handoff
|
|
@@ -23,7 +23,7 @@ This Skill contributes a parallel task stream inside `03-delivery-readiness`; it
|
|
|
23
23
|
|
|
24
24
|
## Preflight
|
|
25
25
|
|
|
26
|
-
Read initial and final architecture as available, deployment topology, stack manifest, quality targets, security standards, current environment baselines, and
|
|
26
|
+
Read initial and final architecture as available, deployment topology, stack manifest, quality targets, security standards, current environment baselines, iteration scope, and the current confirmation summary. Treat cloud, paid-service, privacy, and hard-to-reverse infrastructure changes as major architecture decisions. Agent-investigated platform facts require evidence; user choices about cost, risk, privacy, or irreversible infrastructure require a frontier confirmation and the architecture/approval artifact that owns the decision.
|
|
27
27
|
|
|
28
28
|
## Workflow
|
|
29
29
|
|
|
@@ -46,3 +46,5 @@ Read [release-contract.md](references/release-contract.md) and use `assets/relea
|
|
|
46
46
|
## Handoff
|
|
47
47
|
|
|
48
48
|
Return exactly one immutable prepared release package to `$ai-delivery-orchestrate-release`. Human production approval occurs independently at `R07-production-approval`.
|
|
49
|
+
|
|
50
|
+
Read the closeout confirmation summary and require an explicit, current release intent. Version completion or candidate pass never authorizes publication or external side effects.
|
|
@@ -23,7 +23,7 @@ Use `04-implementation` for pre-merge package review phases. Use `05-candidate-a
|
|
|
23
23
|
|
|
24
24
|
## Preflight
|
|
25
25
|
|
|
26
|
-
Read the work package, diff, approved source artifacts, standards versions, architecture constraints, TDD evidence, test results, allowed modification scope, exact UI handoff and `product-prototype-reconciliation.yaml` checksums, Prototype revision and UI Mapping checksums, task-to-experience-change actions, and terminal/Page/Review Scene/prototype-element/UI component/frontend-source/acceptance mappings for UI-bearing work. Reject missing or conflicting references and never infer relationships from file names or row order. Re-run relevant checks when evidence is absent or stale.
|
|
26
|
+
Read the work package, diff, approved source artifacts, standards versions, architecture constraints, TDD evidence, test results, allowed modification scope, codebase handbook/index read receipt, exact UI handoff and `product-prototype-reconciliation.yaml` checksums, Prototype revision and UI Mapping checksums, task-to-experience-change actions, and terminal/Page/Review Scene/prototype-element/UI component/frontend-source/acceptance mappings for UI-bearing work. Reject missing or conflicting references and never infer relationships from file names or row order. Re-run relevant checks when evidence is absent or stale. Confirm structural changes have a matching index update or an explicit, justified no-change assessment.
|
|
27
27
|
|
|
28
28
|
## Two-Phase Review Protocol
|
|
29
29
|
|
|
@@ -48,3 +48,5 @@ Report findings first, ordered by severity, with tight file and line references.
|
|
|
48
48
|
Do not use `pass` when required checks did not run. Do not repair findings yourself; return the approved change set to the work-package executor and wait for concentrated rereview evidence.
|
|
49
49
|
|
|
50
50
|
Read [review-contract.md](references/review-contract.md).
|
|
51
|
+
|
|
52
|
+
Review findings and confirmation records are separate evidence. If a finding requires user acceptance, an exception, or a product/architecture decision, append a proposed record and stop at its owning node; chat cannot close a Gate or expand allowed scope.
|
|
@@ -25,16 +25,19 @@ Require every workflow document to resolve under project `.workflow/` unless it
|
|
|
25
25
|
4. Verify all association-table foreign keys and reject ad hoc multi-value cells where an association CSV is required.
|
|
26
26
|
5. Verify required artifact sets for the target handoff.
|
|
27
27
|
6. Verify baseline immutability, version increments, stale flags, and downstream impact declarations.
|
|
28
|
-
7.
|
|
29
|
-
8. Verify
|
|
30
|
-
9.
|
|
31
|
-
10.
|
|
32
|
-
11.
|
|
33
|
-
12.
|
|
34
|
-
13.
|
|
28
|
+
7. For every `02-solution-design` handoff, validate the shared `product-impact-assessment.yaml`. Require a stable product-baseline binding, controlled decision, affected-asset IDs, return node, and checksums for every input/evidence reference. `product-update-required` and `clarification-required` are blocking until `01-product-shaping` supplies a valid aligned reconciliation and a successor product baseline; `no-impact` and `architecture-only` require explicit evidence that product scope, terminals, terminology, acceptance, and non-functional requirements are unchanged.
|
|
29
|
+
8. Verify status transitions and human gates.
|
|
30
|
+
9. Verify traceability from product goals through features, terminals, stories, acceptance criteria, Pages, Review Scenes, prototype elements, UI Mapping rows, UI components, frontend sources, Slices, tasks, tests, release items, and deployment evidence as applicable.
|
|
31
|
+
10. For UI-bearing scope, validate the human tool-selection Gate, mandatory `UX-VS` and `UX-UI` human decisions, production-compatible runnable Prototype, stable Page and Review Scene identities, normalized terminal/trigger/route relations, Review Units, adjustment history, impact propagation, and aligned `product-prototype-reconciliation.yaml`. Validate that Workflow Manager evidence names the same checksummed target used by the Gate, uses its loopback origin and allowlisted review action, and contains no target revision drift; before `UX-VS`, its only content target is the Visual Reference, and afterward it is one exact Prototype revision.
|
|
32
|
+
11. Validate every Prototype Page review receipt as an immutable checksummed YAML record under `.workflow/delivery/reviews/prototype-pages/<revision-id>/`. Reject an invalid or extra field, file-path/identity mismatch, actor, timestamp, receipt checksum, Prototype revision checksum, Page checksum, Scene checksum, or evidence checksum. Derive status from the current revision or its checksum-validated `previous_revision` ancestor chain, nearest ancestor first; reject inheritance from descendants or unrelated revisions. Carry forward only when the selected prior decision is approved and the complete Page checksum is identical; preserve a later changes-requested decision on that ancestor, and derive stale after any evidence change. Require the final Page receipt and approved `UX-UI` Gate decision to reference each other through the same actor, iteration, Prototype revision, and receipt checksum, and reject any later receipt unless a new pending `UX-UI` request exists.
|
|
33
|
+
12. Verify that UI handoff, experience confirmation, architecture validation, test validation, planning, development, and verification all pin the same exact Prototype revision/checksum, source revision/checksum, review-bundle checksum, UI Mapping checksum, normalized catalog checksums, product reconciliation, product impact assessment, experience-change checksum, review/impact checksums, and receipt checksums. Resolve every affected Page, Review Scene, UI component, frontend source, and acceptance criterion through explicit normalized foreign keys. Reject missing or conflicting references. Never infer relationships from file names or row order. Require downstream work to consume only `ready-for-development` changes.
|
|
34
|
+
13. For every UI-bearing code handoff, validate the revision-bound `frontend-change-scope.yaml` checksum and its code root, non-empty frontend roots and extensions, shared component ownership, and file-only route registry ownership with the exact approved candidate-file SHA-256. Cross-check every active UI Mapping and ownership source against those roots and extensions; a declared source that would be skipped invalidates the scope. Run `ai-delivery frontend-guard verify-diff` with the handoff's fixed base and candidate head; require the independent Git diff to have current approved Page receipts and exact UI Mapping or scope coverage, and read changed route registries from the fixed candidate Git object rather than the mutable worktree. Reject Hook-only evidence, unmapped new or removed UI files, unapproved route-registry content, pending/changes-requested/stale Pages, and scope or revision drift.
|
|
35
|
+
14. Before Candidate Assurance can pass a UI-bearing candidate, require successful `ui-acceptance plan` and `ui-acceptance verify` reports bound to the active attempt and immutable candidate checksum. Check exact Page/Scene/viewport coverage, pinned Playwright environment, visual diff counts and evidence, interaction and WCAG 2.2 AA checks, keyboard/focus/touch-target/text-overflow/responsive/recovery results, protocol evidence, Scenario Pack authority, and separate real backend evidence whenever Product Backend Mock rendered a Scene. Candidate checksum drift requires a new `04-implementation` candidate and Candidate Assurance attempt.
|
|
35
36
|
|
|
36
37
|
## Output
|
|
37
38
|
|
|
38
39
|
Report findings first with severity, artifact ID, location, violated rule, evidence, and owning producer. Return one decision: `valid`, `invalid`, or `blocked`. Never rewrite an invalid artifact while acting as validator; route it to the producer.
|
|
39
40
|
|
|
40
41
|
Read [artifact-contract.md](references/artifact-contract.md) for required metadata, statuses, formats, and handoff sets.
|
|
42
|
+
|
|
43
|
+
Validate any present `confirmation-summary.yaml` with `confirmation-state.mjs validate` and report its frontier and blocked proposals. This check is read-only and additive; it never mutates the summary or formal state.
|