create-yss-spec 2.2.2 → 2.2.3
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 +5 -5
- package/template/.agents/skills/yss-product-lifecycle/references/matt-yss-adapter.md +1 -1
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +3 -3
- package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +3 -3
- package/template/.agents/skills/yss-router/SKILL.md +1 -1
- package/template/.agents/skills/yss-router/references/slice-implementation-contract.md +1 -0
- package/template/.claude/skills/yss-product-lifecycle/SKILL.md +5 -5
- package/template/.claude/skills/yss-product-lifecycle/references/matt-yss-adapter.md +1 -1
- package/template/.claude/skills/yss-product-lifecycle/references/orchestration.md +3 -3
- package/template/.claude/skills/yss-product-lifecycle/references/state-model.md +3 -3
- package/template/.claude/skills/yss-router/SKILL.md +1 -1
- package/template/.claude/skills/yss-router/references/slice-implementation-contract.md +1 -0
- package/template/.codex/skills/yss-product-lifecycle/SKILL.md +5 -5
- package/template/.codex/skills/yss-product-lifecycle/references/matt-yss-adapter.md +1 -1
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +3 -3
- package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +3 -3
- package/template/.codex/skills/yss-router/SKILL.md +1 -1
- package/template/.codex/skills/yss-router/references/slice-implementation-contract.md +1 -0
- package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +5 -5
- package/template/.cursor/skills/yss-product-lifecycle/references/matt-yss-adapter.md +1 -1
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +3 -3
- package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +3 -3
- package/template/.cursor/skills/yss-router/SKILL.md +1 -1
- package/template/.cursor/skills/yss-router/references/slice-implementation-contract.md +1 -0
- package/template/.hermes/skills/yss-product-lifecycle/SKILL.md +5 -5
- package/template/.hermes/skills/yss-product-lifecycle/references/matt-yss-adapter.md +1 -1
- package/template/.hermes/skills/yss-product-lifecycle/references/orchestration.md +3 -3
- package/template/.hermes/skills/yss-product-lifecycle/references/state-model.md +3 -3
- package/template/.hermes/skills/yss-router/SKILL.md +1 -1
- package/template/.hermes/skills/yss-router/references/slice-implementation-contract.md +1 -0
- package/template/.pi/skills/yss-product-lifecycle/SKILL.md +5 -5
- package/template/.pi/skills/yss-product-lifecycle/references/matt-yss-adapter.md +1 -1
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +3 -3
- package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +3 -3
- package/template/.pi/skills/yss-router/SKILL.md +1 -1
- package/template/.pi/skills/yss-router/references/slice-implementation-contract.md +1 -0
- package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +5 -5
- package/template/.qoder/skills/yss-product-lifecycle/references/matt-yss-adapter.md +1 -1
- package/template/.qoder/skills/yss-product-lifecycle/references/orchestration.md +3 -3
- package/template/.qoder/skills/yss-product-lifecycle/references/state-model.md +3 -3
- package/template/.qoder/skills/yss-router/SKILL.md +1 -1
- package/template/.qoder/skills/yss-router/references/slice-implementation-contract.md +1 -0
- package/template/.trae/skills/yss-product-lifecycle/SKILL.md +5 -5
- package/template/.trae/skills/yss-product-lifecycle/references/matt-yss-adapter.md +1 -1
- package/template/.trae/skills/yss-product-lifecycle/references/orchestration.md +3 -3
- package/template/.trae/skills/yss-product-lifecycle/references/state-model.md +3 -3
- package/template/.trae/skills/yss-router/SKILL.md +1 -1
- package/template/.trae/skills/yss-router/references/slice-implementation-contract.md +1 -0
- package/template/AGENTS.md +6 -3
- package/template/CONTEXT.md +14 -2
- package/template/docs/agents/digital-human-roles.md +83 -0
- package/template/docs/agents/digital-human-roles.yaml +253 -0
- package/template/docs/agents/triage-labels.md +5 -5
- package/template/docs/process/schemas/lifecycle-checkpoint.schema.json +2 -1
- package/template/docs/process/subagent-collaboration.md +5 -3
- package/template/docs/process/templates/stage-checkpoint-template.md +3 -1
- package/template/docs/templates/approval-record-template.yaml +14 -0
- package/template/docs/templates/digital-human-runtime-profile-template.md +38 -0
- package/template/docs/templates/grok-bot-profile-template.md +24 -0
- package/template/docs/templates/implementation-routing-template.md +3 -3
- package/template/docs/templates/local-parent-ticket-template.md +8 -0
- package/template/docs/templates/subagent-task-package-template.md +4 -0
- package/template/docs/templates/vertical-slice-ticket-template.md +7 -0
- package/template/docs/user-guide//344/272/247/345/223/201/347/240/224/345/217/221/345/205/250/347/224/237/345/221/275/345/221/250/346/234/237/346/234/200/344/275/263/345/256/236/350/267/265.md +2 -0
- package/template/scripts/lib/approval-record.mjs +123 -0
- package/template/scripts/lib/digital-human-roles.mjs +398 -0
- package/template/scripts/verify-approval-record +13 -0
- package/template/scripts/verify-digital-human-roles +10 -0
- package/template/scripts/verify-digital-human-roles-scenarios +147 -0
- package/template/scripts/verify-lifecycle-checkpoint +2 -0
- package/template/scripts/verify-template +5 -2
- package/template/skills-lock.json +2 -2
- package/template.snapshot.json +4 -4
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# 数字人角色
|
|
2
|
+
|
|
3
|
+
结构化事实源是 `docs/agents/digital-human-roles.yaml`。角色、技能、协作组和会签级别与运行时无关。Claude Code、Cursor、Codex、Hermes、Grok Bot 等只通过 YAML `runtimes` 绑定。冲突时以 YAML 为准。
|
|
4
|
+
|
|
5
|
+
## 何时读本文
|
|
6
|
+
|
|
7
|
+
按职称派活、写会签、把数字人角色和 Ticket 状态 / 职能 Agent / 执行态弄混,或要在某个 Agent 平台上实例化这些角色时。
|
|
8
|
+
|
|
9
|
+
## 四条正交轴
|
|
10
|
+
|
|
11
|
+
| 轴 | 是什么 | 不是什么 |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| 数字人角色 | 职称配置(需求经理、前端工程师…) | Ticket 五态、某个平台的 Bot |
|
|
14
|
+
| 主控数字人 | 生命周期编排器的运行时实例 | 第八个业务职称 |
|
|
15
|
+
| 职能工作单元 | Discovery / Spec / Code / Review | 职称 |
|
|
16
|
+
| 执行态 | Explorer / Drafter / Worker / Reviewer / Verifier | 数字人角色 |
|
|
17
|
+
| 运行时绑定 | 如何在 Cursor / Claude / Grok 等落地 | 角色职责本身 |
|
|
18
|
+
|
|
19
|
+
一次任务包同时写明数字人角色、执行态、当前 `runtime_id`,以及从角色表复制的 `core_skills` / `forbidden_skills`。可用 `taskPackageDefaults(roleId)`(`scripts/lib/digital-human-roles.mjs`)读取,禁止手写第二套技能包。
|
|
20
|
+
|
|
21
|
+
## 会签人
|
|
22
|
+
|
|
23
|
+
`gate_policy.digital_human_review` 与 `dual_digital_human` 是「门禁 × 起草者 × 会签人」规则,不是门禁名单。主控按 `countersigners` 派会签任务。
|
|
24
|
+
|
|
25
|
+
| 门禁 / 工作单元 | 起草 | 会签 |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| `gate.prototype-reviewed` | `role.product-manager` | `role.frontend-engineer` |
|
|
28
|
+
| `gate.openapi-draft-reviewed` | `role.backend-engineer` | `role.frontend-engineer` |
|
|
29
|
+
| `gate.engineering-baseline-accepted` | (实现者) | `role.test-engineer` |
|
|
30
|
+
| `gate.frontend-implementation-verified` | `role.frontend-engineer` | `role.test-engineer` |
|
|
31
|
+
| `work-unit.code-review` | 实现者 | `role.test-engineer`(必须不同实例) |
|
|
32
|
+
| `gate.spec-baseline-approved` | `role.requirements-manager` | `role.product-manager` |
|
|
33
|
+
| `gate.openapi-frozen` | `role.backend-engineer` | `role.product-manager`、`role.test-engineer` |
|
|
34
|
+
| `gate.user-confirmation` | — | `role.product-manager`;生物人可否决 |
|
|
35
|
+
| `gate.release-ready` | — | 生物人(`role.biological-human`) |
|
|
36
|
+
|
|
37
|
+
未列入表的门禁(含 `gate.design-reviewed`、`gate.architecture-reviewed`)走 `default_if_unlisted: biological-human`。
|
|
38
|
+
|
|
39
|
+
会签写入 `docs/.scratch/<feature>/gates/<gate-id>-approval.yaml`,形状见 `docs/templates/approval-record-template.yaml`。恢复前运行 `scripts/verify-approval-record`。错误会签只能得到 `blocked`,不能把门禁标成 `approved`。Checkpoint 里会签桶门禁为 `approved` 时必须有可读 `approval_ref`。
|
|
40
|
+
|
|
41
|
+
`paused-human-gate` 表示等待上述指定会签人,不是「必须是生物人」。
|
|
42
|
+
|
|
43
|
+
主控默认兼任项目经理,直到 `dual_hat_split_when`(`cross-repo-load` 或 `responsibility-conflict`)要求分体。
|
|
44
|
+
|
|
45
|
+
## 跨平台协同(默认)
|
|
46
|
+
|
|
47
|
+
1. 人默认只跟主控说话。
|
|
48
|
+
2. 主控按阶段 1:1 指定一个 owner,并给任务包(输入、写范围、禁止 skill、验收、验证命令)。
|
|
49
|
+
3. 需要可见会签时使用 YAML `stage_groups` 的**逻辑协作组**。这不是某个产品的群聊人数限制。
|
|
50
|
+
4. 权威结论写回 git。运行时记忆只记该数字人的稳定偏好。
|
|
51
|
+
5. 写隔离一律靠任务包。某运行时若共享磁盘或会话,适配器必须声明 `shared_workspace_is_not_security_boundary: true`,不得把实例当成沙箱。
|
|
52
|
+
6. `project-instance` 复制角色实例并绑定仓库路径。禁止按功能再拆实例。
|
|
53
|
+
7. 技能权威仍是 `.agents/skills`。已有投影根走 `runtime.skill-projection`,不要为职称再维护一份 skill。任务包的技能列表必须从角色表复制。
|
|
54
|
+
|
|
55
|
+
## 运行时绑定
|
|
56
|
+
|
|
57
|
+
| ID | 覆盖 | 落地方式 |
|
|
58
|
+
|---|---|---|
|
|
59
|
+
| `runtime.generic` | 任何能加载 `core_skills` 并接受任务包的 Agent | 通用会话 / 人设 / system prompt |
|
|
60
|
+
| `runtime.skill-projection` | `yss-skill-registry.yaml` 的 `agent_runtime_roots`(claude、codex、cursor、hermes、pi、qoder、trae) | 投影技能 + subagent 任务包 |
|
|
61
|
+
| `runtime.grok` | Grok Bot | 持久 Bot、群聊或 1:1 交接;群超过 6 人改 1:1,不改逻辑协作组 |
|
|
62
|
+
|
|
63
|
+
新增平台:先加 `runtimes` 条目,再写适配说明。不要把平台限制写进 `roles`。
|
|
64
|
+
|
|
65
|
+
Grok 专用操作见 `docs/templates/grok-bot-profile-template.md`。通用实例化见 `docs/templates/digital-human-runtime-profile-template.md`。
|
|
66
|
+
|
|
67
|
+
## 两套批准
|
|
68
|
+
|
|
69
|
+
| 名称 | 关闭什么 | 谁点 |
|
|
70
|
+
|---|---|---|
|
|
71
|
+
| 运行时副作用审批 | 发消息、改生产、付款、删数据等工具动作 | 生物人(各平台自己的 Allow / 确认框) |
|
|
72
|
+
| 生命周期会签 | `gate.*` 与独立 code review | 见 YAML `gate_policy` |
|
|
73
|
+
|
|
74
|
+
会签写入 `docs/templates/approval-record-template.yaml`,带 `runtime_id`、`principal_ref` 与实例引用。起草者不得出现在会签人里。`gate.release-ready`、对外商务合同、运行时外部副作用,以及未列入会签表的 `gate.design-reviewed` / `gate.architecture-reviewed` 仍须生物人。
|
|
75
|
+
|
|
76
|
+
## 实例化
|
|
77
|
+
|
|
78
|
+
- 模板仓:`publish-singleton-profiles`。账户级只发布一套职称 profile,不按功能再拆。
|
|
79
|
+
- `project-instance`:`duplicate-and-bind-repo-path`。复制 YAML 的 `title` / `description` / `core_skills`,写入本仓库路径,选择 `runtime_id`。步骤见 `docs/templates/digital-human-runtime-profile-template.md`。外部 `create-yss-spec` 尚未接管此步骤。
|
|
80
|
+
|
|
81
|
+
## 任务包最低字段
|
|
82
|
+
|
|
83
|
+
数字人角色 ID、`runtime_id`、执行态、从角色表复制的 `core_skills` / `forbidden_skills`、输入资产、允许写路径、禁止事项、验收、验证命令、汇合方式。
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
schema_version: 1
|
|
2
|
+
registry_id: yss.digital-human-roles
|
|
3
|
+
status: active
|
|
4
|
+
description: >-
|
|
5
|
+
数字人角色、主控、阶段协作组、技能启用/禁止与生命周期会签的单一事实源。
|
|
6
|
+
角色配置与运行时无关;Claude / Cursor / Codex / Grok 等只通过 runtimes 绑定。
|
|
7
|
+
Ticket 五态不是数字人角色。
|
|
8
|
+
canonical_path: docs/agents/digital-human-roles.yaml
|
|
9
|
+
runtime_policy:
|
|
10
|
+
overlay_on_lifecycle: true
|
|
11
|
+
consumed_by_lifecycle: true
|
|
12
|
+
git_is_ssot: true
|
|
13
|
+
default_invocation: orchestrator
|
|
14
|
+
dispatch: orchestrator-one-to-one
|
|
15
|
+
per_feature_instances: forbidden
|
|
16
|
+
project_instance_instantiation: duplicate-and-bind-repo-path
|
|
17
|
+
template_instantiation: publish-singleton-profiles
|
|
18
|
+
biological_veto: true
|
|
19
|
+
implementer_must_differ: true
|
|
20
|
+
write_isolation: task-package-policy
|
|
21
|
+
dual_hat_split_when: [cross-repo-load, responsibility-conflict]
|
|
22
|
+
|
|
23
|
+
runtimes:
|
|
24
|
+
- id: runtime.generic
|
|
25
|
+
kind: generic
|
|
26
|
+
instance_kind: agent-session
|
|
27
|
+
skill_root: null
|
|
28
|
+
covers_skill_registry_roots: false
|
|
29
|
+
collaboration: task-package-and-handoff
|
|
30
|
+
max_collaboration_group_size: null
|
|
31
|
+
overflow: not-applicable
|
|
32
|
+
shared_workspace_is_not_security_boundary: false
|
|
33
|
+
side_effect_approval: biological-human
|
|
34
|
+
notes: 任何能加载 core_skills 并接受任务包的 Agent 会话。
|
|
35
|
+
- id: runtime.skill-projection
|
|
36
|
+
kind: projected-agent-root
|
|
37
|
+
instance_kind: agent-session-or-subagent
|
|
38
|
+
skill_root: from-skill-registry
|
|
39
|
+
covers_skill_registry_roots: true
|
|
40
|
+
collaboration: subagent-task-package
|
|
41
|
+
max_collaboration_group_size: null
|
|
42
|
+
overflow: not-applicable
|
|
43
|
+
shared_workspace_is_not_security_boundary: false
|
|
44
|
+
side_effect_approval: biological-human
|
|
45
|
+
notes: >-
|
|
46
|
+
覆盖 docs/agents/yss-skill-registry.yaml 的 agent_runtime_roots
|
|
47
|
+
(claude / codex / cursor / hermes / pi / qoder / trae)。
|
|
48
|
+
技能仍从 .agents/skills 投影,不按职称再维护一份。
|
|
49
|
+
- id: runtime.grok
|
|
50
|
+
kind: grok-bot
|
|
51
|
+
instance_kind: durable-bot
|
|
52
|
+
skill_root: null
|
|
53
|
+
covers_skill_registry_roots: false
|
|
54
|
+
collaboration: group-chat-or-async-dm
|
|
55
|
+
max_collaboration_group_size: 6
|
|
56
|
+
min_collaboration_group_size: 2
|
|
57
|
+
overflow: one-to-one-handoff
|
|
58
|
+
shared_workspace_is_not_security_boundary: true
|
|
59
|
+
side_effect_approval: biological-human
|
|
60
|
+
notes: >-
|
|
61
|
+
Grok Bot 适配。群聊 2–6 人;超出则改 1:1 交接,不改逻辑阶段协作组。
|
|
62
|
+
全部 Bot 共享云计算机,写范围只靠任务包。不新增 agent_runtime_roots.grok。
|
|
63
|
+
|
|
64
|
+
orchestrator:
|
|
65
|
+
id: role.lifecycle-orchestrator
|
|
66
|
+
name: 主控数字人
|
|
67
|
+
kind: orchestrator
|
|
68
|
+
title: YSS 生命周期主控
|
|
69
|
+
default_dual_hat: [role.project-manager]
|
|
70
|
+
stages: [stage.entry-triage, stage.discovery, stage.spec-architecture, stage.product-design, stage.system-data-engineering, stage.ticket-formalization, stage.vertical-slice-implementation, stage.verification-release-retrospective]
|
|
71
|
+
core_skills: [yss-product-lifecycle, yss-router]
|
|
72
|
+
forbidden_skills: [yss-domain, yss-ui, yss-page-module-development, yss-web-controller, yss-repository, implement]
|
|
73
|
+
description: >-
|
|
74
|
+
Own YSS lifecycle routing. Read yss-project.yaml and CONTEXT.md first.
|
|
75
|
+
Select the next unblocked work unit, compile a task package, and assign
|
|
76
|
+
one owner per stage. Do not implement business code. Do not approve Slice
|
|
77
|
+
contracts into ready-for-agent without the full formula. Do not announce
|
|
78
|
+
releasable. Default dual-hat: project manager until a separate instance
|
|
79
|
+
is required. Authoritative artifacts live in git.
|
|
80
|
+
|
|
81
|
+
roles:
|
|
82
|
+
- id: role.requirements-manager
|
|
83
|
+
name: 需求经理
|
|
84
|
+
kind: digital-human
|
|
85
|
+
title: YSS 需求经理
|
|
86
|
+
stages: [stage.discovery, stage.spec-architecture]
|
|
87
|
+
draft_artifact_ids: [artifact.discovery-record, artifact.spec]
|
|
88
|
+
core_skills: [grilling, domain-modeling, research, competitive-intelligence, grill-with-docs]
|
|
89
|
+
forbidden_skills: [yss-ui, yss-domain, yss-web-controller, yss-repository, yss-ddd-scaffold-generator, yss-frontend-scaffold-generator, implement, tdd]
|
|
90
|
+
description: >-
|
|
91
|
+
Own Discovery language, users, MVP, non-goals, success criteria, test
|
|
92
|
+
seams, and Spec prose. Propose CONTEXT.md glossary entries. Do not freeze
|
|
93
|
+
visual prototypes, OpenAPI, or code. Do not guess unconfirmed business
|
|
94
|
+
rules. Hand off to the orchestrator when the frontier is empty.
|
|
95
|
+
|
|
96
|
+
- id: role.product-manager
|
|
97
|
+
name: 产品经理
|
|
98
|
+
kind: digital-human
|
|
99
|
+
title: YSS 产品经理
|
|
100
|
+
stages: [stage.discovery, stage.spec-architecture, stage.product-design, stage.verification-release-retrospective]
|
|
101
|
+
draft_artifact_ids: [artifact.product-overview, artifact.functional-architecture, artifact.interaction-spec, artifact.state-matrix, artifact.prototype-confirmation]
|
|
102
|
+
core_skills: [yss-design-system, yss-prototype-stage, prototype-review, yss-antd-design]
|
|
103
|
+
forbidden_skills: [yss-ui, yss-domain, yss-repository, yss-web-controller, yss-ddd-scaffold-generator, implement, tdd]
|
|
104
|
+
description: >-
|
|
105
|
+
Own priority, product-design impact, interaction, state matrix, and
|
|
106
|
+
prototype confirmation recommendation. May reject Spec scope. Do not write
|
|
107
|
+
production code or freeze OpenAPI alone. Frontend implementation uses the
|
|
108
|
+
frontend-engineer role and yss-ui, not yss-antd-design.
|
|
109
|
+
|
|
110
|
+
- id: role.business
|
|
111
|
+
name: 商务
|
|
112
|
+
kind: digital-human
|
|
113
|
+
title: YSS 商务
|
|
114
|
+
stages: [stage.discovery, stage.verification-release-retrospective]
|
|
115
|
+
draft_artifact_ids: [artifact.discovery-record]
|
|
116
|
+
core_skills: [competitive-intelligence, research]
|
|
117
|
+
forbidden_skills: [yss-ui, yss-domain, yss-web-controller, yss-openapi-governance, to-spec, to-tickets, implement, tdd, yss-router]
|
|
118
|
+
description: >-
|
|
119
|
+
Own commercial constraints, delivery promises, and business non-goals in
|
|
120
|
+
Discovery and release windows. Do not finalize Spec, API, tickets, or
|
|
121
|
+
code. External quotes and contracts stay behind runtime side-effect
|
|
122
|
+
approval by a biological human.
|
|
123
|
+
|
|
124
|
+
- id: role.project-manager
|
|
125
|
+
name: 项目经理
|
|
126
|
+
kind: digital-human
|
|
127
|
+
title: YSS 项目经理
|
|
128
|
+
stages: [stage.entry-triage, stage.discovery, stage.spec-architecture, stage.product-design, stage.system-data-engineering, stage.ticket-formalization, stage.vertical-slice-implementation, stage.verification-release-retrospective]
|
|
129
|
+
draft_artifact_ids: [artifact.parent-ticket, artifact.vertical-slice-ticket]
|
|
130
|
+
core_skills: [yss-product-lifecycle, handoff, implementation-repo-onboarding, cross-repo-implementation-routing]
|
|
131
|
+
forbidden_skills: [yss-domain, yss-ui, implement, tdd, yss-web-controller]
|
|
132
|
+
description: >-
|
|
133
|
+
Own parent Ticket hygiene, checkpoints, handoff, risk, and implementation
|
|
134
|
+
repo registry. Do not set ready-for-agent; the orchestrator recomputes
|
|
135
|
+
that formula. Do not approve Spec or OpenAPI Freeze. Do not write business
|
|
136
|
+
code or serve as independent Reviewer. Default dual-hat on the
|
|
137
|
+
orchestrator instance until dual_hat_split_when
|
|
138
|
+
(cross-repo-load or responsibility-conflict) requires a separate instance.
|
|
139
|
+
|
|
140
|
+
- id: role.frontend-engineer
|
|
141
|
+
name: 前端工程师
|
|
142
|
+
kind: digital-human
|
|
143
|
+
title: YSS 前端工程师
|
|
144
|
+
stages: [stage.product-design, stage.system-data-engineering, stage.ticket-formalization, stage.vertical-slice-implementation, stage.verification-release-retrospective]
|
|
145
|
+
draft_artifact_ids: [artifact.frontend-implementation-plan]
|
|
146
|
+
core_skills: [yss-ui, yss-page-module-development, yss-components, yss-formily, formily-foundation, formily-linkage-effects, formily-mode-slot-detail, formily-step-flow, ytable-usage, ytree-usage, yedit-table-usage, yss-api-integration, yss-hook, theme-token-usage, page-skeleton, page-list-module, page-form-module, component-selection-imports, vue3-best-practices, tdd]
|
|
147
|
+
forbidden_skills: [yss-domain, yss-application, yss-repository, yss-mybatis, yss-web-controller, yss-ddd-scaffold-generator, java-backend-commit]
|
|
148
|
+
description: >-
|
|
149
|
+
Own Vue page modules, frontend tests, and frontend_implementation_plan.
|
|
150
|
+
Review OpenAPI Draft for client fit and prototype feasibility. Write only
|
|
151
|
+
contract-allowed frontend paths. Verify with pnpm. Do not freeze API, own
|
|
152
|
+
backend domain, or countersign your own merge.
|
|
153
|
+
|
|
154
|
+
- id: role.backend-engineer
|
|
155
|
+
name: 后端工程师
|
|
156
|
+
kind: digital-human
|
|
157
|
+
title: YSS 后端工程师
|
|
158
|
+
stages: [stage.system-data-engineering, stage.ticket-formalization, stage.vertical-slice-implementation, stage.verification-release-retrospective]
|
|
159
|
+
draft_artifact_ids: [artifact.openapi-draft, artifact.data-architecture]
|
|
160
|
+
core_skills: [yss-router, yss-domain, yss-application, yss-repository, yss-mybatis, yss-web-controller, yss-dto, yss-exception, yss-validation, tdd, yss-ddd-scaffold-generator]
|
|
161
|
+
forbidden_skills: [yss-ui, yss-page-module-development, yss-formily, yss-frontend-scaffold-generator, yss-antd-design, page-list-module, page-form-module]
|
|
162
|
+
description: >-
|
|
163
|
+
Own OpenAPI Draft, data-architecture contributions, and backend tests.
|
|
164
|
+
Write only contract-allowed backend paths. Verify with ./mvnw. Do not
|
|
165
|
+
Freeze OpenAPI, treat UI copy as requirements, or countersign your own
|
|
166
|
+
implementation.
|
|
167
|
+
|
|
168
|
+
- id: role.test-engineer
|
|
169
|
+
name: 测试工程师
|
|
170
|
+
kind: digital-human
|
|
171
|
+
title: YSS 测试工程师
|
|
172
|
+
stages: [stage.spec-architecture, stage.vertical-slice-implementation, stage.verification-release-retrospective]
|
|
173
|
+
draft_artifact_ids: [artifact.frontend-implementation-verification]
|
|
174
|
+
owned_evidence_ids: [evidence.fresh-verification, evidence.frontend-implementation-verification]
|
|
175
|
+
core_skills: [tdd, diagnosing-bugs, code-review]
|
|
176
|
+
forbidden_skills: [yss-ddd-scaffold-generator, yss-frontend-scaffold-generator, implement, to-spec]
|
|
177
|
+
description: >-
|
|
178
|
+
Own test code, defect records, fresh verification, and frontend
|
|
179
|
+
implementation verification evidence. Review every implementation slice.
|
|
180
|
+
Recommend release readiness; do not close gate.release-ready. Do not
|
|
181
|
+
change product scope or write feature implementation. Must be a different
|
|
182
|
+
instance from the implementer.
|
|
183
|
+
|
|
184
|
+
stage_groups:
|
|
185
|
+
- id: group.discovery
|
|
186
|
+
name: Discovery
|
|
187
|
+
stage: stage.discovery
|
|
188
|
+
members: [role.lifecycle-orchestrator, role.requirements-manager, role.product-manager, role.business]
|
|
189
|
+
- id: group.spec
|
|
190
|
+
name: Spec
|
|
191
|
+
stage: stage.spec-architecture
|
|
192
|
+
members: [role.lifecycle-orchestrator, role.requirements-manager, role.product-manager, role.test-engineer]
|
|
193
|
+
- id: group.product-design
|
|
194
|
+
name: 产品设计
|
|
195
|
+
stage: stage.product-design
|
|
196
|
+
members: [role.lifecycle-orchestrator, role.product-manager, role.requirements-manager, role.frontend-engineer]
|
|
197
|
+
- id: group.contract
|
|
198
|
+
name: 契约
|
|
199
|
+
stage: stage.system-data-engineering
|
|
200
|
+
members: [role.lifecycle-orchestrator, role.backend-engineer, role.frontend-engineer, role.test-engineer, role.product-manager]
|
|
201
|
+
- id: group.tickets
|
|
202
|
+
name: Ticket 正式化
|
|
203
|
+
stage: stage.ticket-formalization
|
|
204
|
+
members: [role.lifecycle-orchestrator, role.project-manager, role.frontend-engineer, role.backend-engineer, role.test-engineer]
|
|
205
|
+
- id: group.implementation
|
|
206
|
+
name: 实现
|
|
207
|
+
stage: stage.vertical-slice-implementation
|
|
208
|
+
members: [role.lifecycle-orchestrator, role.frontend-engineer, role.backend-engineer, role.test-engineer]
|
|
209
|
+
- id: group.release
|
|
210
|
+
name: 发布
|
|
211
|
+
stage: stage.verification-release-retrospective
|
|
212
|
+
members: [role.lifecycle-orchestrator, role.project-manager, role.test-engineer, role.product-manager, role.business]
|
|
213
|
+
|
|
214
|
+
gate_policy:
|
|
215
|
+
default_if_unlisted: biological-human
|
|
216
|
+
unlisted_kept_biological:
|
|
217
|
+
- gate.design-reviewed
|
|
218
|
+
- gate.architecture-reviewed
|
|
219
|
+
evidence_only:
|
|
220
|
+
- gate.repository-identity-valid
|
|
221
|
+
- gate.prototype-verified
|
|
222
|
+
orchestrator:
|
|
223
|
+
- gate.slice-contract-approved
|
|
224
|
+
- gate.slice-ready-for-agent
|
|
225
|
+
digital_human_review:
|
|
226
|
+
- gate: gate.prototype-reviewed
|
|
227
|
+
drafter: role.product-manager
|
|
228
|
+
countersigners: [role.frontend-engineer]
|
|
229
|
+
- gate: gate.openapi-draft-reviewed
|
|
230
|
+
drafter: role.backend-engineer
|
|
231
|
+
countersigners: [role.frontend-engineer]
|
|
232
|
+
- gate: gate.engineering-baseline-accepted
|
|
233
|
+
countersigners: [role.test-engineer]
|
|
234
|
+
- gate: gate.frontend-implementation-verified
|
|
235
|
+
drafter: role.frontend-engineer
|
|
236
|
+
countersigners: [role.test-engineer]
|
|
237
|
+
digital_human_review_work_units:
|
|
238
|
+
- work_unit: work-unit.code-review
|
|
239
|
+
countersigners: [role.test-engineer]
|
|
240
|
+
implementer_must_differ: true
|
|
241
|
+
dual_digital_human:
|
|
242
|
+
- gate: gate.spec-baseline-approved
|
|
243
|
+
drafter: role.requirements-manager
|
|
244
|
+
countersigners: [role.product-manager]
|
|
245
|
+
- gate: gate.openapi-frozen
|
|
246
|
+
drafter: role.backend-engineer
|
|
247
|
+
countersigners: [role.product-manager, role.test-engineer]
|
|
248
|
+
product_digital_human_with_biological_veto:
|
|
249
|
+
- gate.user-confirmation
|
|
250
|
+
biological_human:
|
|
251
|
+
- gate.release-ready
|
|
252
|
+
runtime_side_effect_approval: biological-human
|
|
253
|
+
commercial_contract: biological-human
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# Triage 标签
|
|
2
2
|
|
|
3
|
-
本文定义 Agent
|
|
3
|
+
本文定义 Agent 分诊时使用的五种 **Ticket 状态**,以及它们在当前 Ticket tracker 中对应的标签。不要把它们叫做数字人角色。
|
|
4
4
|
|
|
5
|
-
|
|
|
5
|
+
| Ticket 状态 | Tracker 标签 | 含义 |
|
|
6
6
|
| --- | --- | --- |
|
|
7
7
|
| `needs-triage` | `needs-triage` | 等待维护者评估 Ticket |
|
|
8
8
|
| `needs-info` | `needs-info` | 等待报告者补充信息 |
|
|
9
9
|
| `ready-for-agent` | `ready-for-agent` | 必要门禁已通过、阻塞边已清除,可由 Agent 直接实现的垂直切片 Ticket |
|
|
10
|
-
| `ready-for-human` | `ready-for-human` | Spec
|
|
10
|
+
| `ready-for-human` | `ready-for-human` | Spec、设计、契约草案或其他资产需要会签(指定数字人或生物人)或特权访问 |
|
|
11
11
|
| `wontfix` | `wontfix` | 不会处理 |
|
|
12
12
|
|
|
13
|
-
当 skill
|
|
13
|
+
当 skill 提及某个 Ticket 状态时,使用表中对应的 Tracker 标签。会签人由 `docs/agents/digital-human-roles.yaml` 指定,不由本表指定。
|
|
14
14
|
|
|
15
|
-
Local Markdown 主 tracker 不调用远程标签:在 Ticket 文件顶部使用同名 `Status:`
|
|
15
|
+
Local Markdown 主 tracker 不调用远程标签:在 Ticket 文件顶部使用同名 `Status:` 值记录 Ticket 状态。Wayfinder 的 `claimed` / `resolved` 仅是临时工作状态,不属于本表五态;进入交付 Ticket 前必须转换为标准 `Status:`。
|
|
@@ -37,7 +37,8 @@
|
|
|
37
37
|
"properties": {
|
|
38
38
|
"status": { "enum": ["not-evaluated", "blocked", "ready-for-human", "approved", "stale", "not-applicable"] },
|
|
39
39
|
"reason": { "type": "string" },
|
|
40
|
-
"evidence_refs": { "type": "array", "items": { "type": "string" } }
|
|
40
|
+
"evidence_refs": { "type": "array", "items": { "type": "string" } },
|
|
41
|
+
"approval_ref": { "type": ["string", "null"] }
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
44
|
},
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
# Subagent 协作规则
|
|
2
2
|
|
|
3
|
-
Subagent
|
|
3
|
+
Subagent 和其它运行时实例只接收边界清晰的任务包。主控数字人负责仓库身份、门禁计算、Ticket 状态、Git checkpoint 和完成结论。数字人角色、`runtime_id` 与 Explorer / Drafter / Worker / Reviewer / Verifier 执行态正交,任务包必须同时写明。
|
|
4
|
+
|
|
5
|
+
写入范围不得与其他执行者重叠;实现者不得同时担任同一切片的独立审查者,也不得会签自己起草的资产。写隔离以任务包为准。某运行时若共享磁盘或会话,不得把不同实例当成安全边界。
|
|
4
6
|
|
|
5
7
|
## 任务包
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
每个任务包必须写明数字人角色 ID、`runtime_id`、执行态、从 `docs/agents/digital-human-roles.yaml` 复制的 `core_skills` / `forbidden_skills`(可用 `taskPackageDefaults`)、输入资产、目标、允许写路径、禁止事项、验收标准、验证命令和汇合方式。禁止手写第二套技能包。
|
|
8
10
|
|
|
9
11
|
## 汇合
|
|
10
12
|
|
|
11
|
-
返回结果至少包括变更文件、证据文件、实际执行的命令、结果、延期 seam、drift / violation / new impacts
|
|
13
|
+
返回结果至少包括变更文件、证据文件、实际执行的命令、结果、延期 seam、drift / violation / new impacts 和建议下一路由。主控必须重新执行 fresh verification,并在集中 checkpoint 中保留阶段因果。会签写入 `docs/.scratch/<feature>/gates/<gate-id>-approval.yaml`(形状见 `docs/templates/approval-record-template.yaml`),不能用聊天表情代替。恢复前校验 `scripts/verify-approval-record`。
|
|
@@ -14,6 +14,8 @@ gates:
|
|
|
14
14
|
<stable-gate-id>:
|
|
15
15
|
status: <not-evaluated|blocked|ready-for-human|approved|stale|not-applicable>
|
|
16
16
|
reason: <why this status applies>
|
|
17
|
+
evidence_refs: []
|
|
18
|
+
approval_ref: <docs/.scratch/<feature>/gates/<gate-id>-approval.yaml when approved countersign gate>
|
|
17
19
|
phase_boundary:
|
|
18
20
|
decision: <continue|clear|handoff|subagent|compact>
|
|
19
21
|
reason: <decision evidence>
|
|
@@ -41,4 +43,4 @@ blockers: []
|
|
|
41
43
|
rollback: []
|
|
42
44
|
```
|
|
43
45
|
|
|
44
|
-
阶段 checkpoint
|
|
46
|
+
阶段 checkpoint 只在会签暂停、handoff、进入实现、合并或发布边界集中回写;出现阻塞、责任人变化或资产单独批准时立即回写,并保留阶段因果。`paused-human-gate` 表示等待 YAML `gate_policy` 指定的会签人(数字人或生物人),不是「必须是生物人」。会签桶内门禁标为 `approved` 时必须有可读的 `approval_ref`。
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
schema_version: 1
|
|
2
|
+
gate_id: gate.spec-baseline-approved
|
|
3
|
+
decision: approved
|
|
4
|
+
actor_kind: digital-human
|
|
5
|
+
role_id: role.product-manager
|
|
6
|
+
runtime_id: runtime.generic
|
|
7
|
+
runtime_instance_ref: "runtime.generic:role.product-manager"
|
|
8
|
+
principal_ref: "instance:role.product-manager"
|
|
9
|
+
drafter_role_id: role.requirements-manager
|
|
10
|
+
countersigner_role_ids:
|
|
11
|
+
- role.product-manager
|
|
12
|
+
evidence_refs: []
|
|
13
|
+
biological_veto: false
|
|
14
|
+
notes: 会签必须可读取;起草者不得出现在 countersigner_role_ids。运行时表情/reaction 无效。
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# 数字人运行时 Profile:<数字人角色>
|
|
2
|
+
|
|
3
|
+
> 从 `docs/agents/digital-human-roles.yaml` 复制 title / description / skill。不要手写第二套职责。先选 `runtime_id`,再按该运行时适配器落地。
|
|
4
|
+
|
|
5
|
+
## 绑定
|
|
6
|
+
|
|
7
|
+
| 字段 | 内容 |
|
|
8
|
+
|---|---|
|
|
9
|
+
| 数字人角色 ID | `role.` |
|
|
10
|
+
| 运行时 | `runtime.generic` / `runtime.skill-projection` / `runtime.grok` / 新增适配器 |
|
|
11
|
+
| title | YAML `title` |
|
|
12
|
+
| description | YAML `description` 全文,加上本 `project-instance` 仓库路径 |
|
|
13
|
+
| 兼任 | 仅主控默认兼任 `role.project-manager`,直到 `dual_hat_split_when` |
|
|
14
|
+
| 仓库路径 | 本 `project-instance` 的 git 根路径 |
|
|
15
|
+
|
|
16
|
+
## Skills
|
|
17
|
+
|
|
18
|
+
- 启用:YAML `core_skills`(投影根从 `.agents/skills` 加载同名 skill)
|
|
19
|
+
- 保持关闭:YAML `forbidden_skills`
|
|
20
|
+
- 账户或客户端能发现更多 skill,不等于该数字人可用
|
|
21
|
+
|
|
22
|
+
## `project-instance` 绑定清单
|
|
23
|
+
|
|
24
|
+
模板仓只 `publish-singleton-profiles`。实例仓按本表 duplicate,禁止按功能再拆实例。外部 `create-yss-spec` 尚未接管此步骤。
|
|
25
|
+
|
|
26
|
+
- [ ] 从 YAML 复制 `title`、`description`、`core_skills`、`forbidden_skills`,不手写第二套职责
|
|
27
|
+
- [ ] 选择一个 `runtime_id`(`runtime.generic` / `runtime.skill-projection` / `runtime.grok`)
|
|
28
|
+
- [ ] `description` 末尾写明本仓库路径
|
|
29
|
+
- [ ] 会签文件落在 `docs/.scratch/<feature>/gates/<gate-id>-approval.yaml`
|
|
30
|
+
- [ ] 未命中 `dual_hat_split_when` 时,主控与项目经理共用同一实例
|
|
31
|
+
|
|
32
|
+
## 协同
|
|
33
|
+
|
|
34
|
+
- 人默认只跟主控说话。
|
|
35
|
+
- 逻辑协作组以 YAML `stage_groups` 为准。
|
|
36
|
+
- 当前运行时若声明了 `max_collaboration_group_size` 且 `overflow=one-to-one-handoff`,超员时改 1:1,不改逻辑组。
|
|
37
|
+
- 会签按 YAML `gate_policy` 写 `docs/templates/approval-record-template.yaml`,填 `runtime_id` 与 `principal_ref`。恢复前跑 `scripts/verify-approval-record`。
|
|
38
|
+
- 权威产物写 git。
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Grok Bot Profile:<数字人角色>
|
|
2
|
+
|
|
3
|
+
> 这是 `runtime.grok` 适配模板。角色职责仍以 `docs/agents/digital-human-roles.yaml` 为准。通用流程见 `docs/templates/digital-human-runtime-profile-template.md`。
|
|
4
|
+
|
|
5
|
+
## Profile
|
|
6
|
+
|
|
7
|
+
| 字段 | 内容 |
|
|
8
|
+
|---|---|
|
|
9
|
+
| 数字人角色 ID | `role.` |
|
|
10
|
+
| runtime_id | `runtime.grok` |
|
|
11
|
+
| Grok title | YAML `title` |
|
|
12
|
+
| Description | YAML `description` 全文,加上本 `project-instance` 仓库路径 |
|
|
13
|
+
| 兼任 | 仅主控默认兼任 `role.project-manager`,直到 `dual_hat_split_when` |
|
|
14
|
+
|
|
15
|
+
## Skills
|
|
16
|
+
|
|
17
|
+
- 在 Grok **Settings → Plugins → Yours** 仅为该 Bot 启用 `core_skills`
|
|
18
|
+
- `forbidden_skills` 保持关闭
|
|
19
|
+
|
|
20
|
+
## Grok 约束
|
|
21
|
+
|
|
22
|
+
- 群聊 2–6 人。逻辑协作组更大时用 1:1 异步交接,不要改 YAML `stage_groups`。
|
|
23
|
+
- 全部 Bot 共享云计算机。写范围只写在任务包里。
|
|
24
|
+
- 发邮件、改生产等走 Grok Allow;不等于生命周期门禁已过。会签写 git 记录并跑 `scripts/verify-approval-record`。
|
|
@@ -275,9 +275,9 @@ owner: ai
|
|
|
275
275
|
|
|
276
276
|
## 6. Subagent 执行计划
|
|
277
277
|
|
|
278
|
-
| task_id | subagent 角色 | 责任范围 | 允许修改文件 / 模块 | 禁止事项 | 输出回填位置 |
|
|
279
|
-
|
|
280
|
-
| | Explorer / Drafter / Worker / Reviewer / Verifier | frontend / backend / test / review /
|
|
278
|
+
| task_id | 数字人角色 | runtime_id | core_skills(从角色表复制) | subagent 角色 | 责任范围 | 允许修改文件 / 模块 | 禁止事项 | 输出回填位置 |
|
|
279
|
+
|---|---|---|---|---|---|---|---|---|
|
|
280
|
+
| | role.frontend-engineer | runtime.skill-projection | 从 YAML `core_skills` 复制 | Explorer / Drafter / Worker / Reviewer / Verifier | frontend / backend / test / review / docs | | 不得 Freeze / 不得覆盖他人改动 / 不得会签自己的草稿 | |
|
|
281
281
|
|
|
282
282
|
| 并行风险 | 缓解措施 | 合并负责人 | 状态 |
|
|
283
283
|
|---|---|---|---|
|
|
@@ -46,6 +46,14 @@ Status: ready-for-human
|
|
|
46
46
|
- Verification:`docs/.scratch/<feature>/verification/`
|
|
47
47
|
- Vertical slices:`docs/.scratch/<feature>/issues/`
|
|
48
48
|
|
|
49
|
+
## 会签
|
|
50
|
+
|
|
51
|
+
会签记录写在 `docs/.scratch/<feature>/gates/<gate-id>-approval.yaml`。会签桶内门禁标为 `approved` 前必须通过 `scripts/verify-approval-record`。
|
|
52
|
+
|
|
53
|
+
| 门禁 | 记录路径 | 会签角色 | 状态 |
|
|
54
|
+
|---|---|---|---|
|
|
55
|
+
| | `docs/.scratch/<feature>/gates/<gate-id>-approval.yaml` | 见 `docs/agents/digital-human-roles.yaml` | pending / approved / blocked / not-applicable |
|
|
56
|
+
|
|
49
57
|
## 阻塞关系
|
|
50
58
|
|
|
51
59
|
- 无 / 被 `<ticket-path>` 阻塞
|
|
@@ -17,6 +17,10 @@ owner: ai
|
|
|
17
17
|
| 对应门禁 | |
|
|
18
18
|
| Ticket / MR / PR | |
|
|
19
19
|
| 主控 Agent | |
|
|
20
|
+
| 数字人角色 | `role.` 见 `docs/agents/digital-human-roles.yaml` |
|
|
21
|
+
| runtime_id | `runtime.generic` / `runtime.skill-projection` / `runtime.grok` |
|
|
22
|
+
| core_skills | 从角色表复制,禁止手写 |
|
|
23
|
+
| forbidden_skills | 从角色表复制,禁止手写 |
|
|
20
24
|
| subagent 角色 | Explorer / Drafter / Worker / Reviewer / Verifier |
|
|
21
25
|
| 任务类型 | explore / draft / work / review / verify |
|
|
22
26
|
|
|
@@ -53,6 +53,7 @@ Status: ready-for-human
|
|
|
53
53
|
| contract_ref | |
|
|
54
54
|
| Router 状态 | draft / blocked / ready-for-lifecycle-review |
|
|
55
55
|
| 生命周期批准状态 | pending / approved / rejected |
|
|
56
|
+
| suggested_owner_role_id | `role.frontend-engineer` / `role.backend-engineer` / `role.test-engineer`(Router 建议,编排器派活) |
|
|
56
57
|
| Build Architecture Checklist | |
|
|
57
58
|
|
|
58
59
|
> Router 不得自行将合同批准或将本 Ticket 推进为 `ready-for-agent`。只有生命周期编排器核验并持久化当前版本合同、清除阻塞边后,才能推进状态。
|
|
@@ -107,6 +108,12 @@ Status: ready-for-human
|
|
|
107
108
|
|
|
108
109
|
出现 `drift`、`violation` 或非空 `new_impacts` 时暂停受影响工作单元,不得先完成代码再补合同;更新合同版本并通过生命周期审查后才能恢复。
|
|
109
110
|
|
|
111
|
+
## 会签
|
|
112
|
+
|
|
113
|
+
| 门禁 | 记录路径 | 会签角色 | 状态 |
|
|
114
|
+
|---|---|---|---|
|
|
115
|
+
| | `docs/.scratch/<feature>/gates/<gate-id>-approval.yaml` | 见 `docs/agents/digital-human-roles.yaml` | pending / approved / blocked / not-applicable |
|
|
116
|
+
|
|
110
117
|
## 状态
|
|
111
118
|
|
|
112
119
|
`ready-for-agent`
|
|
@@ -197,6 +197,8 @@ agents 是角色分工,不是越多越好。只有当任务边界清楚、上
|
|
|
197
197
|
|
|
198
198
|
Agent 交接必须写成自包含 brief,不能只丢一句“继续上面的”。推荐使用 `docs/templates/agent-brief-template.md`。
|
|
199
199
|
|
|
200
|
+
职称数字人(前端工程师、产品经理等)是叠加在上表职能分工上的配置,权威清单和会签级别见 `docs/agents/digital-human-roles.yaml`。不要用职称实例替换生命周期编排器。阶段协作组是逻辑成员;Grok 等平台的群聊人数上限只约束该运行时如何开会,不改角色表。
|
|
201
|
+
|
|
200
202
|
Agent brief 最少包含:
|
|
201
203
|
|
|
202
204
|
- 背景和相关资产路径。
|