create-yss-spec 2.2.8 → 2.2.9
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/README.md +1 -1
- package/package.json +1 -1
- package/template/.agents/skills/yss-product-lifecycle/SKILL.md +2 -0
- package/template/.agents/skills/yss-product-lifecycle/references/matt-yss-adapter.md +2 -2
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +42 -1
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +6 -0
- package/template/.agents/skills/yss-router/references/router-contract.yaml +30 -3
- package/template/.agents/skills/yss-router/references/slice-implementation-contract.md +14 -0
- package/template/.agents/skills/yss-router/references/yss-skill-execution-result.md +5 -0
- package/template/.claude/skills/yss-product-lifecycle/SKILL.md +2 -0
- package/template/.claude/skills/yss-product-lifecycle/references/matt-yss-adapter.md +2 -2
- package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml +42 -1
- package/template/.claude/skills/yss-product-lifecycle/references/orchestration.md +6 -0
- package/template/.claude/skills/yss-router/references/router-contract.yaml +30 -3
- package/template/.claude/skills/yss-router/references/slice-implementation-contract.md +14 -0
- package/template/.claude/skills/yss-router/references/yss-skill-execution-result.md +5 -0
- package/template/.codex/skills/yss-product-lifecycle/SKILL.md +2 -0
- package/template/.codex/skills/yss-product-lifecycle/references/matt-yss-adapter.md +2 -2
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +42 -1
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +6 -0
- package/template/.codex/skills/yss-router/references/router-contract.yaml +30 -3
- package/template/.codex/skills/yss-router/references/slice-implementation-contract.md +14 -0
- package/template/.codex/skills/yss-router/references/yss-skill-execution-result.md +5 -0
- package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +2 -0
- package/template/.cursor/skills/yss-product-lifecycle/references/matt-yss-adapter.md +2 -2
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +42 -1
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +6 -0
- package/template/.cursor/skills/yss-router/references/router-contract.yaml +30 -3
- package/template/.cursor/skills/yss-router/references/slice-implementation-contract.md +14 -0
- package/template/.cursor/skills/yss-router/references/yss-skill-execution-result.md +5 -0
- package/template/.hermes/skills/yss-product-lifecycle/SKILL.md +2 -0
- package/template/.hermes/skills/yss-product-lifecycle/references/matt-yss-adapter.md +2 -2
- package/template/.hermes/skills/yss-product-lifecycle/references/orchestration-contract.yaml +42 -1
- package/template/.hermes/skills/yss-product-lifecycle/references/orchestration.md +6 -0
- package/template/.hermes/skills/yss-router/references/router-contract.yaml +30 -3
- package/template/.hermes/skills/yss-router/references/slice-implementation-contract.md +14 -0
- package/template/.hermes/skills/yss-router/references/yss-skill-execution-result.md +5 -0
- package/template/.pi/skills/yss-product-lifecycle/SKILL.md +2 -0
- package/template/.pi/skills/yss-product-lifecycle/references/matt-yss-adapter.md +2 -2
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +42 -1
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +6 -0
- package/template/.pi/skills/yss-router/references/router-contract.yaml +30 -3
- package/template/.pi/skills/yss-router/references/slice-implementation-contract.md +14 -0
- package/template/.pi/skills/yss-router/references/yss-skill-execution-result.md +5 -0
- package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +2 -0
- package/template/.qoder/skills/yss-product-lifecycle/references/matt-yss-adapter.md +2 -2
- package/template/.qoder/skills/yss-product-lifecycle/references/orchestration-contract.yaml +42 -1
- package/template/.qoder/skills/yss-product-lifecycle/references/orchestration.md +6 -0
- package/template/.qoder/skills/yss-router/references/router-contract.yaml +30 -3
- package/template/.qoder/skills/yss-router/references/slice-implementation-contract.md +14 -0
- package/template/.qoder/skills/yss-router/references/yss-skill-execution-result.md +5 -0
- package/template/.trae/skills/yss-product-lifecycle/SKILL.md +2 -0
- package/template/.trae/skills/yss-product-lifecycle/references/matt-yss-adapter.md +2 -2
- package/template/.trae/skills/yss-product-lifecycle/references/orchestration-contract.yaml +42 -1
- package/template/.trae/skills/yss-product-lifecycle/references/orchestration.md +6 -0
- package/template/.trae/skills/yss-router/references/router-contract.yaml +30 -3
- package/template/.trae/skills/yss-router/references/slice-implementation-contract.md +14 -0
- package/template/.trae/skills/yss-router/references/yss-skill-execution-result.md +5 -0
- package/template/AGENTS.md +1 -0
- package/template/CONTEXT.md +2 -2
- package/template/DESIGN.md +203 -0
- package/template/docs/agents/digital-human-roles.md +1 -1
- package/template/docs/agents/digital-human-roles.yaml +17 -21
- package/template/docs/agents/yss-plugin-dependency-contract.md +45 -0
- package/template/docs/agents/yss-skill-registry.yaml +30 -1
- package/template/docs/architecture/templates/engineering-baseline-review-template.md +19 -0
- package/template/docs/design/README.md +12 -1
- package/template/docs/design/design-system-sync.yaml +12 -0
- package/template/docs/design/design.md +22 -2
- package/template/docs/design/preview-dark.html +15 -0
- package/template/docs/design/preview.html +20 -0
- package/template/docs/design/tokens/.design-md-projection.json +13 -0
- package/template/docs/discovery/reports/agent-governance-options.md +71 -0
- package/template/docs/process/harness-process-tailoring.md +7 -0
- package/template/docs/process/lifecycle-registry-baseline.json +1 -1
- package/template/docs/process/lifecycle-registry.yaml +1 -1
- package/template/docs/process/template-verification-profiles.yaml +7 -0
- package/template/docs/templates/build-architecture-checklist-template.md +2 -0
- package/template/docs/templates/implementation-routing-template.md +23 -0
- package/template/docs/user-guide//346/210/230/346/234/257/350/256/276/350/256/241/345/255/220/351/241/271/347/233/256/347/224/250/346/210/267/346/211/213/345/206/214.md +218 -0
- package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214.md +55 -2
- package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214/347/264/242/345/274/225.md +21 -0
- package/template/scripts/lib/digital-human-roles.mjs +0 -1
- package/template/scripts/lib/skill-registry.mjs +70 -0
- package/template/scripts/verify-digital-human-roles-scenarios +1 -1
- package/template/skills-lock.json +2 -2
- package/template.manifest.json +1 -0
- package/template.snapshot.json +5 -5
package/README.md
CHANGED
|
@@ -52,7 +52,7 @@ npx create-yss-spec@latest --version
|
|
|
52
52
|
|
|
53
53
|
## 当前版本说明
|
|
54
54
|
|
|
55
|
-
当前 CLI 版本为 `2.2.
|
|
55
|
+
当前 CLI 版本为 `2.2.9`,模板固定到 `a7f2c1be9cb96569c1f6d41890edd72719a5f2af`,新增 `DESIGN.md` 与设计预览资产的模板实例分发。
|
|
56
56
|
|
|
57
57
|
## 接管已有项目
|
|
58
58
|
|
package/package.json
CHANGED
|
@@ -16,6 +16,8 @@ description: 编排 YSS 产品或模块从机会调研到 Spec、原型、技术
|
|
|
16
16
|
|
|
17
17
|
Matt 的 `grill-with-docs`、`to-spec`、`to-tickets`、`implement` 等保留为显式兼容入口;默认路径是本 skill 持有的原生工作单元,由本编排器创建正式资产、维护状态并在会签门禁暂停(级别见数字人角色注册表)。兼容入口不得自动调用它们或代替其创建正式资产;Matt 只导航,不得写生命周期资产或改变门禁/Ticket 状态;任何写入前回交本编排器。
|
|
18
18
|
|
|
19
|
+
技能调用先消费 `docs/agents/yss-skill-registry.yaml` 的 `invocation_contract`:它只约束调用模式、触发/排除条件、主要输出和依赖,不替代生命周期证据或门禁。进入实现后,Slice Contract 的 `common.context_plan` 只加载当前切片的最小充分上下文;缺失权威上下文必须 `blocked` 或回 Router,不得猜测补齐。质量标准由 `engineering-baseline` 一次定义并由切片、Execution Result、审查和发布复用;命中高风险影响时在途记录 Doubt-Driven 主张、反证、证据和残余风险。Wayfinder 仅作为超长或决策前沿不清晰工作的可选 Discovery → Spec 规划模式,完成后回到 `handoff → to-spec`,不改变生命周期状态。
|
|
20
|
+
|
|
19
21
|
## 不可裁剪的主链
|
|
20
22
|
|
|
21
23
|
入口分诊 → Discovery → Spec / 功能架构 → 产品设计 → 系统 / 数据架构与工程契约 → Ticket 正式化 → 垂直切片实现(前后端 TDD)→ 验证 / 发布 / 复盘。
|
|
@@ -19,7 +19,7 @@ Matt skills 决定如何工作;YSS 生命周期决定是否允许推进;YSS
|
|
|
19
19
|
| 通用入口 | `ask-matt` | 检测到 YSS 后由本编排器最终裁决 |
|
|
20
20
|
| 需求澄清 | `grill-with-docs`(用户显式)或 `grilling`、`domain-modeling`(生命周期原语) | 按退出判定检查未决项和回流 |
|
|
21
21
|
| 信息在其他人手中 | `to-questionnaire` | 使用 `external-input-required` 暂停;答案回流后记录 response、重新分类影响面,再进入 `grill-with-docs` 或 `to-spec` |
|
|
22
|
-
| 大型模糊工作 | `wayfinder
|
|
22
|
+
| 大型模糊工作 | `wayfinder`(可选) | 仅在跨会话 / 跨 Agent 或 frontier 不清晰时启用;map 真正完成后 `handoff → to-spec` |
|
|
23
23
|
| 技术事实 | `research` | 一手资料回填 Spec/OpenAPI/架构/ADR |
|
|
24
24
|
| runnable 问题 | `prototype` | 生成单文件可分享 HTML,保留 `prototype/<name>` 分支作为主来源;必须 source/return handoff 和结论回填,不得替代阶段 4 的低保真评审、Ant Design v6 高保真 HTML、AntD CLI 证据和用户确认 |
|
|
25
25
|
| Spec 综合 | 原生 `work-unit.spec-synthesis`;`to-spec`(用户显式兼容) | 初稿进入 `ready-for-human`,不得直接实现 |
|
|
@@ -76,7 +76,7 @@ Router 状态映射为:`draft → completed`、`blocked → blocked`、`ready-
|
|
|
76
76
|
|
|
77
77
|
## Review 候选与 Git 授权
|
|
78
78
|
|
|
79
|
-
YSS 调用 `code-review` 前必须形成 review input,至少包含 `review_mode`、`review_base_ref`、`implementation_candidate_ref`、`candidate_snapshot_ref`、`candidate_digest`、`spec_ref`、`ticket_ref`、`slice_contract_ref`、`build_architecture_checklist_ref` 和 `yss_execution_result_refs`,并满足 `orchestration-contract.yaml.review_input.manifest_required_by_mode`。Standards 还必须编译 `review_standards_route`:合同 `required_skills`、影响面专项检查输入、报告模板与 `finding_disposition`;机器检查按 `run_if_present`
|
|
79
|
+
YSS 调用 `code-review` 前必须形成 review input,至少包含 `review_mode`、`review_base_ref`、`implementation_candidate_ref`、`candidate_snapshot_ref`、`candidate_digest`、`spec_ref`、`ticket_ref`、`slice_contract_ref`、`build_architecture_checklist_ref` 和 `yss_execution_result_refs`,并满足 `orchestration-contract.yaml.review_input.manifest_required_by_mode`。Standards 还必须编译 `review_standards_route`:合同 `required_skills`、影响面专项检查输入、报告模板与 `finding_disposition`;机器检查按 `run_if_present` 执行。质量标准只从 `engineering-baseline` 引用,禁止在 review input 或切片中另起一份。命中高风险影响时,review input 还要引用 Doubt-Driven 主张 / 反证记录;缺少反证或残余风险未处理时返回 `blocked`。`committed` 审查 merge-base 到不可变 `HEAD`;`worktree` 一次捕获 merge-base 到 working tree 的 committed、staged、unstaged 和 untracked 内容,使用 `yss-worktree-candidate-v1` 规定的 raw path、uint64 big-endian 长度、tracked/untracked record 和不支持条目阻断规则计算 SHA-256,让两个 Reviewer 消费同一不可变快照,并在返回和完成 checkpoint 复核摘要未变化。缺少输入、候选为空、专项覆盖缺失、未关闭 mandatory `violation`、适用行空白或摘要变化时返回 `blocked`,不能缩小审查范围、另起通用审查 skill、由审查者改实现,或合并不同候选的结论。`violation` 类 finding 交实现者在原合同路径修复后全轴复审;`drift` / `new_impacts` 使合同 `stale` 并回 Router。
|
|
80
80
|
|
|
81
81
|
Matt `implement` 的通用提交指令不构成 YSS Git 授权。只有用户明确给出 `commit_authorized` 为 `true`、非空 `commit_scope` 和 `commit_authorization_ref` 时才能 commit;只有明确给出 `push_authorized` 为 `true`、非空 `push_scope` 和 `push_authorization_ref` 时才能 push。缺少任一字段时保持工作区不变,只输出 checkpoint 判断;不得把 `orchestrate`、实现授权、当前分支、测试通过或负责人要求解释为隐含授权。`git-submodule` 还必须按仓授权、禁止 detached HEAD 提交,并先推子仓再更新父仓 gitlink。
|
|
82
82
|
|
package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml
CHANGED
|
@@ -648,8 +648,49 @@ release_readiness:
|
|
|
648
648
|
wayfinder_completion:
|
|
649
649
|
required: [no_open_children, no_open_blocked_or_claimed_children, no_fog, destination_clear]
|
|
650
650
|
|
|
651
|
+
wayfinder_mode:
|
|
652
|
+
optional: true
|
|
653
|
+
enable_when:
|
|
654
|
+
- multi-session-or-multi-agent-work
|
|
655
|
+
- unclear-decision-frontier
|
|
656
|
+
- cross-domain-dependency-map-needed
|
|
657
|
+
lifecycle_position: discovery-to-spec-planning
|
|
658
|
+
completion_route: wayfinder -> handoff -> to-spec
|
|
659
|
+
does_not_replace: [lifecycle-gates, spec-baseline, ticket-formalization]
|
|
660
|
+
forbidden_state_mutations: [ready-for-agent, gate-approval, ticket-role]
|
|
661
|
+
template_source_use: only-when-template-evolution-is-long-running
|
|
662
|
+
|
|
663
|
+
context_engineering:
|
|
664
|
+
contract_field: slice_contract.common.context_plan
|
|
665
|
+
required_context: [CONTEXT.md, approved-spec, current-slice-contract, applicable-adr-or-baseline]
|
|
666
|
+
on_demand_context: [specialist-references, implementation-repository-files, historical-evidence]
|
|
667
|
+
stop_rule: minimal-sufficient-evidence
|
|
668
|
+
missing_context_action: [blocked, reroute]
|
|
669
|
+
numeric_token_budget: not-required
|
|
670
|
+
|
|
671
|
+
doubt_driven_review:
|
|
672
|
+
applies_when:
|
|
673
|
+
- api-schema-impact
|
|
674
|
+
- database-schema-impact
|
|
675
|
+
- cross-repo-contract
|
|
676
|
+
- release-or-rollback
|
|
677
|
+
- authentication-authorization-tenant-or-sensitive-data-behavior
|
|
678
|
+
- lifecycle-or-generation-semantics
|
|
679
|
+
required: [claim, counterclaim, evidence_refs, residual_risks, reviewer_ref]
|
|
680
|
+
record_in: [decision-record, architecture-review, contract-review, release-review]
|
|
681
|
+
blocking_when: [missing-counterclaim, insufficient-evidence, unresolved-residual-risk]
|
|
682
|
+
ordinary-low-risk_changes: not-required
|
|
683
|
+
no_new_lifecycle_stage: true
|
|
684
|
+
|
|
685
|
+
quality_baseline_reuse:
|
|
686
|
+
source: artifact.engineering-baseline
|
|
687
|
+
applies_to: project-instance
|
|
688
|
+
consumers: [slice-implementation-contract, yss-skill-execution-result, code-review, release]
|
|
689
|
+
constraint_results_field: required
|
|
690
|
+
redefinition: forbidden
|
|
691
|
+
|
|
651
692
|
ready_for_agent:
|
|
652
|
-
required: [gates_satisfied, no_stale_artifacts, blockers_closed, implementation_context_ready, implementation_repo, implementation_branch, ci, verification_commands, rollback_point, predecessor_work_unit, ticket_decomposition_result_ref, ticket_decomposition_result_status, vertical_slice_ticket_ref, vertical_slice_ticket_role, vertical_slice_ticket_kind, slice_contract_approved, slice_contract_persisted, slice_contract_current_version, build_architecture_checklist, backend_slice_contract_if_applicable, backend_scaffold_policy_satisfied, frontend_implementation_plan_if_ui_impact]
|
|
693
|
+
required: [gates_satisfied, no_stale_artifacts, blockers_closed, implementation_context_ready, context_plan, quality_baseline_ref, implementation_repo, implementation_branch, ci, verification_commands, rollback_point, predecessor_work_unit, ticket_decomposition_result_ref, ticket_decomposition_result_status, vertical_slice_ticket_ref, vertical_slice_ticket_role, vertical_slice_ticket_kind, slice_contract_approved, slice_contract_persisted, slice_contract_current_version, build_architecture_checklist, backend_slice_contract_if_applicable, backend_scaffold_policy_satisfied, frontend_implementation_plan_if_ui_impact]
|
|
653
694
|
ticket_formalization_validator: scripts/lib/lifecycle-transition.mjs
|
|
654
695
|
requires_vertical_slice_ticket: true
|
|
655
696
|
parent_ticket_as_implementation_ref: forbidden
|
|
@@ -86,6 +86,12 @@ tracker 选择和冲突按 `docs/agents/issue-tracker.md` 裁决:已持久化
|
|
|
86
86
|
|
|
87
87
|
暂停输出:门禁、指定会签 `role_id`、`runtime_id`、会签文件路径、证据、推荐答案、一个问题、恢复动作。
|
|
88
88
|
|
|
89
|
+
## Context Plan 与质量基线
|
|
90
|
+
|
|
91
|
+
实现合同先消费 `common.context_plan`:必需上下文只包含 `CONTEXT.md`、已批准 Spec、当前合同和适用 ADR / 工程基线;专项 references、实现仓库文件和历史证据按影响面按需加载。达到最小充分证据后停止扩展,缺失权威上下文只能 `blocked` 或 `reroute`。
|
|
92
|
+
|
|
93
|
+
质量标准由 `engineering-baseline` 以 `baseline_id` / `baseline_version` 定义一次,Slice Contract、YSS Skill Execution Result、`code-review` 和发布检查只引用它,并将约束结果写入 `constraint_results`。命中 API / 数据迁移、跨仓契约、发布回滚、实际安全行为或生命周期 / 生成语义时,必须在现有决策或审查记录中完成 Doubt-Driven 主张、反证、证据、残余风险和 Reviewer 引用;普通低风险变更不触发该流程。
|
|
94
|
+
|
|
89
95
|
## Wayfinder 完成判定
|
|
90
96
|
|
|
91
97
|
“无 frontier”不等于完成。只有以下条件同时成立,才能 `wayfinder → handoff → to-spec`:
|
|
@@ -68,7 +68,7 @@ slice_contract_required:
|
|
|
68
68
|
root: [schema_version, contract_id, contract_version, slice_id, status, lifecycle_refs, readiness, common, frontend, backend, contract, cross_repo, work_units]
|
|
69
69
|
lifecycle_refs: [spec, ticket, requirement_freeze, low_fidelity_review, prototype_review, high_fidelity_html, prototype_verification, antd_cli_evidence, browser_verification_evidence, prototype_confirmation, openapi_freeze_or_no_impact, architecture_review, data_architecture, tactical_design, engineering_baseline, build_architecture_checklist, implementation_repository, frontend_repository, backend_repository, maven_wrapper]
|
|
70
70
|
readiness: [blockers, stale_inputs, not_applicable]
|
|
71
|
-
common: [impacted_areas, implementation_path_policy, project_roots, required_skills, optional_skills, unavailable_skills, allowed_write_paths, forbidden_patterns, expected_evidence_files, verification_commands, human_review_points, full_reroute_triggers]
|
|
71
|
+
common: [impacted_areas, implementation_path_policy, project_roots, required_skills, optional_skills, unavailable_skills, allowed_write_paths, forbidden_patterns, expected_evidence_files, verification_commands, human_review_points, full_reroute_triggers, quality_baseline_ref, context_plan, doubt_driven_review]
|
|
72
72
|
frontend: [status, required_skills, approved_prototype_ref, state_matrix_ref, allowed_write_paths, component_test_seams, e2e_paths]
|
|
73
73
|
backend: [status, affected_layers, component_impacts, required_skills, application_boundary, transaction_boundary, persistence_strategy, allowed_write_paths, forbidden_patterns, expected_evidence_files, seam_deferred, verification_commands, tactical_ddd]
|
|
74
74
|
contract: [api_impact, freeze_ref, no_api_impact_ref, generated_clients, contract_tests, regeneration_commands]
|
|
@@ -100,7 +100,12 @@ work_unit_required: [id, behavior, primary_skill, supporting_skills, tdd_mode, a
|
|
|
100
100
|
work_unit_nonempty_arrays: [allowed_write_paths, expected_evidence, verification_commands]
|
|
101
101
|
slice_contract_nonempty: [contract_id, contract_version, slice_id, status]
|
|
102
102
|
slice_contract_array_fields:
|
|
103
|
-
common: [impacted_areas, implementation_path_policy, project_roots, required_skills, allowed_write_paths, forbidden_patterns, expected_evidence_files, verification_commands, full_reroute_triggers]
|
|
103
|
+
common: [impacted_areas, implementation_path_policy, project_roots, required_skills, allowed_write_paths, forbidden_patterns, expected_evidence_files, verification_commands, full_reroute_triggers, quality_baseline_ref, context_plan, doubt_driven_review]
|
|
104
|
+
|
|
105
|
+
context_plan:
|
|
106
|
+
required: [required_context_refs, on_demand_context_refs, context_stop_rule, missing_context_action]
|
|
107
|
+
context_stop_rule: minimal-sufficient-evidence
|
|
108
|
+
missing_context_action: [blocked, reroute]
|
|
104
109
|
|
|
105
110
|
scaffold_contract_schema:
|
|
106
111
|
schema_version: 1
|
|
@@ -241,6 +246,7 @@ full_reroute_triggers:
|
|
|
241
246
|
- test-seam-changed
|
|
242
247
|
- verification-command-changed
|
|
243
248
|
- delivery-order-changed
|
|
249
|
+
- doubt-review-triggered
|
|
244
250
|
|
|
245
251
|
reroute_destinations:
|
|
246
252
|
scaffold-baseline-drift: stage7-scaffold-revalidation
|
|
@@ -258,9 +264,30 @@ reroute_destinations:
|
|
|
258
264
|
test-seam-changed: spec-ticket-test-seam-review
|
|
259
265
|
verification-command-changed: stage7-contract-recompile
|
|
260
266
|
delivery-order-changed: cross-repo-release-review
|
|
267
|
+
doubt-review-triggered: high-risk-decision-review
|
|
268
|
+
|
|
269
|
+
doubt_driven_review:
|
|
270
|
+
applies_when:
|
|
271
|
+
- api-schema-impact
|
|
272
|
+
- database-schema-impact
|
|
273
|
+
- cross-repo-contract
|
|
274
|
+
- release-or-rollback
|
|
275
|
+
- authentication-authorization-tenant-or-sensitive-data-behavior
|
|
276
|
+
- lifecycle-or-generation-semantics
|
|
277
|
+
required: [claim, counterclaim, evidence_refs, residual_risks, reviewer_ref]
|
|
278
|
+
status_values: [not-applicable, required, completed, blocked]
|
|
279
|
+
blocking_when: [missing-counterclaim, insufficient-evidence, unresolved-residual-risk]
|
|
280
|
+
evidence_owner: decision-or-review-record
|
|
281
|
+
no_new_lifecycle_stage: true
|
|
282
|
+
|
|
283
|
+
quality_baseline:
|
|
284
|
+
source: lifecycle_refs.engineering_baseline
|
|
285
|
+
required_for: [project-instance]
|
|
286
|
+
reused_by: [slice-contract, yss-skill-execution-result, code-review, release]
|
|
287
|
+
redefinition: forbidden
|
|
261
288
|
|
|
262
289
|
execution_result_allowed_statuses: [implemented, seam-deferred, drift, violation, not-applicable]
|
|
263
|
-
execution_blockers: [path-outside-contract, missing-evidence, verification-not-executed, verification-command-mismatch, seam-deferred-without-owner, constraint-failed, unapproved-deviation, drift, violation, new-impacts]
|
|
290
|
+
execution_blockers: [path-outside-contract, missing-evidence, verification-not-executed, verification-command-mismatch, seam-deferred-without-owner, constraint-failed, doubt-review-missing, unapproved-deviation, drift, violation, new-impacts]
|
|
264
291
|
|
|
265
292
|
contract_versioning:
|
|
266
293
|
full_reroute_current_status: stale
|
|
@@ -54,6 +54,20 @@ slice_contract:
|
|
|
54
54
|
verification_commands: []
|
|
55
55
|
human_review_points: []
|
|
56
56
|
full_reroute_triggers: []
|
|
57
|
+
quality_baseline_ref:
|
|
58
|
+
context_plan:
|
|
59
|
+
required_context_refs: []
|
|
60
|
+
on_demand_context_refs: []
|
|
61
|
+
context_stop_rule: minimal-sufficient-evidence
|
|
62
|
+
missing_context_action: blocked # or reroute
|
|
63
|
+
doubt_driven_review:
|
|
64
|
+
status: not-applicable # or required / completed / blocked
|
|
65
|
+
trigger_impacts: []
|
|
66
|
+
claim:
|
|
67
|
+
counterclaim:
|
|
68
|
+
evidence_refs: []
|
|
69
|
+
residual_risks: []
|
|
70
|
+
reviewer_ref:
|
|
57
71
|
frontend:
|
|
58
72
|
status: not-applicable
|
|
59
73
|
required_skills: []
|
|
@@ -13,6 +13,8 @@ execution_result:
|
|
|
13
13
|
contract_ref:
|
|
14
14
|
contract_id:
|
|
15
15
|
contract_version:
|
|
16
|
+
quality_baseline_ref:
|
|
17
|
+
context_plan_ref:
|
|
16
18
|
changed_files:
|
|
17
19
|
- path:
|
|
18
20
|
contract_area: common | frontend | backend | contract | cross_repo
|
|
@@ -28,6 +30,9 @@ execution_result:
|
|
|
28
30
|
- constraint:
|
|
29
31
|
status: passed | failed | not-applicable
|
|
30
32
|
evidence_ref:
|
|
33
|
+
doubt_driven_review:
|
|
34
|
+
status: not-applicable | completed | blocked
|
|
35
|
+
record_ref:
|
|
31
36
|
seam_deferred:
|
|
32
37
|
- risk:
|
|
33
38
|
owner:
|
|
@@ -16,6 +16,8 @@ description: 编排 YSS 产品或模块从机会调研到 Spec、原型、技术
|
|
|
16
16
|
|
|
17
17
|
Matt 的 `grill-with-docs`、`to-spec`、`to-tickets`、`implement` 等保留为显式兼容入口;默认路径是本 skill 持有的原生工作单元,由本编排器创建正式资产、维护状态并在会签门禁暂停(级别见数字人角色注册表)。兼容入口不得自动调用它们或代替其创建正式资产;Matt 只导航,不得写生命周期资产或改变门禁/Ticket 状态;任何写入前回交本编排器。
|
|
18
18
|
|
|
19
|
+
技能调用先消费 `docs/agents/yss-skill-registry.yaml` 的 `invocation_contract`:它只约束调用模式、触发/排除条件、主要输出和依赖,不替代生命周期证据或门禁。进入实现后,Slice Contract 的 `common.context_plan` 只加载当前切片的最小充分上下文;缺失权威上下文必须 `blocked` 或回 Router,不得猜测补齐。质量标准由 `engineering-baseline` 一次定义并由切片、Execution Result、审查和发布复用;命中高风险影响时在途记录 Doubt-Driven 主张、反证、证据和残余风险。Wayfinder 仅作为超长或决策前沿不清晰工作的可选 Discovery → Spec 规划模式,完成后回到 `handoff → to-spec`,不改变生命周期状态。
|
|
20
|
+
|
|
19
21
|
## 不可裁剪的主链
|
|
20
22
|
|
|
21
23
|
入口分诊 → Discovery → Spec / 功能架构 → 产品设计 → 系统 / 数据架构与工程契约 → Ticket 正式化 → 垂直切片实现(前后端 TDD)→ 验证 / 发布 / 复盘。
|
|
@@ -19,7 +19,7 @@ Matt skills 决定如何工作;YSS 生命周期决定是否允许推进;YSS
|
|
|
19
19
|
| 通用入口 | `ask-matt` | 检测到 YSS 后由本编排器最终裁决 |
|
|
20
20
|
| 需求澄清 | `grill-with-docs`(用户显式)或 `grilling`、`domain-modeling`(生命周期原语) | 按退出判定检查未决项和回流 |
|
|
21
21
|
| 信息在其他人手中 | `to-questionnaire` | 使用 `external-input-required` 暂停;答案回流后记录 response、重新分类影响面,再进入 `grill-with-docs` 或 `to-spec` |
|
|
22
|
-
| 大型模糊工作 | `wayfinder
|
|
22
|
+
| 大型模糊工作 | `wayfinder`(可选) | 仅在跨会话 / 跨 Agent 或 frontier 不清晰时启用;map 真正完成后 `handoff → to-spec` |
|
|
23
23
|
| 技术事实 | `research` | 一手资料回填 Spec/OpenAPI/架构/ADR |
|
|
24
24
|
| runnable 问题 | `prototype` | 生成单文件可分享 HTML,保留 `prototype/<name>` 分支作为主来源;必须 source/return handoff 和结论回填,不得替代阶段 4 的低保真评审、Ant Design v6 高保真 HTML、AntD CLI 证据和用户确认 |
|
|
25
25
|
| Spec 综合 | 原生 `work-unit.spec-synthesis`;`to-spec`(用户显式兼容) | 初稿进入 `ready-for-human`,不得直接实现 |
|
|
@@ -76,7 +76,7 @@ Router 状态映射为:`draft → completed`、`blocked → blocked`、`ready-
|
|
|
76
76
|
|
|
77
77
|
## Review 候选与 Git 授权
|
|
78
78
|
|
|
79
|
-
YSS 调用 `code-review` 前必须形成 review input,至少包含 `review_mode`、`review_base_ref`、`implementation_candidate_ref`、`candidate_snapshot_ref`、`candidate_digest`、`spec_ref`、`ticket_ref`、`slice_contract_ref`、`build_architecture_checklist_ref` 和 `yss_execution_result_refs`,并满足 `orchestration-contract.yaml.review_input.manifest_required_by_mode`。Standards 还必须编译 `review_standards_route`:合同 `required_skills`、影响面专项检查输入、报告模板与 `finding_disposition`;机器检查按 `run_if_present`
|
|
79
|
+
YSS 调用 `code-review` 前必须形成 review input,至少包含 `review_mode`、`review_base_ref`、`implementation_candidate_ref`、`candidate_snapshot_ref`、`candidate_digest`、`spec_ref`、`ticket_ref`、`slice_contract_ref`、`build_architecture_checklist_ref` 和 `yss_execution_result_refs`,并满足 `orchestration-contract.yaml.review_input.manifest_required_by_mode`。Standards 还必须编译 `review_standards_route`:合同 `required_skills`、影响面专项检查输入、报告模板与 `finding_disposition`;机器检查按 `run_if_present` 执行。质量标准只从 `engineering-baseline` 引用,禁止在 review input 或切片中另起一份。命中高风险影响时,review input 还要引用 Doubt-Driven 主张 / 反证记录;缺少反证或残余风险未处理时返回 `blocked`。`committed` 审查 merge-base 到不可变 `HEAD`;`worktree` 一次捕获 merge-base 到 working tree 的 committed、staged、unstaged 和 untracked 内容,使用 `yss-worktree-candidate-v1` 规定的 raw path、uint64 big-endian 长度、tracked/untracked record 和不支持条目阻断规则计算 SHA-256,让两个 Reviewer 消费同一不可变快照,并在返回和完成 checkpoint 复核摘要未变化。缺少输入、候选为空、专项覆盖缺失、未关闭 mandatory `violation`、适用行空白或摘要变化时返回 `blocked`,不能缩小审查范围、另起通用审查 skill、由审查者改实现,或合并不同候选的结论。`violation` 类 finding 交实现者在原合同路径修复后全轴复审;`drift` / `new_impacts` 使合同 `stale` 并回 Router。
|
|
80
80
|
|
|
81
81
|
Matt `implement` 的通用提交指令不构成 YSS Git 授权。只有用户明确给出 `commit_authorized` 为 `true`、非空 `commit_scope` 和 `commit_authorization_ref` 时才能 commit;只有明确给出 `push_authorized` 为 `true`、非空 `push_scope` 和 `push_authorization_ref` 时才能 push。缺少任一字段时保持工作区不变,只输出 checkpoint 判断;不得把 `orchestrate`、实现授权、当前分支、测试通过或负责人要求解释为隐含授权。`git-submodule` 还必须按仓授权、禁止 detached HEAD 提交,并先推子仓再更新父仓 gitlink。
|
|
82
82
|
|
package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml
CHANGED
|
@@ -648,8 +648,49 @@ release_readiness:
|
|
|
648
648
|
wayfinder_completion:
|
|
649
649
|
required: [no_open_children, no_open_blocked_or_claimed_children, no_fog, destination_clear]
|
|
650
650
|
|
|
651
|
+
wayfinder_mode:
|
|
652
|
+
optional: true
|
|
653
|
+
enable_when:
|
|
654
|
+
- multi-session-or-multi-agent-work
|
|
655
|
+
- unclear-decision-frontier
|
|
656
|
+
- cross-domain-dependency-map-needed
|
|
657
|
+
lifecycle_position: discovery-to-spec-planning
|
|
658
|
+
completion_route: wayfinder -> handoff -> to-spec
|
|
659
|
+
does_not_replace: [lifecycle-gates, spec-baseline, ticket-formalization]
|
|
660
|
+
forbidden_state_mutations: [ready-for-agent, gate-approval, ticket-role]
|
|
661
|
+
template_source_use: only-when-template-evolution-is-long-running
|
|
662
|
+
|
|
663
|
+
context_engineering:
|
|
664
|
+
contract_field: slice_contract.common.context_plan
|
|
665
|
+
required_context: [CONTEXT.md, approved-spec, current-slice-contract, applicable-adr-or-baseline]
|
|
666
|
+
on_demand_context: [specialist-references, implementation-repository-files, historical-evidence]
|
|
667
|
+
stop_rule: minimal-sufficient-evidence
|
|
668
|
+
missing_context_action: [blocked, reroute]
|
|
669
|
+
numeric_token_budget: not-required
|
|
670
|
+
|
|
671
|
+
doubt_driven_review:
|
|
672
|
+
applies_when:
|
|
673
|
+
- api-schema-impact
|
|
674
|
+
- database-schema-impact
|
|
675
|
+
- cross-repo-contract
|
|
676
|
+
- release-or-rollback
|
|
677
|
+
- authentication-authorization-tenant-or-sensitive-data-behavior
|
|
678
|
+
- lifecycle-or-generation-semantics
|
|
679
|
+
required: [claim, counterclaim, evidence_refs, residual_risks, reviewer_ref]
|
|
680
|
+
record_in: [decision-record, architecture-review, contract-review, release-review]
|
|
681
|
+
blocking_when: [missing-counterclaim, insufficient-evidence, unresolved-residual-risk]
|
|
682
|
+
ordinary-low-risk_changes: not-required
|
|
683
|
+
no_new_lifecycle_stage: true
|
|
684
|
+
|
|
685
|
+
quality_baseline_reuse:
|
|
686
|
+
source: artifact.engineering-baseline
|
|
687
|
+
applies_to: project-instance
|
|
688
|
+
consumers: [slice-implementation-contract, yss-skill-execution-result, code-review, release]
|
|
689
|
+
constraint_results_field: required
|
|
690
|
+
redefinition: forbidden
|
|
691
|
+
|
|
651
692
|
ready_for_agent:
|
|
652
|
-
required: [gates_satisfied, no_stale_artifacts, blockers_closed, implementation_context_ready, implementation_repo, implementation_branch, ci, verification_commands, rollback_point, predecessor_work_unit, ticket_decomposition_result_ref, ticket_decomposition_result_status, vertical_slice_ticket_ref, vertical_slice_ticket_role, vertical_slice_ticket_kind, slice_contract_approved, slice_contract_persisted, slice_contract_current_version, build_architecture_checklist, backend_slice_contract_if_applicable, backend_scaffold_policy_satisfied, frontend_implementation_plan_if_ui_impact]
|
|
693
|
+
required: [gates_satisfied, no_stale_artifacts, blockers_closed, implementation_context_ready, context_plan, quality_baseline_ref, implementation_repo, implementation_branch, ci, verification_commands, rollback_point, predecessor_work_unit, ticket_decomposition_result_ref, ticket_decomposition_result_status, vertical_slice_ticket_ref, vertical_slice_ticket_role, vertical_slice_ticket_kind, slice_contract_approved, slice_contract_persisted, slice_contract_current_version, build_architecture_checklist, backend_slice_contract_if_applicable, backend_scaffold_policy_satisfied, frontend_implementation_plan_if_ui_impact]
|
|
653
694
|
ticket_formalization_validator: scripts/lib/lifecycle-transition.mjs
|
|
654
695
|
requires_vertical_slice_ticket: true
|
|
655
696
|
parent_ticket_as_implementation_ref: forbidden
|
|
@@ -86,6 +86,12 @@ tracker 选择和冲突按 `docs/agents/issue-tracker.md` 裁决:已持久化
|
|
|
86
86
|
|
|
87
87
|
暂停输出:门禁、指定会签 `role_id`、`runtime_id`、会签文件路径、证据、推荐答案、一个问题、恢复动作。
|
|
88
88
|
|
|
89
|
+
## Context Plan 与质量基线
|
|
90
|
+
|
|
91
|
+
实现合同先消费 `common.context_plan`:必需上下文只包含 `CONTEXT.md`、已批准 Spec、当前合同和适用 ADR / 工程基线;专项 references、实现仓库文件和历史证据按影响面按需加载。达到最小充分证据后停止扩展,缺失权威上下文只能 `blocked` 或 `reroute`。
|
|
92
|
+
|
|
93
|
+
质量标准由 `engineering-baseline` 以 `baseline_id` / `baseline_version` 定义一次,Slice Contract、YSS Skill Execution Result、`code-review` 和发布检查只引用它,并将约束结果写入 `constraint_results`。命中 API / 数据迁移、跨仓契约、发布回滚、实际安全行为或生命周期 / 生成语义时,必须在现有决策或审查记录中完成 Doubt-Driven 主张、反证、证据、残余风险和 Reviewer 引用;普通低风险变更不触发该流程。
|
|
94
|
+
|
|
89
95
|
## Wayfinder 完成判定
|
|
90
96
|
|
|
91
97
|
“无 frontier”不等于完成。只有以下条件同时成立,才能 `wayfinder → handoff → to-spec`:
|
|
@@ -68,7 +68,7 @@ slice_contract_required:
|
|
|
68
68
|
root: [schema_version, contract_id, contract_version, slice_id, status, lifecycle_refs, readiness, common, frontend, backend, contract, cross_repo, work_units]
|
|
69
69
|
lifecycle_refs: [spec, ticket, requirement_freeze, low_fidelity_review, prototype_review, high_fidelity_html, prototype_verification, antd_cli_evidence, browser_verification_evidence, prototype_confirmation, openapi_freeze_or_no_impact, architecture_review, data_architecture, tactical_design, engineering_baseline, build_architecture_checklist, implementation_repository, frontend_repository, backend_repository, maven_wrapper]
|
|
70
70
|
readiness: [blockers, stale_inputs, not_applicable]
|
|
71
|
-
common: [impacted_areas, implementation_path_policy, project_roots, required_skills, optional_skills, unavailable_skills, allowed_write_paths, forbidden_patterns, expected_evidence_files, verification_commands, human_review_points, full_reroute_triggers]
|
|
71
|
+
common: [impacted_areas, implementation_path_policy, project_roots, required_skills, optional_skills, unavailable_skills, allowed_write_paths, forbidden_patterns, expected_evidence_files, verification_commands, human_review_points, full_reroute_triggers, quality_baseline_ref, context_plan, doubt_driven_review]
|
|
72
72
|
frontend: [status, required_skills, approved_prototype_ref, state_matrix_ref, allowed_write_paths, component_test_seams, e2e_paths]
|
|
73
73
|
backend: [status, affected_layers, component_impacts, required_skills, application_boundary, transaction_boundary, persistence_strategy, allowed_write_paths, forbidden_patterns, expected_evidence_files, seam_deferred, verification_commands, tactical_ddd]
|
|
74
74
|
contract: [api_impact, freeze_ref, no_api_impact_ref, generated_clients, contract_tests, regeneration_commands]
|
|
@@ -100,7 +100,12 @@ work_unit_required: [id, behavior, primary_skill, supporting_skills, tdd_mode, a
|
|
|
100
100
|
work_unit_nonempty_arrays: [allowed_write_paths, expected_evidence, verification_commands]
|
|
101
101
|
slice_contract_nonempty: [contract_id, contract_version, slice_id, status]
|
|
102
102
|
slice_contract_array_fields:
|
|
103
|
-
common: [impacted_areas, implementation_path_policy, project_roots, required_skills, allowed_write_paths, forbidden_patterns, expected_evidence_files, verification_commands, full_reroute_triggers]
|
|
103
|
+
common: [impacted_areas, implementation_path_policy, project_roots, required_skills, allowed_write_paths, forbidden_patterns, expected_evidence_files, verification_commands, full_reroute_triggers, quality_baseline_ref, context_plan, doubt_driven_review]
|
|
104
|
+
|
|
105
|
+
context_plan:
|
|
106
|
+
required: [required_context_refs, on_demand_context_refs, context_stop_rule, missing_context_action]
|
|
107
|
+
context_stop_rule: minimal-sufficient-evidence
|
|
108
|
+
missing_context_action: [blocked, reroute]
|
|
104
109
|
|
|
105
110
|
scaffold_contract_schema:
|
|
106
111
|
schema_version: 1
|
|
@@ -241,6 +246,7 @@ full_reroute_triggers:
|
|
|
241
246
|
- test-seam-changed
|
|
242
247
|
- verification-command-changed
|
|
243
248
|
- delivery-order-changed
|
|
249
|
+
- doubt-review-triggered
|
|
244
250
|
|
|
245
251
|
reroute_destinations:
|
|
246
252
|
scaffold-baseline-drift: stage7-scaffold-revalidation
|
|
@@ -258,9 +264,30 @@ reroute_destinations:
|
|
|
258
264
|
test-seam-changed: spec-ticket-test-seam-review
|
|
259
265
|
verification-command-changed: stage7-contract-recompile
|
|
260
266
|
delivery-order-changed: cross-repo-release-review
|
|
267
|
+
doubt-review-triggered: high-risk-decision-review
|
|
268
|
+
|
|
269
|
+
doubt_driven_review:
|
|
270
|
+
applies_when:
|
|
271
|
+
- api-schema-impact
|
|
272
|
+
- database-schema-impact
|
|
273
|
+
- cross-repo-contract
|
|
274
|
+
- release-or-rollback
|
|
275
|
+
- authentication-authorization-tenant-or-sensitive-data-behavior
|
|
276
|
+
- lifecycle-or-generation-semantics
|
|
277
|
+
required: [claim, counterclaim, evidence_refs, residual_risks, reviewer_ref]
|
|
278
|
+
status_values: [not-applicable, required, completed, blocked]
|
|
279
|
+
blocking_when: [missing-counterclaim, insufficient-evidence, unresolved-residual-risk]
|
|
280
|
+
evidence_owner: decision-or-review-record
|
|
281
|
+
no_new_lifecycle_stage: true
|
|
282
|
+
|
|
283
|
+
quality_baseline:
|
|
284
|
+
source: lifecycle_refs.engineering_baseline
|
|
285
|
+
required_for: [project-instance]
|
|
286
|
+
reused_by: [slice-contract, yss-skill-execution-result, code-review, release]
|
|
287
|
+
redefinition: forbidden
|
|
261
288
|
|
|
262
289
|
execution_result_allowed_statuses: [implemented, seam-deferred, drift, violation, not-applicable]
|
|
263
|
-
execution_blockers: [path-outside-contract, missing-evidence, verification-not-executed, verification-command-mismatch, seam-deferred-without-owner, constraint-failed, unapproved-deviation, drift, violation, new-impacts]
|
|
290
|
+
execution_blockers: [path-outside-contract, missing-evidence, verification-not-executed, verification-command-mismatch, seam-deferred-without-owner, constraint-failed, doubt-review-missing, unapproved-deviation, drift, violation, new-impacts]
|
|
264
291
|
|
|
265
292
|
contract_versioning:
|
|
266
293
|
full_reroute_current_status: stale
|
|
@@ -54,6 +54,20 @@ slice_contract:
|
|
|
54
54
|
verification_commands: []
|
|
55
55
|
human_review_points: []
|
|
56
56
|
full_reroute_triggers: []
|
|
57
|
+
quality_baseline_ref:
|
|
58
|
+
context_plan:
|
|
59
|
+
required_context_refs: []
|
|
60
|
+
on_demand_context_refs: []
|
|
61
|
+
context_stop_rule: minimal-sufficient-evidence
|
|
62
|
+
missing_context_action: blocked # or reroute
|
|
63
|
+
doubt_driven_review:
|
|
64
|
+
status: not-applicable # or required / completed / blocked
|
|
65
|
+
trigger_impacts: []
|
|
66
|
+
claim:
|
|
67
|
+
counterclaim:
|
|
68
|
+
evidence_refs: []
|
|
69
|
+
residual_risks: []
|
|
70
|
+
reviewer_ref:
|
|
57
71
|
frontend:
|
|
58
72
|
status: not-applicable
|
|
59
73
|
required_skills: []
|
|
@@ -13,6 +13,8 @@ execution_result:
|
|
|
13
13
|
contract_ref:
|
|
14
14
|
contract_id:
|
|
15
15
|
contract_version:
|
|
16
|
+
quality_baseline_ref:
|
|
17
|
+
context_plan_ref:
|
|
16
18
|
changed_files:
|
|
17
19
|
- path:
|
|
18
20
|
contract_area: common | frontend | backend | contract | cross_repo
|
|
@@ -28,6 +30,9 @@ execution_result:
|
|
|
28
30
|
- constraint:
|
|
29
31
|
status: passed | failed | not-applicable
|
|
30
32
|
evidence_ref:
|
|
33
|
+
doubt_driven_review:
|
|
34
|
+
status: not-applicable | completed | blocked
|
|
35
|
+
record_ref:
|
|
31
36
|
seam_deferred:
|
|
32
37
|
- risk:
|
|
33
38
|
owner:
|
|
@@ -16,6 +16,8 @@ description: 编排 YSS 产品或模块从机会调研到 Spec、原型、技术
|
|
|
16
16
|
|
|
17
17
|
Matt 的 `grill-with-docs`、`to-spec`、`to-tickets`、`implement` 等保留为显式兼容入口;默认路径是本 skill 持有的原生工作单元,由本编排器创建正式资产、维护状态并在会签门禁暂停(级别见数字人角色注册表)。兼容入口不得自动调用它们或代替其创建正式资产;Matt 只导航,不得写生命周期资产或改变门禁/Ticket 状态;任何写入前回交本编排器。
|
|
18
18
|
|
|
19
|
+
技能调用先消费 `docs/agents/yss-skill-registry.yaml` 的 `invocation_contract`:它只约束调用模式、触发/排除条件、主要输出和依赖,不替代生命周期证据或门禁。进入实现后,Slice Contract 的 `common.context_plan` 只加载当前切片的最小充分上下文;缺失权威上下文必须 `blocked` 或回 Router,不得猜测补齐。质量标准由 `engineering-baseline` 一次定义并由切片、Execution Result、审查和发布复用;命中高风险影响时在途记录 Doubt-Driven 主张、反证、证据和残余风险。Wayfinder 仅作为超长或决策前沿不清晰工作的可选 Discovery → Spec 规划模式,完成后回到 `handoff → to-spec`,不改变生命周期状态。
|
|
20
|
+
|
|
19
21
|
## 不可裁剪的主链
|
|
20
22
|
|
|
21
23
|
入口分诊 → Discovery → Spec / 功能架构 → 产品设计 → 系统 / 数据架构与工程契约 → Ticket 正式化 → 垂直切片实现(前后端 TDD)→ 验证 / 发布 / 复盘。
|
|
@@ -19,7 +19,7 @@ Matt skills 决定如何工作;YSS 生命周期决定是否允许推进;YSS
|
|
|
19
19
|
| 通用入口 | `ask-matt` | 检测到 YSS 后由本编排器最终裁决 |
|
|
20
20
|
| 需求澄清 | `grill-with-docs`(用户显式)或 `grilling`、`domain-modeling`(生命周期原语) | 按退出判定检查未决项和回流 |
|
|
21
21
|
| 信息在其他人手中 | `to-questionnaire` | 使用 `external-input-required` 暂停;答案回流后记录 response、重新分类影响面,再进入 `grill-with-docs` 或 `to-spec` |
|
|
22
|
-
| 大型模糊工作 | `wayfinder
|
|
22
|
+
| 大型模糊工作 | `wayfinder`(可选) | 仅在跨会话 / 跨 Agent 或 frontier 不清晰时启用;map 真正完成后 `handoff → to-spec` |
|
|
23
23
|
| 技术事实 | `research` | 一手资料回填 Spec/OpenAPI/架构/ADR |
|
|
24
24
|
| runnable 问题 | `prototype` | 生成单文件可分享 HTML,保留 `prototype/<name>` 分支作为主来源;必须 source/return handoff 和结论回填,不得替代阶段 4 的低保真评审、Ant Design v6 高保真 HTML、AntD CLI 证据和用户确认 |
|
|
25
25
|
| Spec 综合 | 原生 `work-unit.spec-synthesis`;`to-spec`(用户显式兼容) | 初稿进入 `ready-for-human`,不得直接实现 |
|
|
@@ -76,7 +76,7 @@ Router 状态映射为:`draft → completed`、`blocked → blocked`、`ready-
|
|
|
76
76
|
|
|
77
77
|
## Review 候选与 Git 授权
|
|
78
78
|
|
|
79
|
-
YSS 调用 `code-review` 前必须形成 review input,至少包含 `review_mode`、`review_base_ref`、`implementation_candidate_ref`、`candidate_snapshot_ref`、`candidate_digest`、`spec_ref`、`ticket_ref`、`slice_contract_ref`、`build_architecture_checklist_ref` 和 `yss_execution_result_refs`,并满足 `orchestration-contract.yaml.review_input.manifest_required_by_mode`。Standards 还必须编译 `review_standards_route`:合同 `required_skills`、影响面专项检查输入、报告模板与 `finding_disposition`;机器检查按 `run_if_present`
|
|
79
|
+
YSS 调用 `code-review` 前必须形成 review input,至少包含 `review_mode`、`review_base_ref`、`implementation_candidate_ref`、`candidate_snapshot_ref`、`candidate_digest`、`spec_ref`、`ticket_ref`、`slice_contract_ref`、`build_architecture_checklist_ref` 和 `yss_execution_result_refs`,并满足 `orchestration-contract.yaml.review_input.manifest_required_by_mode`。Standards 还必须编译 `review_standards_route`:合同 `required_skills`、影响面专项检查输入、报告模板与 `finding_disposition`;机器检查按 `run_if_present` 执行。质量标准只从 `engineering-baseline` 引用,禁止在 review input 或切片中另起一份。命中高风险影响时,review input 还要引用 Doubt-Driven 主张 / 反证记录;缺少反证或残余风险未处理时返回 `blocked`。`committed` 审查 merge-base 到不可变 `HEAD`;`worktree` 一次捕获 merge-base 到 working tree 的 committed、staged、unstaged 和 untracked 内容,使用 `yss-worktree-candidate-v1` 规定的 raw path、uint64 big-endian 长度、tracked/untracked record 和不支持条目阻断规则计算 SHA-256,让两个 Reviewer 消费同一不可变快照,并在返回和完成 checkpoint 复核摘要未变化。缺少输入、候选为空、专项覆盖缺失、未关闭 mandatory `violation`、适用行空白或摘要变化时返回 `blocked`,不能缩小审查范围、另起通用审查 skill、由审查者改实现,或合并不同候选的结论。`violation` 类 finding 交实现者在原合同路径修复后全轴复审;`drift` / `new_impacts` 使合同 `stale` 并回 Router。
|
|
80
80
|
|
|
81
81
|
Matt `implement` 的通用提交指令不构成 YSS Git 授权。只有用户明确给出 `commit_authorized` 为 `true`、非空 `commit_scope` 和 `commit_authorization_ref` 时才能 commit;只有明确给出 `push_authorized` 为 `true`、非空 `push_scope` 和 `push_authorization_ref` 时才能 push。缺少任一字段时保持工作区不变,只输出 checkpoint 判断;不得把 `orchestrate`、实现授权、当前分支、测试通过或负责人要求解释为隐含授权。`git-submodule` 还必须按仓授权、禁止 detached HEAD 提交,并先推子仓再更新父仓 gitlink。
|
|
82
82
|
|
|
@@ -648,8 +648,49 @@ release_readiness:
|
|
|
648
648
|
wayfinder_completion:
|
|
649
649
|
required: [no_open_children, no_open_blocked_or_claimed_children, no_fog, destination_clear]
|
|
650
650
|
|
|
651
|
+
wayfinder_mode:
|
|
652
|
+
optional: true
|
|
653
|
+
enable_when:
|
|
654
|
+
- multi-session-or-multi-agent-work
|
|
655
|
+
- unclear-decision-frontier
|
|
656
|
+
- cross-domain-dependency-map-needed
|
|
657
|
+
lifecycle_position: discovery-to-spec-planning
|
|
658
|
+
completion_route: wayfinder -> handoff -> to-spec
|
|
659
|
+
does_not_replace: [lifecycle-gates, spec-baseline, ticket-formalization]
|
|
660
|
+
forbidden_state_mutations: [ready-for-agent, gate-approval, ticket-role]
|
|
661
|
+
template_source_use: only-when-template-evolution-is-long-running
|
|
662
|
+
|
|
663
|
+
context_engineering:
|
|
664
|
+
contract_field: slice_contract.common.context_plan
|
|
665
|
+
required_context: [CONTEXT.md, approved-spec, current-slice-contract, applicable-adr-or-baseline]
|
|
666
|
+
on_demand_context: [specialist-references, implementation-repository-files, historical-evidence]
|
|
667
|
+
stop_rule: minimal-sufficient-evidence
|
|
668
|
+
missing_context_action: [blocked, reroute]
|
|
669
|
+
numeric_token_budget: not-required
|
|
670
|
+
|
|
671
|
+
doubt_driven_review:
|
|
672
|
+
applies_when:
|
|
673
|
+
- api-schema-impact
|
|
674
|
+
- database-schema-impact
|
|
675
|
+
- cross-repo-contract
|
|
676
|
+
- release-or-rollback
|
|
677
|
+
- authentication-authorization-tenant-or-sensitive-data-behavior
|
|
678
|
+
- lifecycle-or-generation-semantics
|
|
679
|
+
required: [claim, counterclaim, evidence_refs, residual_risks, reviewer_ref]
|
|
680
|
+
record_in: [decision-record, architecture-review, contract-review, release-review]
|
|
681
|
+
blocking_when: [missing-counterclaim, insufficient-evidence, unresolved-residual-risk]
|
|
682
|
+
ordinary-low-risk_changes: not-required
|
|
683
|
+
no_new_lifecycle_stage: true
|
|
684
|
+
|
|
685
|
+
quality_baseline_reuse:
|
|
686
|
+
source: artifact.engineering-baseline
|
|
687
|
+
applies_to: project-instance
|
|
688
|
+
consumers: [slice-implementation-contract, yss-skill-execution-result, code-review, release]
|
|
689
|
+
constraint_results_field: required
|
|
690
|
+
redefinition: forbidden
|
|
691
|
+
|
|
651
692
|
ready_for_agent:
|
|
652
|
-
required: [gates_satisfied, no_stale_artifacts, blockers_closed, implementation_context_ready, implementation_repo, implementation_branch, ci, verification_commands, rollback_point, predecessor_work_unit, ticket_decomposition_result_ref, ticket_decomposition_result_status, vertical_slice_ticket_ref, vertical_slice_ticket_role, vertical_slice_ticket_kind, slice_contract_approved, slice_contract_persisted, slice_contract_current_version, build_architecture_checklist, backend_slice_contract_if_applicable, backend_scaffold_policy_satisfied, frontend_implementation_plan_if_ui_impact]
|
|
693
|
+
required: [gates_satisfied, no_stale_artifacts, blockers_closed, implementation_context_ready, context_plan, quality_baseline_ref, implementation_repo, implementation_branch, ci, verification_commands, rollback_point, predecessor_work_unit, ticket_decomposition_result_ref, ticket_decomposition_result_status, vertical_slice_ticket_ref, vertical_slice_ticket_role, vertical_slice_ticket_kind, slice_contract_approved, slice_contract_persisted, slice_contract_current_version, build_architecture_checklist, backend_slice_contract_if_applicable, backend_scaffold_policy_satisfied, frontend_implementation_plan_if_ui_impact]
|
|
653
694
|
ticket_formalization_validator: scripts/lib/lifecycle-transition.mjs
|
|
654
695
|
requires_vertical_slice_ticket: true
|
|
655
696
|
parent_ticket_as_implementation_ref: forbidden
|
|
@@ -86,6 +86,12 @@ tracker 选择和冲突按 `docs/agents/issue-tracker.md` 裁决:已持久化
|
|
|
86
86
|
|
|
87
87
|
暂停输出:门禁、指定会签 `role_id`、`runtime_id`、会签文件路径、证据、推荐答案、一个问题、恢复动作。
|
|
88
88
|
|
|
89
|
+
## Context Plan 与质量基线
|
|
90
|
+
|
|
91
|
+
实现合同先消费 `common.context_plan`:必需上下文只包含 `CONTEXT.md`、已批准 Spec、当前合同和适用 ADR / 工程基线;专项 references、实现仓库文件和历史证据按影响面按需加载。达到最小充分证据后停止扩展,缺失权威上下文只能 `blocked` 或 `reroute`。
|
|
92
|
+
|
|
93
|
+
质量标准由 `engineering-baseline` 以 `baseline_id` / `baseline_version` 定义一次,Slice Contract、YSS Skill Execution Result、`code-review` 和发布检查只引用它,并将约束结果写入 `constraint_results`。命中 API / 数据迁移、跨仓契约、发布回滚、实际安全行为或生命周期 / 生成语义时,必须在现有决策或审查记录中完成 Doubt-Driven 主张、反证、证据、残余风险和 Reviewer 引用;普通低风险变更不触发该流程。
|
|
94
|
+
|
|
89
95
|
## Wayfinder 完成判定
|
|
90
96
|
|
|
91
97
|
“无 frontier”不等于完成。只有以下条件同时成立,才能 `wayfinder → handoff → to-spec`:
|
|
@@ -68,7 +68,7 @@ slice_contract_required:
|
|
|
68
68
|
root: [schema_version, contract_id, contract_version, slice_id, status, lifecycle_refs, readiness, common, frontend, backend, contract, cross_repo, work_units]
|
|
69
69
|
lifecycle_refs: [spec, ticket, requirement_freeze, low_fidelity_review, prototype_review, high_fidelity_html, prototype_verification, antd_cli_evidence, browser_verification_evidence, prototype_confirmation, openapi_freeze_or_no_impact, architecture_review, data_architecture, tactical_design, engineering_baseline, build_architecture_checklist, implementation_repository, frontend_repository, backend_repository, maven_wrapper]
|
|
70
70
|
readiness: [blockers, stale_inputs, not_applicable]
|
|
71
|
-
common: [impacted_areas, implementation_path_policy, project_roots, required_skills, optional_skills, unavailable_skills, allowed_write_paths, forbidden_patterns, expected_evidence_files, verification_commands, human_review_points, full_reroute_triggers]
|
|
71
|
+
common: [impacted_areas, implementation_path_policy, project_roots, required_skills, optional_skills, unavailable_skills, allowed_write_paths, forbidden_patterns, expected_evidence_files, verification_commands, human_review_points, full_reroute_triggers, quality_baseline_ref, context_plan, doubt_driven_review]
|
|
72
72
|
frontend: [status, required_skills, approved_prototype_ref, state_matrix_ref, allowed_write_paths, component_test_seams, e2e_paths]
|
|
73
73
|
backend: [status, affected_layers, component_impacts, required_skills, application_boundary, transaction_boundary, persistence_strategy, allowed_write_paths, forbidden_patterns, expected_evidence_files, seam_deferred, verification_commands, tactical_ddd]
|
|
74
74
|
contract: [api_impact, freeze_ref, no_api_impact_ref, generated_clients, contract_tests, regeneration_commands]
|
|
@@ -100,7 +100,12 @@ work_unit_required: [id, behavior, primary_skill, supporting_skills, tdd_mode, a
|
|
|
100
100
|
work_unit_nonempty_arrays: [allowed_write_paths, expected_evidence, verification_commands]
|
|
101
101
|
slice_contract_nonempty: [contract_id, contract_version, slice_id, status]
|
|
102
102
|
slice_contract_array_fields:
|
|
103
|
-
common: [impacted_areas, implementation_path_policy, project_roots, required_skills, allowed_write_paths, forbidden_patterns, expected_evidence_files, verification_commands, full_reroute_triggers]
|
|
103
|
+
common: [impacted_areas, implementation_path_policy, project_roots, required_skills, allowed_write_paths, forbidden_patterns, expected_evidence_files, verification_commands, full_reroute_triggers, quality_baseline_ref, context_plan, doubt_driven_review]
|
|
104
|
+
|
|
105
|
+
context_plan:
|
|
106
|
+
required: [required_context_refs, on_demand_context_refs, context_stop_rule, missing_context_action]
|
|
107
|
+
context_stop_rule: minimal-sufficient-evidence
|
|
108
|
+
missing_context_action: [blocked, reroute]
|
|
104
109
|
|
|
105
110
|
scaffold_contract_schema:
|
|
106
111
|
schema_version: 1
|
|
@@ -241,6 +246,7 @@ full_reroute_triggers:
|
|
|
241
246
|
- test-seam-changed
|
|
242
247
|
- verification-command-changed
|
|
243
248
|
- delivery-order-changed
|
|
249
|
+
- doubt-review-triggered
|
|
244
250
|
|
|
245
251
|
reroute_destinations:
|
|
246
252
|
scaffold-baseline-drift: stage7-scaffold-revalidation
|
|
@@ -258,9 +264,30 @@ reroute_destinations:
|
|
|
258
264
|
test-seam-changed: spec-ticket-test-seam-review
|
|
259
265
|
verification-command-changed: stage7-contract-recompile
|
|
260
266
|
delivery-order-changed: cross-repo-release-review
|
|
267
|
+
doubt-review-triggered: high-risk-decision-review
|
|
268
|
+
|
|
269
|
+
doubt_driven_review:
|
|
270
|
+
applies_when:
|
|
271
|
+
- api-schema-impact
|
|
272
|
+
- database-schema-impact
|
|
273
|
+
- cross-repo-contract
|
|
274
|
+
- release-or-rollback
|
|
275
|
+
- authentication-authorization-tenant-or-sensitive-data-behavior
|
|
276
|
+
- lifecycle-or-generation-semantics
|
|
277
|
+
required: [claim, counterclaim, evidence_refs, residual_risks, reviewer_ref]
|
|
278
|
+
status_values: [not-applicable, required, completed, blocked]
|
|
279
|
+
blocking_when: [missing-counterclaim, insufficient-evidence, unresolved-residual-risk]
|
|
280
|
+
evidence_owner: decision-or-review-record
|
|
281
|
+
no_new_lifecycle_stage: true
|
|
282
|
+
|
|
283
|
+
quality_baseline:
|
|
284
|
+
source: lifecycle_refs.engineering_baseline
|
|
285
|
+
required_for: [project-instance]
|
|
286
|
+
reused_by: [slice-contract, yss-skill-execution-result, code-review, release]
|
|
287
|
+
redefinition: forbidden
|
|
261
288
|
|
|
262
289
|
execution_result_allowed_statuses: [implemented, seam-deferred, drift, violation, not-applicable]
|
|
263
|
-
execution_blockers: [path-outside-contract, missing-evidence, verification-not-executed, verification-command-mismatch, seam-deferred-without-owner, constraint-failed, unapproved-deviation, drift, violation, new-impacts]
|
|
290
|
+
execution_blockers: [path-outside-contract, missing-evidence, verification-not-executed, verification-command-mismatch, seam-deferred-without-owner, constraint-failed, doubt-review-missing, unapproved-deviation, drift, violation, new-impacts]
|
|
264
291
|
|
|
265
292
|
contract_versioning:
|
|
266
293
|
full_reroute_current_status: stale
|
|
@@ -54,6 +54,20 @@ slice_contract:
|
|
|
54
54
|
verification_commands: []
|
|
55
55
|
human_review_points: []
|
|
56
56
|
full_reroute_triggers: []
|
|
57
|
+
quality_baseline_ref:
|
|
58
|
+
context_plan:
|
|
59
|
+
required_context_refs: []
|
|
60
|
+
on_demand_context_refs: []
|
|
61
|
+
context_stop_rule: minimal-sufficient-evidence
|
|
62
|
+
missing_context_action: blocked # or reroute
|
|
63
|
+
doubt_driven_review:
|
|
64
|
+
status: not-applicable # or required / completed / blocked
|
|
65
|
+
trigger_impacts: []
|
|
66
|
+
claim:
|
|
67
|
+
counterclaim:
|
|
68
|
+
evidence_refs: []
|
|
69
|
+
residual_risks: []
|
|
70
|
+
reviewer_ref:
|
|
57
71
|
frontend:
|
|
58
72
|
status: not-applicable
|
|
59
73
|
required_skills: []
|