@namewta/speculo 1.0.18 → 1.0.20
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 +8 -7
- package/THIRD-PARTY-NOTICES.md +33 -0
- package/dist/src/agent-files.js +2 -2
- package/dist/src/agent-files.js.map +1 -1
- package/dist/src/agent-skills.d.ts +81 -0
- package/dist/src/agent-skills.js +530 -0
- package/dist/src/agent-skills.js.map +1 -0
- package/dist/src/cli.js +11 -3
- package/dist/src/cli.js.map +1 -1
- package/dist/src/config.js +5 -3
- package/dist/src/config.js.map +1 -1
- package/dist/src/doctor.js +7 -2
- package/dist/src/doctor.js.map +1 -1
- package/dist/src/index.d.ts +8 -0
- package/dist/src/index.js +23 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/manifest.d.ts +9 -0
- package/dist/src/manifest.js +45 -7
- package/dist/src/manifest.js.map +1 -1
- package/dist/src/refresh.js +40 -0
- package/dist/src/refresh.js.map +1 -1
- package/dist/src/structured.js +15 -4
- package/dist/src/structured.js.map +1 -1
- package/dist/src/transaction.d.ts +24 -3
- package/dist/src/transaction.js +191 -12
- package/dist/src/transaction.js.map +1 -1
- package/package.json +10 -4
- package/scripts/validate-skills.mjs +56 -0
- package/template/AGENTS.md +1 -1
- package/template/CLAUDE.md +1 -1
- package/template/canonical/canonical-specdev-goal-plan.md +158 -30
- package/template/canonical/canonical-specdev-grill-with-docs.md +155 -33
- package/template/canonical/canonical-specdev-spec.md +162 -161
- package/template/canonical/canonical-specdev-tickets.md +155 -29
- package/template/canonical/canonical-specdev-wayfinder.md +144 -29
- package/template/commands/handoff.md +16 -0
- package/template/commands/retro.md +12 -10
- package/template/skills/archive-and-consolidate/SKILL.md +163 -7
- package/template/skills/archive-and-consolidate/references/cleanup-rules.md +1 -1
- package/template/skills/docs-sync/references/agents/claude-redirect.md +8 -8
- package/template/skills/docs-sync/references/agents/content-contract.md +1 -1
- package/template/skills/docs-sync/references/agents/manifest-discovery.md +7 -7
- package/template/skills/docs-sync/references/agents/role-classification.md +4 -4
- package/template/skills/docs-sync/references/agents-contract.md +1 -1
- package/template/skills/engineering-standards-builder/SKILL.md +149 -9
- package/template/skills/engineering-standards-builder/agents/openai.yaml +2 -0
- package/template/skills/engineering-standards-builder/manifest.txt +2 -1
- package/template/skills/engineering-standards-builder/references/rules/09-mechanical-guardrails.md +9 -0
- package/template/skills/engineering-standards-builder/scripts/validate-builder.mjs +4 -7
- package/template/skills/git-history-squash/SKILL.md +87 -11
- package/template/skills/git-history-squash/agents/openai.yaml +2 -0
- package/template/skills/optimize-codex-config/SKILL.md +71 -11
- package/template/skills/retrospective/SKILL.md +43 -0
- package/template/skills/{speculo-retro → retrospective}/references/friction-taxonomy.md +22 -13
- package/template/skills/{speculo-retro → retrospective}/references/issue-drafting-sop.md +13 -21
- package/template/skills/source-code-zip/SKILL.md +44 -8
- package/template/skills/source-code-zip/references/{entry-procedure.md → cli-reference.md} +0 -43
- package/template/skills/upstream-fork-sync/SKILL.md +71 -8
- package/template/skills/{writing-great-skills → writing-for-agents}/GLOSSARY.md +1 -1
- package/template/skills/writing-for-agents/SKILL.md +22 -0
- package/template/skills/writing-for-agents/agents/openai.yaml +2 -0
- package/template/skills/{writing-great-skills/references/entry-procedure.md → writing-for-agents/references/authoring-principles.md} +2 -9
- package/template/workflows/learning/A-archive/A-archive.md +2 -5
- package/template/workflows/learning/A-assess-and-plan/A-assess-and-plan.md +2 -5
- package/template/workflows/learning/C-consolidate/C-consolidate.md +2 -5
- package/template/workflows/learning/G-goal/G-goal.md +5 -23
- package/template/workflows/learning/H-homework/H-homework.md +2 -5
- package/template/workflows/learning/I-init-setup/I-init-setup.md +4 -9
- package/template/workflows/learning/L-lesson/L-lesson.md +2 -5
- package/template/workflows/learning/Q-question/Q-question.md +16 -8
- package/template/workflows/learning/Q-question/inquiry-template.md +2 -0
- package/template/workflows/learning/Q-question/tools/validate-inquiry.mjs +112 -0
- package/template/workflows/learning/R-review/R-review.md +3 -6
- package/template/workflows/learning/README.md +2 -2
- package/template/workflows/learning/common/rules/knowledge-organization.md +1 -1
- package/template/workflows/learning/common/rules/mastery-policy.md +1 -1
- package/template/workflows/learning/common/skills/socratic-questioning/SKILL.md +1 -1
- package/template/workflows/ops/D-project-deploy/D-project-deploy.md +6 -2
- package/template/workflows/ops/H-host-manage/H-host-manage.md +10 -18
- package/template/workflows/ops/H-host-manage/references/host-profiles.md +21 -0
- package/template/workflows/ops/I-initialize/I-initialize.md +4 -4
- package/template/workflows/ops/README.md +22 -84
- package/template/workflows/ops/S-server-connect/S-server-connect.md +3 -3
- package/template/workflows/ops/V-inventory-view/V-inventory-view.md +2 -2
- package/template/workflows/ops/common/rules/deployment-layout.md +51 -0
- package/template/workflows/ops/common/rules/recovery.md +6 -0
- package/template/workflows/ops/common/rules/server-onboarding.md +6 -0
- package/template/workflows/ops/common/tests/test_ops.mjs +5 -8
- package/template/workflows/ops/common/tests/test_ops_bootstrap.mjs +71 -14
- package/template/workflows/ops/common/tests/test_ops_workspace.mjs +17 -8
- package/template/workflows/ops/common/tools/opslib/bootstrap.mjs +4 -4
- package/template/workflows/ops/common/tools/opslib/transport.mjs +3 -3
- package/template/workflows/person/M-mao-zedong-cognitive-os/M-mao-zedong-cognitive-os.md +13 -68
- package/template/workflows/person/S-steelman-deliberation/S-steelman-deliberation.md +11 -123
- package/template/workflows/person/S-steelman-deliberation/references/state-and-publication.md +86 -0
- package/template/workflows/specdev/A-archive-and-consolidate/A-archive-and-consolidate.md +2 -17
- package/template/workflows/specdev/A-archive-and-consolidate/consolidation-interview.md +13 -4
- package/template/workflows/specdev/C-code-review/C-code-review.md +4 -15
- package/template/workflows/specdev/C-code-review/code-review-template.md +4 -0
- package/template/workflows/specdev/D-diagnose-bugs/D-diagnose-bugs.md +4 -20
- package/template/workflows/specdev/G-grill-with-docs/G-grill-with-docs.md +2 -2
- package/template/workflows/specdev/G-grill-with-docs/references/interview-procedure.md +6 -6
- package/template/workflows/specdev/I-implement/I-implement.md +2 -2
- package/template/workflows/specdev/I-implement/evidence-template.md +8 -0
- package/template/workflows/specdev/I-implement/references/implementation-procedure.md +9 -43
- package/template/workflows/specdev/I-implement/tdd-rules.md +4 -0
- package/template/workflows/specdev/I-init-setup/I-init-setup.md +16 -117
- package/template/workflows/specdev/I-init-setup/config-template.json +5 -1
- package/template/workflows/specdev/I-init-setup/references/first-setup.md +46 -0
- package/template/workflows/specdev/INDEX.md +2 -2
- package/template/workflows/specdev/L-learn-change/L-learn-change.md +11 -89
- package/template/workflows/specdev/L-learn-change/references/lesson-format.md +47 -0
- package/template/workflows/specdev/P-goal-plan/P-goal-plan.md +2 -2
- package/template/workflows/specdev/P-goal-plan/planning-modes.md +1 -1
- package/template/workflows/specdev/P-prototype/P-prototype.md +7 -17
- package/template/workflows/specdev/P-prototype/logic-protocol.md +11 -0
- package/template/workflows/specdev/P-prototype/logic-template.md +27 -0
- package/template/workflows/specdev/P-prototype/project-preview-protocol.md +9 -0
- package/template/workflows/specdev/R-retro/R-retro.md +26 -0
- package/template/workflows/specdev/R-retro/retro-template.md +27 -0
- package/template/workflows/specdev/R-review-architecture/R-review-architecture.md +19 -57
- package/template/workflows/specdev/R-review-architecture/architecture-review-template.md +2 -1
- package/template/workflows/specdev/R-review-architecture/references/selected-design.md +23 -0
- package/template/workflows/specdev/R-review-architecture/review-rubric.md +2 -2
- package/template/workflows/specdev/README.md +17 -6
- package/template/workflows/specdev/S-spec/S-spec.md +13 -136
- package/template/workflows/specdev/T-tickets/T-tickets.md +6 -2
- package/template/workflows/specdev/T-triage/T-triage.md +32 -141
- package/template/workflows/specdev/T-triage/capture-protocol.md +1 -1
- package/template/workflows/specdev/T-triage/ci-security-protocol.md +11 -0
- package/template/workflows/specdev/T-triage/intake-protocol.md +29 -4
- package/template/workflows/specdev/T-triage/pr-delivery-protocol.md +13 -0
- package/template/workflows/specdev/T-triage/pr-record-template.md +39 -0
- package/template/workflows/specdev/T-triage/publish-protocol.md +1 -1
- package/template/workflows/specdev/T-triage/queue-protocol.md +7 -0
- package/template/workflows/specdev/T-triage/reconcile-protocol.md +1 -1
- package/template/workflows/specdev/T-triage/references/issue-pr-policy.md +23 -0
- package/template/workflows/specdev/T-triage/references/release-authentication.md +9 -0
- package/template/workflows/specdev/T-triage/references/release-notes-injection.md +21 -0
- package/template/workflows/specdev/T-triage/references/workflow-yaml-reference.md +37 -0
- package/template/workflows/specdev/T-triage/release-preflight.md +13 -0
- package/template/workflows/specdev/T-triage/release-protocol.md +12 -0
- package/template/workflows/specdev/T-triage/release-recovery.md +18 -0
- package/template/workflows/specdev/T-triage/remote-operations.md +25 -0
- package/template/workflows/specdev/T-triage/scripts/github-transport.mjs +208 -0
- package/template/workflows/specdev/T-triage/source-template.md +7 -0
- package/template/workflows/specdev/T-triage/triage-run-template.md +34 -0
- package/template/workflows/specdev/T-triage/triage-template.md +4 -1
- package/template/workflows/specdev/W-wayfinder/W-wayfinder.md +2 -2
- package/template/workflows/specdev/common/rules/artifact-contract.md +7 -0
- package/template/workflows/specdev/common/rules/change-completion.md +6 -0
- package/template/workflows/specdev/common/rules/deployment-handoff.md +23 -0
- package/template/workflows/specdev/common/rules/workflow-routing.md +6 -0
- package/template/workflows/specdev/common/rules/workflow-state-and-lifecycle.md +1 -1
- package/template/workflows/specdev/common/schemas/config.schema.json +137 -26
- package/template/workflows/specdev/common/schemas/logic-prototype.schema.json +62 -0
- package/template/workflows/specdev/common/schemas/pull-request.schema.json +90 -0
- package/template/workflows/specdev/common/schemas/retrospective.schema.json +58 -0
- package/template/workflows/specdev/common/schemas/triage-run.schema.json +149 -0
- package/template/workflows/specdev/common/schemas/triage.schema.json +117 -15
- package/template/workflows/specdev/common/skills/code-review/SKILL.md +5 -4
- package/template/workflows/specdev/common/skills/code-review/references/result-reuse.md +15 -0
- package/template/workflows/specdev/common/tools/delivery-artifacts.mjs +95 -0
- package/template/workflows/specdev/common/tools/validate-specdev.mjs +60 -19
- package/template/workflows/specdev/runtime-contract.json +4 -2
- package/template/skills/archive-and-consolidate/references/entry-procedure.md +0 -178
- package/template/skills/docs-sync/references/entry-procedure.md +0 -3
- package/template/skills/engineering-standards-builder/references/entry-procedure.md +0 -154
- package/template/skills/git-history-squash/references/entry-procedure.md +0 -94
- package/template/skills/github-npm-ops/SKILL.md +0 -19
- package/template/skills/github-npm-ops/references/ci-and-security-ops.md +0 -178
- package/template/skills/github-npm-ops/references/entry-procedure.md +0 -25
- package/template/skills/github-npm-ops/references/failure-recovery.md +0 -123
- package/template/skills/github-npm-ops/references/issue-pr-triage.md +0 -219
- package/template/skills/github-npm-ops/references/issue-transport.md +0 -26
- package/template/skills/github-npm-ops/references/package-json-checklist.md +0 -171
- package/template/skills/github-npm-ops/references/preflight-checklist.md +0 -39
- package/template/skills/github-npm-ops/references/publish-detection.md +0 -68
- package/template/skills/github-npm-ops/references/release-notes-injection.md +0 -238
- package/template/skills/github-npm-ops/references/release-pipeline.md +0 -108
- package/template/skills/github-npm-ops/references/setup-npm-token.md +0 -63
- package/template/skills/github-npm-ops/references/troubleshooting-playbook.md +0 -293
- package/template/skills/github-npm-ops/references/version-bump-flow.md +0 -217
- package/template/skills/github-npm-ops/references/workflow-yaml-reference.md +0 -268
- package/template/skills/github-npm-ops/scripts/issue-transport.mjs +0 -227
- package/template/skills/optimize-codex-config/references/entry-procedure.md +0 -78
- package/template/skills/speculo-retro/SKILL.md +0 -19
- package/template/skills/speculo-retro/references/entry-procedure.md +0 -23
- package/template/skills/upstream-fork-sync/references/entry-procedure.md +0 -78
- package/template/skills/writing-great-skills/SKILL.md +0 -23
- /package/template/skills/{writing-great-skills → writing-for-agents}/references/document-contract.md +0 -0
- /package/template/workflows/specdev/{G-grill-with-docs → common/rules}/adr-format.md +0 -0
- /package/template/workflows/specdev/{G-grill-with-docs → common/rules}/context-format.md +0 -0
- /package/template/workflows/specdev/{I-implement → common/rules}/design-it-twice.md +0 -0
- /package/template/workflows/specdev/{G-grill-with-docs/domain-modeling-rules.md → common/rules/domain-modeling.md} +0 -0
|
@@ -14,150 +14,29 @@
|
|
|
14
14
|
- 本地只读 Goal 控制器和 Plan 合同校验库不随网页快照提供,不能把其名称当作可执行命令。网页执行者按内联 map-control/调用合同逐项计算依赖与门禁;缺少真实项目 Skill 源或执行能力时阻塞对应任务,不声称自动验证通过。
|
|
15
15
|
- 提交、推送、合并、部署、发布、归档移动和不可逆迁移仍需用户明确授权。
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
激活后读取 SpecDev 的激活合同 与 下方 `<activation-and-memory>` 标签。本 Work 综合已有事实,定义为什么、为谁、系统应表现为何,不另开宽泛访谈,也不写逐文件施工计划。
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
## 形成行为合同
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
1. **Grounding**:定位用户目标与当前代码、测试、接口、schema、配置和运行事实。按存在情况定位 change 的来源、分诊、诊断、LOG、CONTEXT、ADR 及相关永久领域词汇/决策;只回读命中原文,可选工件缺失静默跳过,不当作已确认事实。按 下方 `<planning-principles>` 标签 区分可发现事实、高影响偏好和可逆实现细节;冲突按 下方 `<artifact-contract>` 标签 返回权威 owner。
|
|
22
|
+
2. **关闭必要决定**:只确认会改变外部行为、接口、数据、兼容、安全、迁移、发布或验收的高价值问题。广泛取舍未定时返回 “设计访谈能力”;陌生外部依赖或版本行为通过 下方 `<research>` 标签 查证。不虚构错误码、性能阈值、法规或迁移政策。
|
|
23
|
+
3. **写入合同**:以 下方 `<spec-template>` 标签 写入 `specdev/changes/{change}/spec.md`。模板拥有问题/用户/成功、正常/边界/失败/角色/状态行为、IN/REUSE/OUT、保持项、接口数据与 NFR 的完整结构及 `US-### / AC-### / NFR-### / DEC-### / OOS-###` 稳定编号。实现约束仅锁定会影响公共合同、兼容、安全或验收的决定。
|
|
24
|
+
4. **绑定验证接缝**:优先复用稳定接缝,通常从用户端到端行为、公共 API/CLI、事件/集成、稳定单元接缝选择;按实际风险与项目先例决定,不机械追求最高测试层级。每个接缝注明入口类型/位置、触发方式、可观察结果、覆盖 AC 和实际测试先例/命令。选择显著改变可测试性、事故半径或范围时聚焦确认;可由已有代码推导时记录依据即可。证据遵守 下方 `<evidence-and-verification>` 标签。
|
|
25
|
+
5. **Readiness**:对照 下方 `<spec-readiness>` 标签 与 下方 `<spec-schema>` 标签。高影响未决问题使 `ready_for_tickets: false`;低影响、可逆默认值可作为带验证方式的显式假设。每个 AC 必须可观察、可判定、绑定接缝;不适用影响写明理由。
|
|
22
26
|
|
|
23
|
-
|
|
24
|
-
2. 再读取 下方 `<activation-and-memory>` 标签,按当前分支、状态和关键词定位最小相关工件。
|
|
25
|
-
3. 只在本 Work 明确要求恢复、冲突、执行安全或归档证据时扩展为全量读取;缺少匹配证据或 owner/gateway 时停止受影响分支。
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
## 输入
|
|
29
|
-
|
|
30
|
-
按存在情况读取:
|
|
31
|
-
|
|
32
|
-
- `specdev/changes/{change}/source.md`
|
|
33
|
-
- `specdev/changes/{change}/triage.md`
|
|
34
|
-
- `specdev/changes/{change}/diagnosis.md`
|
|
35
|
-
- `specdev/changes/{change}/LOG.md`
|
|
36
|
-
- `specdev/changes/{change}/CONTEXT.md`
|
|
37
|
-
- `specdev/changes/{change}/ADR.md`
|
|
38
|
-
- `specdev/context/`
|
|
39
|
-
- `specdev/adr/`
|
|
40
|
-
- 当前代码、测试、接口、schema、配置和运行事实。
|
|
41
|
-
|
|
42
|
-
不存在的可选工件静默跳过,不得把缺失内容当作已确认事实。
|
|
43
|
-
|
|
44
|
-
## 流程
|
|
45
|
-
|
|
46
|
-
### 1. Grounding 与事实探索
|
|
47
|
-
|
|
48
|
-
1. 汇总用户目标、受众、问题、限制和已有决定;
|
|
49
|
-
2. 只读探索相关代码、测试、配置、schema 和相邻实现;
|
|
50
|
-
3. 使用 `specdev/changes/{change}/CONTEXT.md` 与 `specdev/context/` 的术语,不自创冲突名称;
|
|
51
|
-
4. 使用 `specdev/changes/{change}/ADR.md` 与 `specdev/adr/` 的已接受决策;
|
|
52
|
-
5. 按 下方 `<planning-principles>` 标签 区分可发现事实、高影响偏好和低影响实现细节;
|
|
53
|
-
6. 按 下方 `<artifact-contract>` 标签 处理冲突;
|
|
54
|
-
7. 外部依赖、标准或版本行为不清楚时使用 下方 `<research>` 标签。
|
|
55
|
-
|
|
56
|
-
广泛的产品或架构取舍仍未确定时,返回 “设计访谈能力”;不要在 Spec 中用猜测补齐。
|
|
57
|
-
|
|
58
|
-
### 2. 定义问题、用户和成功
|
|
59
|
-
|
|
60
|
-
从用户或调用者视角写明:
|
|
61
|
-
|
|
62
|
-
- 当前问题与影响;
|
|
63
|
-
- 目标用户、调用者或运营角色;
|
|
64
|
-
- 主要场景和现有痛点;
|
|
65
|
-
- 成功状态与可观察结果;
|
|
66
|
-
- 明确非目标。
|
|
67
|
-
|
|
68
|
-
目标不能只写“新增模块”“修改接口”或“完成 Ticket”。
|
|
69
|
-
|
|
70
|
-
### 3. 定义外部行为与范围
|
|
71
|
-
|
|
72
|
-
写明:
|
|
73
|
-
|
|
74
|
-
- 解决方案摘要;
|
|
75
|
-
- 正常路径;
|
|
76
|
-
- 边界和失败路径;
|
|
77
|
-
- 稳定错误行为;
|
|
78
|
-
- 状态转换和不变量;
|
|
79
|
-
- IN、REUSE、OUT;
|
|
80
|
-
- 需要保持的既有行为;
|
|
81
|
-
- 公共接口、数据、安全、迁移和运维影响。
|
|
82
|
-
|
|
83
|
-
局部文件组织、辅助函数和逐行实现不进入 Spec。
|
|
84
|
-
|
|
85
|
-
### 4. 设计验证接缝
|
|
86
|
-
|
|
87
|
-
优先复用现有稳定接缝。通常优先顺序是用户端到端行为、公共 API 或 CLI、事件或集成接缝、稳定单元接缝;实际层级由风险和项目先例决定,不机械追求最高层测试。
|
|
88
|
-
|
|
89
|
-
每个接缝写明:
|
|
90
|
-
|
|
91
|
-
- 入口位置和类型;
|
|
92
|
-
- 触发方式;
|
|
93
|
-
- 可观察结果;
|
|
94
|
-
- 覆盖哪些验收合同;
|
|
95
|
-
- 现有测试先例或命令。
|
|
96
|
-
|
|
97
|
-
若接缝选择会显著改变可测试性、事故半径或实现范围,向用户做一次聚焦确认;接缝可由代码和已有测试明确推导时,直接采用并记录依据,不为形式提问。
|
|
98
|
-
|
|
99
|
-
证据规则见 下方 `<evidence-and-verification>` 标签。
|
|
100
|
-
|
|
101
|
-
### 5. 编写 Spec
|
|
102
|
-
|
|
103
|
-
使用 下方 `<spec-template>` 标签 写入 `specdev/changes/{change}/spec.md`。
|
|
104
|
-
|
|
105
|
-
稳定编号:
|
|
106
|
-
|
|
107
|
-
- `US-###`:用户故事;
|
|
108
|
-
- `AC-###`:验收合同;
|
|
109
|
-
- `NFR-###`:非功能要求;
|
|
110
|
-
- `DEC-###`:已锁定实现约束;
|
|
111
|
-
- `OOS-###`:明确超出范围。
|
|
112
|
-
|
|
113
|
-
不得虚构错误码、性能阈值、schema、迁移政策、法规或合规要求。项目代码证据使用项目根相对路径。
|
|
114
|
-
|
|
115
|
-
### 6. Readiness Review
|
|
116
|
-
|
|
117
|
-
加载 下方 `<spec-readiness>` 标签 检查 `specdev/changes/{change}/spec.md`。
|
|
118
|
-
|
|
119
|
-
任何会改变以下内容的未决问题都会使 `ready_for_tickets: false`:
|
|
120
|
-
|
|
121
|
-
- 外部行为和范围;
|
|
122
|
-
- 公共接口或数据;
|
|
123
|
-
- 安全、隐私、资金或数据完整性;
|
|
124
|
-
- 兼容、迁移和发布约束;
|
|
125
|
-
- 验收合同或验证接缝。
|
|
126
|
-
|
|
127
|
-
低影响、可逆实现默认值可以作为显式假设,但必须有验证方式。
|
|
128
|
-
|
|
129
|
-
### 7. 发布与路由
|
|
130
|
-
|
|
131
|
-
1. 对照 下方 `<spec-schema>` 标签;
|
|
132
|
-
2. 运行:
|
|
27
|
+
## 验证、状态与交接
|
|
133
28
|
|
|
134
29
|
```bash
|
|
135
|
-
node Speculo Node 校验器
|
|
136
|
-
--stage spec \
|
|
137
|
-
specdev/changes/{change}
|
|
30
|
+
node Speculo Node 校验器 --stage spec --repo <project-root> specdev/changes/{change}
|
|
138
31
|
```
|
|
139
32
|
|
|
140
|
-
|
|
141
|
-
4. 汇报主要用户故事、验收合同、范围、验证接缝、风险和 Ready 状态;
|
|
142
|
-
5. 返回 `specdev/changes/{change}/spec.md`、Ready 状态及下一 Work 的完整路径;
|
|
143
|
-
6. 只有用户请求或工作流显式串联时,进入 “拆分 Tickets 阶段”。
|
|
144
|
-
|
|
145
|
-
## 完成标准
|
|
33
|
+
回读真实 Spec、Ready 结论与状态,按激活合同只更新本 change 与全局索引的所属项。返回 Spec 完整路径、主要行为/验收合同、范围、验证接缝、风险、高影响缺口和验证结果。成功完成本 Work 才更新 `works_run` 并清空 `current_work`;可恢复失败保留入口。
|
|
146
34
|
|
|
147
|
-
|
|
148
|
-
- 问题、目标用户、外部行为、范围和非目标明确;
|
|
149
|
-
- 用户故事覆盖主要、边界、错误、角色和状态场景;
|
|
150
|
-
- 每个验收合同可观察、可判定并绑定验证接缝;
|
|
151
|
-
- 公共接口、数据、兼容、安全和迁移已决定或明确不适用;
|
|
152
|
-
- 高影响未决问题与 `ready_for_tickets` 一致;
|
|
153
|
-
- 不包含逐文件施工计划;
|
|
154
|
-
- Spec、Ready 状态和下一 Work 路径已返回;
|
|
155
|
-
- 状态和用户摘要已更新。
|
|
35
|
+
只有用户请求或工作流已显式串联时才进入 “拆分 Tickets 阶段”;产出 Ready Spec 本身不授权实施。
|
|
156
36
|
|
|
157
|
-
##
|
|
37
|
+
## 原型证据
|
|
158
38
|
|
|
159
|
-
|
|
160
|
-
- Ready 检查:下方 `<spec-readiness>` 标签
|
|
39
|
+
可以引用已验证 LOGIC/UI 原型中的行为、边界与已确认决定,记录具体 locator 和验证证据;源码片段可承载设计选择,但不自动成为生产实现。未闭合高影响产品决定返回 G,S 综合已确认设计而不重新开启无关访谈。
|
|
161
40
|
|
|
162
41
|
---
|
|
163
42
|
|
|
@@ -445,6 +324,13 @@ W 的 `specdev/changes/{change}/initiative.json` 只拥有候选 change 的边
|
|
|
445
324
|
|
|
446
325
|
父 `specdev/changes/{change}/tickets-map.md` 是 goal-tickets-map 无状态入口,只引用现有 Implementation Map/Plan;它不能拥有第二份 status、owner 或任务清单。统一 P 拥有生命周期,旧 O 仅保留入口与恢复键。
|
|
447
326
|
|
|
327
|
+
## 新增工件 owner
|
|
328
|
+
|
|
329
|
+
- T:specdev/changes/{change}/pull-requests/PR-###.md 拥有 PR 交付回执;specdev/triage-runs/TRI-###.md 拥有独立远程操作,绝不复用 external_action/publish_action/capture。
|
|
330
|
+
- R-retro:specdev/changes/{change}/retro/RETRO-###.md 拥有活动复盘建议和来源;不成为永久知识。
|
|
331
|
+
- P:specdev/changes/{change}/prototypes/LOGIC-NNN/logic.md 记录逻辑模型与浏览器证据;index.html 是可运行原型,ready 时 hash 与记录一致。
|
|
332
|
+
- 来源更新:specdev/changes/{change}/source.md 冻结后保持不变。T 将后续读取写入 specdev/changes/{change}/sources/SRC-###.md,记录 replaces、固定 SHA/hash、完整性和原 locator,triage 正文选择有效快照;不得把新远程事实自动升级为已接受 Spec。
|
|
333
|
+
|
|
448
334
|
</artifact-contract>
|
|
449
335
|
|
|
450
336
|
<readiness-and-depth>
|
|
@@ -672,7 +558,7 @@ Evidence 原文不出仓库。对 GitHub 的公共投影由 T-triage publish 按
|
|
|
672
558
|
|
|
673
559
|
```json
|
|
674
560
|
{
|
|
675
|
-
"schema_version":
|
|
561
|
+
"schema_version": 6,
|
|
676
562
|
"interaction_language": "zh-CN",
|
|
677
563
|
"artifact_language": "zh-CN",
|
|
678
564
|
"git": {
|
|
@@ -696,6 +582,10 @@ Evidence 原文不出仓库。对 GitHub 的公共投影由 T-triage publish 按
|
|
|
696
582
|
"require_evidence": true,
|
|
697
583
|
"ui_design_default_candidates": 3,
|
|
698
584
|
"ui_design_max_candidates": 4
|
|
585
|
+
},
|
|
586
|
+
"github": {
|
|
587
|
+
"include_external_prs": false,
|
|
588
|
+
"labels": {}
|
|
699
589
|
}
|
|
700
590
|
}
|
|
701
591
|
```
|
|
@@ -707,60 +597,171 @@ Evidence 原文不出仓库。对 GitHub 的公共投影由 T-triage publish 按
|
|
|
707
597
|
```json
|
|
708
598
|
{
|
|
709
599
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
710
|
-
"$id": "urn:speculo:specdev:config:
|
|
600
|
+
"$id": "urn:speculo:specdev:config:v6",
|
|
711
601
|
"title": "SpecDev Configuration",
|
|
712
602
|
"type": "object",
|
|
713
|
-
"required": [
|
|
603
|
+
"required": [
|
|
604
|
+
"schema_version",
|
|
605
|
+
"interaction_language",
|
|
606
|
+
"artifact_language",
|
|
607
|
+
"git",
|
|
608
|
+
"execution",
|
|
609
|
+
"verification",
|
|
610
|
+
"planning",
|
|
611
|
+
"github"
|
|
612
|
+
],
|
|
714
613
|
"properties": {
|
|
715
|
-
"schema_version": {
|
|
716
|
-
|
|
717
|
-
|
|
614
|
+
"schema_version": {
|
|
615
|
+
"const": 6
|
|
616
|
+
},
|
|
617
|
+
"interaction_language": {
|
|
618
|
+
"type": "string",
|
|
619
|
+
"minLength": 1
|
|
620
|
+
},
|
|
621
|
+
"artifact_language": {
|
|
622
|
+
"type": "string",
|
|
623
|
+
"minLength": 1
|
|
624
|
+
},
|
|
718
625
|
"git": {
|
|
719
626
|
"type": "object",
|
|
720
|
-
"required": [
|
|
627
|
+
"required": [
|
|
628
|
+
"default_branch"
|
|
629
|
+
],
|
|
721
630
|
"properties": {
|
|
722
|
-
"default_branch": {
|
|
631
|
+
"default_branch": {
|
|
632
|
+
"type": [
|
|
633
|
+
"string",
|
|
634
|
+
"null"
|
|
635
|
+
]
|
|
636
|
+
}
|
|
723
637
|
},
|
|
724
638
|
"additionalProperties": false
|
|
725
639
|
},
|
|
726
640
|
"execution": {
|
|
727
641
|
"type": "object",
|
|
728
|
-
"required": [
|
|
642
|
+
"required": [
|
|
643
|
+
"max_implementation_agents",
|
|
644
|
+
"max_integration_attempts",
|
|
645
|
+
"deep_ticket_human_approval",
|
|
646
|
+
"shared_path_owner"
|
|
647
|
+
],
|
|
729
648
|
"properties": {
|
|
730
|
-
"max_implementation_agents": {
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
649
|
+
"max_implementation_agents": {
|
|
650
|
+
"type": "integer",
|
|
651
|
+
"minimum": 1
|
|
652
|
+
},
|
|
653
|
+
"max_integration_attempts": {
|
|
654
|
+
"type": "integer",
|
|
655
|
+
"minimum": 1
|
|
656
|
+
},
|
|
657
|
+
"deep_ticket_human_approval": {
|
|
658
|
+
"type": "boolean"
|
|
659
|
+
},
|
|
660
|
+
"shared_path_owner": {
|
|
661
|
+
"type": "string",
|
|
662
|
+
"minLength": 1
|
|
663
|
+
}
|
|
734
664
|
},
|
|
735
665
|
"additionalProperties": false
|
|
736
666
|
},
|
|
737
667
|
"verification": {
|
|
738
668
|
"type": "object",
|
|
739
|
-
"required": [
|
|
669
|
+
"required": [
|
|
670
|
+
"test",
|
|
671
|
+
"typecheck",
|
|
672
|
+
"lint",
|
|
673
|
+
"build"
|
|
674
|
+
],
|
|
740
675
|
"properties": {
|
|
741
|
-
"test": {
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
676
|
+
"test": {
|
|
677
|
+
"type": [
|
|
678
|
+
"string",
|
|
679
|
+
"null"
|
|
680
|
+
]
|
|
681
|
+
},
|
|
682
|
+
"typecheck": {
|
|
683
|
+
"type": [
|
|
684
|
+
"string",
|
|
685
|
+
"null"
|
|
686
|
+
]
|
|
687
|
+
},
|
|
688
|
+
"lint": {
|
|
689
|
+
"type": [
|
|
690
|
+
"string",
|
|
691
|
+
"null"
|
|
692
|
+
]
|
|
693
|
+
},
|
|
694
|
+
"build": {
|
|
695
|
+
"type": [
|
|
696
|
+
"string",
|
|
697
|
+
"null"
|
|
698
|
+
]
|
|
699
|
+
}
|
|
745
700
|
},
|
|
746
701
|
"additionalProperties": true
|
|
747
702
|
},
|
|
748
703
|
"planning": {
|
|
749
704
|
"type": "object",
|
|
750
|
-
"required": [
|
|
705
|
+
"required": [
|
|
706
|
+
"default_depth",
|
|
707
|
+
"require_ready_gate",
|
|
708
|
+
"require_evidence",
|
|
709
|
+
"ui_design_default_candidates",
|
|
710
|
+
"ui_design_max_candidates"
|
|
711
|
+
],
|
|
751
712
|
"properties": {
|
|
752
|
-
"default_depth": {
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
713
|
+
"default_depth": {
|
|
714
|
+
"enum": [
|
|
715
|
+
"lite",
|
|
716
|
+
"standard",
|
|
717
|
+
"deep"
|
|
718
|
+
]
|
|
719
|
+
},
|
|
720
|
+
"require_ready_gate": {
|
|
721
|
+
"type": "boolean"
|
|
722
|
+
},
|
|
723
|
+
"require_evidence": {
|
|
724
|
+
"type": "boolean"
|
|
725
|
+
},
|
|
726
|
+
"ui_design_default_candidates": {
|
|
727
|
+
"type": "integer",
|
|
728
|
+
"minimum": 2,
|
|
729
|
+
"maximum": 4
|
|
730
|
+
},
|
|
731
|
+
"ui_design_max_candidates": {
|
|
732
|
+
"type": "integer",
|
|
733
|
+
"minimum": 2,
|
|
734
|
+
"maximum": 4
|
|
735
|
+
}
|
|
757
736
|
},
|
|
758
737
|
"additionalProperties": true
|
|
738
|
+
},
|
|
739
|
+
"github": {
|
|
740
|
+
"type": "object",
|
|
741
|
+
"required": [
|
|
742
|
+
"include_external_prs",
|
|
743
|
+
"labels"
|
|
744
|
+
],
|
|
745
|
+
"properties": {
|
|
746
|
+
"include_external_prs": {
|
|
747
|
+
"type": "boolean"
|
|
748
|
+
},
|
|
749
|
+
"labels": {
|
|
750
|
+
"type": "object",
|
|
751
|
+
"additionalProperties": {
|
|
752
|
+
"type": "string",
|
|
753
|
+
"minLength": 1
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
},
|
|
757
|
+
"additionalProperties": false
|
|
759
758
|
}
|
|
760
759
|
},
|
|
761
|
-
"allOf": [
|
|
762
|
-
|
|
763
|
-
|
|
760
|
+
"allOf": [
|
|
761
|
+
{
|
|
762
|
+
"$comment": "ui_design_default_candidates <= ui_design_max_candidates is enforced by validate-specdev.mjs because JSON Schema cannot compare sibling numeric values."
|
|
763
|
+
}
|
|
764
|
+
],
|
|
764
765
|
"additionalProperties": false
|
|
765
766
|
}
|
|
766
767
|
```
|
|
@@ -22,13 +22,13 @@
|
|
|
22
22
|
|
|
23
23
|
先读 下方 `<activation-and-memory>` 标签;按相关条目定位上游 Spec/ADR/CONTEXT、代码与项目 Agent 指令,再回读当前拆分所需原文。只枚举 Skill 的元数据与触发路由,不默认展开全部技能。
|
|
24
24
|
|
|
25
|
-
##
|
|
25
|
+
## 从合同到可执行票
|
|
26
26
|
|
|
27
27
|
1. **输入与范围**:确认目标、非目标、用户指定数量、验收合同和未知项。高影响未决问题回到 G;无 Ready Spec 时,只有用户材料已等价覆盖全部合同才可规划。
|
|
28
28
|
2. **地形与绑定**:定位真实可维护源、调用方、测试接缝和 Skill 根。按 下方 `<ref-common-rules-skill-invocation>` 标签 为每票解析实际 Skill ID、入口摘要、调用阶段、输入、产出与失败动作;没有适用项目 Skill 时记录扫描证据,不造名称。
|
|
29
29
|
3. **垂直切片**:需要具体拆分时读取 下方 `<ref-t-tickets-references-planning-procedure>` 标签 与 下方 `<decomposition-rules>` 标签。保留 Prefactor、Expand → Migrate → Contract 和真实 DAG,不按技术层制造空价值任务。
|
|
30
30
|
4. **写 Plan**:使用 下方 `<ticket-template>` 标签。Lite 仅减少不适用说明,不删用户数量、权限、验收或停止条件。所有新增票使用 `plan_contract_version: 1`,旧票按迁移协议补齐后再执行。
|
|
31
|
-
5. **写总控**:使用 下方 `<tickets-map-template>` 标签,记录共同背景、Skill
|
|
31
|
+
5. **写总控**:使用 下方 `<tickets-map-template>` 标签,记录共同背景、Skill 最低路由、合同覆盖、依赖和明确控制入口;状态仍从票投影。按 AC 反查至少一个负责验证的 Ticket,暴露未覆盖和重复所有权;依赖环、路径重叠与语义共享资源分别检查,不能用“可并行”文字替代实际 DAG/写集。
|
|
32
32
|
6. **Definition of Ready**:读取 下方 `<ticket-readiness>` 标签,并调用 下方 `<ref-common-skills-plan-quality-review-skill>` 标签。缺失引用、必需 Skill、可运行验收或权限边界,当前票不可 ready。
|
|
33
33
|
7. **与用户核对**:展示全部票、可观察产物、依赖、深度、风险、Skill 和未决问题。保留用户要求的交付数量;已授权自主规划且无关键未知时不重复请求形式确认。
|
|
34
34
|
8. **验证、回读和交付**:按下述命令检查,再回读真实 Ticket/Map,报告修改、验证结果和未完成项。规划完成不自动进入实现。
|
|
@@ -40,6 +40,10 @@ node 本地只读 Goal 控制器(不含于网页快照) --map specdev/change
|
|
|
40
40
|
|
|
41
41
|
需要正式 Goal、多 change、迁移或跨票 Gate 时交给 “目标规划阶段”;少量线性票可从 map 按已授权范围调用 “实现阶段”。不得以“精简”为理由静默更换默认工具或少交付。
|
|
42
42
|
|
|
43
|
+
## 原型证据
|
|
44
|
+
|
|
45
|
+
可以引用已验证 LOGIC/UI 原型中的行为、边界与已确认决定,记录具体 locator 和验证证据;源码片段可承载设计选择,但不自动成为生产实现。未闭合高影响产品决定返回 G,S 综合已确认设计而不重新开启无关访谈。
|
|
46
|
+
|
|
43
47
|
---
|
|
44
48
|
|
|
45
49
|
## 参考内容
|
|
@@ -588,6 +592,13 @@ W 的 `specdev/changes/{change}/initiative.json` 只拥有候选 change 的边
|
|
|
588
592
|
|
|
589
593
|
父 `specdev/changes/{change}/tickets-map.md` 是 goal-tickets-map 无状态入口,只引用现有 Implementation Map/Plan;它不能拥有第二份 status、owner 或任务清单。统一 P 拥有生命周期,旧 O 仅保留入口与恢复键。
|
|
590
594
|
|
|
595
|
+
## 新增工件 owner
|
|
596
|
+
|
|
597
|
+
- T:specdev/changes/{change}/pull-requests/PR-###.md 拥有 PR 交付回执;specdev/triage-runs/TRI-###.md 拥有独立远程操作,绝不复用 external_action/publish_action/capture。
|
|
598
|
+
- R-retro:specdev/changes/{change}/retro/RETRO-###.md 拥有活动复盘建议和来源;不成为永久知识。
|
|
599
|
+
- P:specdev/changes/{change}/prototypes/LOGIC-NNN/logic.md 记录逻辑模型与浏览器证据;index.html 是可运行原型,ready 时 hash 与记录一致。
|
|
600
|
+
- 来源更新:specdev/changes/{change}/source.md 冻结后保持不变。T 将后续读取写入 specdev/changes/{change}/sources/SRC-###.md,记录 replaces、固定 SHA/hash、完整性和原 locator,triage 正文选择有效快照;不得把新远程事实自动升级为已接受 Spec。
|
|
601
|
+
|
|
591
602
|
</artifact-contract>
|
|
592
603
|
|
|
593
604
|
<readiness-and-depth>
|
|
@@ -1098,7 +1109,7 @@ implementation owner 只在来源 worktree 修改授权项目路径,运行 Tic
|
|
|
1098
1109
|
|
|
1099
1110
|
```json
|
|
1100
1111
|
{
|
|
1101
|
-
"schema_version":
|
|
1112
|
+
"schema_version": 6,
|
|
1102
1113
|
"interaction_language": "zh-CN",
|
|
1103
1114
|
"artifact_language": "zh-CN",
|
|
1104
1115
|
"git": {
|
|
@@ -1122,6 +1133,10 @@ implementation owner 只在来源 worktree 修改授权项目路径,运行 Tic
|
|
|
1122
1133
|
"require_evidence": true,
|
|
1123
1134
|
"ui_design_default_candidates": 3,
|
|
1124
1135
|
"ui_design_max_candidates": 4
|
|
1136
|
+
},
|
|
1137
|
+
"github": {
|
|
1138
|
+
"include_external_prs": false,
|
|
1139
|
+
"labels": {}
|
|
1125
1140
|
}
|
|
1126
1141
|
}
|
|
1127
1142
|
```
|
|
@@ -1133,60 +1148,171 @@ implementation owner 只在来源 worktree 修改授权项目路径,运行 Tic
|
|
|
1133
1148
|
```json
|
|
1134
1149
|
{
|
|
1135
1150
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1136
|
-
"$id": "urn:speculo:specdev:config:
|
|
1151
|
+
"$id": "urn:speculo:specdev:config:v6",
|
|
1137
1152
|
"title": "SpecDev Configuration",
|
|
1138
1153
|
"type": "object",
|
|
1139
|
-
"required": [
|
|
1154
|
+
"required": [
|
|
1155
|
+
"schema_version",
|
|
1156
|
+
"interaction_language",
|
|
1157
|
+
"artifact_language",
|
|
1158
|
+
"git",
|
|
1159
|
+
"execution",
|
|
1160
|
+
"verification",
|
|
1161
|
+
"planning",
|
|
1162
|
+
"github"
|
|
1163
|
+
],
|
|
1140
1164
|
"properties": {
|
|
1141
|
-
"schema_version": {
|
|
1142
|
-
|
|
1143
|
-
|
|
1165
|
+
"schema_version": {
|
|
1166
|
+
"const": 6
|
|
1167
|
+
},
|
|
1168
|
+
"interaction_language": {
|
|
1169
|
+
"type": "string",
|
|
1170
|
+
"minLength": 1
|
|
1171
|
+
},
|
|
1172
|
+
"artifact_language": {
|
|
1173
|
+
"type": "string",
|
|
1174
|
+
"minLength": 1
|
|
1175
|
+
},
|
|
1144
1176
|
"git": {
|
|
1145
1177
|
"type": "object",
|
|
1146
|
-
"required": [
|
|
1178
|
+
"required": [
|
|
1179
|
+
"default_branch"
|
|
1180
|
+
],
|
|
1147
1181
|
"properties": {
|
|
1148
|
-
"default_branch": {
|
|
1182
|
+
"default_branch": {
|
|
1183
|
+
"type": [
|
|
1184
|
+
"string",
|
|
1185
|
+
"null"
|
|
1186
|
+
]
|
|
1187
|
+
}
|
|
1149
1188
|
},
|
|
1150
1189
|
"additionalProperties": false
|
|
1151
1190
|
},
|
|
1152
1191
|
"execution": {
|
|
1153
1192
|
"type": "object",
|
|
1154
|
-
"required": [
|
|
1193
|
+
"required": [
|
|
1194
|
+
"max_implementation_agents",
|
|
1195
|
+
"max_integration_attempts",
|
|
1196
|
+
"deep_ticket_human_approval",
|
|
1197
|
+
"shared_path_owner"
|
|
1198
|
+
],
|
|
1155
1199
|
"properties": {
|
|
1156
|
-
"max_implementation_agents": {
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1200
|
+
"max_implementation_agents": {
|
|
1201
|
+
"type": "integer",
|
|
1202
|
+
"minimum": 1
|
|
1203
|
+
},
|
|
1204
|
+
"max_integration_attempts": {
|
|
1205
|
+
"type": "integer",
|
|
1206
|
+
"minimum": 1
|
|
1207
|
+
},
|
|
1208
|
+
"deep_ticket_human_approval": {
|
|
1209
|
+
"type": "boolean"
|
|
1210
|
+
},
|
|
1211
|
+
"shared_path_owner": {
|
|
1212
|
+
"type": "string",
|
|
1213
|
+
"minLength": 1
|
|
1214
|
+
}
|
|
1160
1215
|
},
|
|
1161
1216
|
"additionalProperties": false
|
|
1162
1217
|
},
|
|
1163
1218
|
"verification": {
|
|
1164
1219
|
"type": "object",
|
|
1165
|
-
"required": [
|
|
1220
|
+
"required": [
|
|
1221
|
+
"test",
|
|
1222
|
+
"typecheck",
|
|
1223
|
+
"lint",
|
|
1224
|
+
"build"
|
|
1225
|
+
],
|
|
1166
1226
|
"properties": {
|
|
1167
|
-
"test": {
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1227
|
+
"test": {
|
|
1228
|
+
"type": [
|
|
1229
|
+
"string",
|
|
1230
|
+
"null"
|
|
1231
|
+
]
|
|
1232
|
+
},
|
|
1233
|
+
"typecheck": {
|
|
1234
|
+
"type": [
|
|
1235
|
+
"string",
|
|
1236
|
+
"null"
|
|
1237
|
+
]
|
|
1238
|
+
},
|
|
1239
|
+
"lint": {
|
|
1240
|
+
"type": [
|
|
1241
|
+
"string",
|
|
1242
|
+
"null"
|
|
1243
|
+
]
|
|
1244
|
+
},
|
|
1245
|
+
"build": {
|
|
1246
|
+
"type": [
|
|
1247
|
+
"string",
|
|
1248
|
+
"null"
|
|
1249
|
+
]
|
|
1250
|
+
}
|
|
1171
1251
|
},
|
|
1172
1252
|
"additionalProperties": true
|
|
1173
1253
|
},
|
|
1174
1254
|
"planning": {
|
|
1175
1255
|
"type": "object",
|
|
1176
|
-
"required": [
|
|
1256
|
+
"required": [
|
|
1257
|
+
"default_depth",
|
|
1258
|
+
"require_ready_gate",
|
|
1259
|
+
"require_evidence",
|
|
1260
|
+
"ui_design_default_candidates",
|
|
1261
|
+
"ui_design_max_candidates"
|
|
1262
|
+
],
|
|
1177
1263
|
"properties": {
|
|
1178
|
-
"default_depth": {
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1264
|
+
"default_depth": {
|
|
1265
|
+
"enum": [
|
|
1266
|
+
"lite",
|
|
1267
|
+
"standard",
|
|
1268
|
+
"deep"
|
|
1269
|
+
]
|
|
1270
|
+
},
|
|
1271
|
+
"require_ready_gate": {
|
|
1272
|
+
"type": "boolean"
|
|
1273
|
+
},
|
|
1274
|
+
"require_evidence": {
|
|
1275
|
+
"type": "boolean"
|
|
1276
|
+
},
|
|
1277
|
+
"ui_design_default_candidates": {
|
|
1278
|
+
"type": "integer",
|
|
1279
|
+
"minimum": 2,
|
|
1280
|
+
"maximum": 4
|
|
1281
|
+
},
|
|
1282
|
+
"ui_design_max_candidates": {
|
|
1283
|
+
"type": "integer",
|
|
1284
|
+
"minimum": 2,
|
|
1285
|
+
"maximum": 4
|
|
1286
|
+
}
|
|
1183
1287
|
},
|
|
1184
1288
|
"additionalProperties": true
|
|
1289
|
+
},
|
|
1290
|
+
"github": {
|
|
1291
|
+
"type": "object",
|
|
1292
|
+
"required": [
|
|
1293
|
+
"include_external_prs",
|
|
1294
|
+
"labels"
|
|
1295
|
+
],
|
|
1296
|
+
"properties": {
|
|
1297
|
+
"include_external_prs": {
|
|
1298
|
+
"type": "boolean"
|
|
1299
|
+
},
|
|
1300
|
+
"labels": {
|
|
1301
|
+
"type": "object",
|
|
1302
|
+
"additionalProperties": {
|
|
1303
|
+
"type": "string",
|
|
1304
|
+
"minLength": 1
|
|
1305
|
+
}
|
|
1306
|
+
}
|
|
1307
|
+
},
|
|
1308
|
+
"additionalProperties": false
|
|
1185
1309
|
}
|
|
1186
1310
|
},
|
|
1187
|
-
"allOf": [
|
|
1188
|
-
|
|
1189
|
-
|
|
1311
|
+
"allOf": [
|
|
1312
|
+
{
|
|
1313
|
+
"$comment": "ui_design_default_candidates <= ui_design_max_candidates is enforced by validate-specdev.mjs because JSON Schema cannot compare sibling numeric values."
|
|
1314
|
+
}
|
|
1315
|
+
],
|
|
1190
1316
|
"additionalProperties": false
|
|
1191
1317
|
}
|
|
1192
1318
|
```
|