@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
package/template/AGENTS.md
CHANGED
|
@@ -11,4 +11,4 @@
|
|
|
11
11
|
|
|
12
12
|
详细状态、所有权和副作用合同由各 workflow 的 `INDEX.md`、`README.md`、`common/rules/` 和 schema 定义。
|
|
13
13
|
|
|
14
|
-
编辑任何文档时,读取 `<Path>{roots.skills}/writing-
|
|
14
|
+
编辑任何文档时,读取 `<Path>{roots.skills}/writing-for-agents/references/document-contract.md</Path>` 的保真合同(不自动激活该 Skill)。保留能力、用户明确的交付数量、默认工具、验收与失败停止条件;模式专属流程和长示例按明确入口下沉。真实源优先,保留软链接、许可与必要元数据,不修改系统/插件缓存。交付实际修改、完整前后字符统计、备份、验证和未完成项;没有实际用量对比不宣称 Token 或额度节省比例。
|
package/template/CLAUDE.md
CHANGED
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
|
|
19
19
|
## 读取范围
|
|
20
20
|
|
|
21
|
-
先读 下方 `<activation-and-memory>` 标签,定位用户指定的 change 或 map,再读状态、当前 map
|
|
21
|
+
先读 下方 `<activation-and-memory>` 标签,定位用户指定的 change 或 map,再读状态、当前 map 和所选模式。每次只展开实际进入 frontier 的 Ticket、直接依赖 Evidence、命中的项目 Skill、当前 Gate 与恢复证据;不默认通读所有 Ticket 或永久索引。
|
|
22
22
|
|
|
23
|
-
##
|
|
23
|
+
## 按意图选择模式与权威
|
|
24
24
|
|
|
25
25
|
| 用户意图 | 模式 | 必须按需读取 |
|
|
26
26
|
|---|---|---|
|
|
@@ -79,7 +79,7 @@ node 本地只读 Goal 控制器(不含于网页快照) --map <map-path> --r
|
|
|
79
79
|
- 等待真实上游产物的未来 Ticket 保持 `status: draft`、`ready: false`,在未决问题中记录缺口、生产者 Ticket、所需证据和 DoR 重审条件;不编造版本、路径或验证入口;
|
|
80
80
|
- 每个验收合同被 Ticket 覆盖;
|
|
81
81
|
- writable/shared path 有唯一 owner,Wave 候选无写冲突;
|
|
82
|
-
- config schema
|
|
82
|
+
- config schema v6,`max_implementation_agents` 与 `max_integration_attempts` 为正整数;UI 设计候选范围读取 planning 配置;
|
|
83
83
|
- 父分支可定位,implementation commit 与本地 integration 的授权状态已记录;`plan` 可以列出待批准项并保持 `ready_for_execution: false`;
|
|
84
84
|
- 待执行 Deep Ticket 的迁移、兼容、监控、恢复和不可逆批准点完整。
|
|
85
85
|
- Ticket 与 `specdev/changes/{change}/spec.md`、`specdev/changes/{change}/ADR.md`、`specdev/adr/`、`specdev/context/` 和当前代码事实不存在未处理冲突;
|
|
@@ -541,6 +541,13 @@ W 的 `specdev/changes/{change}/initiative.json` 只拥有候选 change 的边
|
|
|
541
541
|
|
|
542
542
|
父 `specdev/changes/{change}/tickets-map.md` 是 goal-tickets-map 无状态入口,只引用现有 Implementation Map/Plan;它不能拥有第二份 status、owner 或任务清单。统一 P 拥有生命周期,旧 O 仅保留入口与恢复键。
|
|
543
543
|
|
|
544
|
+
## 新增工件 owner
|
|
545
|
+
|
|
546
|
+
- T:specdev/changes/{change}/pull-requests/PR-###.md 拥有 PR 交付回执;specdev/triage-runs/TRI-###.md 拥有独立远程操作,绝不复用 external_action/publish_action/capture。
|
|
547
|
+
- R-retro:specdev/changes/{change}/retro/RETRO-###.md 拥有活动复盘建议和来源;不成为永久知识。
|
|
548
|
+
- P:specdev/changes/{change}/prototypes/LOGIC-NNN/logic.md 记录逻辑模型与浏览器证据;index.html 是可运行原型,ready 时 hash 与记录一致。
|
|
549
|
+
- 来源更新:specdev/changes/{change}/source.md 冻结后保持不变。T 将后续读取写入 specdev/changes/{change}/sources/SRC-###.md,记录 replaces、固定 SHA/hash、完整性和原 locator,triage 正文选择有效快照;不得把新远程事实自动升级为已接受 Spec。
|
|
550
|
+
|
|
544
551
|
</artifact-contract>
|
|
545
552
|
|
|
546
553
|
<path-ownership>
|
|
@@ -730,6 +737,12 @@ Owner 原子更新 `specdev/changes/{change}/.status.json` 的 `change_status`
|
|
|
730
737
|
|
|
731
738
|
**完成标准**:完成声明可由本地工件、Git 与验证重建;只有一个 owner 命中;失败 candidate 不污染父分支。
|
|
732
739
|
|
|
740
|
+
## 非实现复盘终点与 PR 归档门
|
|
741
|
+
|
|
742
|
+
仅有 R-retro(可先经 T intake)的 review-only change,以 completed 的 RETRO 报告作为等价验收;不能同时存在 Spec、Ticket、Map、Goal Plan、implementation 工件、Evidence 或 worktree。报告 sources 非空、结果诚实、全部验收完成,owner 按原完成转换规则更新状态;存在实现工件时仍走原实现完成门。insufficient-evidence 仅表示报告完整,不表示问题已解决。
|
|
743
|
+
|
|
744
|
+
PR requested=true 且 status=planned/failed 时阻塞归档;delivery_target=ready 时 draft 也保持未闭合。draft 目标可由 draft/ready 满足,ready 目标只由 ready 满足;waived 须记录放弃交付的授权与原因。创建成功不等于已授权 merge。独立 TRI 不因关联 change 就参与完成/归档门。
|
|
745
|
+
|
|
733
746
|
</change-completion>
|
|
734
747
|
|
|
735
748
|
<parent-implementation-orchestration>
|
|
@@ -1498,7 +1511,7 @@ node "${ZIP_SCRIPT}" "${RETURN_STAGING}" \
|
|
|
1498
1511
|
|
|
1499
1512
|
```json
|
|
1500
1513
|
{
|
|
1501
|
-
"schema_version":
|
|
1514
|
+
"schema_version": 6,
|
|
1502
1515
|
"interaction_language": "zh-CN",
|
|
1503
1516
|
"artifact_language": "zh-CN",
|
|
1504
1517
|
"git": {
|
|
@@ -1522,6 +1535,10 @@ node "${ZIP_SCRIPT}" "${RETURN_STAGING}" \
|
|
|
1522
1535
|
"require_evidence": true,
|
|
1523
1536
|
"ui_design_default_candidates": 3,
|
|
1524
1537
|
"ui_design_max_candidates": 4
|
|
1538
|
+
},
|
|
1539
|
+
"github": {
|
|
1540
|
+
"include_external_prs": false,
|
|
1541
|
+
"labels": {}
|
|
1525
1542
|
}
|
|
1526
1543
|
}
|
|
1527
1544
|
```
|
|
@@ -1533,60 +1550,171 @@ node "${ZIP_SCRIPT}" "${RETURN_STAGING}" \
|
|
|
1533
1550
|
```json
|
|
1534
1551
|
{
|
|
1535
1552
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1536
|
-
"$id": "urn:speculo:specdev:config:
|
|
1553
|
+
"$id": "urn:speculo:specdev:config:v6",
|
|
1537
1554
|
"title": "SpecDev Configuration",
|
|
1538
1555
|
"type": "object",
|
|
1539
|
-
"required": [
|
|
1556
|
+
"required": [
|
|
1557
|
+
"schema_version",
|
|
1558
|
+
"interaction_language",
|
|
1559
|
+
"artifact_language",
|
|
1560
|
+
"git",
|
|
1561
|
+
"execution",
|
|
1562
|
+
"verification",
|
|
1563
|
+
"planning",
|
|
1564
|
+
"github"
|
|
1565
|
+
],
|
|
1540
1566
|
"properties": {
|
|
1541
|
-
"schema_version": {
|
|
1542
|
-
|
|
1543
|
-
|
|
1567
|
+
"schema_version": {
|
|
1568
|
+
"const": 6
|
|
1569
|
+
},
|
|
1570
|
+
"interaction_language": {
|
|
1571
|
+
"type": "string",
|
|
1572
|
+
"minLength": 1
|
|
1573
|
+
},
|
|
1574
|
+
"artifact_language": {
|
|
1575
|
+
"type": "string",
|
|
1576
|
+
"minLength": 1
|
|
1577
|
+
},
|
|
1544
1578
|
"git": {
|
|
1545
1579
|
"type": "object",
|
|
1546
|
-
"required": [
|
|
1580
|
+
"required": [
|
|
1581
|
+
"default_branch"
|
|
1582
|
+
],
|
|
1547
1583
|
"properties": {
|
|
1548
|
-
"default_branch": {
|
|
1584
|
+
"default_branch": {
|
|
1585
|
+
"type": [
|
|
1586
|
+
"string",
|
|
1587
|
+
"null"
|
|
1588
|
+
]
|
|
1589
|
+
}
|
|
1549
1590
|
},
|
|
1550
1591
|
"additionalProperties": false
|
|
1551
1592
|
},
|
|
1552
1593
|
"execution": {
|
|
1553
1594
|
"type": "object",
|
|
1554
|
-
"required": [
|
|
1595
|
+
"required": [
|
|
1596
|
+
"max_implementation_agents",
|
|
1597
|
+
"max_integration_attempts",
|
|
1598
|
+
"deep_ticket_human_approval",
|
|
1599
|
+
"shared_path_owner"
|
|
1600
|
+
],
|
|
1555
1601
|
"properties": {
|
|
1556
|
-
"max_implementation_agents": {
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1602
|
+
"max_implementation_agents": {
|
|
1603
|
+
"type": "integer",
|
|
1604
|
+
"minimum": 1
|
|
1605
|
+
},
|
|
1606
|
+
"max_integration_attempts": {
|
|
1607
|
+
"type": "integer",
|
|
1608
|
+
"minimum": 1
|
|
1609
|
+
},
|
|
1610
|
+
"deep_ticket_human_approval": {
|
|
1611
|
+
"type": "boolean"
|
|
1612
|
+
},
|
|
1613
|
+
"shared_path_owner": {
|
|
1614
|
+
"type": "string",
|
|
1615
|
+
"minLength": 1
|
|
1616
|
+
}
|
|
1560
1617
|
},
|
|
1561
1618
|
"additionalProperties": false
|
|
1562
1619
|
},
|
|
1563
1620
|
"verification": {
|
|
1564
1621
|
"type": "object",
|
|
1565
|
-
"required": [
|
|
1622
|
+
"required": [
|
|
1623
|
+
"test",
|
|
1624
|
+
"typecheck",
|
|
1625
|
+
"lint",
|
|
1626
|
+
"build"
|
|
1627
|
+
],
|
|
1566
1628
|
"properties": {
|
|
1567
|
-
"test": {
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1629
|
+
"test": {
|
|
1630
|
+
"type": [
|
|
1631
|
+
"string",
|
|
1632
|
+
"null"
|
|
1633
|
+
]
|
|
1634
|
+
},
|
|
1635
|
+
"typecheck": {
|
|
1636
|
+
"type": [
|
|
1637
|
+
"string",
|
|
1638
|
+
"null"
|
|
1639
|
+
]
|
|
1640
|
+
},
|
|
1641
|
+
"lint": {
|
|
1642
|
+
"type": [
|
|
1643
|
+
"string",
|
|
1644
|
+
"null"
|
|
1645
|
+
]
|
|
1646
|
+
},
|
|
1647
|
+
"build": {
|
|
1648
|
+
"type": [
|
|
1649
|
+
"string",
|
|
1650
|
+
"null"
|
|
1651
|
+
]
|
|
1652
|
+
}
|
|
1571
1653
|
},
|
|
1572
1654
|
"additionalProperties": true
|
|
1573
1655
|
},
|
|
1574
1656
|
"planning": {
|
|
1575
1657
|
"type": "object",
|
|
1576
|
-
"required": [
|
|
1658
|
+
"required": [
|
|
1659
|
+
"default_depth",
|
|
1660
|
+
"require_ready_gate",
|
|
1661
|
+
"require_evidence",
|
|
1662
|
+
"ui_design_default_candidates",
|
|
1663
|
+
"ui_design_max_candidates"
|
|
1664
|
+
],
|
|
1577
1665
|
"properties": {
|
|
1578
|
-
"default_depth": {
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1666
|
+
"default_depth": {
|
|
1667
|
+
"enum": [
|
|
1668
|
+
"lite",
|
|
1669
|
+
"standard",
|
|
1670
|
+
"deep"
|
|
1671
|
+
]
|
|
1672
|
+
},
|
|
1673
|
+
"require_ready_gate": {
|
|
1674
|
+
"type": "boolean"
|
|
1675
|
+
},
|
|
1676
|
+
"require_evidence": {
|
|
1677
|
+
"type": "boolean"
|
|
1678
|
+
},
|
|
1679
|
+
"ui_design_default_candidates": {
|
|
1680
|
+
"type": "integer",
|
|
1681
|
+
"minimum": 2,
|
|
1682
|
+
"maximum": 4
|
|
1683
|
+
},
|
|
1684
|
+
"ui_design_max_candidates": {
|
|
1685
|
+
"type": "integer",
|
|
1686
|
+
"minimum": 2,
|
|
1687
|
+
"maximum": 4
|
|
1688
|
+
}
|
|
1583
1689
|
},
|
|
1584
1690
|
"additionalProperties": true
|
|
1691
|
+
},
|
|
1692
|
+
"github": {
|
|
1693
|
+
"type": "object",
|
|
1694
|
+
"required": [
|
|
1695
|
+
"include_external_prs",
|
|
1696
|
+
"labels"
|
|
1697
|
+
],
|
|
1698
|
+
"properties": {
|
|
1699
|
+
"include_external_prs": {
|
|
1700
|
+
"type": "boolean"
|
|
1701
|
+
},
|
|
1702
|
+
"labels": {
|
|
1703
|
+
"type": "object",
|
|
1704
|
+
"additionalProperties": {
|
|
1705
|
+
"type": "string",
|
|
1706
|
+
"minLength": 1
|
|
1707
|
+
}
|
|
1708
|
+
}
|
|
1709
|
+
},
|
|
1710
|
+
"additionalProperties": false
|
|
1585
1711
|
}
|
|
1586
1712
|
},
|
|
1587
|
-
"allOf": [
|
|
1588
|
-
|
|
1589
|
-
|
|
1713
|
+
"allOf": [
|
|
1714
|
+
{
|
|
1715
|
+
"$comment": "ui_design_default_candidates <= ui_design_max_candidates is enforced by validate-specdev.mjs because JSON Schema cannot compare sibling numeric values."
|
|
1716
|
+
}
|
|
1717
|
+
],
|
|
1590
1718
|
"additionalProperties": false
|
|
1591
1719
|
}
|
|
1592
1720
|
```
|
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
|
|
21
21
|
读取 下方 `<activation-and-memory>` 标签;定位当前 change 的 `specdev/changes/{change}/design-tree.json`、`specdev/changes/{change}/LOG.md`、`specdev/changes/{change}/CONTEXT.md`、`specdev/changes/{change}/ADR.md` 和相关 initiative 决策。先找到相关条目再回读必要原文,不默认整读永久 ADR 或索引。
|
|
22
22
|
|
|
23
|
-
##
|
|
23
|
+
## 当前 change 的访谈与共识
|
|
24
24
|
|
|
25
|
-
进入访谈必须读取 下方 `<ref-g-grill-with-docs-references-interview-procedure>`
|
|
25
|
+
进入访谈必须读取 下方 `<ref-g-grill-with-docs-references-interview-procedure>` 标签,由该过程在出现设计取舍、术语变化、日志写入或外部 stakeholder 缺口时分别读取 grilling、领域建模、日志格式或 questionnaire;不默认加载所有参考。保留完整 frontier、推荐答案和逐轮共识检查,但不替用户回答高影响取舍。
|
|
26
26
|
|
|
27
27
|
- 先查仓库可发现事实,只询问会改变行为、架构、风险、范围、迁移或验收的决定。
|
|
28
28
|
- W 的每个 materialized change 在自己的目录拥有设计树和文档;共享答案以来源指针引用,不能共用一棵可写设计树。
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
|
|
84
84
|
</design-tree-template>
|
|
85
85
|
|
|
86
|
-
<domain-modeling
|
|
86
|
+
<domain-modeling>
|
|
87
87
|
|
|
88
88
|
# 领域建模规则
|
|
89
89
|
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
|
|
99
99
|
完成标准:每个 change CONTEXT 条目都是本 change 下游必须使用的项目规范语言;每个 change ADR 都有明确来源和当前 change 的适用范围;没有把候选结论写成永久知识。
|
|
100
100
|
|
|
101
|
-
</domain-modeling
|
|
101
|
+
</domain-modeling>
|
|
102
102
|
|
|
103
103
|
<adr-format>
|
|
104
104
|
|
|
@@ -333,6 +333,13 @@ W 的 `specdev/changes/{change}/initiative.json` 只拥有候选 change 的边
|
|
|
333
333
|
|
|
334
334
|
父 `specdev/changes/{change}/tickets-map.md` 是 goal-tickets-map 无状态入口,只引用现有 Implementation Map/Plan;它不能拥有第二份 status、owner 或任务清单。统一 P 拥有生命周期,旧 O 仅保留入口与恢复键。
|
|
335
335
|
|
|
336
|
+
## 新增工件 owner
|
|
337
|
+
|
|
338
|
+
- T:specdev/changes/{change}/pull-requests/PR-###.md 拥有 PR 交付回执;specdev/triage-runs/TRI-###.md 拥有独立远程操作,绝不复用 external_action/publish_action/capture。
|
|
339
|
+
- R-retro:specdev/changes/{change}/retro/RETRO-###.md 拥有活动复盘建议和来源;不成为永久知识。
|
|
340
|
+
- P:specdev/changes/{change}/prototypes/LOGIC-NNN/logic.md 记录逻辑模型与浏览器证据;index.html 是可运行原型,ready 时 hash 与记录一致。
|
|
341
|
+
- 来源更新:specdev/changes/{change}/source.md 冻结后保持不变。T 将后续读取写入 specdev/changes/{change}/sources/SRC-###.md,记录 replaces、固定 SHA/hash、完整性和原 locator,triage 正文选择有效快照;不得把新远程事实自动升级为已接受 Spec。
|
|
342
|
+
|
|
336
343
|
</artifact-contract>
|
|
337
344
|
|
|
338
345
|
<planning-principles>
|
|
@@ -562,7 +569,7 @@ Ticket 只有同时满足以下适用条件才可设置 `ready: true`:
|
|
|
562
569
|
|
|
563
570
|
```json
|
|
564
571
|
{
|
|
565
|
-
"schema_version":
|
|
572
|
+
"schema_version": 6,
|
|
566
573
|
"interaction_language": "zh-CN",
|
|
567
574
|
"artifact_language": "zh-CN",
|
|
568
575
|
"git": {
|
|
@@ -586,6 +593,10 @@ Ticket 只有同时满足以下适用条件才可设置 `ready: true`:
|
|
|
586
593
|
"require_evidence": true,
|
|
587
594
|
"ui_design_default_candidates": 3,
|
|
588
595
|
"ui_design_max_candidates": 4
|
|
596
|
+
},
|
|
597
|
+
"github": {
|
|
598
|
+
"include_external_prs": false,
|
|
599
|
+
"labels": {}
|
|
589
600
|
}
|
|
590
601
|
}
|
|
591
602
|
```
|
|
@@ -597,60 +608,171 @@ Ticket 只有同时满足以下适用条件才可设置 `ready: true`:
|
|
|
597
608
|
```json
|
|
598
609
|
{
|
|
599
610
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
600
|
-
"$id": "urn:speculo:specdev:config:
|
|
611
|
+
"$id": "urn:speculo:specdev:config:v6",
|
|
601
612
|
"title": "SpecDev Configuration",
|
|
602
613
|
"type": "object",
|
|
603
|
-
"required": [
|
|
614
|
+
"required": [
|
|
615
|
+
"schema_version",
|
|
616
|
+
"interaction_language",
|
|
617
|
+
"artifact_language",
|
|
618
|
+
"git",
|
|
619
|
+
"execution",
|
|
620
|
+
"verification",
|
|
621
|
+
"planning",
|
|
622
|
+
"github"
|
|
623
|
+
],
|
|
604
624
|
"properties": {
|
|
605
|
-
"schema_version": {
|
|
606
|
-
|
|
607
|
-
|
|
625
|
+
"schema_version": {
|
|
626
|
+
"const": 6
|
|
627
|
+
},
|
|
628
|
+
"interaction_language": {
|
|
629
|
+
"type": "string",
|
|
630
|
+
"minLength": 1
|
|
631
|
+
},
|
|
632
|
+
"artifact_language": {
|
|
633
|
+
"type": "string",
|
|
634
|
+
"minLength": 1
|
|
635
|
+
},
|
|
608
636
|
"git": {
|
|
609
637
|
"type": "object",
|
|
610
|
-
"required": [
|
|
638
|
+
"required": [
|
|
639
|
+
"default_branch"
|
|
640
|
+
],
|
|
611
641
|
"properties": {
|
|
612
|
-
"default_branch": {
|
|
642
|
+
"default_branch": {
|
|
643
|
+
"type": [
|
|
644
|
+
"string",
|
|
645
|
+
"null"
|
|
646
|
+
]
|
|
647
|
+
}
|
|
613
648
|
},
|
|
614
649
|
"additionalProperties": false
|
|
615
650
|
},
|
|
616
651
|
"execution": {
|
|
617
652
|
"type": "object",
|
|
618
|
-
"required": [
|
|
653
|
+
"required": [
|
|
654
|
+
"max_implementation_agents",
|
|
655
|
+
"max_integration_attempts",
|
|
656
|
+
"deep_ticket_human_approval",
|
|
657
|
+
"shared_path_owner"
|
|
658
|
+
],
|
|
619
659
|
"properties": {
|
|
620
|
-
"max_implementation_agents": {
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
660
|
+
"max_implementation_agents": {
|
|
661
|
+
"type": "integer",
|
|
662
|
+
"minimum": 1
|
|
663
|
+
},
|
|
664
|
+
"max_integration_attempts": {
|
|
665
|
+
"type": "integer",
|
|
666
|
+
"minimum": 1
|
|
667
|
+
},
|
|
668
|
+
"deep_ticket_human_approval": {
|
|
669
|
+
"type": "boolean"
|
|
670
|
+
},
|
|
671
|
+
"shared_path_owner": {
|
|
672
|
+
"type": "string",
|
|
673
|
+
"minLength": 1
|
|
674
|
+
}
|
|
624
675
|
},
|
|
625
676
|
"additionalProperties": false
|
|
626
677
|
},
|
|
627
678
|
"verification": {
|
|
628
679
|
"type": "object",
|
|
629
|
-
"required": [
|
|
680
|
+
"required": [
|
|
681
|
+
"test",
|
|
682
|
+
"typecheck",
|
|
683
|
+
"lint",
|
|
684
|
+
"build"
|
|
685
|
+
],
|
|
630
686
|
"properties": {
|
|
631
|
-
"test": {
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
687
|
+
"test": {
|
|
688
|
+
"type": [
|
|
689
|
+
"string",
|
|
690
|
+
"null"
|
|
691
|
+
]
|
|
692
|
+
},
|
|
693
|
+
"typecheck": {
|
|
694
|
+
"type": [
|
|
695
|
+
"string",
|
|
696
|
+
"null"
|
|
697
|
+
]
|
|
698
|
+
},
|
|
699
|
+
"lint": {
|
|
700
|
+
"type": [
|
|
701
|
+
"string",
|
|
702
|
+
"null"
|
|
703
|
+
]
|
|
704
|
+
},
|
|
705
|
+
"build": {
|
|
706
|
+
"type": [
|
|
707
|
+
"string",
|
|
708
|
+
"null"
|
|
709
|
+
]
|
|
710
|
+
}
|
|
635
711
|
},
|
|
636
712
|
"additionalProperties": true
|
|
637
713
|
},
|
|
638
714
|
"planning": {
|
|
639
715
|
"type": "object",
|
|
640
|
-
"required": [
|
|
716
|
+
"required": [
|
|
717
|
+
"default_depth",
|
|
718
|
+
"require_ready_gate",
|
|
719
|
+
"require_evidence",
|
|
720
|
+
"ui_design_default_candidates",
|
|
721
|
+
"ui_design_max_candidates"
|
|
722
|
+
],
|
|
641
723
|
"properties": {
|
|
642
|
-
"default_depth": {
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
724
|
+
"default_depth": {
|
|
725
|
+
"enum": [
|
|
726
|
+
"lite",
|
|
727
|
+
"standard",
|
|
728
|
+
"deep"
|
|
729
|
+
]
|
|
730
|
+
},
|
|
731
|
+
"require_ready_gate": {
|
|
732
|
+
"type": "boolean"
|
|
733
|
+
},
|
|
734
|
+
"require_evidence": {
|
|
735
|
+
"type": "boolean"
|
|
736
|
+
},
|
|
737
|
+
"ui_design_default_candidates": {
|
|
738
|
+
"type": "integer",
|
|
739
|
+
"minimum": 2,
|
|
740
|
+
"maximum": 4
|
|
741
|
+
},
|
|
742
|
+
"ui_design_max_candidates": {
|
|
743
|
+
"type": "integer",
|
|
744
|
+
"minimum": 2,
|
|
745
|
+
"maximum": 4
|
|
746
|
+
}
|
|
647
747
|
},
|
|
648
748
|
"additionalProperties": true
|
|
749
|
+
},
|
|
750
|
+
"github": {
|
|
751
|
+
"type": "object",
|
|
752
|
+
"required": [
|
|
753
|
+
"include_external_prs",
|
|
754
|
+
"labels"
|
|
755
|
+
],
|
|
756
|
+
"properties": {
|
|
757
|
+
"include_external_prs": {
|
|
758
|
+
"type": "boolean"
|
|
759
|
+
},
|
|
760
|
+
"labels": {
|
|
761
|
+
"type": "object",
|
|
762
|
+
"additionalProperties": {
|
|
763
|
+
"type": "string",
|
|
764
|
+
"minLength": 1
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
},
|
|
768
|
+
"additionalProperties": false
|
|
649
769
|
}
|
|
650
770
|
},
|
|
651
|
-
"allOf": [
|
|
652
|
-
|
|
653
|
-
|
|
771
|
+
"allOf": [
|
|
772
|
+
{
|
|
773
|
+
"$comment": "ui_design_default_candidates <= ui_design_max_candidates is enforced by validate-specdev.mjs because JSON Schema cannot compare sibling numeric values."
|
|
774
|
+
}
|
|
775
|
+
],
|
|
654
776
|
"additionalProperties": false
|
|
655
777
|
}
|
|
656
778
|
```
|
|
@@ -1099,7 +1221,7 @@ Ticket 只有同时满足以下适用条件才可设置 `ready: true`:
|
|
|
1099
1221
|
|
|
1100
1222
|
### 5. 同步 change-local 领域模型
|
|
1101
1223
|
|
|
1102
|
-
加载 下方 `<domain-modeling
|
|
1224
|
+
加载 下方 `<domain-modeling>` 标签。每轮先写 LOG,再把已确认且本 change 下游必须使用的项目规范术语同步到 change CONTEXT,最后把同时满足三个准入条件、已成为本 change 合同的架构决定写入 change ADR。
|
|
1103
1225
|
|
|
1104
1226
|
历史轨迹只留在 LOG;未确认选项不写成已接受 ADR;已有 change ADR 被替代时建立 supersedes 链。同步只更新本 change 工件,不创建、合并或改写永久 `context/`、`adr/`;它记录共识生长过程,不授权产品实现。
|
|
1105
1227
|
|
|
@@ -1136,7 +1258,7 @@ frontier 为空时,向用户确认设计树的每个分支均已走过且已
|
|
|
1136
1258
|
|
|
1137
1259
|
- 质询协议:下方 `<grilling-protocol>` 标签
|
|
1138
1260
|
- 设计树模板:下方 `<design-tree-template>` 标签
|
|
1139
|
-
- 领域建模:下方 `<domain-modeling
|
|
1261
|
+
- 领域建模:下方 `<domain-modeling>` 标签
|
|
1140
1262
|
- ADR 格式:下方 `<adr-format>` 标签
|
|
1141
1263
|
- CONTEXT 格式:下方 `<context-format>` 标签
|
|
1142
1264
|
- LOG 格式:下方 `<log-format>` 标签
|