@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.
Files changed (144) hide show
  1. package/README.md +11 -7
  2. package/dist/src/cli.js +12 -1
  3. package/dist/src/cli.js.map +1 -1
  4. package/dist/src/doctor.d.ts +10 -0
  5. package/dist/src/doctor.js +70 -0
  6. package/dist/src/doctor.js.map +1 -0
  7. package/dist/src/index.js +105 -56
  8. package/dist/src/index.js.map +1 -1
  9. package/dist/src/kernel.d.ts +98 -0
  10. package/dist/src/kernel.js +29 -0
  11. package/dist/src/kernel.js.map +1 -0
  12. package/dist/src/refresh.js +55 -24
  13. package/dist/src/refresh.js.map +1 -1
  14. package/dist/src/structured.d.ts +2 -2
  15. package/dist/src/structured.js +114 -241
  16. package/dist/src/structured.js.map +1 -1
  17. package/package.json +4 -3
  18. package/template/.speculo/README.md +1 -1
  19. package/template/.speculo/capabilities.json +14 -0
  20. package/template/.speculo/kernel/README.md +10 -0
  21. package/template/.speculo/kernel/capability-profile.schema.json +14 -0
  22. package/template/.speculo/kernel/checkpoint.schema.json +7 -0
  23. package/template/.speculo/kernel/trace-event.schema.json +8 -0
  24. package/template/.speculo/kernel/workflow-manifest.schema.json +13 -0
  25. package/template/.speculo/kernel.json +10 -0
  26. package/template/.speculo/refresh-contract.json +4 -1
  27. package/template/AGENTS.md +11 -3
  28. package/template/canonical/canonical-specdev-goal-plan.md +10 -1
  29. package/template/canonical/canonical-specdev-grill-with-docs.md +7 -0
  30. package/template/canonical/canonical-specdev-orchestrate-implementation.md +18 -2
  31. package/template/canonical/canonical-specdev-spec.md +7 -0
  32. package/template/canonical/canonical-specdev-tickets.md +13 -6
  33. package/template/canonical/canonical-specdev-wayfinder.md +7 -0
  34. package/template/commands/archive-and-consolidate.md +13 -41
  35. package/template/commands/docs-sync.md +1 -1
  36. package/template/commands/git-repository-audit.md +1 -1
  37. package/template/commands/handoff.md +1 -1
  38. package/template/commands/retro.md +1 -1
  39. package/template/commands/status.md +4 -4
  40. package/template/skills/archive-and-consolidate/SKILL.md +9 -168
  41. package/template/skills/archive-and-consolidate/references/entry-procedure.md +170 -0
  42. package/template/skills/docs-sync/SKILL.md +9 -11
  43. package/template/skills/docs-sync/references/entry-procedure.md +18 -0
  44. package/template/skills/engineering-standards-builder/SKILL.md +9 -148
  45. package/template/skills/engineering-standards-builder/references/entry-procedure.md +154 -0
  46. package/template/skills/git-history-squash/SKILL.md +9 -88
  47. package/template/skills/git-history-squash/references/entry-procedure.md +94 -0
  48. package/template/skills/github-npm-ops/SKILL.md +9 -18
  49. package/template/skills/github-npm-ops/references/entry-procedure.md +25 -0
  50. package/template/skills/optimize-codex-config/SKILL.md +12 -72
  51. package/template/skills/optimize-codex-config/references/entry-procedure.md +78 -0
  52. package/template/skills/source-code-zip/SKILL.md +10 -559
  53. package/template/skills/source-code-zip/references/entry-procedure.md +565 -0
  54. package/template/skills/speculo-retro/SKILL.md +9 -16
  55. package/template/skills/speculo-retro/references/entry-procedure.md +23 -0
  56. package/template/skills/upstream-fork-sync/SKILL.md +10 -72
  57. package/template/skills/upstream-fork-sync/references/entry-procedure.md +78 -0
  58. package/template/skills/writing-great-skills/SKILL.md +9 -73
  59. package/template/skills/writing-great-skills/references/entry-procedure.md +79 -0
  60. package/template/workflows/learning/A-archive/A-archive.md +32 -0
  61. package/template/workflows/learning/A-assess-and-plan/A-assess-and-plan.md +23 -22
  62. package/template/workflows/learning/A-assess-and-plan/background-template.md +13 -0
  63. package/template/workflows/learning/A-assess-and-plan/change-status-template.json +21 -14
  64. package/template/workflows/learning/A-assess-and-plan/course-template.md +28 -0
  65. package/template/workflows/learning/C-consolidate/C-consolidate.md +40 -0
  66. package/template/workflows/learning/H-homework/H-homework.md +38 -0
  67. package/template/workflows/learning/H-homework/homework-template.md +63 -0
  68. package/template/workflows/learning/I-init-setup/I-init-setup.md +20 -18
  69. package/template/workflows/learning/I-init-setup/context-index-template.md +3 -3
  70. package/template/workflows/learning/I-init-setup/learner-profile-template.md +12 -10
  71. package/template/workflows/learning/I-init-setup/review-index-template.md +1 -1
  72. package/template/workflows/learning/INDEX.md +8 -8
  73. package/template/workflows/learning/L-lesson/L-lesson.md +39 -0
  74. package/template/workflows/learning/L-lesson/lesson-template.md +51 -0
  75. package/template/workflows/learning/R-review/R-review.md +19 -17
  76. package/template/workflows/learning/R-review/review-template.md +13 -6
  77. package/template/workflows/learning/README.md +88 -81
  78. package/template/workflows/learning/_state/status.json +1 -1
  79. package/template/workflows/learning/common/rules/activation-and-memory.md +20 -0
  80. package/template/workflows/learning/common/rules/artifact-contract.md +11 -25
  81. package/template/workflows/learning/common/rules/assessment-policy.md +9 -4
  82. package/template/workflows/learning/common/rules/knowledge-organization.md +4 -6
  83. package/template/workflows/learning/common/rules/mastery-policy.md +3 -19
  84. package/template/workflows/learning/common/rules/path-reference-contract.md +3 -5
  85. package/template/workflows/learning/common/rules/teaching-policy.md +9 -9
  86. package/template/workflows/learning/common/schemas/change-status.schema.json +46 -18
  87. package/template/workflows/learning/common/schemas/status.schema.json +25 -24
  88. package/template/workflows/learning/common/skills/topic-synthesis/SKILL.md +17 -0
  89. package/template/workflows/learning/common/skills/topic-synthesis/claim-template.md +15 -0
  90. package/template/workflows/learning/common/tools/relocate-learning.mjs +208 -0
  91. package/template/workflows/learning/common/tools/validate-learning.mjs +195 -297
  92. package/template/workflows/learning/manifest.json +1 -0
  93. package/template/workflows/learning/runtime-contract.json +3 -2
  94. package/template/workflows/ops/A-archive-and-learn/A-archive-and-learn.md +7 -0
  95. package/template/workflows/ops/E-execute-and-stabilize/E-execute-and-stabilize.md +8 -1
  96. package/template/workflows/ops/I-intake-and-assess/I-intake-and-assess.md +7 -0
  97. package/template/workflows/ops/INDEX.md +2 -0
  98. package/template/workflows/ops/P-plan-and-approve/P-plan-and-approve.md +8 -1
  99. package/template/workflows/ops/README.md +3 -0
  100. package/template/workflows/ops/common/rules/activation-and-memory.md +20 -0
  101. package/template/workflows/ops/manifest.json +1 -0
  102. package/template/workflows/person/INDEX.md +2 -0
  103. package/template/workflows/person/M-mao-zedong-cognitive-os/M-mao-zedong-cognitive-os.md +9 -0
  104. package/template/workflows/person/M-mao-zedong-cognitive-os/books/README.md +1 -1
  105. package/template/workflows/person/S-steelman-deliberation/S-steelman-deliberation.md +7 -0
  106. package/template/workflows/person/common/rules/activation-and-memory.md +20 -0
  107. package/template/workflows/person/manifest.json +1 -0
  108. package/template/workflows/specdev/A-archive-and-consolidate/A-archive-and-consolidate.md +7 -0
  109. package/template/workflows/specdev/C-code-review/C-code-review.md +7 -0
  110. package/template/workflows/specdev/D-diagnose-bugs/D-diagnose-bugs.md +7 -0
  111. package/template/workflows/specdev/G-grill-with-docs/G-grill-with-docs.md +7 -0
  112. package/template/workflows/specdev/I-implement/I-implement.md +7 -0
  113. package/template/workflows/specdev/I-implement/execution-preflight.md +1 -1
  114. package/template/workflows/specdev/I-init-setup/I-init-setup.md +7 -0
  115. package/template/workflows/specdev/INDEX.md +2 -0
  116. package/template/workflows/specdev/L-learn-change/L-learn-change.md +7 -0
  117. package/template/workflows/specdev/O-orchestrate-implementation/O-orchestrate-implementation.md +10 -1
  118. package/template/workflows/specdev/P-goal-plan/P-goal-plan.md +10 -1
  119. package/template/workflows/specdev/P-prototype/P-prototype.md +7 -0
  120. package/template/workflows/specdev/R-review-architecture/R-review-architecture.md +7 -0
  121. package/template/workflows/specdev/README.md +3 -0
  122. package/template/workflows/specdev/S-spec/S-spec.md +7 -0
  123. package/template/workflows/specdev/T-tickets/T-tickets.md +10 -3
  124. package/template/workflows/specdev/T-tickets/ticket-template.md +2 -2
  125. package/template/workflows/specdev/T-tickets/tickets-map-template.md +1 -1
  126. package/template/workflows/specdev/T-triage/T-triage.md +7 -0
  127. package/template/workflows/specdev/W-wayfinder/W-wayfinder.md +7 -0
  128. package/template/workflows/specdev/common/README.md +1 -0
  129. package/template/workflows/specdev/common/rules/activation-and-memory.md +20 -0
  130. package/template/workflows/specdev/manifest.json +1 -0
  131. package/template/workflows/workflow-manifest.schema.json +14 -0
  132. package/template/workflows/learning/A-archive-and-consolidate/A-archive-and-consolidate.md +0 -38
  133. package/template/workflows/learning/A-archive-and-consolidate/promotion-plan-template.md +0 -23
  134. package/template/workflows/learning/A-assess-and-plan/learning-plan-template.md +0 -28
  135. package/template/workflows/learning/E-eli5/E-eli5.md +0 -37
  136. package/template/workflows/learning/E-eli5/lesson-template.md +0 -31
  137. package/template/workflows/learning/P-practice/P-practice.md +0 -34
  138. package/template/workflows/learning/P-practice/practice-template.md +0 -16
  139. package/template/workflows/learning/Q-quiz/Q-quiz.md +0 -34
  140. package/template/workflows/learning/Q-quiz/quiz-artifact-template.md +0 -16
  141. package/template/workflows/learning/common/skills/knowledge-promotion/SKILL.md +0 -46
  142. package/template/workflows/learning/common/skills/knowledge-promotion/domain-index-template.md +0 -6
  143. package/template/workflows/learning/common/skills/knowledge-promotion/domain-overview-template.md +0 -19
  144. package/template/workflows/learning/common/skills/knowledge-promotion/knowledge-template.md +0 -25
@@ -1,5 +1,5 @@
1
- import { readFile, writeFile } from "node:fs/promises";
2
- import { dirname, join } from "node:path";
1
+ import { readFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
3
  import { assertJsonObject } from "./config.js";
4
4
  import { pathExists } from "./utils.js";
5
5
  const CHANGE_NAME = /^[0-9]{4}-[0-9]{2}-[0-9]{2}-[a-z0-9]+(?:-[a-z0-9]+)*$/;
@@ -19,53 +19,11 @@ function object(value) {
19
19
  ? value
20
20
  : {};
21
21
  }
22
- function positiveInteger(value, fallback) {
23
- return Number.isInteger(value) && Number(value) >= 1 ? Number(value) : fallback;
24
- }
25
- export function migrateSpecdevConfig(local, defaults) {
22
+ export function readSpecdevConfig(local) {
26
23
  const version = Number(local.schema_version);
27
24
  if (version === 5)
28
25
  return { value: local, migrated: false };
29
- if (version !== 3 && version !== 4) {
30
- throw new Error("SpecDev config supports schema v3, v4, or v5; found " + String(local.schema_version));
31
- }
32
- const localGit = object(local.git);
33
- const localExecution = object(local.execution);
34
- const defaultGit = object(defaults.git);
35
- const defaultExecution = object(defaults.execution);
36
- const allowedRoot = new Set([
37
- "schema_version", "interaction_language", "artifact_language", "git",
38
- "execution", "verification", "planning",
39
- ]);
40
- const unknownRoot = Object.keys(local).filter((key) => !allowedRoot.has(key));
41
- if (unknownRoot.length > 0)
42
- throw new Error("SpecDev config has unmapped root fields: " + unknownRoot.join(", "));
43
- const legacyLimit = positiveInteger(localExecution.max_implementation_agents ?? localExecution.max_parallel, positiveInteger(defaultExecution.max_implementation_agents, 3));
44
- return {
45
- migrated: true,
46
- value: {
47
- schema_version: 5,
48
- interaction_language: local.interaction_language ?? defaults.interaction_language,
49
- artifact_language: local.artifact_language ?? defaults.artifact_language,
50
- git: {
51
- default_branch: typeof localGit.default_branch === "string" || localGit.default_branch === null
52
- ? localGit.default_branch
53
- : defaultGit.default_branch ?? null,
54
- },
55
- execution: {
56
- max_implementation_agents: legacyLimit,
57
- max_integration_attempts: positiveInteger(localExecution.max_integration_attempts, positiveInteger(defaultExecution.max_integration_attempts, 3)),
58
- deep_ticket_human_approval: typeof localExecution.deep_ticket_human_approval === "boolean"
59
- ? localExecution.deep_ticket_human_approval
60
- : defaultExecution.deep_ticket_human_approval,
61
- shared_path_owner: typeof localExecution.shared_path_owner === "string"
62
- ? localExecution.shared_path_owner
63
- : defaultExecution.shared_path_owner,
64
- },
65
- verification: Object.keys(object(local.verification)).length > 0 ? local.verification : defaults.verification,
66
- planning: Object.keys(object(local.planning)).length > 0 ? local.planning : defaults.planning,
67
- },
68
- };
26
+ throw new Error("SpecDev config schema v5 is required; 1.0 does not migrate older config schemas");
69
27
  }
70
28
  export function validateSpecdevConfig(config) {
71
29
  if (config.schema_version !== 5)
@@ -87,87 +45,25 @@ export function validateSpecdevConfig(config) {
87
45
  throw new Error("SpecDev config execution settings are incomplete");
88
46
  }
89
47
  }
90
- function authorization(scope) {
91
- return { status: "not-authorized", source: null, granted_at: null, scope };
92
- }
93
48
  function normalizeChangeStatus(previous, globalEntry) {
94
49
  const version = Number(previous.schema_version);
95
- if (![3, 4, 5, 6].includes(version)) {
96
- throw new Error("change status supports schema v3-v6; found " + String(previous.schema_version));
97
- }
50
+ void globalEntry;
51
+ if (version !== 6)
52
+ throw new Error("SpecDev change status schema v6 is required; 1.0 does not migrate older state");
98
53
  if (previous.artifact !== "change-status" || typeof previous.change !== "string" || !CHANGE_NAME.test(previous.change)) {
99
54
  throw new Error("change status has an invalid artifact or change name");
100
55
  }
101
- const worktrees = Array.isArray(previous.worktrees) ? previous.worktrees : [];
102
- if (version <= 3 && worktrees.length > 0) {
103
- throw new Error("schema v3 worktree state requires an explicit migration decision");
104
- }
105
- if (version === 6)
106
- return previous;
107
- const now = typeof previous.updated_at === "string"
108
- ? previous.updated_at
109
- : typeof previous.created_at === "string" ? previous.created_at : new Date().toISOString();
110
- const status = String(previous.change_status);
111
- const change = previous.change;
112
- const base = version === 3 ? {
113
- schema_version: 4,
114
- artifact: "change-status",
115
- change,
116
- change_status: status,
117
- current_work: typeof previous.current_work === "string" ? previous.current_work : null,
118
- created_at: typeof previous.created_at === "string" ? previous.created_at : now,
119
- updated_at: now,
120
- completed_at: typeof previous.completed_at === "string" ? previous.completed_at : null,
121
- archived: status === "archived",
122
- archive_path: status === "archived" ? `<Path>{roots.state}/specdev/archive/${change.slice(0, 7)}/${change}</Path>` : null,
123
- blockers: Array.isArray(previous.blockers) ? previous.blockers : [],
124
- deviations: Array.isArray(previous.deviations) ? previous.deviations : [],
125
- worktrees: [],
126
- } : previous;
127
- const upgraded = Number(base.schema_version) === 4 ? {
128
- ...base,
129
- schema_version: 5,
130
- current_work: typeof base.current_work === "string" ? base.current_work : globalEntry?.current_work ?? null,
131
- works_run: Array.isArray(globalEntry?.works_run) ? globalEntry.works_run : [],
132
- claimed_investigations: Array.isArray(globalEntry?.claimed_investigations) ? globalEntry.claimed_investigations : [],
133
- execution_authorization: {
134
- implementation_commit: authorization("Ticket implementation commits"),
135
- local_candidate_integration: authorization("Lead-owned local integration and parent update"),
136
- source_cleanup: authorization("Source worktree and branch cleanup"),
137
- },
138
- leadership: { current: "unassigned", epoch: 1, assigned_at: now, history: [] },
139
- } : base;
140
- return { ...upgraded, schema_version: 6 };
141
- }
142
- function migrateGoalPlan(text, attempts) {
143
- if (!/^---\s*$/m.test(text))
144
- return text;
145
- let next = text;
146
- if (/^schema_version:\s*4\s*$/m.test(next))
147
- next = next.replace(/^schema_version:\s*4\s*$/m, "schema_version: 5");
148
- if (/^schema_version:\s*5\s*$/m.test(next)) {
149
- next = next
150
- .replace(/^schema_version:\s*5\s*$/m, "schema_version: 6")
151
- .replace(/^(implementation_agent_limit:\s*[^\n]+)$/m, `$1\nintegration_attempt_limit: ${attempts}`);
152
- }
153
- return next;
154
- }
155
- async function rewriteIfChanged(path, value, reason, changes) {
156
- const before = await readFile(path);
157
- if (before.equals(Buffer.from(value)))
158
- return;
159
- changes.push({ path, before, reason });
160
- await writeFile(path, value, "utf8");
56
+ return previous;
161
57
  }
162
- async function migrateSpecdevState(stagedRoot) {
58
+ async function validateSpecdevState(stagedRoot) {
163
59
  const changes = [];
164
60
  const stateRoot = join(stagedRoot, ".speculo", "specdev");
165
61
  const statusPath = join(stateRoot, "status.json");
166
62
  if (!(await pathExists(statusPath)))
167
63
  return changes;
168
64
  const status = await readObject(statusPath, ".speculo/specdev/status.json");
169
- if (![4, 5].includes(Number(status.schema_version)) || status.workflow !== "specdev" || !Array.isArray(status.active) || !Array.isArray(status.archived)) {
170
- throw new Error("SpecDev status must use schema v4/v5 with active and archived arrays");
65
+ if (status.schema_version !== 5 || status.workflow !== "specdev" || !Array.isArray(status.active) || !Array.isArray(status.archived)) {
66
+ throw new Error("SpecDev status schema v5 is required; 1.0 does not migrate older state");
171
67
  }
172
68
  assertExactKeys(status, ["schema_version", "workflow", "active", "archived"], "SpecDev status");
173
69
  const legacyActive = status.active.map((entry) => {
@@ -187,21 +83,6 @@ async function migrateSpecdevState(stagedRoot) {
187
83
  if (activeNames.size !== active.length || new Set(archived).size !== archived.length || archived.some((name) => activeNames.has(name))) {
188
84
  throw new Error("SpecDev status contains duplicate or overlapping change names");
189
85
  }
190
- const hasLegacyActiveFields = legacyActive.some((entry) => Object.keys(entry).some((key) => key !== "change"));
191
- if (status.schema_version === 4 || hasLegacyActiveFields) {
192
- await rewriteIfChanged(statusPath, JSON.stringify({
193
- schema_version: 5,
194
- workflow: "specdev",
195
- active,
196
- archived,
197
- }, null, 2) + "\n", "normalize SpecDev global status to the strict v5 index", changes);
198
- }
199
- let attempts = 3;
200
- const configPath = join(stateRoot, "config.json");
201
- if (await pathExists(configPath)) {
202
- const config = await readObject(configPath, ".speculo/specdev/config.json");
203
- attempts = positiveInteger(object(config.execution).max_integration_attempts, 3);
204
- }
205
86
  const indexed = [
206
87
  ...legacyActive.map((entry) => ({ path: join(stateRoot, "changes", String(entry.change), ".status.json"), entry })),
207
88
  ...archived.map((name) => ({ path: join(stateRoot, "archive", name.slice(0, 7), name, ".status.json"), entry: null })),
@@ -211,12 +92,7 @@ async function migrateSpecdevState(stagedRoot) {
211
92
  throw new Error("indexed SpecDev change is missing " + item.path);
212
93
  const previous = await readObject(item.path, item.path);
213
94
  const normalized = normalizeChangeStatus(previous, item.entry);
214
- await rewriteIfChanged(item.path, JSON.stringify(normalized, null, 2) + "\n", "upgrade SpecDev change status schema", changes);
215
- const goalPlanPath = join(dirname(item.path), "goal-plan.md");
216
- if (await pathExists(goalPlanPath)) {
217
- const goalPlan = await readFile(goalPlanPath, "utf8");
218
- await rewriteIfChanged(goalPlanPath, migrateGoalPlan(goalPlan, attempts), "upgrade Goal Plan schema", changes);
219
- }
95
+ void normalized;
220
96
  }
221
97
  return changes;
222
98
  }
@@ -253,87 +129,80 @@ function assertUniqueStrings(value, label) {
253
129
  function isDateTime(value) {
254
130
  return typeof value === "string" && !Number.isNaN(Date.parse(value));
255
131
  }
256
- function validateLearningChangeStatus(value, change, archived) {
132
+ function assertLearningLocator(value, label) {
133
+ if (typeof value !== "string" || !/^(?:changes\/.+|archive\/[0-9]{4}-[0-9]{2}\/.+)$/.test(value) || value.split("/").includes("..")) {
134
+ throw new Error(label + " must be a safe current changes/archive locator");
135
+ }
136
+ }
137
+ function validateLearningChangeStatus(value, change, locator) {
257
138
  assertExactKeys(value, [
258
- "schema_version", "artifact", "change", "domain", "domain_type", "topic",
259
- "change_status", "phase", "current_work", "works_run", "created_at", "updated_at",
260
- "completed_at", "archived_at", "archive_path", "mastery", "blockers",
139
+ "schema_version", "artifact", "change_id", "kind", "domain", "domain_type", "topic_id",
140
+ "parent_change", "root_change", "locator", "lifecycle", "phase", "current_work", "works_run",
141
+ "created_at", "updated_at", "closed_at", "archived_at", "closure_reason", "archive_path",
142
+ "homework", "mastery", "children", "blockers",
261
143
  ], "Learning change status");
262
- if (value.schema_version !== 1 || value.artifact !== "learning-change-status" || value.change !== change) {
144
+ if (value.schema_version === 1)
145
+ throw new Error("learning-reset-required: Learning v1 state cannot be migrated automatically");
146
+ if (value.schema_version !== 2 || value.artifact !== "learning-change-status" || value.change_id !== change) {
263
147
  throw new Error("Learning change status has an invalid identity or schema");
264
148
  }
265
- if (typeof value.domain !== "string" || !/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(value.domain)) {
266
- throw new Error("Learning change status has an invalid domain");
267
- }
268
- if (!["project", "product", "subject", "language", "skill"].includes(String(value.domain_type)) || typeof value.topic !== "string" || !value.topic.trim()) {
269
- throw new Error("Learning change status has an invalid domain type or topic");
149
+ if (typeof value.domain !== "string" || !/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(value.domain) || typeof value.topic_id !== "string" || !/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(value.topic_id)) {
150
+ throw new Error("Learning change status has an invalid domain or topic_id");
270
151
  }
271
- const changeStatus = String(value.change_status);
272
- if (!["active", "blocked", "awaiting_retention", "completed", "archived"].includes(changeStatus)) {
273
- throw new Error("Learning change status has an invalid lifecycle value");
152
+ if (!["project", "product", "subject", "language", "skill"].includes(String(value.domain_type)) || !["learning", "consolidation"].includes(String(value.kind))) {
153
+ throw new Error("Learning change status has an invalid kind or domain type");
274
154
  }
275
- if (!["intake", "assessment", "teaching", "practice", "immediate_quiz", "retention", "ready_to_archive", "archived"].includes(String(value.phase))) {
276
- throw new Error("Learning change status has an invalid phase");
155
+ assertLearningLocator(value.locator, "Learning change locator");
156
+ if (value.locator !== locator)
157
+ throw new Error("Learning change locator disagrees with global status");
158
+ if (!(value.parent_change === null || (typeof value.parent_change === "string" && CHANGE_NAME.test(value.parent_change))))
159
+ throw new Error("Learning parent_change is invalid");
160
+ if (typeof value.root_change !== "string" || !CHANGE_NAME.test(value.root_change))
161
+ throw new Error("Learning root_change is invalid");
162
+ if (!["active", "blocked", "closed", "archived"].includes(String(value.lifecycle)) || !["planning", "teaching", "homework", "review", "consolidating", "closed", "archived"].includes(String(value.phase))) {
163
+ throw new Error("Learning change lifecycle or phase is invalid");
277
164
  }
278
165
  assertLearningWork(value.current_work, "Learning change current_work");
279
166
  assertLearningWorks(value.works_run, "Learning change works_run");
280
167
  assertUniqueStrings(value.blockers, "Learning change blockers");
281
- if (!isDateTime(value.created_at) || !isDateTime(value.updated_at)) {
168
+ if (!isDateTime(value.created_at) || !isDateTime(value.updated_at))
282
169
  throw new Error("Learning change timestamps must be date-times");
283
- }
170
+ if (!(value.closed_at === null || isDateTime(value.closed_at)) || !(value.archived_at === null || isDateTime(value.archived_at)))
171
+ throw new Error("Learning close/archive timestamps are invalid");
172
+ if (value.lifecycle === "archived" && (!value.locator.startsWith("archive/") || value.phase !== "archived" || value.current_work !== null || !isDateTime(value.archived_at)))
173
+ throw new Error("Learning archived status does not match locator");
174
+ if (value.lifecycle !== "archived" && (value.locator.startsWith("archive/") || value.archived_at !== null || value.archive_path !== null))
175
+ throw new Error("Learning active status contains archive fields");
176
+ const homework = object(value.homework);
177
+ assertExactKeys(homework, ["status", "latest_id", "submitted_at"], "Learning homework projection");
178
+ if (!["none", "pending", "reviewed", "needs_revision"].includes(String(homework.status)) || !(homework.latest_id === null || typeof homework.latest_id === "string") || !(homework.submitted_at === null || isDateTime(homework.submitted_at)))
179
+ throw new Error("Learning homework projection is invalid");
284
180
  const mastery = object(value.mastery);
285
- assertExactKeys(mastery, [
286
- "immediate", "retention", "score", "critical_objectives_passed", "transfer_passed",
287
- "blocking_misconceptions", "evidence", "next_review_at",
288
- ], "Learning mastery");
289
- const results = new Set(["not_attempted", "failed", "passed", "needs_review"]);
290
- if (!results.has(String(mastery.immediate)) || !results.has(String(mastery.retention))) {
291
- throw new Error("Learning change mastery is incomplete");
292
- }
293
- if (!(mastery.score === null || (typeof mastery.score === "number" && mastery.score >= 0 && mastery.score <= 100))) {
294
- throw new Error("Learning mastery score must be null or between 0 and 100");
295
- }
296
- if (typeof mastery.critical_objectives_passed !== "boolean" || typeof mastery.transfer_passed !== "boolean") {
297
- throw new Error("Learning mastery objective and transfer projections must be booleans");
298
- }
181
+ assertExactKeys(mastery, ["overall", "immediate", "retention", "critical_objectives", "transfer", "blocking_misconceptions", "evidence", "next_review_at"], "Learning mastery");
182
+ if (!["unverified", "immediate", "retention_verified"].includes(String(mastery.overall)) || !["not_attempted", "passed", "needs_review"].includes(String(mastery.immediate)) || !["not_scheduled", "due", "passed", "needs_review"].includes(String(mastery.retention)) || !["not_attempted", "passed", "needs_review"].includes(String(mastery.critical_objectives)) || !["not_attempted", "passed", "needs_review"].includes(String(mastery.transfer)))
183
+ throw new Error("Learning mastery is incomplete");
184
+ if (mastery.overall === "retention_verified" && mastery.retention !== "passed")
185
+ throw new Error("retention_verified requires retention passed");
299
186
  assertUniqueStrings(mastery.blocking_misconceptions, "Learning mastery blocking_misconceptions");
300
187
  assertUniqueStrings(mastery.evidence, "Learning mastery evidence");
301
- if (mastery.evidence.some((item) => !/^<Path>\{roots\.state\}\/learning\/(?:changes\/[^<]+|archive\/[0-9]{4}-[0-9]{2}\/[^<]+)\/quiz\/[^<]+\.md<\/Path>$/.test(item))) {
302
- throw new Error("Learning mastery evidence contains an invalid path");
303
- }
304
- if (!(mastery.next_review_at === null || isDateTime(mastery.next_review_at))) {
305
- throw new Error("Learning mastery next_review_at must be null or a date-time");
306
- }
307
- if (changeStatus === "awaiting_retention" && mastery.immediate !== "passed") {
308
- throw new Error("Learning awaiting_retention requires an immediate pass");
309
- }
310
- if (["completed", "archived"].includes(changeStatus)) {
311
- if (mastery.immediate !== "passed" || mastery.retention !== "passed" ||
312
- typeof mastery.score !== "number" || mastery.score < 80 ||
313
- mastery.critical_objectives_passed !== true || mastery.transfer_passed !== true ||
314
- mastery.blocking_misconceptions.length > 0 || mastery.evidence.length < 2) {
315
- throw new Error("Learning completed knowledge does not satisfy the mastery gate");
316
- }
317
- }
318
- if (["completed", "archived"].includes(changeStatus)) {
319
- if (!isDateTime(value.completed_at))
320
- throw new Error("Learning completed knowledge requires completed_at");
321
- }
322
- else if (value.completed_at !== null) {
323
- throw new Error("Learning incomplete change must keep completed_at null");
324
- }
325
- if (archived) {
326
- const expectedPath = `<Path>{roots.state}/learning/archive/${change.slice(0, 7)}/${change}</Path>`;
327
- if (value.phase !== "archived" || value.current_work !== null || !isDateTime(value.archived_at) || value.archive_path !== expectedPath) {
328
- throw new Error("Learning archive fields do not match the indexed location");
329
- }
330
- }
331
- else if (value.archived_at !== null || value.archive_path !== null) {
332
- throw new Error("Learning active change must keep archive fields null");
333
- }
334
- if (archived !== (changeStatus === "archived")) {
335
- throw new Error("Learning indexed location and change status disagree");
336
- }
188
+ if (!(mastery.next_review_at === null || isDateTime(mastery.next_review_at)))
189
+ throw new Error("Learning mastery next_review_at is invalid");
190
+ if (!Array.isArray(value.children))
191
+ throw new Error("Learning children must be an array");
192
+ }
193
+ function learningEntry(value, label) {
194
+ assertJsonObject(value, label);
195
+ assertExactKeys(value, ["change_id", "kind", "domain", "topic_id", "locator", "parent_change", "root_change", "current_work", "works_run", "updated_at"], label);
196
+ if (typeof value.change_id !== "string" || !CHANGE_NAME.test(value.change_id) || !["learning", "consolidation"].includes(String(value.kind)) || typeof value.domain !== "string" || !/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(value.domain) || typeof value.topic_id !== "string" || !/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(value.topic_id))
197
+ throw new Error(label + " has invalid identity");
198
+ assertLearningLocator(value.locator, label + " locator");
199
+ if (!(value.parent_change === null || (typeof value.parent_change === "string" && CHANGE_NAME.test(value.parent_change))) || typeof value.root_change !== "string" || !CHANGE_NAME.test(value.root_change))
200
+ throw new Error(label + " has invalid parent/root");
201
+ assertLearningWork(value.current_work, label + " current_work");
202
+ assertLearningWorks(value.works_run, label + " works_run");
203
+ if (!(value.updated_at === undefined || isDateTime(value.updated_at)))
204
+ throw new Error(label + " updated_at is invalid");
205
+ return value;
337
206
  }
338
207
  async function validateLearningState(stagedRoot) {
339
208
  const stateRoot = join(stagedRoot, ".speculo", "learning");
@@ -341,47 +210,51 @@ async function validateLearningState(stagedRoot) {
341
210
  if (!(await pathExists(statusPath)))
342
211
  return;
343
212
  const status = await readObject(statusPath, ".speculo/learning/status.json");
213
+ if (status.schema_version === 1)
214
+ throw new Error("learning-reset-required: existing Learning v1 state must be backed up and reinitialized");
344
215
  assertExactKeys(status, ["schema_version", "workflow", "active", "archived"], "Learning status");
345
- if (status.schema_version !== 1 || status.workflow !== "learning" || !Array.isArray(status.active) || !Array.isArray(status.archived)) {
346
- throw new Error("Learning status must use schema v1 with active and archived arrays");
347
- }
348
- const active = status.active.map((entry) => {
349
- assertJsonObject(entry, "Learning active status entry");
350
- assertExactKeys(entry, ["change", "domain", "topic", "current_work", "works_run"], "Learning active status entry");
351
- if (typeof entry.change !== "string" || !CHANGE_NAME.test(entry.change))
352
- throw new Error("Learning active change name is invalid");
353
- if (typeof entry.domain !== "string" || !/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(entry.domain) || typeof entry.topic !== "string" || !entry.topic.trim()) {
354
- throw new Error("Learning active entry has an invalid domain or topic");
355
- }
356
- assertLearningWork(entry.current_work, "Learning active current_work");
357
- assertLearningWorks(entry.works_run, "Learning active works_run");
358
- return entry;
359
- });
360
- const archived = status.archived.map((entry) => {
361
- if (typeof entry !== "string" || !CHANGE_NAME.test(entry))
362
- throw new Error("Learning archived change name is invalid");
363
- return entry;
364
- });
365
- const activeNames = new Set(active.map((entry) => String(entry.change)));
366
- if (activeNames.size !== active.length || new Set(archived).size !== archived.length || archived.some((name) => activeNames.has(name))) {
367
- throw new Error("Learning status contains duplicate or overlapping change names");
368
- }
369
- for (const entry of active) {
370
- const change = String(entry.change);
371
- const path = join(stateRoot, "changes", change, ".status.json");
216
+ if (status.schema_version !== 2 || status.workflow !== "learning" || !Array.isArray(status.active) || !Array.isArray(status.archived))
217
+ throw new Error("Learning status must use schema v2 with active and archived entries");
218
+ const active = status.active.map((entry) => learningEntry(entry, "Learning active status entry"));
219
+ const archived = status.archived.map((entry) => learningEntry(entry, "Learning archived status entry"));
220
+ const all = [...active, ...archived];
221
+ const ids = all.map((entry) => String(entry.change_id));
222
+ if (new Set(ids).size !== ids.length || active.some((entry) => archived.some((other) => other.change_id === entry.change_id)))
223
+ throw new Error("Learning status contains duplicate or overlapping change ids");
224
+ const locationsPath = join(stateRoot, "locations.json");
225
+ if (await pathExists(locationsPath)) {
226
+ const locations = await readObject(locationsPath, ".speculo/learning/locations.json");
227
+ if (locations.schema_version !== 2 || locations.workflow !== "learning" || !Array.isArray(locations.entries))
228
+ throw new Error("Learning locations.json must use schema v2");
229
+ const locationIds = locations.entries.map((entry) => String(entry.change_id));
230
+ if (new Set(locationIds).size !== locationIds.length)
231
+ throw new Error("Learning locations contain duplicate change ids");
232
+ }
233
+ else if (all.length > 0)
234
+ throw new Error("Learning locations.json is required when changes exist");
235
+ const byId = new Map(all.map((entry) => [String(entry.change_id), entry]));
236
+ for (const entry of all) {
237
+ const locator = String(entry.locator);
238
+ const path = join(stateRoot, ...locator.split("/"), ".status.json");
372
239
  if (!(await pathExists(path)))
373
240
  throw new Error("indexed Learning change is missing " + path);
374
241
  const value = await readObject(path, path);
375
- validateLearningChangeStatus(value, change, false);
376
- if (value.domain !== entry.domain || value.topic !== entry.topic || value.current_work !== entry.current_work || JSON.stringify(value.works_run) !== JSON.stringify(entry.works_run)) {
377
- throw new Error("Learning global and change status projections disagree for " + change);
242
+ validateLearningChangeStatus(value, String(entry.change_id), locator);
243
+ if (value.domain !== entry.domain || value.topic_id !== entry.topic_id || value.parent_change !== entry.parent_change || value.current_work !== entry.current_work || JSON.stringify(value.works_run) !== JSON.stringify(entry.works_run))
244
+ throw new Error("Learning global and change status projections disagree for " + entry.change_id);
245
+ const seen = new Set();
246
+ let parent = value.parent_change;
247
+ while (parent !== null) {
248
+ if (seen.has(String(parent)))
249
+ throw new Error("Learning parent cycle detected at " + entry.change_id);
250
+ seen.add(String(parent));
251
+ const parentEntry = byId.get(String(parent));
252
+ if (!parentEntry)
253
+ throw new Error("Learning parent_change is not indexed: " + parent);
254
+ parent = parentEntry.parent_change;
378
255
  }
379
- }
380
- for (const change of archived) {
381
- const path = join(stateRoot, "archive", change.slice(0, 7), change, ".status.json");
382
- if (!(await pathExists(path)))
383
- throw new Error("indexed Learning archive is missing " + path);
384
- validateLearningChangeStatus(await readObject(path, path), change, true);
256
+ if (locator.startsWith("archive/") !== (archived.some((candidate) => candidate.change_id === entry.change_id)))
257
+ throw new Error("Learning indexed location and lifecycle disagree for " + entry.change_id);
385
258
  }
386
259
  }
387
260
  const OPS_WORK_IDS = new Set([
@@ -569,13 +442,13 @@ async function validateOpsState(stagedRoot) {
569
442
  validateOpsChangeStatus(await readObject(path, path), entry, true);
570
443
  }
571
444
  }
572
- export async function migrateStructuredRuntime(stagedRoot, selectedWorkflowIds) {
445
+ export async function validateStructuredRuntime(stagedRoot, selectedWorkflowIds) {
573
446
  const changes = [];
574
447
  const handlers = {
575
448
  learning: async () => validateLearningState(stagedRoot),
576
449
  ops: async () => validateOpsState(stagedRoot),
577
450
  person: async () => validatePersonState(stagedRoot),
578
- specdev: async () => { changes.push(...await migrateSpecdevState(stagedRoot)); },
451
+ specdev: async () => { changes.push(...await validateSpecdevState(stagedRoot)); },
579
452
  };
580
453
  for (const workflowId of selectedWorkflowIds)
581
454
  await handlers[workflowId]?.();
@@ -1 +1 @@
1
- {"version":3,"file":"structured.js","sourceRoot":"","sources":["../../src/structured.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structured.js","sourceRoot":"","sources":["../../src/structured.ts"],"names":[],"mappings":"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"}