@namewta/speculo 0.8.13 → 1.0.2
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 +11 -7
- package/dist/src/cli.js +12 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/doctor.d.ts +10 -0
- package/dist/src/doctor.js +70 -0
- package/dist/src/doctor.js.map +1 -0
- package/dist/src/index.js +105 -56
- package/dist/src/index.js.map +1 -1
- package/dist/src/kernel.d.ts +98 -0
- package/dist/src/kernel.js +29 -0
- package/dist/src/kernel.js.map +1 -0
- package/dist/src/refresh.js +55 -24
- package/dist/src/refresh.js.map +1 -1
- package/dist/src/structured.d.ts +2 -2
- package/dist/src/structured.js +114 -241
- package/dist/src/structured.js.map +1 -1
- package/package.json +4 -3
- package/template/.speculo/README.md +1 -1
- package/template/.speculo/capabilities.json +14 -0
- package/template/.speculo/kernel/README.md +10 -0
- package/template/.speculo/kernel/capability-profile.schema.json +14 -0
- package/template/.speculo/kernel/checkpoint.schema.json +7 -0
- package/template/.speculo/kernel/trace-event.schema.json +8 -0
- package/template/.speculo/kernel/workflow-manifest.schema.json +13 -0
- package/template/.speculo/kernel.json +10 -0
- package/template/.speculo/refresh-contract.json +4 -1
- package/template/AGENTS.md +11 -3
- package/template/canonical/canonical-specdev-goal-plan.md +10 -1
- package/template/canonical/canonical-specdev-grill-with-docs.md +7 -0
- package/template/canonical/canonical-specdev-orchestrate-implementation.md +18 -2
- package/template/canonical/canonical-specdev-spec.md +7 -0
- package/template/canonical/canonical-specdev-tickets.md +13 -6
- package/template/canonical/canonical-specdev-wayfinder.md +7 -0
- package/template/commands/archive-and-consolidate.md +13 -41
- package/template/commands/docs-sync.md +1 -1
- package/template/commands/git-repository-audit.md +1 -1
- package/template/commands/handoff.md +1 -1
- package/template/commands/retro.md +1 -1
- package/template/commands/status.md +4 -4
- package/template/skills/archive-and-consolidate/SKILL.md +9 -168
- package/template/skills/archive-and-consolidate/references/entry-procedure.md +170 -0
- package/template/skills/docs-sync/SKILL.md +9 -11
- package/template/skills/docs-sync/references/entry-procedure.md +18 -0
- package/template/skills/engineering-standards-builder/SKILL.md +9 -148
- package/template/skills/engineering-standards-builder/references/entry-procedure.md +154 -0
- package/template/skills/git-history-squash/SKILL.md +9 -88
- package/template/skills/git-history-squash/references/entry-procedure.md +94 -0
- package/template/skills/github-npm-ops/SKILL.md +9 -18
- package/template/skills/github-npm-ops/references/entry-procedure.md +25 -0
- package/template/skills/optimize-codex-config/SKILL.md +12 -72
- package/template/skills/optimize-codex-config/references/entry-procedure.md +78 -0
- package/template/skills/source-code-zip/SKILL.md +10 -559
- package/template/skills/source-code-zip/references/entry-procedure.md +565 -0
- package/template/skills/speculo-retro/SKILL.md +9 -16
- package/template/skills/speculo-retro/references/entry-procedure.md +23 -0
- package/template/skills/upstream-fork-sync/SKILL.md +10 -72
- package/template/skills/upstream-fork-sync/references/entry-procedure.md +78 -0
- package/template/skills/writing-great-skills/SKILL.md +9 -73
- package/template/skills/writing-great-skills/references/entry-procedure.md +79 -0
- package/template/workflows/learning/A-archive/A-archive.md +32 -0
- package/template/workflows/learning/A-assess-and-plan/A-assess-and-plan.md +23 -22
- package/template/workflows/learning/A-assess-and-plan/background-template.md +13 -0
- package/template/workflows/learning/A-assess-and-plan/change-status-template.json +21 -14
- package/template/workflows/learning/A-assess-and-plan/course-template.md +28 -0
- package/template/workflows/learning/C-consolidate/C-consolidate.md +40 -0
- package/template/workflows/learning/H-homework/H-homework.md +38 -0
- package/template/workflows/learning/H-homework/homework-template.md +63 -0
- package/template/workflows/learning/I-init-setup/I-init-setup.md +20 -18
- package/template/workflows/learning/I-init-setup/context-index-template.md +3 -3
- package/template/workflows/learning/I-init-setup/learner-profile-template.md +12 -10
- package/template/workflows/learning/I-init-setup/review-index-template.md +1 -1
- package/template/workflows/learning/INDEX.md +8 -8
- package/template/workflows/learning/L-lesson/L-lesson.md +39 -0
- package/template/workflows/learning/L-lesson/lesson-template.md +51 -0
- package/template/workflows/learning/R-review/R-review.md +19 -17
- package/template/workflows/learning/R-review/review-template.md +13 -6
- package/template/workflows/learning/README.md +88 -81
- package/template/workflows/learning/_state/status.json +1 -1
- package/template/workflows/learning/common/rules/activation-and-memory.md +20 -0
- package/template/workflows/learning/common/rules/artifact-contract.md +11 -25
- package/template/workflows/learning/common/rules/assessment-policy.md +9 -4
- package/template/workflows/learning/common/rules/knowledge-organization.md +4 -6
- package/template/workflows/learning/common/rules/mastery-policy.md +3 -19
- package/template/workflows/learning/common/rules/path-reference-contract.md +3 -5
- package/template/workflows/learning/common/rules/teaching-policy.md +9 -9
- package/template/workflows/learning/common/schemas/change-status.schema.json +46 -18
- package/template/workflows/learning/common/schemas/status.schema.json +25 -24
- package/template/workflows/learning/common/skills/topic-synthesis/SKILL.md +17 -0
- package/template/workflows/learning/common/skills/topic-synthesis/claim-template.md +15 -0
- package/template/workflows/learning/common/tools/relocate-learning.mjs +208 -0
- package/template/workflows/learning/common/tools/validate-learning.mjs +195 -297
- package/template/workflows/learning/manifest.json +1 -0
- package/template/workflows/learning/runtime-contract.json +3 -2
- package/template/workflows/ops/A-archive-and-learn/A-archive-and-learn.md +7 -0
- package/template/workflows/ops/E-execute-and-stabilize/E-execute-and-stabilize.md +8 -1
- package/template/workflows/ops/I-intake-and-assess/I-intake-and-assess.md +7 -0
- package/template/workflows/ops/INDEX.md +2 -0
- package/template/workflows/ops/P-plan-and-approve/P-plan-and-approve.md +8 -1
- package/template/workflows/ops/README.md +3 -0
- package/template/workflows/ops/common/rules/activation-and-memory.md +20 -0
- package/template/workflows/ops/manifest.json +1 -0
- package/template/workflows/person/INDEX.md +2 -0
- package/template/workflows/person/M-mao-zedong-cognitive-os/M-mao-zedong-cognitive-os.md +9 -0
- package/template/workflows/person/M-mao-zedong-cognitive-os/books/README.md +1 -1
- package/template/workflows/person/S-steelman-deliberation/S-steelman-deliberation.md +7 -0
- package/template/workflows/person/common/rules/activation-and-memory.md +20 -0
- package/template/workflows/person/manifest.json +1 -0
- package/template/workflows/specdev/A-archive-and-consolidate/A-archive-and-consolidate.md +7 -0
- package/template/workflows/specdev/C-code-review/C-code-review.md +7 -0
- package/template/workflows/specdev/D-diagnose-bugs/D-diagnose-bugs.md +7 -0
- package/template/workflows/specdev/G-grill-with-docs/G-grill-with-docs.md +7 -0
- package/template/workflows/specdev/I-implement/I-implement.md +7 -0
- package/template/workflows/specdev/I-implement/execution-preflight.md +1 -1
- package/template/workflows/specdev/I-init-setup/I-init-setup.md +7 -0
- package/template/workflows/specdev/INDEX.md +2 -0
- package/template/workflows/specdev/L-learn-change/L-learn-change.md +7 -0
- package/template/workflows/specdev/O-orchestrate-implementation/O-orchestrate-implementation.md +10 -1
- package/template/workflows/specdev/P-goal-plan/P-goal-plan.md +10 -1
- package/template/workflows/specdev/P-prototype/P-prototype.md +7 -0
- package/template/workflows/specdev/R-review-architecture/R-review-architecture.md +7 -0
- package/template/workflows/specdev/README.md +3 -0
- package/template/workflows/specdev/S-spec/S-spec.md +7 -0
- package/template/workflows/specdev/T-tickets/T-tickets.md +10 -3
- package/template/workflows/specdev/T-tickets/ticket-template.md +2 -2
- package/template/workflows/specdev/T-tickets/tickets-map-template.md +1 -1
- package/template/workflows/specdev/T-triage/T-triage.md +7 -0
- package/template/workflows/specdev/W-wayfinder/W-wayfinder.md +7 -0
- package/template/workflows/specdev/common/README.md +1 -0
- package/template/workflows/specdev/common/rules/activation-and-memory.md +20 -0
- package/template/workflows/specdev/manifest.json +1 -0
- package/template/workflows/workflow-manifest.schema.json +14 -0
- package/template/workflows/learning/A-archive-and-consolidate/A-archive-and-consolidate.md +0 -38
- package/template/workflows/learning/A-archive-and-consolidate/promotion-plan-template.md +0 -23
- package/template/workflows/learning/A-assess-and-plan/learning-plan-template.md +0 -28
- package/template/workflows/learning/E-eli5/E-eli5.md +0 -37
- package/template/workflows/learning/E-eli5/lesson-template.md +0 -31
- package/template/workflows/learning/P-practice/P-practice.md +0 -34
- package/template/workflows/learning/P-practice/practice-template.md +0 -16
- package/template/workflows/learning/Q-quiz/Q-quiz.md +0 -34
- package/template/workflows/learning/Q-quiz/quiz-artifact-template.md +0 -16
- package/template/workflows/learning/common/skills/knowledge-promotion/SKILL.md +0 -46
- package/template/workflows/learning/common/skills/knowledge-promotion/domain-index-template.md +0 -6
- package/template/workflows/learning/common/skills/knowledge-promotion/domain-overview-template.md +0 -19
- package/template/workflows/learning/common/skills/knowledge-promotion/knowledge-template.md +0 -25
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@namewta/speculo",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Workflow-packaged AI collaboration assets with state-safe refresh tooling.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
"pretest": "pnpm build",
|
|
14
14
|
"generate-canonical": "node scripts/generate-specdev-canonical.mjs",
|
|
15
15
|
"validate-source-parity": "node scripts/check-specdev-source-parity.mjs",
|
|
16
|
-
"validate-assets": "node scripts/check-specdev-source-parity.mjs && node scripts/generate-specdev-canonical.mjs --check && node scripts/validate-refresh-contracts.mjs && node scripts/validate-framework-assets.mjs && node scripts/check-template-links.mjs",
|
|
16
|
+
"validate-assets": "node scripts/check-specdev-source-parity.mjs && node scripts/generate-specdev-canonical.mjs --check && node scripts/validate-refresh-contracts.mjs && node scripts/validate-framework-assets.mjs && node scripts/check-template-links.mjs && node scripts/validate-workflow-disclosure.mjs",
|
|
17
17
|
"check": "pnpm test && pnpm validate-assets",
|
|
18
18
|
"verify-bin": "node scripts/verify-bin.mjs",
|
|
19
|
+
"eval:scenarios": "node scripts/evaluate-scenarios.mjs",
|
|
19
20
|
"prepack": "pnpm build",
|
|
20
21
|
"prepublishOnly": "pnpm test && pnpm validate-assets"
|
|
21
22
|
},
|
|
@@ -49,7 +50,7 @@
|
|
|
49
50
|
},
|
|
50
51
|
"packageManager": "pnpm@11.1.3",
|
|
51
52
|
"engines": {
|
|
52
|
-
"node": "22.22.3"
|
|
53
|
+
"node": ">=22.22.3 <25"
|
|
53
54
|
},
|
|
54
55
|
"devDependencies": {
|
|
55
56
|
"@types/node": "^26.0.0",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
配置使用 `.speculo/baselines/` 中的上次模板默认值执行 base/local/incoming 三方合并:模板新增项自动增加,模板删除项直接删除,未被用户修改的旧默认值跟随模板更新,用户覆盖值在满足目标合同的前提下保留。只有字段删除、显式 schema 迁移或结构化文件变换时,CLI 才把原文件写入 `back/` 并生成 targeted manifest;opaque 内容不会被整包复制到备份。
|
|
12
12
|
|
|
13
|
-
`install.json` 使用 schema
|
|
13
|
+
`install.json` 使用 schema v3,记录包版本、已安装 workflows、managed manifest 路径和 baseline schema。`kernel.json` 定义共享 change、风险、checkpoint、能力和 trace 位置。Speculo 1.0 不读取或迁移任何 0.x 安装;检测到旧 manifest 时必须先由用户移除或改名旧 `speculo/` 目录。初始化以项目锁、完整 staging、active fingerprint 复验、原子 rename 与失败 rollback 组成一个事务;冲突不会发布部分结果,也不会创建新的 pending marker。
|
|
14
14
|
|
|
15
15
|
## 读取顺序
|
|
16
16
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"model": {
|
|
4
|
+
"id": "unknown",
|
|
5
|
+
"provider": "unknown",
|
|
6
|
+
"modalities": ["text"],
|
|
7
|
+
"context_window": 0,
|
|
8
|
+
"max_output": 0,
|
|
9
|
+
"reasoning_levels": []
|
|
10
|
+
},
|
|
11
|
+
"tools": {"classes": ["read-only"], "parallel": false, "programmatic": false},
|
|
12
|
+
"execution": {"sandbox": false, "network": false, "filesystem_roots": [], "data_retention": "session"},
|
|
13
|
+
"memory": {"compaction": false, "persistent": true, "cache": false}
|
|
14
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Speculo Runtime Kernel
|
|
2
|
+
|
|
3
|
+
The kernel is the provider-neutral persistence contract shared by every workflow.
|
|
4
|
+
|
|
5
|
+
- `events.jsonl` is append-only and records transitions, tools, approvals and evidence.
|
|
6
|
+
- `context/checkpoint.json` is the minimum recovery input after compaction or session loss.
|
|
7
|
+
- `capabilities.json` is a model/tool/sandbox capability snapshot captured at run start.
|
|
8
|
+
- `trace/` stores immutable run traces used by offline scenario evaluation.
|
|
9
|
+
|
|
10
|
+
Workflow packages declare stages and domain artifacts; they do not redefine lifecycle, risk, approval, or recovery semantics.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "urn:speculo:kernel:capability-profile:v1",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["schema_version", "model", "tools", "execution", "memory"],
|
|
6
|
+
"properties": {
|
|
7
|
+
"schema_version": {"const": 1},
|
|
8
|
+
"model": {"type": "object", "required": ["id", "modalities", "context_window", "max_output", "reasoning_levels"]},
|
|
9
|
+
"tools": {"type": "object", "required": ["classes", "parallel", "programmatic"]},
|
|
10
|
+
"execution": {"type": "object", "required": ["sandbox", "network", "filesystem_roots", "data_retention"]},
|
|
11
|
+
"memory": {"type": "object", "required": ["compaction", "persistent", "cache"]}
|
|
12
|
+
},
|
|
13
|
+
"additionalProperties": false
|
|
14
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "urn:speculo:kernel:checkpoint:v1",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["schema_version", "change_id", "stage", "locked_decisions", "open_questions", "next_action", "evidence", "state_digest", "created_at"],
|
|
6
|
+
"properties": {"schema_version": {"const": 1}, "change_id": {"type": "string"}, "stage": {"type": "string"}, "locked_decisions": {"type": "array", "items": {"type": "string"}}, "open_questions": {"type": "array", "items": {"type": "string"}}, "next_action": {"type": "string"}, "evidence": {"type": "array", "items": {"type": "string"}}, "state_digest": {"type": "string"}, "created_at": {"type": "string", "format": "date-time"}}
|
|
7
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "urn:speculo:kernel:trace-event:v1",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["schema_version", "sequence", "at", "kind", "payload"],
|
|
6
|
+
"properties": {"schema_version": {"const": 1}, "sequence": {"type": "integer", "minimum": 1}, "at": {"type": "string", "format": "date-time"}, "kind": {"enum": ["capability", "context", "tool", "transition", "approval", "evidence"]}, "payload": {"type": "object"}},
|
|
7
|
+
"additionalProperties": false
|
|
8
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "urn:speculo:kernel:workflow-manifest:v1",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["schema_version", "id", "version", "stages"],
|
|
6
|
+
"properties": {
|
|
7
|
+
"schema_version": {"const": 1},
|
|
8
|
+
"id": {"type": "string"},
|
|
9
|
+
"version": {"type": "string"},
|
|
10
|
+
"stages": {"type": "array", "items": {"type": "object", "required": ["id", "after", "inputs", "outputs", "risk", "context_budget"]}}
|
|
11
|
+
},
|
|
12
|
+
"additionalProperties": false
|
|
13
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"runtime": "speculo-kernel",
|
|
4
|
+
"change_lifecycle": ["draft", "active", "blocked", "awaiting_user", "completed", "archived", "cancelled"],
|
|
5
|
+
"risk_classes": ["read-only", "local-reversible", "local-destructive", "external-mutation", "production-critical"],
|
|
6
|
+
"event_log": ".speculo/events.jsonl",
|
|
7
|
+
"checkpoint": ".speculo/context/checkpoint.json",
|
|
8
|
+
"capability_profile": ".speculo/capabilities.json",
|
|
9
|
+
"trace": ".speculo/trace/"
|
|
10
|
+
}
|
|
@@ -9,12 +9,15 @@
|
|
|
9
9
|
"managed_metadata": [
|
|
10
10
|
".speculo/README.md",
|
|
11
11
|
".speculo/workspace.json",
|
|
12
|
-
".speculo/refresh-contract.json"
|
|
12
|
+
".speculo/refresh-contract.json",
|
|
13
|
+
".speculo/kernel.json"
|
|
13
14
|
],
|
|
14
15
|
"reserved_runtime": [
|
|
15
16
|
"README.md",
|
|
16
17
|
"workspace.json",
|
|
17
18
|
"refresh-contract.json",
|
|
19
|
+
"kernel.json",
|
|
20
|
+
"kernel",
|
|
18
21
|
"install.json",
|
|
19
22
|
"managed.json",
|
|
20
23
|
"migration.json",
|
package/template/AGENTS.md
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Speculo runtime guide
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
先按当前任务定位相关 workflow、command、skill 或 change,再读取对应入口和分支 reference;不默认整读 `speculo/` 或永久知识索引。
|
|
4
|
+
|
|
5
|
+
- 被动发现:读取 `speculo/workflows/<workflow>/INDEX.md`,只定位与当前请求相关的永久知识条目。
|
|
6
|
+
- 激活 workflow:再读取对应 `README.md`、状态投影和当前 Work;只加载当前分支需要的规则、schema、模板与工具。
|
|
7
|
+
- 记忆检索:先定位索引 entry,再回读少量原文和 provenance;没有匹配证据时停止猜测。
|
|
8
|
+
- 记忆写入:先解析 owner/gateway,检查 pending transaction、lock 和 recovery evidence;网关未知时阻塞该写入并继续独立工作。
|
|
9
|
+
- 只读探索、静态编辑和本地测试可直接进行;提交、推送、发布、部署、远程写入、归档移动、永久知识改写和不可逆操作必须由拥有该动作的入口取得明确授权。
|
|
10
|
+
- 失败、漂移、schema 冲突、越界路径或 owner 不明时停止受影响分支,保留证据并报告恢复路径。
|
|
11
|
+
|
|
12
|
+
详细状态、所有权和副作用合同由各 workflow 的 `INDEX.md`、`README.md`、`common/rules/` 和 schema 定义。
|
|
@@ -19,6 +19,13 @@ Goal Plan 只拥有单个 Ticket 无法独立决定的事情:整体 Outcome、
|
|
|
19
19
|
|
|
20
20
|
产物写入 `specdev/changes/{change}/goal-plan.md`。
|
|
21
21
|
|
|
22
|
+
## 读取范围
|
|
23
|
+
|
|
24
|
+
1. 先读取 SpecDev 的激活合同 与当前 Work 的状态入口。
|
|
25
|
+
2. 再读取 SpecDev 的按需读取与记忆写入协议,按当前分支、状态和关键词定位最小相关工件。
|
|
26
|
+
3. 只在本 Work 明确要求恢复、冲突、执行安全或归档证据时扩展为全量读取;缺少匹配证据或 owner/gateway 时停止受影响分支。
|
|
27
|
+
|
|
28
|
+
|
|
22
29
|
## 何时运行
|
|
23
30
|
|
|
24
31
|
满足任一条件时运行:
|
|
@@ -38,7 +45,7 @@ Goal Plan 只拥有单个 Ticket 无法独立决定的事情:整体 Outcome、
|
|
|
38
45
|
|
|
39
46
|
- `specdev/changes/{change}/spec.md`
|
|
40
47
|
- `specdev/changes/{change}/tickets-map.md`
|
|
41
|
-
- `specdev/changes/{change}/ticket
|
|
48
|
+
- `specdev/changes/{change}/ticket/`:先枚举 Ticket 入口的 frontmatter、依赖和状态,按 DAG、路径和风险定位需要完整读取的 Ticket。
|
|
42
49
|
- `specdev/config.json`
|
|
43
50
|
|
|
44
51
|
按存在情况读取:
|
|
@@ -51,6 +58,8 @@ Goal Plan 只拥有单个 Ticket 无法独立决定的事情:整体 Outcome、
|
|
|
51
58
|
- 永久领域上下文:`specdev/context/`
|
|
52
59
|
- 用户提供的合同、标准、参考实现、环境限制、发布窗口和批准策略。
|
|
53
60
|
|
|
61
|
+
非当前分支的 ADR、CONTEXT、LOG、Diagnosis、Evidence、研究资料和永久目录先通过索引、状态和关键词定位;只有被当前 Gate、依赖、冲突或恢复条件命中的条目才回读原文。Tickets Map、当前计划和决定 DAG 的 Ticket frontmatter 是权威编排输入,仍需完整读取。
|
|
62
|
+
|
|
54
63
|
永久目录可以为空,静默继续。缺少 Spec 或 Tickets Map 时返回 “编写 Spec 阶段” 或 “拆分 Tickets 阶段”;当前 ADR/CONTEXT 缺失且规划依赖对应决定时返回 “设计访谈能力”,不在 Goal Plan 中补造上游权威。
|
|
55
64
|
|
|
56
65
|
## 流程
|
|
@@ -19,6 +19,13 @@
|
|
|
19
19
|
|
|
20
20
|
本 work 只把访谈写成当前 change 的可恢复工件:设计树保存进度,LOG 保存讨论轨迹,CONTEXT 保存本 change 已确认的规范语言,ADR 保存已成为本 change 下游合同的架构决定。这些工件不等于项目永久知识,也不构成实现授权;永久 namespace 对 G 只读,只有 “归档与沉淀阶段” 能在实现证据、毕业评估和用户确认通过后执行提升。
|
|
21
21
|
|
|
22
|
+
## 读取范围
|
|
23
|
+
|
|
24
|
+
1. 先读取 SpecDev 的激活合同 与当前 Work 的状态入口。
|
|
25
|
+
2. 再读取 SpecDev 的按需读取与记忆写入协议,按当前分支、状态和关键词定位最小相关工件。
|
|
26
|
+
3. 只在本 Work 明确要求恢复、冲突、执行安全或归档证据时扩展为全量读取;缺少匹配证据或 owner/gateway 时停止受影响分支。
|
|
27
|
+
|
|
28
|
+
|
|
22
29
|
## 输入与产物
|
|
23
30
|
|
|
24
31
|
按存在情况读取:
|
|
@@ -19,6 +19,13 @@
|
|
|
19
19
|
|
|
20
20
|
父 change 的主产物是 `specdev/changes/{change}/implementation-map.md` 与 `specdev/changes/{change}/implementation-plan.md`;整体验证写入 `specdev/changes/{change}/evidence/implementation-orchestration.md`。
|
|
21
21
|
|
|
22
|
+
## 读取范围
|
|
23
|
+
|
|
24
|
+
1. 先读取 SpecDev 的激活合同 与当前 Work 的状态入口。
|
|
25
|
+
2. 再读取 SpecDev 的按需读取与记忆写入协议,按当前分支、状态和关键词定位最小相关工件。
|
|
26
|
+
3. 只在本 Work 明确要求恢复、冲突、执行安全或归档证据时扩展为全量读取;缺少匹配证据或 owner/gateway 时停止受影响分支。
|
|
27
|
+
|
|
28
|
+
|
|
22
29
|
## 激活输入
|
|
23
30
|
|
|
24
31
|
创建模式必须获得至少两个用户明确指定的 change。恢复模式由用户指定父 change,或从 active change 中唯一满足 `current_work=specdev/orchestrate-implementation` 且存在父实现产物者确定。
|
|
@@ -29,10 +36,12 @@
|
|
|
29
36
|
- 每个成员的 `specdev/changes/{member-change}/.status.json`;
|
|
30
37
|
- 每个成员的 `specdev/changes/{member-change}/spec.md`;
|
|
31
38
|
- 每个成员的 `specdev/changes/{member-change}/tickets-map.md`;
|
|
32
|
-
- 每个成员的 `specdev/changes/{member-change}/ticket
|
|
39
|
+
- 每个成员的 `specdev/changes/{member-change}/ticket/`:先枚举所有 Ticket frontmatter、依赖、状态和可写路径,再按 super-DAG、冲突和当前 frontier 回读相关正文;
|
|
33
40
|
- 存在时读取子 Goal Plan、ADR、CONTEXT、LOG、Diagnosis 与 Evidence;
|
|
34
41
|
- 当前 repository、branch、HEAD、dirty 状态、项目 Agent 指令与可用验证命令。
|
|
35
42
|
|
|
43
|
+
成员的 Spec、Tickets Map、Ticket frontmatter、状态和父级编排证据是 super-DAG 的权威输入,必须完整读取;成员的 ADR、CONTEXT、LOG、Diagnosis、Evidence、研究资料和项目 Skills 先按索引、状态和关键词定位,只读取命中的条目。恢复、冲突、漂移和集成失败时按本 Work 的证据合同扩展为全量读取。
|
|
44
|
+
|
|
36
45
|
加载 下方 `<input-readiness>` 标签 和 下方 `<parent-implementation-orchestration>` 标签。任何成员未实现就绪、已归档、等于父 change、属于另一个未完成父实现 change,或本身是父实现 change 时,不创建父 change。
|
|
37
46
|
|
|
38
47
|
## 流程
|
|
@@ -438,6 +447,13 @@ ready_for_execution: true
|
|
|
438
447
|
|
|
439
448
|
若当前 change 是未完成父 Implementation Map 的成员,必须读取 下方 `<parent-implementation-orchestration>` 标签、父 Map 与父 Plan。父 Plan 提供跨 change dependency/serialization、全局 workspace 策略、组合派单标识、implementation agent cap 和 integration queue;子 Goal Plan 只能增加子内 Gate,不能放宽或冲突。
|
|
440
449
|
|
|
450
|
+
## 读取范围
|
|
451
|
+
|
|
452
|
+
1. 先读取 SpecDev 的激活合同 与当前 Work 的状态入口。
|
|
453
|
+
2. 再读取 SpecDev 的按需读取与记忆写入协议,按当前分支、状态和关键词定位最小相关工件。
|
|
454
|
+
3. 只在本 Work 明确要求恢复、冲突、执行安全或归档证据时扩展为全量读取;缺少匹配证据或 owner/gateway 时停止受影响分支。
|
|
455
|
+
|
|
456
|
+
|
|
441
457
|
## 执行模式
|
|
442
458
|
|
|
443
459
|
### Ticket 模式(默认)
|
|
@@ -629,7 +645,7 @@ Ticket 模式返回 Ticket/change 状态、Evidence 完整路径、workspace loc
|
|
|
629
645
|
|
|
630
646
|
- [ ] Ticket frontmatter 可解析,`ready: true`,`status: ready`。
|
|
631
647
|
- [ ] Tickets Map 已完整读取,包含总体实施背景和项目 Skill 读取矩阵;当前 Ticket 被 `ALL` 或自身 ID 覆盖。
|
|
632
|
-
- [ ] 当前 Ticket 映射的项目 Skill 路径均为真实存在的项目根相对入口文件,Lead
|
|
648
|
+
- [ ] 当前 Ticket 映射的项目 Skill 路径均为真实存在的项目根相对入口文件,Lead 已读取入口并完整展开命中的 Skill;implementation subagent Packet 包含 Map 与同一最低必读集合。
|
|
633
649
|
- [ ] 项目 Agent 指令或当前实现范围没有触发矩阵外的未读项目 Skill;发现新匹配项时由 Lead 更新 Map、重新运行 tickets 校验后再恢复项目写入。
|
|
634
650
|
- [ ] 所有 `blocked_by` Ticket 为 done 且 Evidence 存在。
|
|
635
651
|
- [ ] Spec、ADR、Ticket 与 Goal Plan 无冲突;旧 Goal Plan schema 必须重跑 P-goal-plan。
|
|
@@ -17,6 +17,13 @@
|
|
|
17
17
|
|
|
18
18
|
Spec 决定“为什么、为谁、系统应表现为何”。它可以锁定影响公共接口、数据、兼容、安全或验收的实现约束,但不写逐文件施工计划。
|
|
19
19
|
|
|
20
|
+
## 读取范围
|
|
21
|
+
|
|
22
|
+
1. 先读取 SpecDev 的激活合同 与当前 Work 的状态入口。
|
|
23
|
+
2. 再读取 SpecDev 的按需读取与记忆写入协议,按当前分支、状态和关键词定位最小相关工件。
|
|
24
|
+
3. 只在本 Work 明确要求恢复、冲突、执行安全或归档证据时扩展为全量读取;缺少匹配证据或 owner/gateway 时停止受影响分支。
|
|
25
|
+
|
|
26
|
+
|
|
20
27
|
## 输入
|
|
21
28
|
|
|
22
29
|
按存在情况读取:
|
|
@@ -17,6 +17,13 @@ Ticket 是**决策完备的微型执行计划**:它消除执行者在目标、
|
|
|
17
17
|
|
|
18
18
|
本 work 保留原有能力:代码库探索、prefactor 识别、曳光弹垂直切片、真实阻塞边、用户粒度核对、宽重构的 expand-contract 排序、Ticket 独立文件和总体 Tickets Map。
|
|
19
19
|
|
|
20
|
+
## 读取范围
|
|
21
|
+
|
|
22
|
+
1. 先读取 SpecDev 的激活合同 与当前 Work 的状态入口。
|
|
23
|
+
2. 再读取 SpecDev 的按需读取与记忆写入协议,按当前分支、状态和关键词定位最小相关工件。
|
|
24
|
+
3. 只在本 Work 明确要求恢复、冲突、执行安全或归档证据时扩展为全量读取;缺少匹配证据或 owner/gateway 时停止受影响分支。
|
|
25
|
+
|
|
26
|
+
|
|
20
27
|
## 输入
|
|
21
28
|
|
|
22
29
|
优先读取:
|
|
@@ -37,7 +44,7 @@ Ticket 是**决策完备的微型执行计划**:它消除执行者在目标、
|
|
|
37
44
|
|
|
38
45
|
### 1. 输入预检
|
|
39
46
|
|
|
40
|
-
1.
|
|
47
|
+
1. 先读取上游工件索引,按当前 Ticket 的依赖、缺口和冲突关键词定位,再回读相关工件;
|
|
41
48
|
2. 检查 `specdev/changes/{change}/spec.md` 的 `ready_for_tickets`;
|
|
42
49
|
3. 按 下方 `<artifact-contract>` 标签 处理 Spec、ADR、用户决定与代码事实的冲突;
|
|
43
50
|
4. 将未知项分类为可发现事实、高影响用户决定和低影响实现细节;
|
|
@@ -61,8 +68,8 @@ Ticket 是**决策完备的微型执行计划**:它消除执行者在目标、
|
|
|
61
68
|
#### 项目 Skill 路由
|
|
62
69
|
|
|
63
70
|
1. 读取项目 Agent 指令,确定项目声明的 Skill 根;至少枚举 `.agents/skills/**/SKILL.md`,存在其他项目级 Skill 根时一并枚举;
|
|
64
|
-
2. 先读取候选 Skill 的 frontmatter
|
|
65
|
-
3.
|
|
71
|
+
2. 先读取候选 Skill 的 frontmatter 与入口路由;只有命中当前 change 的 scope、路径、技术域或验证条件时才完整读取,并按其 Skill Map 路由到当前 change 需要的领域 Skill;
|
|
72
|
+
3. 根据 change 索引、每个 Ticket 的 frontmatter、路径、技术域、公共契约、迁移与验证范围,确定 `ALL` 或具体 Ticket 的最低必读集合;只把真实存在且触发条件匹配的项目 Skill 纳入;
|
|
66
73
|
4. 使用项目根相对 Path 记录每个 Skill 的入口文件,同时记录触发 scope、读取时机和用途;不得把 Speculo 自带 Skill 或机器绝对路径伪装成项目 Skill;
|
|
67
74
|
5. 未发现适用项目 Skill 时,记录已扫描的 Skill 根和“无适用项”,不生成虚假路径;项目 Skill 清单是最低集合而非 allowlist。
|
|
68
75
|
|
|
@@ -397,7 +404,7 @@ shared_path_owners: []
|
|
|
397
404
|
- **上游 Spec:** `specdev/changes/{change}/spec.md`
|
|
398
405
|
- **完成 Evidence:** `specdev/changes/{change}/evidence/T-01.md`
|
|
399
406
|
|
|
400
|
-
实现本 Ticket 时,Lead 与 implementation subagent 必须按顺序完整读取总体 Map
|
|
407
|
+
实现本 Ticket 时,Lead 与 implementation subagent 必须按顺序完整读取总体 Map,读取项目 Skill 的 frontmatter 与入口并只展开适用于 `ALL`/`T-01` 的匹配项,再读取本 Ticket 与相关上游工件。Map 中的 Skill 是最低必读集合;新的匹配项先由 Lead 同步到 Map 并重新校验。
|
|
401
408
|
|
|
402
409
|
## 1. 战略与来源
|
|
403
410
|
|
|
@@ -496,7 +503,7 @@ E2E 由实际跨边界行为与风险决定,不限于 UI;required 模式不
|
|
|
496
503
|
## 10. 验收标准
|
|
497
504
|
|
|
498
505
|
- [ ] `AC-001`:<可判定结果>。
|
|
499
|
-
- [ ] 实现开始前已完整读取 Tickets Map
|
|
506
|
+
- [ ] 实现开始前已完整读取 Tickets Map,已读取项目 Skill 入口并完整展开其中适用于 `ALL`/`T-01` 的匹配项;新发现的匹配 Skill 已由 Lead 同步回 Map。
|
|
500
507
|
- [ ] 验证矩阵全部执行并记录到 `specdev/changes/{change}/evidence/T-01.md`。
|
|
501
508
|
- [ ] 实际项目修改未超出 `writable_paths`,shared path 由指定 owner 修改。
|
|
502
509
|
- [ ] Ticket 已按 Goal Plan 策略形成非空 implementation/source commit,direct-parent 或 candidate 验证通过且父分支 result 已记录。
|
|
@@ -537,7 +544,7 @@ status: draft
|
|
|
537
544
|
|
|
538
545
|
### 项目 Skill 读取矩阵
|
|
539
546
|
|
|
540
|
-
每个 Ticket 的 Lead 或 implementation subagent 都必须先完整读取本 Map
|
|
547
|
+
每个 Ticket 的 Lead 或 implementation subagent 都必须先完整读取本 Map,再读取候选项目 Skill 的 frontmatter 与入口;只有适用于 `ALL` 或当前 Ticket ID、且 scope/路径/技术域/验证条件命中的 Skill 才完整读取,最后进入当前 Ticket。下表是发布时已确认的**最低必读集合,不是 Skill allowlist**;项目 Agent 指令或实现范围触发其他项目 Skill 时,先定位并读取其入口,由 Lead 更新本 Map、重新校验后继续。
|
|
541
548
|
|
|
542
549
|
项目 Skill 使用项目根相对 Path,例如 `.agents/skills/{skill-name}/SKILL.md`;不得写机器绝对路径。若没有适用项目 Skill,保留一行 `无(已扫描项目 Skill 入口,未发现适用项)`,并在 Trigger / Scope 中记录实际扫描范围。
|
|
543
550
|
|
|
@@ -17,6 +17,13 @@
|
|
|
17
17
|
|
|
18
18
|
目的地可能是一份待移交和迭代的 Spec、一个在规划开始前需锁定的决策,或一项经说明允许在地图中完成的变更。命名目的地是第一步,它塑造每个 Ticket。
|
|
19
19
|
|
|
20
|
+
## 读取范围
|
|
21
|
+
|
|
22
|
+
1. 先读取 SpecDev 的激活合同 与当前 Work 的状态入口。
|
|
23
|
+
2. 再读取 SpecDev 的按需读取与记忆写入协议,按当前分支、状态和关键词定位最小相关工件。
|
|
24
|
+
3. 只在本 Work 明确要求恢复、冲突、执行安全或归档证据时扩展为全量读取;缺少匹配证据或 owner/gateway 时停止受影响分支。
|
|
25
|
+
|
|
26
|
+
|
|
20
27
|
## 核心纪律
|
|
21
28
|
|
|
22
29
|
### 规划,而非执行
|
|
@@ -2,59 +2,31 @@
|
|
|
2
2
|
id: archive-and-consolidate
|
|
3
3
|
type: command
|
|
4
4
|
name: Archive and Consolidate
|
|
5
|
-
description:
|
|
6
|
-
|
|
7
|
-
并清理过时/重复知识。默认 dry-run,需用户确认后执行。
|
|
8
|
-
keywords: [archive, consolidate, knowledge, cleanup, adr, 归档, 知识合并, 清理, 收尾]
|
|
5
|
+
description: Archive or consolidate a user-selected completed change and its knowledge under the owning workflow contract.
|
|
6
|
+
keywords: [archive, consolidate, learning, topic, cold-archive, 归档, 综合]
|
|
9
7
|
---
|
|
10
8
|
|
|
11
9
|
# Archive and Consolidate 命令
|
|
12
10
|
|
|
13
11
|
## 报告
|
|
14
12
|
|
|
15
|
-
统一写入:`<Path>{roots.state}/commands/archive-and-consolidate/{date}-{scope}-{topic}[-NN].md</Path
|
|
13
|
+
统一写入:`<Path>{roots.state}/commands/archive-and-consolidate/{date}-{scope}-{topic}[-NN].md</Path>`。报告记录 workflow、source/root IDs、dry-run 清单、用户确认、relocation manifest、synthesis revision 或 archive locator 和验证结果。
|
|
16
14
|
|
|
17
|
-
|
|
15
|
+
## Learning 路由
|
|
18
16
|
|
|
19
|
-
|
|
17
|
+
目标 workflow 为 Learning 时,读取 `<Path>{roots.workflows}/learning/README.md</Path>`,由用户明确选择一个 Work:
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
- `C-consolidate`:生成 source manifest 和 dry-run;确认后调用 `<Path>{roots.workflows}/learning/common/tools/relocate-learning.mjs</Path>` 物理移动 active/closed Change 到父 Change 的 `children/`,再生成带 provenance 的 synthesis。未确认时不得移动或更新 context。
|
|
20
|
+
- `A-archive`:只处理用户 close/confirm 的 root Change 树,以最新源更新时间决定 `archive/YYYY-MM/`,不要求 Homework、R 或 mastery,也不写 context。
|
|
22
21
|
|
|
23
|
-
|
|
24
|
-
- `archive-batch`:只读列出全部 completed Ops tuples 和各自复盘/提升状态,生成 command 报告后停止。知识合并与归档必须逐 change 进入 A 并分别批准,不能用一次跨项目确认替代多个精确 promotion manifest。
|
|
22
|
+
不得把 Learning 交给共享的根级机械归档 skill;该 skill 不能理解递归 locator、parent lock 或单文件 Homework 证据。已冷归档树保持只读,需先由用户显式恢复才能作为 C 的可移动 source。
|
|
25
23
|
|
|
26
|
-
|
|
24
|
+
## 其他 workflow
|
|
27
25
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
### archive-single
|
|
31
|
-
|
|
32
|
-
归档并合并单个已完成 change 的知识。
|
|
33
|
-
|
|
34
|
-
1. 读取 `<Path>{roots.skills}/archive-and-consolidate/SKILL.md</Path>`,执行路径解析(Step 0),解析 `<Path>{roots.config}</Path>`(不存在时静默降级)。
|
|
35
|
-
2. 选择一个 `change_status: completed` 的 change。
|
|
36
|
-
3. 目标为 SpecDev 时先读取 `<Path>{roots.workflows}/specdev/common/rules/change-completion.md</Path>` 与当前 change 的 `<Path>{roots.state}/specdev/changes/{change}/triage.md</Path>`:完成门必须通过,`external_action` 必须为 `closed | waived | not-applicable`;pending/failed 返回 Triage,不生成可执行归档计划。
|
|
37
|
-
4. 执行 Step 1-5:扫描 stores、扫描 change、生成归档计划、生成合并计划、生成清理候选。
|
|
38
|
-
5. 默认 dry-run:将完整计划写入报告文件,展示摘要并等待用户显式确认。
|
|
39
|
-
6. 确认后以 mode=`confirmed` 执行 Step 7-8:归档移动、合并写入、清理、重读验证。
|
|
40
|
-
7. 执行结果作为补遗追加到原报告。
|
|
41
|
-
|
|
42
|
-
### archive-batch
|
|
43
|
-
|
|
44
|
-
批量归档并合并所有已完成 change 的知识。
|
|
45
|
-
|
|
46
|
-
1. 读取 `<Path>{roots.skills}/archive-and-consolidate/SKILL.md</Path>`,执行路径解析。
|
|
47
|
-
2. 扫描目标 workflow 下所有 `change_status: completed` 的 change。不接受 active 或 broken 状态。
|
|
48
|
-
3. SpecDev 候选逐个通过 change completion 与 external reconcile 门;任一 pending/failed 阻塞整批。
|
|
49
|
-
4. 执行 Step 1-5:扫描 stores、逐 change 扫描、批量预检、合并计划、清理候选。
|
|
50
|
-
5. 批量原子性:任一预检失败阻塞整批。
|
|
51
|
-
6. 默认 dry-run:将完整计划写入报告文件,展示摘要并等待用户显式确认。
|
|
52
|
-
7. 确认后逐项执行:归档移动 → 合并写入 → 清理 → 重读验证。失败时报告已完成/未完成清单。
|
|
26
|
+
非 Learning 目标继续读取自身 README 和归档 Work,Command 报告只记录选择和 owning Work 返回的 manifest,不成为知识 writer。
|
|
53
27
|
|
|
54
28
|
## 完成标准
|
|
55
29
|
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
- 合并写入的每条知识有来源 change 标注。
|
|
60
|
-
- 每个清理候选有分类和理由。
|
|
30
|
+
- dry-run、确认、移动、回滚和最终验证均有报告;
|
|
31
|
+
- 原始 Markdown 内容不被覆盖,跨路径引用通过 stable ID/locations 解析;
|
|
32
|
+
- 未确认或失败事务不留下部分移动或 context 写入。
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
id: docs-sync
|
|
3
3
|
type: command
|
|
4
4
|
name: Docs Sync
|
|
5
|
-
description:
|
|
5
|
+
description: Synchronize project documentation and agent handbooks for a confirmed reproducible Git range.
|
|
6
6
|
keywords: [docs-sync, readme, changelog, agents, documentation]
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
id: git-repository-audit
|
|
3
3
|
type: command
|
|
4
4
|
name: Git Repository Audit
|
|
5
|
-
description:
|
|
5
|
+
description: Produce a read-only reproducible audit for explicitly selected local Git repositories.
|
|
6
6
|
keywords: [git-audit, git-inventory, repository, commit, merge, contribution, 仓库盘点, 代码审计, 团队评估]
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
id: handoff
|
|
3
3
|
type: command
|
|
4
4
|
name: handoff
|
|
5
|
-
description:
|
|
5
|
+
description: Persist a compact handoff when the user asks another agent or session to continue the current work.
|
|
6
6
|
keywords: [handoff, 交接, 移交, 上下文压缩]
|
|
7
7
|
argument-hint: "下一个会话将用于什么?"
|
|
8
8
|
disable-model-invocation: true
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
id: retro
|
|
3
3
|
type: command
|
|
4
4
|
name: Speculo Retro
|
|
5
|
-
description:
|
|
5
|
+
description: Analyze confirmed Speculo usage friction and propose or create GitHub issues through the npm/GitHub operation skill.
|
|
6
6
|
keywords: [retro, 复盘, 痛点, feedback, issue, 优化, 反馈]
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
id: status
|
|
3
3
|
type: command
|
|
4
4
|
name: Status
|
|
5
|
-
description:
|
|
5
|
+
description: Summarize installed workflows, active changes, anomalies, and next routes without activating a workflow.
|
|
6
6
|
keywords: [status, 状态, active, blocked]
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -10,8 +10,8 @@ keywords: [status, 状态, active, blocked]
|
|
|
10
10
|
|
|
11
11
|
1. 读取 `<Path>{roots.state}/workspace.json</Path>`,解析 `<Path>{roots.config}</Path>`(不存在时以默认值静默降级),获取全部已安装 workflow/state 根。
|
|
12
12
|
2. 扫描 `<Path>{roots.workflows}/{workflow}/INDEX.md</Path>`,得到已安装 workflow ids。
|
|
13
|
-
3. 对每个 id 读取 `<Path>{roots.state}/{workflow}/status.json</Path>`,按该 workflow 自己的 schema 解释,不把 SpecDev 字段套到其他 workflow。
|
|
14
|
-
4. 报告 active 数量、各
|
|
15
|
-
5. 报告 archived 数量和完整 scope/project/change locator;Learning 同时读取 `context/REVIEW.md`
|
|
13
|
+
3. 对每个 id 读取 `<Path>{roots.state}/{workflow}/status.json</Path>`,按该 workflow 自己的 schema 解释,不把 SpecDev 字段套到其他 workflow。Learning schema v2 的 active/archived entry 携带 stable `change_id`、kind、parent/root、current locator、current_work、Homework 和 retention projection;递归 Change 位于 `changes/**` 或 `archive/**`,位置历史读取 `<Path>{roots.state}/learning/locations.json</Path>`。SpecDev 继续使用 schema v5 根级 `changes/<change>`/`archive/YYYY-MM/<change>`;Ops schema v2 仍使用 `<Path>{roots.state}/ops/projects/{project_id}/changes/{change}/.status.json</Path>` 或对应 `archive/YYYY-MM/{change}/.status.json`。不得按 change 名跨 workflow 合并。
|
|
14
|
+
4. 报告 active 数量、各 Change 的 `current_work`、去重后的 `works_run`、生命周期、parent/root、最近更新时间和停滞 Change(`.status.json` 超过 14 天未更新)。SpecDev 额外报告调查 claims 与 triage `external_action`;Learning 额外报告 domain/topic、Lesson/Homework、immediate/retention 和 synthesis 状态;Ops 额外报告 scope/project、phase、outcome、current plan/approval、latest attempt 和 blockers,并把同名不同项目 Change 分行展示。
|
|
15
|
+
5. 报告 archived 数量和完整 scope/project/change locator;Learning 同时读取 `context/REVIEW.md` 汇总到期 Review、topic evidence status 和需要刷新内容。预期归档目录或 `.status.json` 缺失、active/archived 重叠、parent cycle、位置登记不一致、未知 schema、断开链接和 malformed 目录均列为异常,不自动修复。
|
|
16
16
|
6. 报告没有 workflow 资产的孤立状态根,以及缺少状态根的已安装 workflow;不自动修复。
|
|
17
17
|
7. 用户要求持久化时写入 `<Path>{roots.state}/commands/status/{date}-workspace-{topic}[-NN].md</Path>`,并在报告中列出本次扫描的 workflow 选择。
|