agentera 3.0.0-dev.2 → 3.0.0-dev.21

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 (698) hide show
  1. package/README.md +84 -6
  2. package/bundle/.agentera-npx-bundle.json +1 -1
  3. package/bundle/.codex-plugin/plugin.json +92 -0
  4. package/bundle/.cursor/agents/agentera.md +7 -0
  5. package/bundle/.cursor/hooks.json +32 -0
  6. package/bundle/.cursor-plugin/plugin.json +34 -0
  7. package/bundle/.github/hooks/postToolUse.json +9 -0
  8. package/bundle/.github/hooks/preToolUse.json +8 -0
  9. package/bundle/.github/hooks/sessionEnd.json +8 -0
  10. package/bundle/.github/hooks/sessionStart.json +8 -0
  11. package/bundle/.github/plugin/plugin.json +7 -0
  12. package/bundle/.opencode/agents/agentera.md +12 -0
  13. package/bundle/.opencode/commands/agentera.md +5 -0
  14. package/bundle/.opencode/package.json +31 -0
  15. package/bundle/.opencode/plugins/agentera.js +820 -0
  16. package/bundle/CHANGELOG.md +1101 -0
  17. package/bundle/DESIGN.md +233 -0
  18. package/bundle/LICENSE +201 -0
  19. package/bundle/README.md +158 -0
  20. package/bundle/UPGRADE.md +265 -0
  21. package/bundle/agents/openai.yaml +87 -0
  22. package/bundle/extract-corpus-parity.json +21 -0
  23. package/bundle/hooks/codex-hooks.json +31 -0
  24. package/bundle/hooks/codex-plugin-hooks.json +31 -0
  25. package/bundle/plugin.json +13 -0
  26. package/bundle/references/adapters/cursor.md +53 -42
  27. package/bundle/references/adapters/opencode.md +46 -47
  28. package/bundle/references/adapters/package-manifest-interface-model.yaml +32 -43
  29. package/bundle/references/adapters/package-registry.yaml +19 -53
  30. package/bundle/references/adapters/package-surface-characterization.md +55 -35
  31. package/bundle/references/adapters/runtime-adapter-characterization.md +44 -79
  32. package/bundle/references/adapters/runtime-adapter-registry.yaml +21 -182
  33. package/bundle/references/adapters/runtime-feature-parity.md +114 -174
  34. package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +288 -0
  35. package/bundle/references/adapters/runtime-lifecycle-authority.yaml +90 -0
  36. package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +84 -0
  37. package/bundle/references/adapters/runtime-retired-resources.yaml +33 -0
  38. package/bundle/references/analysis/benchmark.md +6 -6
  39. package/bundle/references/analysis/startup-measurement-contract.yaml +37 -26
  40. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +9 -8
  41. package/bundle/references/artifacts/state-storage-authority.yaml +1446 -0
  42. package/bundle/references/cli/agent-ready-state-contract.yaml +37 -62
  43. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +4 -4
  44. package/bundle/references/cli/audience-namespace-cli-migration.yaml +57 -28
  45. package/bundle/references/cli/bundle-skill-vocabulary.yaml +4 -32
  46. package/bundle/references/cli/capability-instruction-contract.yaml +98 -57
  47. package/bundle/references/cli/capability-instruction-structure.md +144 -0
  48. package/bundle/references/cli/capability-tool-classification.yaml +12 -12
  49. package/bundle/references/cli/coexistence-probe.yaml +13 -0
  50. package/bundle/references/cli/parity-expected-actual-template.md +30 -0
  51. package/bundle/references/cli/routing-execution-vocabulary.yaml +12 -12
  52. package/bundle/references/cli/routing-model.md +94 -0
  53. package/bundle/references/cli/single-name-protocol.yaml +42 -0
  54. package/bundle/references/cli/trigger-schema-enrichment.md +136 -0
  55. package/bundle/references/cli/update-channels.yaml +43 -7
  56. package/bundle/references/cli/upgrade-repair-wording.md +45 -0
  57. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +98 -0
  58. package/bundle/references/cli/vocabulary-index.yaml +20 -15
  59. package/bundle/references/cli/vocabulary.md +342 -326
  60. package/bundle/references/meta/documentation-inventory.md +10 -3
  61. package/bundle/registry.json +14 -14
  62. package/bundle/skills/agentera/SKILL.md +136 -408
  63. package/bundle/skills/agentera/agents/audit.toml +6 -0
  64. package/bundle/skills/agentera/agents/build.toml +6 -0
  65. package/bundle/skills/agentera/agents/design.toml +6 -0
  66. package/bundle/skills/agentera/agents/discuss.toml +6 -0
  67. package/bundle/skills/agentera/agents/document.toml +6 -0
  68. package/bundle/skills/agentera/agents/optimize.toml +6 -0
  69. package/bundle/skills/agentera/agents/orchestrate.toml +6 -0
  70. package/bundle/skills/agentera/agents/plan.toml +6 -0
  71. package/bundle/skills/agentera/agents/profile.toml +6 -0
  72. package/bundle/skills/agentera/agents/research.toml +6 -0
  73. package/bundle/skills/agentera/agents/status.toml +6 -0
  74. package/bundle/skills/agentera/agents/vision.toml +6 -0
  75. package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +84 -0
  76. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/exit.yaml +2 -2
  77. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/triggers.yaml +15 -6
  78. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/validation.yaml +20 -19
  79. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/artifacts.yaml +22 -17
  80. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/exit.yaml +3 -3
  81. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/triggers.yaml +13 -3
  82. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/validation.yaml +11 -11
  83. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/artifacts.yaml +6 -6
  84. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/exit.yaml +5 -5
  85. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/triggers.yaml +15 -3
  86. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/validation.yaml +7 -7
  87. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +49 -0
  88. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/exit.yaml +2 -2
  89. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/triggers.yaml +11 -3
  90. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/validation.yaml +9 -8
  91. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/artifacts.yaml +23 -16
  92. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/triggers.yaml +14 -4
  93. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/validation.yaml +18 -18
  94. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/artifacts.yaml +9 -9
  95. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/exit.yaml +2 -2
  96. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/triggers.yaml +11 -3
  97. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/validation.yaml +9 -9
  98. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +71 -0
  99. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/exit.yaml +7 -6
  100. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/triggers.yaml +16 -3
  101. package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +120 -0
  102. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +63 -0
  103. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/exit.yaml +2 -2
  104. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/triggers.yaml +15 -3
  105. package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +89 -0
  106. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/artifacts.yaml +2 -2
  107. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/exit.yaml +3 -3
  108. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/triggers.yaml +7 -3
  109. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/validation.yaml +2 -2
  110. package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +24 -0
  111. package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/triggers.yaml +9 -3
  112. package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/validation.yaml +2 -2
  113. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/artifacts.yaml +14 -11
  114. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/triggers.yaml +12 -8
  115. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/validation.yaml +5 -5
  116. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/artifacts.yaml +8 -8
  117. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/exit.yaml +7 -6
  118. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/triggers.yaml +19 -5
  119. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/validation.yaml +18 -20
  120. package/bundle/skills/agentera/capability_schema_contract.yaml +201 -38
  121. package/bundle/skills/agentera/protocol.yaml +29 -29
  122. package/bundle/skills/agentera/references/contract.md +387 -329
  123. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +4 -4
  124. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +25 -20
  125. package/bundle/skills/agentera/schemas/artifacts/design.yaml +4 -4
  126. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +8 -7
  127. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +139 -8
  128. package/bundle/skills/agentera/schemas/artifacts/health.yaml +21 -15
  129. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +22 -8
  130. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +285 -11
  131. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +36 -51
  132. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +77 -24
  133. package/bundle/skills/agentera/schemas/artifacts/vision.yaml +3 -3
  134. package/dist/analytics/extractCorpus/cli.js +163 -0
  135. package/dist/analytics/extractCorpus/cli.js.map +1 -0
  136. package/dist/analytics/extractCorpus/copilotSessions.js +276 -0
  137. package/dist/analytics/extractCorpus/copilotSessions.js.map +1 -0
  138. package/dist/analytics/extractCorpus/core.js +393 -0
  139. package/dist/analytics/extractCorpus/core.js.map +1 -0
  140. package/dist/analytics/extractCorpus/corpus.js +168 -0
  141. package/dist/analytics/extractCorpus/corpus.js.map +1 -0
  142. package/dist/analytics/extractCorpus/coverageAudit.js +261 -0
  143. package/dist/analytics/extractCorpus/coverageAudit.js.map +1 -0
  144. package/dist/analytics/extractCorpus/cursorSessions.js +426 -0
  145. package/dist/analytics/extractCorpus/cursorSessions.js.map +1 -0
  146. package/dist/analytics/extractCorpus/extractCorpusParity.js +105 -0
  147. package/dist/analytics/extractCorpus/extractCorpusParity.js.map +1 -0
  148. package/dist/analytics/extractCorpus/filesystemSources.js +119 -0
  149. package/dist/analytics/extractCorpus/filesystemSources.js.map +1 -0
  150. package/dist/analytics/extractCorpus/index.js +12 -0
  151. package/dist/analytics/extractCorpus/index.js.map +1 -0
  152. package/dist/analytics/extractCorpus/jsonlSessions.js +205 -0
  153. package/dist/analytics/extractCorpus/jsonlSessions.js.map +1 -0
  154. package/dist/analytics/extractCorpus/sqliteCaps.js +44 -0
  155. package/dist/analytics/extractCorpus/sqliteCaps.js.map +1 -0
  156. package/dist/analytics/extractCorpus/sqliteSessions.js +368 -0
  157. package/dist/analytics/extractCorpus/sqliteSessions.js.map +1 -0
  158. package/dist/analytics/extractCorpus.js +2 -1790
  159. package/dist/analytics/extractCorpus.js.map +1 -1
  160. package/dist/analytics/usageStats.js +93 -27
  161. package/dist/analytics/usageStats.js.map +1 -1
  162. package/dist/bin/agentera.js +3 -1
  163. package/dist/bin/agentera.js.map +1 -1
  164. package/dist/capabilities/audit/instructions.js +4 -0
  165. package/dist/capabilities/audit/instructions.js.map +1 -0
  166. package/dist/capabilities/build/instructions.js +5 -0
  167. package/dist/capabilities/build/instructions.js.map +1 -0
  168. package/dist/capabilities/design/instructions.js +5 -0
  169. package/dist/capabilities/design/instructions.js.map +1 -0
  170. package/dist/capabilities/discuss/instructions.js +6 -0
  171. package/dist/capabilities/discuss/instructions.js.map +1 -0
  172. package/dist/capabilities/document/instructions.js +4 -0
  173. package/dist/capabilities/document/instructions.js.map +1 -0
  174. package/dist/capabilities/index.js +38 -0
  175. package/dist/capabilities/index.js.map +1 -0
  176. package/dist/capabilities/optimize/instructions.js +5 -0
  177. package/dist/capabilities/optimize/instructions.js.map +1 -0
  178. package/dist/capabilities/orchestrate/instructions.js +10 -0
  179. package/dist/capabilities/orchestrate/instructions.js.map +1 -0
  180. package/dist/capabilities/plan/instructions.js +6 -0
  181. package/dist/capabilities/plan/instructions.js.map +1 -0
  182. package/dist/capabilities/profile/instructions.js +5 -0
  183. package/dist/capabilities/profile/instructions.js.map +1 -0
  184. package/dist/capabilities/research/instructions.js +6 -0
  185. package/dist/capabilities/research/instructions.js.map +1 -0
  186. package/dist/capabilities/status/instructions.js +5 -0
  187. package/dist/capabilities/status/instructions.js.map +1 -0
  188. package/dist/capabilities/vision/instructions.js +5 -0
  189. package/dist/capabilities/vision/instructions.js.map +1 -0
  190. package/dist/cli/appContext.js +30 -23
  191. package/dist/cli/appContext.js.map +1 -1
  192. package/dist/cli/capabilityContext/benchmark.js +564 -0
  193. package/dist/cli/capabilityContext/benchmark.js.map +1 -0
  194. package/dist/cli/capabilityContext/bespoke.js +38 -0
  195. package/dist/cli/capabilityContext/bespoke.js.map +1 -0
  196. package/dist/cli/capabilityContext/build.js +191 -0
  197. package/dist/cli/capabilityContext/build.js.map +1 -0
  198. package/dist/cli/capabilityContext/closeout.js +231 -0
  199. package/dist/cli/capabilityContext/closeout.js.map +1 -0
  200. package/dist/cli/capabilityContext/contract.js +219 -0
  201. package/dist/cli/capabilityContext/contract.js.map +1 -0
  202. package/dist/cli/capabilityContext/evidence.js +457 -0
  203. package/dist/cli/capabilityContext/evidence.js.map +1 -0
  204. package/dist/cli/capabilityContext/index.js +4 -0
  205. package/dist/cli/capabilityContext/index.js.map +1 -0
  206. package/dist/cli/capabilityContext/orchestration.js +118 -0
  207. package/dist/cli/capabilityContext/orchestration.js.map +1 -0
  208. package/dist/cli/capabilityContext/planState.js +279 -0
  209. package/dist/cli/capabilityContext/planState.js.map +1 -0
  210. package/dist/cli/capabilityContext/progress.js +143 -0
  211. package/dist/cli/capabilityContext/progress.js.map +1 -0
  212. package/dist/cli/capabilityContext/shared.js +94 -0
  213. package/dist/cli/capabilityContext/shared.js.map +1 -0
  214. package/dist/cli/capabilityContext/slim.js +139 -0
  215. package/dist/cli/capabilityContext/slim.js.map +1 -0
  216. package/dist/cli/capabilityContext/startup.js +241 -0
  217. package/dist/cli/capabilityContext/startup.js.map +1 -0
  218. package/dist/cli/capabilityContext/types.js +51 -0
  219. package/dist/cli/capabilityContext/types.js.map +1 -0
  220. package/dist/cli/capabilityContext.js +1 -2420
  221. package/dist/cli/capabilityContext.js.map +1 -1
  222. package/dist/cli/commands/appHome.js +23 -0
  223. package/dist/cli/commands/appHome.js.map +1 -0
  224. package/dist/cli/commands/backfill.js +186 -76
  225. package/dist/cli/commands/backfill.js.map +1 -1
  226. package/dist/cli/commands/capability.js +3 -10
  227. package/dist/cli/commands/capability.js.map +1 -1
  228. package/dist/cli/commands/compact.js +41 -12
  229. package/dist/cli/commands/compact.js.map +1 -1
  230. package/dist/cli/commands/doctor.js +116 -96
  231. package/dist/cli/commands/doctor.js.map +1 -1
  232. package/dist/cli/commands/durability.js +85 -0
  233. package/dist/cli/commands/durability.js.map +1 -0
  234. package/dist/cli/commands/lint.js +16 -41
  235. package/dist/cli/commands/lint.js.map +1 -1
  236. package/dist/cli/commands/migrate.js +677 -0
  237. package/dist/cli/commands/migrate.js.map +1 -0
  238. package/dist/cli/commands/prime/bundleStatus.js +185 -0
  239. package/dist/cli/commands/prime/bundleStatus.js.map +1 -0
  240. package/dist/cli/commands/prime/collectOrientationState.js +202 -0
  241. package/dist/cli/commands/prime/collectOrientationState.js.map +1 -0
  242. package/dist/cli/commands/prime/orientationOutput.js +235 -0
  243. package/dist/cli/commands/prime/orientationOutput.js.map +1 -0
  244. package/dist/cli/commands/prime/types.js +2 -0
  245. package/dist/cli/commands/prime/types.js.map +1 -0
  246. package/dist/cli/commands/prime/v1Migration.js +39 -0
  247. package/dist/cli/commands/prime/v1Migration.js.map +1 -0
  248. package/dist/cli/commands/prime.js +11 -519
  249. package/dist/cli/commands/prime.js.map +1 -1
  250. package/dist/cli/commands/query.js +25 -4
  251. package/dist/cli/commands/query.js.map +1 -1
  252. package/dist/cli/commands/report.js +50 -14
  253. package/dist/cli/commands/report.js.map +1 -1
  254. package/dist/cli/commands/schema.js +343 -76
  255. package/dist/cli/commands/schema.js.map +1 -1
  256. package/dist/cli/commands/state/decisions.js +421 -0
  257. package/dist/cli/commands/state/decisions.js.map +1 -0
  258. package/dist/cli/commands/state/docs.js +97 -0
  259. package/dist/cli/commands/state/docs.js.map +1 -0
  260. package/dist/cli/commands/state/experimentRecords.js +156 -0
  261. package/dist/cli/commands/state/experimentRecords.js.map +1 -0
  262. package/dist/cli/commands/state/experiments.js +68 -0
  263. package/dist/cli/commands/state/experiments.js.map +1 -0
  264. package/dist/cli/commands/state/get.js +141 -0
  265. package/dist/cli/commands/state/get.js.map +1 -0
  266. package/dist/cli/commands/state/health.js +116 -0
  267. package/dist/cli/commands/state/health.js.map +1 -0
  268. package/dist/cli/commands/state/index.js +51 -0
  269. package/dist/cli/commands/state/index.js.map +1 -0
  270. package/dist/cli/commands/state/list.js +159 -0
  271. package/dist/cli/commands/state/list.js.map +1 -0
  272. package/dist/cli/commands/state/objective.js +69 -0
  273. package/dist/cli/commands/state/objective.js.map +1 -0
  274. package/dist/cli/commands/state/plan.js +379 -0
  275. package/dist/cli/commands/state/plan.js.map +1 -0
  276. package/dist/cli/commands/state/planTasks.js +164 -0
  277. package/dist/cli/commands/state/planTasks.js.map +1 -0
  278. package/dist/cli/commands/state/plans.js +154 -0
  279. package/dist/cli/commands/state/plans.js.map +1 -0
  280. package/dist/cli/commands/state/progress.js +47 -0
  281. package/dist/cli/commands/state/progress.js.map +1 -0
  282. package/dist/cli/commands/state/shared.js +15 -0
  283. package/dist/cli/commands/state/shared.js.map +1 -0
  284. package/dist/cli/commands/state/todo.js +121 -0
  285. package/dist/cli/commands/state/todo.js.map +1 -0
  286. package/dist/cli/commands/state/write.js +346 -0
  287. package/dist/cli/commands/state/write.js.map +1 -0
  288. package/dist/cli/commands/upgrade.js +79 -1
  289. package/dist/cli/commands/upgrade.js.map +1 -1
  290. package/dist/cli/commands/upgradeVerify.js +81 -0
  291. package/dist/cli/commands/upgradeVerify.js.map +1 -0
  292. package/dist/cli/commands/validate.js +56 -96
  293. package/dist/cli/commands/validate.js.map +1 -1
  294. package/dist/cli/commands/verify.js +13 -7
  295. package/dist/cli/commands/verify.js.map +1 -1
  296. package/dist/cli/contracts/bundleStatus.js +2 -0
  297. package/dist/cli/contracts/bundleStatus.js.map +1 -0
  298. package/dist/cli/contracts/orientationState.js +2 -0
  299. package/dist/cli/contracts/orientationState.js.map +1 -0
  300. package/dist/cli/dispatch/argvParser.js +33 -0
  301. package/dist/cli/dispatch/argvParser.js.map +1 -0
  302. package/dist/cli/dispatch/check.js +395 -0
  303. package/dist/cli/dispatch/check.js.map +1 -0
  304. package/dist/cli/dispatch/commands.js +27 -0
  305. package/dist/cli/dispatch/commands.js.map +1 -0
  306. package/dist/cli/dispatch/index.js +201 -0
  307. package/dist/cli/dispatch/index.js.map +1 -0
  308. package/dist/cli/dispatch/lifecycle.js +671 -0
  309. package/dist/cli/dispatch/lifecycle.js.map +1 -0
  310. package/dist/cli/dispatch/prime.js +104 -0
  311. package/dist/cli/dispatch/prime.js.map +1 -0
  312. package/dist/cli/dispatch/shared.js +64 -0
  313. package/dist/cli/dispatch/shared.js.map +1 -0
  314. package/dist/cli/dispatch/state.js +168 -0
  315. package/dist/cli/dispatch/state.js.map +1 -0
  316. package/dist/cli/dispatch.js +1 -957
  317. package/dist/cli/dispatch.js.map +1 -1
  318. package/dist/cli/errors.js +53 -0
  319. package/dist/cli/errors.js.map +1 -0
  320. package/dist/cli/help.js +421 -0
  321. package/dist/cli/help.js.map +1 -0
  322. package/dist/cli/orientation/attention.js +163 -0
  323. package/dist/cli/orientation/attention.js.map +1 -0
  324. package/dist/cli/orientation/corpusCoverage.js +71 -0
  325. package/dist/cli/orientation/corpusCoverage.js.map +1 -0
  326. package/dist/cli/orientation.js +336 -144
  327. package/dist/cli/orientation.js.map +1 -1
  328. package/dist/cli/planArtifacts.js +201 -0
  329. package/dist/cli/planArtifacts.js.map +1 -0
  330. package/dist/cli/planEvidence.js +158 -0
  331. package/dist/cli/planEvidence.js.map +1 -0
  332. package/dist/cli/planLifecycleState.js +34 -0
  333. package/dist/cli/planLifecycleState.js.map +1 -0
  334. package/dist/cli/prime-blob.js +69 -2
  335. package/dist/cli/prime-blob.js.map +1 -1
  336. package/dist/cli/startupCompletenessContract.js +57 -0
  337. package/dist/cli/startupCompletenessContract.js.map +1 -0
  338. package/dist/cli/stateQuery.js +22 -5
  339. package/dist/cli/stateQuery.js.map +1 -1
  340. package/dist/cli/todoMarkdown.js +33 -0
  341. package/dist/cli/todoMarkdown.js.map +1 -0
  342. package/dist/cli/todoSeverity.js +19 -0
  343. package/dist/cli/todoSeverity.js.map +1 -0
  344. package/dist/core/atomicWriter.js +21 -0
  345. package/dist/core/atomicWriter.js.map +1 -0
  346. package/dist/core/envPaths.js +21 -0
  347. package/dist/core/envPaths.js.map +1 -0
  348. package/dist/core/jsonValue.js +6 -0
  349. package/dist/core/jsonValue.js.map +1 -0
  350. package/dist/core/pyjson.js +67 -2
  351. package/dist/core/pyjson.js.map +1 -1
  352. package/dist/core/text.js +11 -0
  353. package/dist/core/text.js.map +1 -0
  354. package/dist/core/yaml.js +8 -0
  355. package/dist/core/yaml.js.map +1 -1
  356. package/dist/eval/evalSkills.js +30 -25
  357. package/dist/eval/evalSkills.js.map +1 -1
  358. package/dist/eval/semanticEval.js +43 -19
  359. package/dist/eval/semanticEval.js.map +1 -1
  360. package/dist/eval/semanticFixtures.js +16 -4
  361. package/dist/eval/semanticFixtures.js.map +1 -1
  362. package/dist/hooks/common.js +9 -26
  363. package/dist/hooks/common.js.map +1 -1
  364. package/dist/hooks/compaction/apply.js +447 -0
  365. package/dist/hooks/compaction/apply.js.map +1 -0
  366. package/dist/hooks/compaction/dryRun.js +185 -0
  367. package/dist/hooks/compaction/dryRun.js.map +1 -0
  368. package/dist/hooks/compaction/index.js +23 -0
  369. package/dist/hooks/compaction/index.js.map +1 -0
  370. package/dist/hooks/compaction/parse.js +326 -0
  371. package/dist/hooks/compaction/parse.js.map +1 -0
  372. package/dist/hooks/compaction/retention.js +203 -0
  373. package/dist/hooks/compaction/retention.js.map +1 -0
  374. package/dist/hooks/compaction/status.js +336 -0
  375. package/dist/hooks/compaction/status.js.map +1 -0
  376. package/dist/hooks/compaction/types.js +6 -0
  377. package/dist/hooks/compaction/types.js.map +1 -0
  378. package/dist/hooks/cursorPreToolUse.js +1 -1
  379. package/dist/hooks/cursorPreToolUse.js.map +1 -1
  380. package/dist/hooks/cursorSessionStart.js +10 -2
  381. package/dist/hooks/cursorSessionStart.js.map +1 -1
  382. package/dist/hooks/sessionStart.js +57 -18
  383. package/dist/hooks/sessionStart.js.map +1 -1
  384. package/dist/hooks/sessionStop.js +8 -14
  385. package/dist/hooks/sessionStop.js.map +1 -1
  386. package/dist/hooks/validateArtifact/agentFacing.js +10 -0
  387. package/dist/hooks/validateArtifact/agentFacing.js.map +1 -0
  388. package/dist/hooks/validateArtifact/index.js +151 -0
  389. package/dist/hooks/validateArtifact/index.js.map +1 -0
  390. package/dist/hooks/validateArtifact/markdown.js +146 -0
  391. package/dist/hooks/validateArtifact/markdown.js.map +1 -0
  392. package/dist/hooks/validateArtifact/runtime.js +86 -0
  393. package/dist/hooks/validateArtifact/runtime.js.map +1 -0
  394. package/dist/hooks/validateArtifact/schema.js +541 -0
  395. package/dist/hooks/validateArtifact/schema.js.map +1 -0
  396. package/dist/hooks/validateArtifact/traversal.js +108 -0
  397. package/dist/hooks/validateArtifact/traversal.js.map +1 -0
  398. package/dist/hooks/validateArtifact/violations.js +108 -0
  399. package/dist/hooks/validateArtifact/violations.js.map +1 -0
  400. package/dist/migrate/v2HandoffManifest.js +455 -0
  401. package/dist/migrate/v2HandoffManifest.js.map +1 -0
  402. package/dist/registries/artifactProtocolIds.js +77 -0
  403. package/dist/registries/artifactProtocolIds.js.map +1 -0
  404. package/dist/registries/artifactRegistry.js +203 -53
  405. package/dist/registries/artifactRegistry.js.map +1 -1
  406. package/dist/registries/capabilityContract.js +156 -12
  407. package/dist/registries/capabilityContract.js.map +1 -1
  408. package/dist/registries/evaluatorHandoffContract.js +171 -0
  409. package/dist/registries/evaluatorHandoffContract.js.map +1 -0
  410. package/dist/registries/packageRegistry.js +40 -6
  411. package/dist/registries/packageRegistry.js.map +1 -1
  412. package/dist/registries/runtimeAdapterRegistry.js +30 -21
  413. package/dist/registries/runtimeAdapterRegistry.js.map +1 -1
  414. package/dist/registries/triggerLoader.js +211 -0
  415. package/dist/registries/triggerLoader.js.map +1 -0
  416. package/dist/release/releaseMetadata.js +329 -0
  417. package/dist/release/releaseMetadata.js.map +1 -0
  418. package/dist/runtime/lifecycleAdapterContract.js +458 -0
  419. package/dist/runtime/lifecycleAdapterContract.js.map +1 -0
  420. package/dist/runtime/lifecycleAdapters.js +766 -0
  421. package/dist/runtime/lifecycleAdapters.js.map +1 -0
  422. package/dist/runtime/lifecycleAuthority.js +493 -0
  423. package/dist/runtime/lifecycleAuthority.js.map +1 -0
  424. package/dist/runtime/lifecycleOperationContract.js +113 -0
  425. package/dist/runtime/lifecycleOperationContract.js.map +1 -0
  426. package/dist/runtime/lifecycleOperations.js +635 -0
  427. package/dist/runtime/lifecycleOperations.js.map +1 -0
  428. package/dist/runtime/lifecycleOwnershipJournal.js +623 -0
  429. package/dist/runtime/lifecycleOwnershipJournal.js.map +1 -0
  430. package/dist/runtime/lifecyclePublication.js +395 -0
  431. package/dist/runtime/lifecyclePublication.js.map +1 -0
  432. package/dist/runtime/lifecycleSnapshot.js +439 -0
  433. package/dist/runtime/lifecycleSnapshot.js.map +1 -0
  434. package/dist/runtime/retiredRuntimeCleanup.js +238 -0
  435. package/dist/runtime/retiredRuntimeCleanup.js.map +1 -0
  436. package/dist/setup/codex/agents.js +96 -0
  437. package/dist/setup/codex/agents.js.map +1 -0
  438. package/dist/setup/codex/cli.js +161 -0
  439. package/dist/setup/codex/cli.js.map +1 -0
  440. package/dist/setup/codex/configToml.js +639 -0
  441. package/dist/setup/codex/configToml.js.map +1 -0
  442. package/dist/setup/codex/constants.js +29 -0
  443. package/dist/setup/codex/constants.js.map +1 -0
  444. package/dist/setup/codex/installRoot.js +64 -0
  445. package/dist/setup/codex/installRoot.js.map +1 -0
  446. package/dist/setup/codex/state.js +270 -0
  447. package/dist/setup/codex/state.js.map +1 -0
  448. package/dist/setup/codex.js +11 -1055
  449. package/dist/setup/codex.js.map +1 -1
  450. package/dist/setup/copilot.js +1 -1
  451. package/dist/setup/copilot.js.map +1 -1
  452. package/dist/setup/cursor.js +7 -5
  453. package/dist/setup/cursor.js.map +1 -1
  454. package/dist/setup/cursorSurfaces.js +67 -0
  455. package/dist/setup/cursorSurfaces.js.map +1 -0
  456. package/dist/setup/doctor/core.js +296 -0
  457. package/dist/setup/doctor/core.js.map +1 -0
  458. package/dist/setup/doctor/diagnostics.js +201 -0
  459. package/dist/setup/doctor/diagnostics.js.map +1 -0
  460. package/dist/setup/doctor/opencode.js +301 -0
  461. package/dist/setup/doctor/opencode.js.map +1 -0
  462. package/dist/setup/doctor/report.js +425 -0
  463. package/dist/setup/doctor/report.js.map +1 -0
  464. package/dist/setup/doctor.js +9 -1275
  465. package/dist/setup/doctor.js.map +1 -1
  466. package/dist/setup/opencode.js +13 -0
  467. package/dist/setup/opencode.js.map +1 -0
  468. package/dist/setup/opencodeConstants.js +2 -0
  469. package/dist/setup/opencodeConstants.js.map +1 -0
  470. package/dist/setup/smokeChecks.js +109 -0
  471. package/dist/setup/smokeChecks.js.map +1 -0
  472. package/dist/state/archiveDiscovery.js +589 -0
  473. package/dist/state/archiveDiscovery.js.map +1 -0
  474. package/dist/state/archivePublication.js +225 -0
  475. package/dist/state/archivePublication.js.map +1 -0
  476. package/dist/state/archiveRecovery.js +238 -0
  477. package/dist/state/archiveRecovery.js.map +1 -0
  478. package/dist/state/archiveReplay.js +54 -0
  479. package/dist/state/archiveReplay.js.map +1 -0
  480. package/dist/state/decisionOverlay.js +255 -0
  481. package/dist/state/decisionOverlay.js.map +1 -0
  482. package/dist/state/directRetrieval.js +322 -0
  483. package/dist/state/directRetrieval.js.map +1 -0
  484. package/dist/state/durability.js +451 -0
  485. package/dist/state/durability.js.map +1 -0
  486. package/dist/state/experimentArchive.js +64 -0
  487. package/dist/state/experimentArchive.js.map +1 -0
  488. package/dist/state/experimentIdentity.js +191 -0
  489. package/dist/state/experimentIdentity.js.map +1 -0
  490. package/dist/state/experimentRetrieval.js +447 -0
  491. package/dist/state/experimentRetrieval.js.map +1 -0
  492. package/dist/state/gitBackfill.js +561 -0
  493. package/dist/state/gitBackfill.js.map +1 -0
  494. package/dist/state/gitBackfillAuthority.js +141 -0
  495. package/dist/state/gitBackfillAuthority.js.map +1 -0
  496. package/dist/state/gitBackfillHistory.js +278 -0
  497. package/dist/state/gitBackfillHistory.js.map +1 -0
  498. package/dist/state/gitBackfillOutput.js +209 -0
  499. package/dist/state/gitBackfillOutput.js.map +1 -0
  500. package/dist/state/healthRepair.js +70 -0
  501. package/dist/state/healthRepair.js.map +1 -0
  502. package/dist/state/installRoot.js +64 -24
  503. package/dist/state/installRoot.js.map +1 -1
  504. package/dist/state/legacyIdentity.js +48 -0
  505. package/dist/state/legacyIdentity.js.map +1 -0
  506. package/dist/state/legacyMigration.js +516 -0
  507. package/dist/state/legacyMigration.js.map +1 -0
  508. package/dist/state/legacyMigrationParser.js +489 -0
  509. package/dist/state/legacyMigrationParser.js.map +1 -0
  510. package/dist/state/listAccounting.js +55 -0
  511. package/dist/state/listAccounting.js.map +1 -0
  512. package/dist/state/listClassification.js +18 -0
  513. package/dist/state/listClassification.js.map +1 -0
  514. package/dist/state/listRetrieval.js +782 -0
  515. package/dist/state/listRetrieval.js.map +1 -0
  516. package/dist/state/migrationAuthority.js +413 -0
  517. package/dist/state/migrationAuthority.js.map +1 -0
  518. package/dist/state/migrationEnrichment.js +35 -0
  519. package/dist/state/migrationEnrichment.js.map +1 -0
  520. package/dist/state/planIdentity.js +45 -0
  521. package/dist/state/planIdentity.js.map +1 -0
  522. package/dist/state/planRetrieval.js +314 -0
  523. package/dist/state/planRetrieval.js.map +1 -0
  524. package/dist/state/planTaskRetrieval.js +285 -0
  525. package/dist/state/planTaskRetrieval.js.map +1 -0
  526. package/dist/state/projectionPolicy.js +184 -0
  527. package/dist/state/projectionPolicy.js.map +1 -0
  528. package/dist/state/retrievalAuthority.js +326 -0
  529. package/dist/state/retrievalAuthority.js.map +1 -0
  530. package/dist/state/startupAnalysis/benchmark.js +371 -0
  531. package/dist/state/startupAnalysis/benchmark.js.map +1 -0
  532. package/dist/state/startupAnalysis/contract.js +126 -0
  533. package/dist/state/startupAnalysis/contract.js.map +1 -0
  534. package/dist/state/startupAnalysis/helpers.js +287 -0
  535. package/dist/state/startupAnalysis/helpers.js.map +1 -0
  536. package/dist/state/startupAnalysis/index.js +7 -0
  537. package/dist/state/startupAnalysis/index.js.map +1 -0
  538. package/dist/state/startupAnalysis/metrics.js +341 -0
  539. package/dist/state/startupAnalysis/metrics.js.map +1 -0
  540. package/dist/state/startupAnalysis/records.js +199 -0
  541. package/dist/state/startupAnalysis/records.js.map +1 -0
  542. package/dist/state/startupAnalysis/report.js +112 -0
  543. package/dist/state/startupAnalysis/report.js.map +1 -0
  544. package/dist/state/startupAnalysis/threshold.js +500 -0
  545. package/dist/state/startupAnalysis/threshold.js.map +1 -0
  546. package/dist/state/startupAnalysis.js +2 -1952
  547. package/dist/state/startupAnalysis.js.map +1 -1
  548. package/dist/state/startupProjection.js +498 -0
  549. package/dist/state/startupProjection.js.map +1 -0
  550. package/dist/state/write/assign.js +21 -0
  551. package/dist/state/write/assign.js.map +1 -0
  552. package/dist/state/write/errors.js +12 -0
  553. package/dist/state/write/errors.js.map +1 -0
  554. package/dist/state/write/experimentPublication.js +193 -0
  555. package/dist/state/write/experimentPublication.js.map +1 -0
  556. package/dist/state/write/explain.js +169 -0
  557. package/dist/state/write/explain.js.map +1 -0
  558. package/dist/state/write/fields.js +62 -0
  559. package/dist/state/write/fields.js.map +1 -0
  560. package/dist/state/write/helpers.js +8 -0
  561. package/dist/state/write/helpers.js.map +1 -0
  562. package/dist/state/write/index.js +12 -0
  563. package/dist/state/write/index.js.map +1 -0
  564. package/dist/state/write/input.js +22 -0
  565. package/dist/state/write/input.js.map +1 -0
  566. package/dist/state/write/lock.js +131 -0
  567. package/dist/state/write/lock.js.map +1 -0
  568. package/dist/state/write/mutation.js +190 -0
  569. package/dist/state/write/mutation.js.map +1 -0
  570. package/dist/state/write/operations.js +254 -0
  571. package/dist/state/write/operations.js.map +1 -0
  572. package/dist/state/write/planPublication.js +172 -0
  573. package/dist/state/write/planPublication.js.map +1 -0
  574. package/dist/state/write/serialize.js +2 -0
  575. package/dist/state/write/serialize.js.map +1 -0
  576. package/dist/state/write/transaction.js +800 -0
  577. package/dist/state/write/transaction.js.map +1 -0
  578. package/dist/state/write/validate.js +8 -0
  579. package/dist/state/write/validate.js.map +1 -0
  580. package/dist/upgrade/appContentRefresh.js +374 -0
  581. package/dist/upgrade/appContentRefresh.js.map +1 -0
  582. package/dist/upgrade/appModel.js +11 -6
  583. package/dist/upgrade/appModel.js.map +1 -1
  584. package/dist/upgrade/atomicWriter.js +2 -0
  585. package/dist/upgrade/atomicWriter.js.map +1 -0
  586. package/dist/upgrade/bundleEvidence.js +34 -0
  587. package/dist/upgrade/bundleEvidence.js.map +1 -0
  588. package/dist/upgrade/channels.js +27 -7
  589. package/dist/upgrade/channels.js.map +1 -1
  590. package/dist/upgrade/coexistenceProbe.js +105 -0
  591. package/dist/upgrade/coexistenceProbe.js.map +1 -0
  592. package/dist/upgrade/compatibility.js +52 -16
  593. package/dist/upgrade/compatibility.js.map +1 -1
  594. package/dist/upgrade/doctor.js +195 -193
  595. package/dist/upgrade/doctor.js.map +1 -1
  596. package/dist/upgrade/doctorClassifier.js +188 -0
  597. package/dist/upgrade/doctorClassifier.js.map +1 -0
  598. package/dist/upgrade/installedHooksRetirement.js +190 -0
  599. package/dist/upgrade/installedHooksRetirement.js.map +1 -0
  600. package/dist/upgrade/legacyAgentCleanup.js +183 -0
  601. package/dist/upgrade/legacyAgentCleanup.js.map +1 -0
  602. package/dist/upgrade/lifecycleUpgrade.js +427 -0
  603. package/dist/upgrade/lifecycleUpgrade.js.map +1 -0
  604. package/dist/upgrade/migrateArtifactsV1ToV2.js +568 -0
  605. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +1 -0
  606. package/dist/upgrade/migrateArtifactsV2ToV3.js +273 -144
  607. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
  608. package/dist/upgrade/nextMajorDoctor.js +156 -0
  609. package/dist/upgrade/nextMajorDoctor.js.map +1 -0
  610. package/dist/upgrade/npxPlatformStatus.js +23 -0
  611. package/dist/upgrade/npxPlatformStatus.js.map +1 -0
  612. package/dist/upgrade/projectIntegration.js +259 -104
  613. package/dist/upgrade/projectIntegration.js.map +1 -1
  614. package/dist/upgrade/projectIntegrationDecision.js +141 -0
  615. package/dist/upgrade/projectIntegrationDecision.js.map +1 -0
  616. package/dist/upgrade/runtimeMigration.js +342 -89
  617. package/dist/upgrade/runtimeMigration.js.map +1 -1
  618. package/dist/upgrade/upgradeCommands.js +8 -0
  619. package/dist/upgrade/upgradeCommands.js.map +1 -1
  620. package/dist/upgrade/upgradeLock.js +54 -0
  621. package/dist/upgrade/upgradeLock.js.map +1 -0
  622. package/dist/upgrade/upgradeOrchestrator.js +170 -46
  623. package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
  624. package/dist/upgrade/upgradeSnapshot.js +93 -0
  625. package/dist/upgrade/upgradeSnapshot.js.map +1 -0
  626. package/dist/upgrade/v3CapabilitySurface.js +15 -0
  627. package/dist/upgrade/v3CapabilitySurface.js.map +1 -0
  628. package/dist/upgrade/versionResolution.js +12 -4
  629. package/dist/upgrade/versionResolution.js.map +1 -1
  630. package/dist/validate/appHomeContract.js +5 -5
  631. package/dist/validate/appHomeContract.js.map +1 -1
  632. package/dist/validate/capability.js +135 -14
  633. package/dist/validate/capability.js.map +1 -1
  634. package/dist/validate/crossCapability.js +10 -7
  635. package/dist/validate/crossCapability.js.map +1 -1
  636. package/dist/validate/lifecycleAdapters/legacyPythonParity.js +93 -0
  637. package/dist/validate/lifecycleAdapters/legacyPythonParity.js.map +1 -0
  638. package/dist/validate/lifecycleAdapters/nodeFormChecks.js +481 -0
  639. package/dist/validate/lifecycleAdapters/nodeFormChecks.js.map +1 -0
  640. package/dist/validate/lifecycleAdapters/shared.js +198 -0
  641. package/dist/validate/lifecycleAdapters/shared.js.map +1 -0
  642. package/dist/validate/lifecycleAdapters.js +91 -702
  643. package/dist/validate/lifecycleAdapters.js.map +1 -1
  644. package/dist/validate/selfAudit.js +63 -21
  645. package/dist/validate/selfAudit.js.map +1 -1
  646. package/dist/validate/vocabularyAuthority.js +303 -0
  647. package/dist/validate/vocabularyAuthority.js.map +1 -0
  648. package/package.json +30 -27
  649. package/bundle/references/v1-section-mapping.md +0 -47
  650. package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
  651. package/bundle/skills/agentera/agents/dokumentera.toml +0 -6
  652. package/bundle/skills/agentera/agents/hej.toml +0 -6
  653. package/bundle/skills/agentera/agents/inspektera.toml +0 -6
  654. package/bundle/skills/agentera/agents/inspirera.toml +0 -6
  655. package/bundle/skills/agentera/agents/optimera.toml +0 -6
  656. package/bundle/skills/agentera/agents/orkestrera.toml +0 -6
  657. package/bundle/skills/agentera/agents/planera.toml +0 -6
  658. package/bundle/skills/agentera/agents/profilera.toml +0 -6
  659. package/bundle/skills/agentera/agents/realisera.toml +0 -6
  660. package/bundle/skills/agentera/agents/resonera.toml +0 -6
  661. package/bundle/skills/agentera/agents/visionera.toml +0 -6
  662. package/bundle/skills/agentera/agents/visualisera.toml +0 -6
  663. package/bundle/skills/agentera/capabilities/dokumentera/instructions.md +0 -428
  664. package/bundle/skills/agentera/capabilities/hej/instructions.md +0 -331
  665. package/bundle/skills/agentera/capabilities/inspektera/instructions.md +0 -514
  666. package/bundle/skills/agentera/capabilities/inspektera/schemas/artifacts.yaml +0 -76
  667. package/bundle/skills/agentera/capabilities/inspirera/instructions.md +0 -280
  668. package/bundle/skills/agentera/capabilities/inspirera/schemas/artifacts.yaml +0 -24
  669. package/bundle/skills/agentera/capabilities/optimera/instructions.md +0 -437
  670. package/bundle/skills/agentera/capabilities/orkestrera/instructions.md +0 -433
  671. package/bundle/skills/agentera/capabilities/orkestrera/schemas/artifacts.yaml +0 -64
  672. package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +0 -107
  673. package/bundle/skills/agentera/capabilities/planera/instructions.md +0 -368
  674. package/bundle/skills/agentera/capabilities/planera/schemas/artifacts.yaml +0 -62
  675. package/bundle/skills/agentera/capabilities/planera/schemas/validation.yaml +0 -61
  676. package/bundle/skills/agentera/capabilities/profilera/instructions.md +0 -419
  677. package/bundle/skills/agentera/capabilities/realisera/instructions.md +0 -403
  678. package/bundle/skills/agentera/capabilities/resonera/instructions.md +0 -329
  679. package/bundle/skills/agentera/capabilities/resonera/schemas/artifacts.yaml +0 -47
  680. package/bundle/skills/agentera/capabilities/visionera/instructions.md +0 -309
  681. package/bundle/skills/agentera/capabilities/visualisera/instructions.md +0 -400
  682. package/bundle/skills/hej/.claude-plugin/plugin.json +0 -6
  683. package/bundle/skills/hej/SKILL.md +0 -69
  684. package/bundle/skills/hej/agents/hej.toml +0 -11
  685. package/bundle/skills/hej/agents/openai.yaml +0 -8
  686. package/dist/cli/commands/state.js +0 -1012
  687. package/dist/cli/commands/state.js.map +0 -1
  688. package/dist/core/git.js +0 -43
  689. package/dist/core/git.js.map +0 -1
  690. package/dist/hooks/compaction.js +0 -935
  691. package/dist/hooks/compaction.js.map +0 -1
  692. package/dist/hooks/validateArtifact.js +0 -933
  693. package/dist/hooks/validateArtifact.js.map +0 -1
  694. package/dist/state/progressCommit.js +0 -289
  695. package/dist/state/progressCommit.js.map +0 -1
  696. /package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/exit.yaml +0 -0
  697. /package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/exit.yaml +0 -0
  698. /package/bundle/skills/agentera/capabilities/{hej → status}/schemas/exit.yaml +0 -0
@@ -11,13 +11,13 @@ Canonical scale: **0-100 integer**.
11
11
 
12
12
  Five tiers with shared boundaries. Each skill defines its own domain-specific labels describing what the tier means in its context.
13
13
 
14
- | Tier | Range | Semantic |
15
- |------|-------|----------|
16
- | 1 (highest) | 90-100 | Verified / near-certain |
17
- | 2 | 70-89 | Strong evidence / established |
18
- | 3 | 50-69 | Moderate evidence / emerging |
19
- | 4 | 30-49 | Weak evidence / uncertain |
20
- | 5 (lowest) | 0-29 | Speculative / extrapolated |
14
+ | Tier | Range | Semantic |
15
+ | ----------- | ------ | ----------------------------- |
16
+ | 1 (highest) | 90-100 | Verified / near-certain |
17
+ | 2 | 70-89 | Strong evidence / established |
18
+ | 3 | 50-69 | Moderate evidence / emerging |
19
+ | 4 | 30-49 | Weak evidence / uncertain |
20
+ | 5 (lowest) | 0-29 | Speculative / extrapolated |
21
21
 
22
22
  **Rules**:
23
23
 
@@ -36,32 +36,32 @@ Two severity vocabularies serve different purposes in the suite.
36
36
 
37
37
  Used by skills that produce audit findings (inspektera, dokumentera, visualisera).
38
38
 
39
- | Level | Meaning |
40
- |-------|---------|
39
+ | Level | Meaning |
40
+ | ------------ | ---------------------------------------------------- |
41
41
  | **critical** | Broken functionality, security issue, data loss risk |
42
- | **warning** | Works but poorly: fragile, confusing, or degraded |
43
- | **info** | Minor: cosmetic, style, low-impact improvement |
42
+ | **warning** | Works but poorly: fragile, confusing, or degraded |
43
+ | **info** | Minor: cosmetic, style, low-impact improvement |
44
44
 
45
45
  ### Issue severity (TODO.md)
46
46
 
47
47
  Used by all skills that file to TODO.md.
48
48
 
49
- | Level | Glyph | Meaning |
50
- |-------|-------|---------|
51
- | **critical** | ⇶ | Broken functionality, blocks progress |
52
- | **degraded** | ⇉ | Works but poorly: slow, fragile, ugly |
53
- | **normal** | → | Standard work: features, improvements, routine tasks |
54
- | **annoying** | ⇢ | Cosmetic, minor friction, style nit |
49
+ | Level | Glyph | Meaning |
50
+ | ------------ | ----- | ---------------------------------------------------- |
51
+ | **critical** | ⇶ | Broken functionality, blocks progress |
52
+ | **degraded** | ⇉ | Works but poorly: slow, fragile, ugly |
53
+ | **normal** | → | Standard work: features, improvements, routine tasks |
54
+ | **annoying** | ⇢ | Cosmetic, minor friction, style nit |
55
55
 
56
56
  ### Mapping
57
57
 
58
58
  When filing audit findings to TODO.md, map as follows:
59
59
 
60
- | Finding severity | → | Issue severity |
61
- |-----------------|---|----------------|
62
- | critical | → | critical |
63
- | warning | → | degraded or normal |
64
- | info | → | annoying |
60
+ | Finding severity | → | Issue severity |
61
+ | ---------------- | --- | ------------------ |
62
+ | critical | → | critical |
63
+ | warning | → | degraded or normal |
64
+ | info | → | annoying |
65
65
 
66
66
  ### TODO.md format convention
67
67
 
@@ -71,24 +71,29 @@ TODO.md uses a conventional checkbox format grouped by severity. Skills write it
71
71
  # TODO
72
72
 
73
73
  ## ⇶ Critical
74
- - [ ] ISS-N: [type] Description
74
+
75
+ - [ ] [type:train] Description
75
76
 
76
77
  ## ⇉ Degraded
77
- - [ ] ISS-N: [type] Description
78
+
79
+ - [ ] [type:train] Description
78
80
 
79
81
  ## → Normal
80
- - [ ] ISS-N: [type] Description
82
+
83
+ - [ ] [type:train] Description
81
84
 
82
85
  ## ⇢ Annoying
83
- - [ ] ISS-N: [type] Description
84
86
 
85
- ## Resolved
86
- - [x] ~~ISS-N: [type] Description~~ · resolved in commit hash
87
+ - [ ] [type:train] Description
88
+
89
+ ## ✓ Resolved
90
+
91
+ - [x] [type:train] Description · resolved in commit hash
87
92
  ```
88
93
 
89
- Type tags use the conventional commit vocabulary: feat, fix, docs, refactor, chore, test, perf.
94
+ Type tags use the conventional commit vocabulary: feat, fix, docs, refactor, chore, test, perf. An optional train scope in `[type:train]` form marks work targeting a specific release train, e.g. `- [ ] [fix:train]`.
90
95
 
91
- The severity vocabulary (critical/degraded/annoying) is preserved as section headings with severity glyphs. Checkboxes indicate completion state. Resolved items move to the Resolved section with strikethrough and commit reference.
96
+ The severity vocabulary (critical/degraded/annoying) is preserved as section headings with severity glyphs. Checkboxes indicate completion state. Resolved items move to `## Resolved` with `- [x]` and a commit reference.
92
97
 
93
98
  **Linter check**: Deterministic. Exact string matching for severity terms in context.
94
99
 
@@ -96,11 +101,11 @@ The severity vocabulary (critical/degraded/annoying) is preserved as section hea
96
101
 
97
102
  Used in DECISIONS.md entries (produced by resonera, consumed by realisera, planera, inspektera, profilera).
98
103
 
99
- | Label | Meaning | How consuming skills treat it |
100
- |-------|---------|-------------------------------|
101
- | **firm** | User is committed | Treat as a hard constraint |
102
- | **provisional** | Best current answer, open to revision | Treat as a strong default |
103
- | **exploratory** | Direction to try, expected to be revisited | Treat as a suggestion |
104
+ | Label | Meaning | How consuming skills treat it |
105
+ | --------------- | ------------------------------------------ | ----------------------------- |
106
+ | **firm** | User is committed | Treat as a hard constraint |
107
+ | **provisional** | Best current answer, open to revision | Treat as a strong default |
108
+ | **exploratory** | Direction to try, expected to be revisited | Treat as a suggestion |
104
109
 
105
110
  **Linter check**: Deterministic. Enum values in DECISIONS.md format definition.
106
111
 
@@ -114,44 +119,44 @@ Three project-facing files at the project root; nine operational files in `.agen
114
119
 
115
120
  **Root (project-facing)**:
116
121
 
117
- | File | Purpose |
118
- |------|---------|
119
- | VISION.md | Project north star |
120
- | TODO.md | Actionable items with priority and checkboxes |
122
+ | File | Purpose |
123
+ | ------------ | ------------------------------------------------- |
124
+ | VISION.md | Project north star |
125
+ | TODO.md | Actionable items with priority and checkboxes |
121
126
  | CHANGELOG.md | Version-level change summaries (keep-a-changelog) |
122
127
 
123
128
  **.agentera/ (operational)**:
124
129
 
125
- | File | Purpose |
126
- |------|---------|
127
- | PROGRESS.md | Cycle-by-cycle operational log |
128
- | DECISIONS.md | Reasoning trail |
129
- | PLAN.md | Active work plan |
130
- | HEALTH.md | Audit grades and findings |
131
- | OBJECTIVE.md | Optimization target (per-objective, under `.agentera/optimera/<name>/`) |
132
- | EXPERIMENTS.md | Experiment log (per-objective, under `.agentera/optimera/<name>/`) |
133
- | DESIGN.md | Visual identity |
134
- | DOCS.md | Documentation contract + optional artifact path overrides |
135
- | archive/ | Completed plans, superseded visions and designs |
130
+ | File | Purpose |
131
+ | -------------- | ----------------------------------------------------------------------- |
132
+ | PROGRESS.md | Cycle-by-cycle operational log |
133
+ | DECISIONS.md | Reasoning trail |
134
+ | PLAN.md | Active work plan |
135
+ | HEALTH.md | Audit grades and findings |
136
+ | OBJECTIVE.md | Optimization target (per-objective, under `.agentera/optimera/<name>/`) |
137
+ | EXPERIMENTS.md | Experiment log (per-objective, under `.agentera/optimera/<name>/`) |
138
+ | DESIGN.md | Visual identity |
139
+ | DOCS.md | Documentation contract + optional artifact path overrides |
140
+ | archive/ | Completed plans, superseded visions and designs |
136
141
 
137
- **PROFILE.md** is global. Profilera determines the platform-appropriate data directory: `$PROFILERA_PROFILE_DIR/PROFILE.md` (defaulting to `$XDG_DATA_HOME/agentera/PROFILE.md` on Linux, `~/Library/Application Support/agentera/PROFILE.md` on macOS, `%APPDATA%/agentera/PROFILE.md` on Windows). <!-- platform: profile-path --> Skills read it from the profilera-determined path directly. PROFILERA_PROFILE_DIR is the sibling of AGENTERA_HOME (Section 7): both are adapter-injected env vars. PROFILERA_PROFILE_DIR scopes to profile data; AGENTERA_HOME scopes to the Agentera app home. User data such as PROFILE.md, USAGE.md, history, and intermediate corpus data stays at the app-home root; managed app code lives separately under `$AGENTERA_HOME/app`.
142
+ **PROFILE.md** is global. Profilera determines the platform-appropriate data directory: `$AGENTERA_PROFILE_DIR/PROFILE.md` (defaulting to `$XDG_DATA_HOME/agentera/PROFILE.md` on Linux, `~/Library/Application Support/agentera/PROFILE.md` on macOS, `%APPDATA%/agentera/PROFILE.md` on Windows). <!-- platform: profile-path --> Skills read it from the profilera-determined path directly. AGENTERA_PROFILE_DIR is the sibling of AGENTERA_HOME (Section 7): both are adapter-injected env vars. AGENTERA_PROFILE_DIR scopes to profile data; AGENTERA_HOME scopes to the Agentera app home. User data such as PROFILE.md, USAGE.md, history, and intermediate corpus data stays at the app-home root; managed app code lives separately under `$AGENTERA_HOME/app`.
138
143
 
139
144
  ### Format contracts
140
145
 
141
- | Artifact | Path | Producer | Consumers | Key structural elements |
142
- |----------|------|----------|-----------|------------------------|
143
- | VISION.md | .agentera/vision.yaml | visionera, realisera | realisera, planera, inspektera, dokumentera, visualisera, orkestrera | north_star, personas, principles, direction, identity |
144
- | TODO.md | TODO.md | realisera, inspektera | realisera, planera, orkestrera | ## ⇶ Critical, ## ⇉ Degraded, ## → Normal, ## ⇢ Annoying, ## Resolved |
145
- | CHANGELOG.md | CHANGELOG.md | realisera | project contributors | ## [Unreleased], ### Added/Changed/Fixed |
146
- | DECISIONS.md | .agentera/decisions.yaml | resonera | planera, realisera, inspektera, profilera, optimera, orkestrera | ## Decision N · date, **Question/Context/Alternatives/Choice/Reasoning/Confidence/Feeds into** |
147
- | PLAN.md | .agentera/plan.yaml | planera | realisera, inspektera, orkestrera | <!-- Level/Created/Status -->, ## Tasks with ### Task N, **Status/Depends on/Acceptance** |
148
- | PROGRESS.md | .agentera/progress.yaml | realisera | planera, inspektera, dokumentera, visionera, orkestrera | ## Cycle N · date, **Phase/What/Commit/Inspiration/Discovered/Next/Context** |
149
- | HEALTH.md | .agentera/health.yaml | inspektera | realisera, planera, orkestrera | ## Audit N · date, **Dimensions/Findings/Overall/Grades**, per-dimension sections |
150
- | OBJECTIVE.md | .agentera/optimera/<name>/objective.yaml | optimera | optimera | ## Metric, ## Target, ## Baseline, ## Constraints, **Status** |
151
- | EXPERIMENTS.md | .agentera/optimera/<name>/experiments.yaml | optimera | optimera | ## Experiment N · date, **Hypothesis/Method/Result/Conclusion**; ## Closure · date, **Final value/Target/Reason** |
152
- | DESIGN.md | DESIGN.md | visualisera | realisera, visionera | Standard design sections with embedded `design:` YAML blocks |
153
- | DOCS.md | .agentera/docs.yaml | dokumentera | all skills (path resolution) | conventions, mapping, index |
154
- | PROFILE.md | (profile-path capability) <!-- platform: profile-path --> | profilera | all skills (directly when present) | ## Category, ### Decision, inline conf metadata |
146
+ | Artifact | Path | Producer | Consumers | Key structural elements |
147
+ | -------------- | --------------------------------------------------------- | --------------------- | -------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
148
+ | VISION.md | .agentera/vision.yaml | visionera, realisera | realisera, planera, inspektera, dokumentera, visualisera, orkestrera | north_star, personas, principles, direction, identity |
149
+ | TODO.md | TODO.md | realisera, inspektera | realisera, planera, orkestrera | ## ⇶ Critical, ## ⇉ Degraded, ## → Normal, ## ⇢ Annoying, ## Resolved |
150
+ | CHANGELOG.md | CHANGELOG.md | realisera | project contributors | ## [Unreleased], ### Added/Changed/Fixed |
151
+ | DECISIONS.md | .agentera/decisions.yaml | resonera | planera, realisera, inspektera, profilera, optimera, orkestrera | ## Decision N · date, **Question/Context/Alternatives/Choice/Reasoning/Confidence/Feeds into** |
152
+ | PLAN.md | .agentera/plan.yaml | planera | realisera, inspektera, orkestrera | <!-- Level/Created/Status -->, ## Tasks with ### Task N, **Status/Depends on/Acceptance** |
153
+ | PROGRESS.md | .agentera/progress.yaml | realisera | planera, inspektera, dokumentera, visionera, orkestrera | ## Cycle N · date, **Phase/What/Inspiration/Discovered/Next/Context** |
154
+ | HEALTH.md | .agentera/health.yaml | inspektera | realisera, planera, orkestrera | ## Audit N · date, **Dimensions/Findings/Overall/Grades**, per-dimension sections |
155
+ | OBJECTIVE.md | .agentera/optimera/<name>/objective.yaml | optimera | optimera | ## Metric, ## Target, ## Baseline, ## Constraints, **Status** |
156
+ | EXPERIMENTS.md | .agentera/optimera/<name>/experiments.yaml | optimera | optimera | ## Experiment N · date, **Hypothesis/Method/Result/Conclusion**; ## Closure · date, **Final value/Target/Reason** |
157
+ | DESIGN.md | DESIGN.md | visualisera | realisera, visionera | Standard design sections with embedded `design:` YAML blocks |
158
+ | DOCS.md | .agentera/docs.yaml | dokumentera | all skills (path resolution) | conventions, mapping, index |
159
+ | PROFILE.md | (profile-path capability) <!-- platform: profile-path --> | profilera | all skills (directly when present) | ## Category, ### Decision, inline conf metadata |
155
160
 
156
161
  **Dual-write**: realisera writes both CHANGELOG.md (public, version-level summaries for project contributors) AND `.agentera/progress.yaml` (operational cycle-level detail for consuming skills). Consuming skills that need cycle detail read `.agentera/progress.yaml`; project contributors read CHANGELOG.md.
157
162
 
@@ -163,17 +168,17 @@ Three project-facing files at the project root; nine operational files in `.agen
163
168
 
164
169
  Inspektera assesses codebases across these dimensions, selecting applicable ones per audit. Each dimension produces an A-F grade, confidence-scored findings, and trend tracking.
165
170
 
166
- | Dimension | What it evaluates |
167
- |-----------|-------------------|
168
- | Architecture alignment | Code vs stated architecture: pattern mismatches, boundary violations, layering breaks |
169
- | Pattern consistency | Naming, error handling, structure, abstractions used consistently |
170
- | Coupling health | Hidden dependencies, circular imports, god modules, inappropriate intimacy |
171
- | Complexity hotspots | Long functions, deep nesting, high fan-out, accumulated conditionals |
172
- | Test health | Coverage gaps, test quality, test-to-code ratio, behavior vs implementation testing |
173
- | Dependency health | Outdated deps, security advisories, unused deps, pinning discipline |
174
- | Version health | Unreleased feat/fix commits since last version bump |
175
- | Artifact freshness | State artifacts current relative to plan activity or recent development |
176
- | Security hygiene | Hardcoded secrets, dangerous function calls, basic injection patterns (lightweight regex scan; recommends dedicated tools for comprehensive analysis) |
171
+ | Dimension | What it evaluates |
172
+ | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
173
+ | Architecture alignment | Code vs stated architecture: pattern mismatches, boundary violations, layering breaks |
174
+ | Pattern consistency | Naming, error handling, structure, abstractions used consistently |
175
+ | Coupling health | Hidden dependencies, circular imports, god modules, inappropriate intimacy |
176
+ | Complexity hotspots | Long functions, deep nesting, high fan-out, accumulated conditionals |
177
+ | Test health | Coverage gaps, test quality, test-to-code ratio, behavior vs implementation testing |
178
+ | Dependency health | Outdated deps, security advisories, unused deps, pinning discipline |
179
+ | Version health | Unreleased feat/fix commits since last version bump |
180
+ | Artifact freshness | State artifacts current relative to plan activity or recent development |
181
+ | Security hygiene | Hardcoded secrets, dangerous function calls, basic injection patterns (lightweight regex scan; recommends dedicated tools for comprehensive analysis) |
177
182
 
178
183
  ### CHANGELOG.md format convention
179
184
 
@@ -185,17 +190,21 @@ CHANGELOG.md follows the [Keep a Changelog](https://keepachangelog.com/) convent
185
190
  ## [Unreleased]
186
191
 
187
192
  ### Added
193
+
188
194
  - description
189
195
 
190
196
  ### Changed
197
+
191
198
  - description
192
199
 
193
200
  ### Fixed
201
+
194
202
  - description
195
203
 
196
204
  ## [version] · YYYY-MM-DD
197
205
 
198
206
  ### Added
207
+
199
208
  - description
200
209
  ```
201
210
 
@@ -207,22 +216,22 @@ Realisera appends entries under `## [Unreleased]` in the appropriate subsection
207
216
 
208
217
  Per-artifact word limits. Producing skills check approximate word count before writing. If a write would exceed the budget, compact first (see Compaction thresholds below).
209
218
 
210
- | Artifact | Scope | Budget |
211
- |----------|-------|--------|
212
- | PROGRESS.md | Per-cycle entry | ≤500 words |
213
- | PROGRESS.md | Full file | ≤3,000 words |
214
- | EXPERIMENTS.md | Per-experiment entry | ≤300 words |
215
- | EXPERIMENTS.md | Full file | ≤2,500 words |
216
- | HEALTH.md | Per-dimension assessment | ≤150 words |
217
- | HEALTH.md | Full file | ≤2,000 words |
218
- | DECISIONS.md | Per-decision entry | ≤200 words |
219
- | TODO.md | Per-item entry | ≤100 words |
220
- | CHANGELOG.md | Per-version section | ≤300 words |
221
- | PLAN.md | Per-task entry | ≤100 words |
222
- | PLAN.md | Full file | ≤2,500 words |
223
- | VISION.md | Full file | ≤1,500 words |
224
- | DESIGN.md | Full file | ≤2,000 words |
225
- | DOCS.md | Full file | ≤2,000 words |
219
+ | Artifact | Scope | Budget |
220
+ | -------------- | ------------------------ | ------------ |
221
+ | PROGRESS.md | Per-cycle entry | ≤500 words |
222
+ | PROGRESS.md | Full file | ≤3,000 words |
223
+ | EXPERIMENTS.md | Per-experiment entry | ≤300 words |
224
+ | EXPERIMENTS.md | Full file | ≤2,500 words |
225
+ | HEALTH.md | Per-dimension assessment | ≤150 words |
226
+ | HEALTH.md | Full file | ≤2,000 words |
227
+ | DECISIONS.md | Per-decision entry | ≤200 words |
228
+ | TODO.md | Per-item entry | ≤100 words |
229
+ | CHANGELOG.md | Per-version section | ≤300 words |
230
+ | PLAN.md | Per-task entry | ≤100 words |
231
+ | PLAN.md | Full file | ≤2,500 words |
232
+ | VISION.md | Full file | ≤1,500 words |
233
+ | DESIGN.md | Full file | ≤2,000 words |
234
+ | DOCS.md | Full file | ≤2,000 words |
226
235
 
227
236
  Budgets are guidelines, not hard blockers. A 510-word cycle entry is fine; a 1,200-word entry signals the write step lacks output constraints.
228
237
 
@@ -230,54 +239,74 @@ Budgets are guidelines, not hard blockers. A 510-word cycle entry is fine; a 1,2
230
239
 
231
240
  Artifacts store judgments, intent, reasoning, and context that would be lost without them: the non-derivable residue. Do not duplicate state retrievable from the project's files or history with a deterministic command.
232
241
 
233
- | Exclude from artifacts | Retrieve from |
234
- |------------------------|---------------|
235
- | Files modified in a cycle | `git log --stat` |
236
- | Function signatures from audits | `Grep` against source code |
237
- | Dependency versions | Manifest files (package.json, go.mod, etc.) |
238
- | Lines of code per module | `wc -l` or Glob + Read |
239
- | Code snippets in PROGRESS.md | Commit diffs (`git show`) |
240
- | Test names enumerated in findings | `Grep` against test files |
242
+ | Exclude from artifacts | Retrieve from |
243
+ | --------------------------------- | ------------------------------------------- |
244
+ | Files modified in a cycle | `git log --stat` |
245
+ | Function signatures from audits | `Grep` against source code |
246
+ | Dependency versions | Manifest files (package.json, go.mod, etc.) |
247
+ | Lines of code per module | `wc -l` or Glob + Read |
248
+ | Code snippets in PROGRESS.md | Commit diffs (`git show`) |
249
+ | Test names enumerated in findings | `Grep` against test files |
241
250
 
242
251
  The test: if a reader can reconstruct the information from the project's current state or git history, it does not belong in the artifact.
243
252
 
244
253
  ### Compaction thresholds
245
254
 
246
- Growing artifacts are compacted to cap read cost for consuming skills. Compaction runs when the producing skill writes a new entry. All growing artifacts follow a uniform 10/40/50 rule: 10 full-detail entries, 40 one-line archive entries, drop beyond 50 total.
255
+ Numbered state artifacts use `uniform_10_40_50` as projection capacity to cap
256
+ read cost for consuming skills: 10 active full-detail entries and 40 archive
257
+ projection entries. These are bounded active/archive projections, not retention
258
+ or deletion limits. Verified numbered archives remain authoritative; projection
259
+ compaction performs no destructive deletion. Recovery refuses to omit entries
260
+ when archive evidence is missing and retains full entries with metadata.
261
+ Compaction runs when the producing skill writes a new entry. Other artifacts
262
+ retain their owning artifact-specific compaction rules below.
247
263
 
248
264
  **CHANGELOG.md is exempt**: it is the public version-level history and is not compacted.
249
265
 
250
266
  **PROGRESS.md**, compacted by realisera when writing a new cycle entry:
251
267
 
252
- | Tier | Entries | Format |
253
- |------|---------|--------|
254
- | Full detail | 10 most recent cycles | Standard cycle entry format |
255
- | One-line archive | Cycles 11 through 50 | `Cycle N (YYYY-MM-DD): ≤15-word summary` |
256
- | Dropped | Cycles older than 50 | Removed entirely |
268
+ | Tier | Entries | Format |
269
+ | ------------------- | --------------------- | ---------------------------------------- |
270
+ | Active full detail | 10 most recent cycles | Standard cycle entry format |
271
+ | Archive projection | Cycles 11 through 50 | `Cycle N (YYYY-MM-DD): ≤15-word summary` |
272
+ | Outside projection | Older cycles | Omission metadata; numbered archive |
257
273
 
258
- When writing a new cycle: if >10 full-detail entries exist, collapse the oldest to one-line format under an `## Archived Cycles` heading (below the recent cycles). If >40 one-line entries exist, drop the oldest. One-line summaries preserve cycle number, date, and work-type, enough for trend analysis by consuming skills.
274
+ When writing a new cycle: if >10 full-detail entries exist and their numbered
275
+ archives verify, collapse the oldest to one-line format under an `## Archived
276
+ Cycles` heading (below the recent cycles). If >40 one-line entries exist, omit
277
+ the oldest from this bounded projection with metadata; if archive evidence is
278
+ missing, retain the full entry and refuse the projection change. One-line
279
+ summaries preserve cycle number, date, and work-type, enough for trend analysis
280
+ by consuming skills.
259
281
 
260
- Active cycle entries are stored newest-first: descending by cycle number. Insert the newest full-detail cycle before older active cycles so `agentera progress --limit 1` reads the current cycle without scanning the full file.
282
+ Active cycle entries are stored newest-first: descending by cycle number. Insert the newest full-detail cycle before older active cycles so `agentera state progress list --limit 1 --format json` reads the current cycle through the bounded state interface.
261
283
 
262
284
  **EXPERIMENTS.md**, compacted by optimera when writing a new experiment:
263
285
 
264
- | Tier | Entries | Format |
265
- |------|---------|--------|
266
- | Full detail | 10 most recent experiments | Standard experiment entry format |
267
- | One-line archive | Experiments 11 through 50 | `EXP-N: ≤15-word result summary` |
268
- | Dropped | Experiments older than 50 | Removed entirely |
286
+ | Tier | Entries | Format |
287
+ | ---------------- | -------------------------- | -------------------------------- |
288
+ | Full detail | 10 most recent experiments | Standard experiment entry format |
289
+ | One-line archive | Experiments 11 through 50 | `EXP-N: ≤15-word result summary` |
290
+ | Dropped | Experiments older than 50 | Removed entirely |
269
291
 
270
- Same logic: collapse oldest full-detail to one-line when >10 exist. Drop oldest one-line when >40 one-line entries exist. Archive section sits below recent experiments under an `## Archived Experiments` heading.
292
+ Same logic: collapse oldest full-detail to one-line when >10 exist. Drop oldest
293
+ one-line when >40 one-line entries exist. Archive section sits below recent
294
+ experiments under an `## Archived Experiments` heading.
271
295
 
272
296
  **DECISIONS.md**, compacted by resonera when writing a new decision:
273
297
 
274
- | Tier | Entries | Format |
275
- |------|---------|--------|
276
- | Full detail | 10 most recent decisions | Standard decision entry format |
277
- | One-line archive | Decisions 11 through 50 | `Decision N (YYYY-MM-DD): [Choice] — ≤15-word summary` |
278
- | Dropped | Decisions older than 50 | Removed entirely |
298
+ | Tier | Entries | Format |
299
+ | ------------------- | ------------------------ | ------------------------------------------------------ |
300
+ | Active full detail | 10 most recent decisions | Standard decision entry format |
301
+ | Archive projection | Decisions 11 through 50 | `Decision N (YYYY-MM-DD): [Choice] — ≤15-word summary` |
302
+ | Outside projection | Older decisions | Omission metadata; numbered archive |
279
303
 
280
- Same logic: collapse oldest full-detail to one-line when >10 exist. Drop oldest one-line when >40 one-line entries exist. Archive section sits below recent decisions under an `## Archived Decisions` heading. One-line summaries preserve decision number, date, and the chosen alternative.
304
+ Same logic: collapse oldest full-detail to one-line when >10 exist and their
305
+ numbered archives verify. If >40 one-line entries exist, omit the oldest from
306
+ this bounded projection with metadata; if archive evidence is missing, retain
307
+ the full entry and refuse the projection change. Archive section sits below
308
+ recent decisions under an `## Archived Decisions` heading. One-line summaries
309
+ preserve decision number, date, and the chosen alternative.
281
310
 
282
311
  When writing a new decision, choose `N` as one greater than the highest decision number in active and archived entries. Insert the new full entry in the active section immediately before `## Archived Decisions`; if no archive exists, append it at the end of the file. Active decision entries must have unique numbers and remain ascending by decision number. Do not reuse or renumber decisions except when repairing artifact corruption.
283
312
 
@@ -285,23 +314,45 @@ When writing a new decision, choose `N` as one greater than the highest decision
285
314
 
286
315
  **HEALTH.md**, compacted by inspektera when writing a new audit:
287
316
 
288
- | Tier | Entries | Format |
289
- |------|---------|--------|
290
- | Full detail | 10 most recent audits | Standard audit entry format |
291
- | One-line archive | Audits 11 through 50 | `Audit N (YYYY-MM-DD): [grade] — ≤15-word summary` |
292
- | Dropped | Audits older than 50 | Removed entirely |
317
+ | Tier | Entries | Format |
318
+ | ------------------- | --------------------- | -------------------------------------------------- |
319
+ | Active full detail | 10 most recent audits | Standard audit entry format |
320
+ | Archive projection | Audits 11 through 50 | `Audit N (YYYY-MM-DD): [grade] — ≤15-word summary` |
321
+ | Outside projection | Older audits | Omission metadata; numbered archive |
293
322
 
294
- Same logic: collapse oldest full-detail to one-line when >10 exist. Drop oldest one-line when >40 one-line entries exist. Archive section sits below recent audits under an `## Archived Audits` heading. One-line summaries preserve audit number, date, overall grade, and trajectory.
323
+ Same logic: collapse oldest full-detail to one-line when >10 exist and their
324
+ numbered archives verify. If >40 one-line entries exist, omit the oldest from
325
+ this bounded projection with metadata; if archive evidence is missing, retain
326
+ the full entry and refuse the projection change. Archive section sits below
327
+ recent audits under an `## Archived Audits` heading. One-line summaries preserve
328
+ audit number, date, overall grade, and trajectory.
295
329
 
296
330
  **TODO.md Resolved section**, compacted by realisera when marking an item resolved:
297
331
 
298
- | Tier | Entries | Format |
299
- |------|---------|--------|
300
- | Full detail | 10 most recent resolved items | Standard resolved entry format |
301
- | One-line archive | Items 11 through 50 | `- [x] ~~[ISS-NN]: ≤15-word resolution summary~~` |
302
- | Dropped | Items older than 50 | Removed entirely |
303
-
304
- Same logic: collapse oldest full-detail to one-line when >10 exist. Drop oldest one-line when >40 one-line entries exist. Compaction applies only within the `## Resolved` section; active severity sections are not affected.
332
+ | Tier | Entries | Format |
333
+ | ---------------- | ----------------------------- | ------------------------------------------------ |
334
+ | Full detail | 10 most recent resolved items | Standard resolved entry format |
335
+ | One-line summary | Items 11 through 50 | `- [x] [type:train] ≤15-word resolution summary` |
336
+ | Dropped | Items older than 50 | Removed entirely |
337
+
338
+ The first ten resolved rows are the recent/full-detail tier even when they have
339
+ no indented body; rows 11 through 50 are the summary tier. Collapse the oldest
340
+ full-detail entries to one line when more than 10 exist. Drop the oldest
341
+ summaries when more than 40 exist. Compaction applies only within the
342
+ `## ✓ Resolved` section; active severity sections are not affected.
343
+
344
+ TODO.md is a **bounded human-facing queue, not a lossless numbered archive**.
345
+ Unlike progress, decisions, and health—which preserve verified numbered archives
346
+ and perform no destructive deletion—TODO compaction is intentionally destructive.
347
+ Dropped resolved entries are removed from the working tree and are recoverable
348
+ only for previously committed content through project history
349
+ (`git log -p -- :/TODO.md`; the `:/` pathspec is project-root-safe). Non-Git
350
+ projects have no historical recovery for dropped entries. Compaction diagnostics
351
+ MUST report removed entries as `dropped` and MUST NOT describe TODO compaction as
352
+ a lossless projection. Exactly one `## ✓ Resolved` section is permitted;
353
+ parsing, validation, and compaction refuse with an actionable diagnostic when
354
+ duplicates are present because parsing processes only the first section and
355
+ otherwise hides trailing entries from the budget.
305
356
 
306
357
  ## 5. Artifact Path Resolution
307
358
 
@@ -340,7 +391,7 @@ Skills that read the decision profile use one of two patterns:
340
391
  ### Script pattern (for skills that need confidence-weighted summaries)
341
392
 
342
393
  ```
343
- Read `$PROFILERA_PROFILE_DIR/PROFILE.md` directly
394
+ Read `$AGENTERA_PROFILE_DIR/PROFILE.md` directly
344
395
  ```
345
396
 
346
397
  Run from the profilera skill directory. Mentioned skills: realisera, optimera, inspektera, planera, inspirera.
@@ -352,14 +403,14 @@ Standard threshold language (after migration to 0-100):
352
403
 
353
404
  ### Direct read pattern (for skills that need qualitative profile context)
354
405
 
355
- Read PROFILE.md from the profilera-determined profile path (`$PROFILERA_PROFILE_DIR/PROFILE.md`, defaulting to `$XDG_DATA_HOME/agentera/PROFILE.md` on Linux). <!-- platform: profile-path --> Mentioned skills: resonera, visionera, dokumentera, visualisera.
406
+ Read PROFILE.md from the profilera-determined profile path (`$AGENTERA_PROFILE_DIR/PROFILE.md`, defaulting to `$XDG_DATA_HOME/agentera/PROFILE.md` on Linux). <!-- platform: profile-path --> Mentioned skills: resonera, visionera, dokumentera, visualisera.
356
407
 
357
408
  Both patterns MUST include a fallback instruction:
358
409
  "If the script or PROFILE.md is missing, proceed without persona grounding."
359
410
 
360
411
  **Linter check**: Deterministic. Script invocation syntax, threshold values, fallback instruction presence.
361
412
 
362
- PROFILERA_PROFILE_DIR is the sibling of AGENTERA_HOME (Section 7): both are adapter-injected env vars, but they scope to different surfaces. PROFILERA_PROFILE_DIR names the profile data directory where PROFILE.md lives; AGENTERA_HOME names the Agentera app home. User data remains at the app-home root; helper scripts referenced by skill prose live in the managed app under `$AGENTERA_HOME/app`.
413
+ AGENTERA_PROFILE_DIR is the sibling of AGENTERA_HOME (Section 7): both are adapter-injected env vars, but they scope to different surfaces. AGENTERA_PROFILE_DIR names the profile data directory where PROFILE.md lives; AGENTERA_HOME names the Agentera app home. User data remains at the app-home root; helper scripts referenced by skill prose live in the managed app under `$AGENTERA_HOME/app`.
363
414
 
364
415
  ## 11. Exit Signals
365
416
 
@@ -367,12 +418,12 @@ Every skill MUST report a completion status at the end of its workflow. This ena
367
418
 
368
419
  ### Statuses
369
420
 
370
- | Status | Meaning | When to use |
371
- |--------|---------|-------------|
372
- | **complete** | All steps completed successfully | The skill's workflow ran to completion and all acceptance criteria (if any) were met |
373
- | **flagged** | Completed, but with issues the user should know about | The workflow completed but discovered problems, made compromises, or has caveats worth surfacing |
374
- | **stuck** | Cannot proceed | A hard blocker prevents completion: missing dependency, permission issue, ambiguous requirement too consequential to resolve autonomously |
375
- | **waiting** | Missing information required to continue | The skill needs input, clarification, or a decision from the user or another skill before it can proceed |
421
+ | Status | Meaning | When to use |
422
+ | ------------ | ----------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
423
+ | **complete** | All steps completed successfully | The skill's workflow ran to completion and all acceptance criteria (if any) were met |
424
+ | **flagged** | Completed, but with issues the user should know about | The workflow completed but discovered problems, made compromises, or has caveats worth surfacing |
425
+ | **stuck** | Cannot proceed | A hard blocker prevents completion: missing dependency, permission issue, ambiguous requirement too consequential to resolve autonomously |
426
+ | **waiting** | Missing information required to continue | The skill needs input, clarification, or a decision from the user or another skill before it can proceed |
376
427
 
377
428
  ### Rules
378
429
 
@@ -401,20 +452,20 @@ DESIGN.md is the source of truth for token definitions. This spec defines how sk
401
452
 
402
453
  Each skill has a unique Unicode glyph used as a subtle signature in output.
403
454
 
404
- | Skill | Glyph | Code | Meaning |
405
- |-------|-------|------|---------|
406
- | hej | ⌂ | U+2302 | home base |
407
- | realisera | ⧉ | U+29C9 | joined building blocks |
408
- | inspektera | ⛶ | U+26F6 | viewfinder frame |
409
- | resonera | ❈ | U+2748 | spark of insight |
410
- | planera | ≡ | U+2261 | structured layers |
411
- | visionera | ⛥ | U+26E5 | guiding star |
412
- | optimera | ⎘ | U+2398 | measurement |
413
- | dokumentera | ▤ | U+25A4 | text on page |
414
- | profilera | ♾ | U+267E | permanent mark |
415
- | inspirera | ⬚ | U+2B1A | frame to fill |
416
- | visualisera | ◰ | U+25F0 | design grid |
417
- | orkestrera | ⎈ | U+2388 | helm, steering |
455
+ | Skill | Glyph | Code | Meaning |
456
+ | ----------- | ----- | ------ | ---------------------- |
457
+ | hej | ⌂ | U+2302 | home base |
458
+ | realisera | ⧉ | U+29C9 | joined building blocks |
459
+ | inspektera | ⛶ | U+26F6 | viewfinder frame |
460
+ | resonera | ❈ | U+2748 | spark of insight |
461
+ | planera | ≡ | U+2261 | structured layers |
462
+ | visionera | ⛥ | U+26E5 | guiding star |
463
+ | optimera | ⎘ | U+2398 | measurement |
464
+ | dokumentera | ▤ | U+25A4 | text on page |
465
+ | profilera | ♾ | U+267E | permanent mark |
466
+ | inspirera | ⬚ | U+2B1A | frame to fill |
467
+ | visualisera | ◰ | U+25F0 | design grid |
468
+ | orkestrera | ⎈ | U+2388 | helm, steering |
418
469
 
419
470
  ### Semantic tokens
420
471
 
@@ -422,46 +473,46 @@ Six token families express status, urgency, certainty, and direction.
422
473
 
423
474
  **Status** (task/item completion, square fill progression):
424
475
 
425
- | State | Glyph | Code |
426
- |-------|-------|------|
427
- | complete | ■ | U+25A0 |
428
- | in-progress | ▣ | U+25A3 |
429
- | open | □ | U+25A1 |
430
- | blocked | ▨ | U+25A8 |
476
+ | State | Glyph | Code |
477
+ | ----------- | ----- | ------ |
478
+ | complete | ■ | U+25A0 |
479
+ | in-progress | ▣ | U+25A3 |
480
+ | open | □ | U+25A1 |
481
+ | blocked | ▨ | U+25A8 |
431
482
 
432
483
  **Severity** (issue priority, rightward arrows, more arrows = higher priority):
433
484
 
434
- | Level | Glyph | Code |
435
- |-------|-------|------|
436
- | critical | ⇶ | U+21F6 |
437
- | degraded | ⇉ | U+21C9 |
438
- | normal | → | U+2192 |
439
- | annoying | ⇢ | U+21E2 |
485
+ | Level | Glyph | Code |
486
+ | -------- | ----- | ------ |
487
+ | critical | ⇶ | U+21F6 |
488
+ | degraded | ⇉ | U+21C9 |
489
+ | normal | → | U+2192 |
490
+ | annoying | ⇢ | U+21E2 |
440
491
 
441
492
  **Confidence** (decision certainty, box-drawing line weight):
442
493
 
443
- | Level | Glyph | Code |
444
- |-------|-------|------|
445
- | firm | ━ | U+2501 |
446
- | provisional | ─ | U+2500 |
447
- | exploratory | ┄ | U+2504 |
494
+ | Level | Glyph | Code |
495
+ | ----------- | ----- | ------ |
496
+ | firm | ━ | U+2501 |
497
+ | provisional | ─ | U+2500 |
498
+ | exploratory | ┄ | U+2504 |
448
499
 
449
500
  **Trends** (direction of change):
450
501
 
451
- | Direction | Glyph | Code |
452
- |-----------|-------|------|
453
- | improving | ⮉ | U+2B89 |
454
- | degrading | ⮋ | U+2B8B |
502
+ | Direction | Glyph | Code |
503
+ | --------- | ----- | ------ |
504
+ | improving | ⮉ | U+2B89 |
505
+ | degrading | ⮋ | U+2B8B |
455
506
 
456
507
  **Structural** (layout primitives):
457
508
 
458
- | Element | Glyph/Pattern | Code |
459
- |---------|---------------|------|
460
- | section divider | `─── label ───────` | U+2500 |
461
- | list item | ▸ | U+25B8 |
462
- | inline separator | · | U+00B7 |
463
- | flow / target | → | U+2192 |
464
- | progress bar | █▓░ | U+2588/2593/2591 |
509
+ | Element | Glyph/Pattern | Code |
510
+ | ---------------- | ------------------- | ---------------- |
511
+ | section divider | `─── label ───────` | U+2500 |
512
+ | list item | ▸ | U+25B8 |
513
+ | inline separator | · | U+00B7 |
514
+ | flow / target | → | U+2192 |
515
+ | progress bar | █▓░ | U+2588/2593/2591 |
465
516
 
466
517
  ### Composition rules
467
518
 
@@ -478,11 +529,11 @@ Six token families express status, urgency, certainty, and direction.
478
529
 
479
530
  Three levels of visual dividers create a consistent hierarchy across skill output.
480
531
 
481
- | Level | Pattern | Use |
482
- |-------|---------|-----|
483
- | Skill boundary | `─── glyph skillname · context ───` | Session opener, exit signal |
484
- | Step boundary | `── step N/M: verb` | Workflow progress between steps |
485
- | Container | `── label` | Mid-session blocks (scratchpad, etc.) |
532
+ | Level | Pattern | Use |
533
+ | -------------- | ----------------------------------- | ------------------------------------- |
534
+ | Skill boundary | `─── glyph skillname · context ───` | Session opener, exit signal |
535
+ | Step boundary | `── step N/M: verb` | Workflow progress between steps |
536
+ | Container | `── label` | Mid-session blocks (scratchpad, etc.) |
486
537
 
487
538
  Step and container dividers share the same visual weight (2-dash), differentiated by label content: step boundaries use `step N/M: verb`, containers use a descriptive label.
488
539
 
@@ -548,15 +599,15 @@ Rules:
548
599
 
549
600
  ### Token-to-artifact mapping
550
601
 
551
- | Artifact | Token families used |
552
- |----------|---------------------|
553
- | PLAN.md | Status (■/▣/□/▨) for task states |
554
- | TODO.md | Severity (⇶/⇉/→/⇢) in section headings, Status (□/■) via checkboxes |
555
- | DECISIONS.md | Confidence (━/─/┄) alongside confidence labels |
556
- | HEALTH.md | Trends (⮉/⮋) for trajectory, severity for findings |
557
- | PROGRESS.md | Status (■) for cycle completion markers |
558
- | VISION.md | Structural (▸, ·) for principles and direction |
559
- | DOCS.md | Structural (▸, ·) for index, status tokens for coverage |
602
+ | Artifact | Token families used |
603
+ | ------------ | ------------------------------------------------------------------- |
604
+ | PLAN.md | Status (■/▣/□/▨) for task states |
605
+ | TODO.md | Severity (⇶/⇉/→/⇢) in section headings, Status (□/■) via checkboxes |
606
+ | DECISIONS.md | Confidence (━/─/┄) alongside confidence labels |
607
+ | HEALTH.md | Trends (⮉/⮋) for trajectory, severity for findings |
608
+ | PROGRESS.md | Status (■) for cycle completion markers |
609
+ | VISION.md | Structural (▸, ·) for principles and direction |
610
+ | DOCS.md | Structural (▸, ·) for index, status tokens for coverage |
560
611
 
561
612
  ### Rules
562
613
 
@@ -574,25 +625,25 @@ Every realisera cycle operates in one of five phases. Phases map the suite's ski
574
625
 
575
626
  ### Phases
576
627
 
577
- | Phase | Skills | Purpose |
578
- |-------|--------|---------|
579
- | **envision** | visionera | Define or refine the project's north star |
580
- | **deliberate** | resonera | Reason through decisions before committing to a direction |
581
- | **plan** | planera | Structure work into tasks with dependencies and acceptance criteria |
582
- | **build** | realisera, optimera, dokumentera, visualisera | Implement, optimize, document, or design |
583
- | **audit** | inspektera | Evaluate structural health and alignment |
628
+ | Phase | Skills | Purpose |
629
+ | -------------- | --------------------------------------------- | ------------------------------------------------------------------- |
630
+ | **envision** | visionera | Define or refine the project's north star |
631
+ | **deliberate** | resonera | Reason through decisions before committing to a direction |
632
+ | **plan** | planera | Structure work into tasks with dependencies and acceptance criteria |
633
+ | **build** | realisera, optimera, dokumentera, visualisera | Implement, optimize, document, or design |
634
+ | **audit** | inspektera | Evaluate structural health and alignment |
584
635
 
585
636
  ### Transitions
586
637
 
587
638
  Phases have valid successors. A cycle's phase is determined by the primary skill performing work, not by the phase of the previous cycle (phases are not a strict pipeline).
588
639
 
589
- | From | Valid successors |
590
- |------|-----------------|
591
- | envision | deliberate, plan, build |
592
- | deliberate | plan, build, envision |
593
- | plan | build, deliberate |
594
- | build | build, audit, plan |
595
- | audit | build, plan, deliberate, envision |
640
+ | From | Valid successors |
641
+ | ---------- | --------------------------------- |
642
+ | envision | deliberate, plan, build |
643
+ | deliberate | plan, build, envision |
644
+ | plan | build, deliberate |
645
+ | build | build, audit, plan |
646
+ | audit | build, plan, deliberate, envision |
596
647
 
597
648
  **Terminal states**: audit and build are terminal in the sense that a project can remain in either phase indefinitely (continuous building, periodic auditing). envision, deliberate, and plan are transitional: they produce artifacts consumed by downstream phases.
598
649
 
@@ -622,20 +673,20 @@ Stale artifacts mislead routing decisions and cause skills to act on outdated co
622
673
 
623
674
  Each skill produces specific artifacts as part of its workflow. When a skill is dispatched (directly or via orkestrera), the artifacts listed here are the ones it is expected to have updated upon completion. This table is the authoritative lookup for staleness checks.
624
675
 
625
- | Skill | Expected artifact outputs |
626
- |-------|--------------------------|
627
- | visionera | .agentera/vision.yaml |
628
- | resonera | .agentera/decisions.yaml |
629
- | planera | .agentera/plan.yaml |
630
- | realisera | .agentera/progress.yaml, TODO.md, CHANGELOG.md |
631
- | optimera | .agentera/optimera/<name>/experiments.yaml, .agentera/optimera/<name>/objective.yaml (paths are per-objective; staleness check uses glob `.agentera/optimera/*/experiments.yaml` and `.agentera/optimera/*/objective.yaml`) |
632
- | inspektera | .agentera/health.yaml, TODO.md |
633
- | dokumentera | .agentera/docs.yaml |
634
- | visualisera | DESIGN.md |
635
- | profilera | (profile-path capability) <!-- platform: profile-path --> |
636
- | inspirera | (no owned artifact; findings are filed to TODO.md or fed into other skills) |
637
- | orkestrera | (orchestrator; updates .agentera/plan.yaml task statuses and delegates to other skills) |
638
- | hej | (router; reads artifacts but produces none) |
676
+ | Skill | Expected artifact outputs |
677
+ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
678
+ | visionera | .agentera/vision.yaml |
679
+ | resonera | .agentera/decisions.yaml |
680
+ | planera | .agentera/plan.yaml |
681
+ | realisera | .agentera/progress.yaml, TODO.md, CHANGELOG.md |
682
+ | optimera | .agentera/optimera/<name>/experiments.yaml, .agentera/optimera/<name>/objective.yaml (paths are per-objective; staleness check uses glob `.agentera/optimera/*/experiments.yaml` and `.agentera/optimera/*/objective.yaml`) |
683
+ | inspektera | .agentera/health.yaml, TODO.md |
684
+ | dokumentera | .agentera/docs.yaml |
685
+ | visualisera | DESIGN.md |
686
+ | profilera | (profile-path capability) <!-- platform: profile-path --> |
687
+ | inspirera | (no owned artifact; findings are filed to TODO.md or fed into other skills) |
688
+ | orkestrera | (orchestrator; updates .agentera/plan.yaml task statuses and delegates to other skills) |
689
+ | hej | (router; reads artifacts but produces none) |
639
690
 
640
691
  Skills that share an artifact (e.g., realisera and inspektera both write to TODO.md) are each expected to update it independently when dispatched. Staleness is checked per-skill, not per-artifact.
641
692
 
@@ -669,13 +720,13 @@ This gate is orthogonal to Section 19 Staleness Detection. Section 19 asks: did
669
720
 
670
721
  ### Evidence format
671
722
 
672
- Every cycle entry in PROGRESS.md carries a `verified` field alongside phase, what, commit, inspiration, discovered, next, and context fields. The field is mandatory: no cycle is considered closed without it. The field accepts exactly one of three shapes:
723
+ Every cycle entry in PROGRESS.md carries a `verified` field alongside phase, what, inspiration, discovered, next, and context fields. The field is mandatory: no cycle is considered closed without it. The field accepts exactly one of three shapes:
673
724
 
674
- | Shape | Content |
675
- |-------|---------|
676
- | Observed output | A short transcript (or summary) of the primary entrypoint running against real project state, with the observable result recorded verbatim. The transcript should be concrete enough that a reader can tell whether the behavior actually happened |
677
- | Allowlisted N/A tag | `N/A: <tag>` where `<tag>` is drawn from the enumerated allowlist below |
678
- | Free-form N/A rationale | A prose sentence of at least 8 words explaining specifically why the change has no observable behavior. Shorter rationales fail the gate |
725
+ | Shape | Content |
726
+ | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
727
+ | Observed output | A short transcript (or summary) of the primary entrypoint running against real project state, with the observable result recorded verbatim. The transcript should be concrete enough that a reader can tell whether the behavior actually happened |
728
+ | Allowlisted N/A tag | `N/A: <tag>` where `<tag>` is drawn from the enumerated allowlist below |
729
+ | Free-form N/A rationale | A prose sentence of at least 8 words explaining specifically why the change has no observable behavior. Shorter rationales fail the gate |
679
730
 
680
731
  Observed output is always preferred when the change is runnable. The N/A paths exist only for genuinely unrunnable work; they are not an escape hatch for "I didn't feel like running it."
681
732
 
@@ -683,13 +734,13 @@ Observed output is always preferred when the change is runnable. The N/A paths e
683
734
 
684
735
  Exactly five tags are recognized. Any other shorthand must fall through to the free-form rationale path.
685
736
 
686
- | Tag | Meaning |
687
- |-----|---------|
688
- | `docs-only` | The change touched only documentation files (README, spec, skill instructions, templates) with no code path affected |
737
+ | Tag | Meaning |
738
+ | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
739
+ | `docs-only` | The change touched only documentation files (README, spec, skill instructions, templates) with no code path affected |
689
740
  | `refactor-no-behavior-change` | The change restructured code but preserved observable behavior exactly; the existing test suite is the verification surface |
690
- | `chore-dep-bump` | The change updated a dependency version without modifying any project code that calls that dependency differently |
691
- | `chore-build-config` | The change modified build tooling, linter configuration, or packaging metadata without altering runtime behavior |
692
- | `test-only` | The change added or adjusted tests without modifying the code under test |
741
+ | `chore-dep-bump` | The change updated a dependency version without modifying any project code that calls that dependency differently |
742
+ | `chore-build-config` | The change modified build tooling, linter configuration, or packaging metadata without altering runtime behavior |
743
+ | `test-only` | The change added or adjusted tests without modifying the code under test |
693
744
 
694
745
  A cycle that bundles runnable work with an N/A-tagged change still requires observed output for the runnable portion. The tag covers only the non-runnable slice.
695
746
 
@@ -697,14 +748,14 @@ A cycle that bundles runnable work with an N/A-tagged change still requires obse
697
748
 
698
749
  "Primary entrypoint" is defined per project archetype, not asserted per cycle. When a cycle touches multiple subsystems, the primary entrypoint is the one most closely tied to the change under verification.
699
750
 
700
- | Archetype | Canonical entrypoint form |
701
- |-----------|---------------------------|
702
- | CLI tool | Invoke the binary with realistic arguments that exercise the changed path, capturing stdout/stderr and exit code |
703
- | Library / SDK | Run a smoke driver (a short script or REPL session) that exercises the public API surface touched by the change |
704
- | Web service | Send a request to a production-shaped endpoint (local server with production configuration or a staging instance) and record the response |
705
- | Skill repo | Dispatch the skill via the eval mechanism capability (Section 21) against a representative prompt and capture the observed skill output <!-- platform: eval-mechanism --> |
706
- | Design system | Render a representative component against the real design tokens and visually inspect (screenshot or DOM snapshot) against the expected output |
707
- | Data pipeline | Run the pipeline against a real input sample (not synthetic fixtures) and record the observed output or side effects |
751
+ | Archetype | Canonical entrypoint form |
752
+ | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
753
+ | CLI tool | Invoke the binary with realistic arguments that exercise the changed path, capturing stdout/stderr and exit code |
754
+ | Library / SDK | Run a smoke driver (a short script or REPL session) that exercises the public API surface touched by the change |
755
+ | Web service | Send a request to a production-shaped endpoint (local server with production configuration or a staging instance) and record the response |
756
+ | Skill repo | Dispatch the skill via the eval mechanism capability (Section 21) against a representative prompt and capture the observed skill output <!-- platform: eval-mechanism --> |
757
+ | Design system | Render a representative component against the real design tokens and visually inspect (screenshot or DOM snapshot) against the expected output |
758
+ | Data pipeline | Run the pipeline against a real input sample (not synthetic fixtures) and record the observed output or side effects |
708
759
 
709
760
  Projects with an archetype not listed here document their canonical entrypoint form in `.agentera/docs.yaml` under a `verification_entrypoint` key. The taxonomy is extensible; the table above is the minimum coverage.
710
761
 
@@ -720,9 +771,9 @@ Projects without a `verification_budget` key have no time cap. The default is: t
720
771
 
721
772
  The gate is enforced independently by two skills; each holds a different phase and a different slice of the enforcement contract.
722
773
 
723
- | Skill | Role | Phase | What it enforces |
724
- |-------|------|-------|------------------|
725
- | realisera | Primary enforcer | Cycle close | Runs the primary entrypoint against real project state and writes the observed output into the cycle's `verified` field. Blocks cycle completion if the field cannot be populated with observed output, an allowlisted tag, or a qualifying free-form rationale |
774
+ | Skill | Role | Phase | What it enforces |
775
+ | ---------- | ------------------ | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
776
+ | realisera | Primary enforcer | Cycle close | Runs the primary entrypoint against real project state and writes the observed output into the cycle's `verified` field. Blocks cycle completion if the field cannot be populated with observed output, an allowlisted tag, or a qualifying free-form rationale |
726
777
  | orkestrera | Secondary enforcer | Task evaluation | Reads the latest PROGRESS.md cycle entry for the delegated task, confirms the `verified` field is present and non-empty (artifact read only; no source code read), and extends its inspektera delegation prompt to include the Section 20 evidence-format snippet so inspektera audits whether the recorded content corresponds to the task's acceptance criteria |
727
778
 
728
779
  Realisera holds the primary enforcement contract because it is the skill that actually produces cycle entries. Orkestrera holds a lighter presence-and-quality check because it reads artifacts but never touches code; the full content audit is delegated to inspektera via the delegation prompt.
@@ -731,9 +782,16 @@ Realisera holds the primary enforcement contract because it is the skill that ac
731
782
 
732
783
  ## 22. Session Corpus Contract
733
784
 
734
- Profilera mines decision patterns from host session data to produce PROFILE.md. The extraction currently depends on Claude Code's internal storage layout (JSONL files, memory directories, project-scoped configs). This section defines the normalized data model that any host adapter can produce, decoupling profilera's behavioral contract from a specific runtime's file layout.
785
+ Profilera mines decision patterns from host session data to produce PROFILE.md.
786
+ Claude-specific entries in this legacy section describe the retired,
787
+ consent-gated historical importer only. They are inactive, excluded from default
788
+ analytics, and do not define runtime support. This section defines the normalized
789
+ data model that any active host adapter or explicit historical importer can produce.
735
790
 
736
- The contract is a data model, not a path model. It specifies what profilera needs to observe, not where the host stores it. Claude Code continues to derive this corpus from its native paths; other runtimes produce the same normalized records from their own storage.
791
+ The contract is a data model, not a path model. It specifies what profilera needs
792
+ to observe, not where the host stores it. Active runtimes produce normalized
793
+ records from their own storage; the retired Claude parser runs only after explicit
794
+ historical-import consent.
737
795
 
738
796
  ### Record types
739
797
 
@@ -743,17 +801,17 @@ Four canonical record families capture the decision-relevant signals profilera c
743
801
 
744
802
  Every record includes these fields regardless of type:
745
803
 
746
- | Field | Required | Type | Purpose |
747
- |-------|----------|------|---------|
748
- | `source_id` | Yes | string | Stable identifier for deduplication across extractions |
749
- | `timestamp` | Yes | string (ISO 8601) | When the record was created or observed |
750
- | `project_id` | Yes | string | Project this record belongs to; `"global"` for non-project-scoped data |
751
- | `project_path` | No | string | Filesystem path to the project, when available |
752
- | `session_id` | No | string | Host session identifier, when applicable |
753
- | `source_kind` | Yes | string | Which record family this record belongs to (one of the four portable names below, or a runtime extension name) |
754
- | `runtime` | Yes | string | Host runtime that produced this record (e.g., `"claude-code"`, `"opencode"`) |
755
- | `adapter_version` | Yes | string | Version of the adapter that extracted this record |
756
- | `data` | Yes | object | Type-specific payload for this record |
804
+ | Field | Required | Type | Purpose |
805
+ | ----------------- | -------- | ----------------- | -------------------------------------------------------------------------------------------------------------- |
806
+ | `source_id` | Yes | string | Stable identifier for deduplication across extractions |
807
+ | `timestamp` | Yes | string (ISO 8601) | When the record was created or observed |
808
+ | `project_id` | Yes | string | Project this record belongs to; `"global"` for non-project-scoped data |
809
+ | `project_path` | No | string | Filesystem path to the project, when available |
810
+ | `session_id` | No | string | Host session identifier, when applicable |
811
+ | `source_kind` | Yes | string | Which record family this record belongs to (one of the four portable names below, or a runtime extension name) |
812
+ | `runtime` | Yes | string | Host runtime that produced this record (e.g., `"claude-code"`, `"opencode"`) |
813
+ | `adapter_version` | Yes | string | Version of the adapter that extracted this record |
814
+ | `data` | Yes | object | Type-specific payload for this record |
757
815
 
758
816
  The `source_id` field enables idempotent re-extraction: the same logical record produces the same `source_id` regardless of when extraction runs. The `runtime` and `adapter_version` fields enable profilera to handle schema variations across runtimes.
759
817
 
@@ -763,13 +821,13 @@ All fields listed in the record family tables below live inside `data`, not besi
763
821
 
764
822
  Global or project-scoped instruction files the host exposes to agents. These encode recurring preferences, constraints, and standards.
765
823
 
766
- | Field | Required | Type | Purpose |
767
- |-------|----------|------|---------|
768
- | `doc_type` | Yes | string | Kind of instruction document (e.g., `"claude_md"`, `"agents_md"`) |
769
- | `name` | Yes | string | Canonical name for this document |
770
- | `description` | No | string | Human-readable summary |
771
- | `content` | Yes | string | Full text content |
772
- | `scope` | Yes | string | `"global"` or `"project"` |
824
+ | Field | Required | Type | Purpose |
825
+ | ------------- | -------- | ------ | ----------------------------------------------------------------- |
826
+ | `doc_type` | Yes | string | Kind of instruction document (e.g., `"claude_md"`, `"agents_md"`) |
827
+ | `name` | Yes | string | Canonical name for this document |
828
+ | `description` | No | string | Human-readable summary |
829
+ | `content` | Yes | string | Full text content |
830
+ | `scope` | Yes | string | `"global"` or `"project"` |
773
831
 
774
832
  Claude Code source: `~/.claude/CLAUDE.md`, `~/git/*/CLAUDE.md`, `~/git/*/AGENTS.md` <!-- platform: artifact-resolution -->
775
833
 
@@ -777,10 +835,10 @@ Claude Code source: `~/.claude/CLAUDE.md`, `~/git/*/CLAUDE.md`, `~/git/*/AGENTS.
777
835
 
778
836
  Decision-rich prompts from the host's command history. These capture what the user asked, when, and in what project context.
779
837
 
780
- | Field | Required | Type | Purpose |
781
- |-------|----------|------|---------|
782
- | `prompt` | Yes | string | The user's prompt text |
783
- | `signal_type` | Yes | string | Classification: `"decision"`, `"correction"`, or `"question"` |
838
+ | Field | Required | Type | Purpose |
839
+ | ------------- | -------- | ------ | ------------------------------------------------------------- |
840
+ | `prompt` | Yes | string | The user's prompt text |
841
+ | `signal_type` | Yes | string | Classification: `"decision"`, `"correction"`, or `"question"` |
784
842
 
785
843
  Claude Code source: `~/.claude/history.jsonl`, filtered by decision-pattern regex <!-- platform: artifact-resolution -->
786
844
 
@@ -788,12 +846,12 @@ Claude Code source: `~/.claude/history.jsonl`, filtered by decision-pattern rege
788
846
 
789
847
  Normalized user or assistant turns from host conversation sessions. Profilera uses paired user-assistant exchanges to identify how decisions were made and corrected in context.
790
848
 
791
- | Field | Required | Type | Purpose |
792
- |-------|----------|------|---------|
793
- | `actor` | Yes | string | `"user"` or `"assistant"` |
794
- | `content` | Yes | string | Turn text content |
795
- | `preceding_context` | No | string | Prior assistant proposal (for user turns that respond to a proposal) |
796
- | `signal_type` | No | string | Classification of the user's response: `"decision"`, `"correction"`, or `"question"` |
849
+ | Field | Required | Type | Purpose |
850
+ | ------------------- | -------- | ------ | ------------------------------------------------------------------------------------ |
851
+ | `actor` | Yes | string | `"user"` or `"assistant"` |
852
+ | `content` | Yes | string | Turn text content |
853
+ | `preceding_context` | No | string | Prior assistant proposal (for user turns that respond to a proposal) |
854
+ | `signal_type` | No | string | Classification of the user's response: `"decision"`, `"correction"`, or `"question"` |
797
855
 
798
856
  Claude Code source: `~/.claude/projects/**/*.jsonl`, filtered for decision-rich exchanges <!-- platform: artifact-resolution -->
799
857
 
@@ -801,11 +859,11 @@ Claude Code source: `~/.claude/projects/**/*.jsonl`, filtered for decision-rich
801
859
 
802
860
  Recurring configuration or toolchain patterns associated with a project. These are objective evidence of technology choices, linting standards, and build conventions.
803
861
 
804
- | Field | Required | Type | Purpose |
805
- |-------|----------|------|---------|
806
- | `config_type` | Yes | string | Kind of configuration file (e.g., `"gomod"`, `"golangci"`, `"package_json"`) |
807
- | `file_path` | No | string | Path to the config file within the project |
808
- | `signals` | Yes | array of string | Extracted key-value signals (dependencies, linters, targets, etc.) |
862
+ | Field | Required | Type | Purpose |
863
+ | ------------- | -------- | --------------- | ---------------------------------------------------------------------------- |
864
+ | `config_type` | Yes | string | Kind of configuration file (e.g., `"gomod"`, `"golangci"`, `"package_json"`) |
865
+ | `file_path` | No | string | Path to the config file within the project |
866
+ | `signals` | Yes | array of string | Extracted key-value signals (dependencies, linters, targets, etc.) |
809
867
 
810
868
  Claude Code source: `~/git/*/` config files scanned per known config type list <!-- platform: artifact-resolution -->
811
869
 
@@ -813,24 +871,24 @@ Claude Code source: `~/git/*/` config files scanned per known config type list <
813
871
 
814
872
  The four portable record types group into four source families for profilera's consumption. The "Crystallized decisions" family is powered by instruction_document alone (durable, explicitly authored decisions). Runtime extensions may contribute additional record types to this family.
815
873
 
816
- | Family | Record types | Signal character |
817
- |--------|-------------|-----------------|
818
- | Crystallized decisions | instruction_document | Highest signal: explicitly authored preferences and standards |
819
- | Decision history | history_prompt | Broad coverage: what the user asked across all sessions |
820
- | Conversation exchanges | conversation_turn | Most nuanced: how decisions were made and corrected in context |
821
- | Config patterns | project_config_signal | Most objective: what technology and standards actually shipped |
874
+ | Family | Record types | Signal character |
875
+ | ---------------------- | --------------------- | -------------------------------------------------------------- |
876
+ | Crystallized decisions | instruction_document | Highest signal: explicitly authored preferences and standards |
877
+ | Decision history | history_prompt | Broad coverage: what the user asked across all sessions |
878
+ | Conversation exchanges | conversation_turn | Most nuanced: how decisions were made and corrected in context |
879
+ | Config patterns | project_config_signal | Most objective: what technology and standards actually shipped |
822
880
 
823
881
  ### Degradation
824
882
 
825
883
  Profilera operates in two modes: full (all four source families) and partial (one or more families missing). The degradation rules specify what profilera can produce given incomplete corpus availability.
826
884
 
827
- | Available families | Profilera mode | Profile quality |
828
- |--------------------|---------------|-----------------|
829
- | All four | Full | Complete profile: all 12 categories, cross-validated confidence scores |
830
- | Crystallized only | Partial | Instruction-heavy profile: strong in architecture/tooling standards, weak in process/workflow and meta-decision patterns |
831
- | Crystallized + one other | Partial | Substantially complete: most categories populated, confidence scores may be lower for categories that depend on the missing family |
832
- | History or conversations only (no crystallized) | Partial | Behavior-only profile: can infer patterns from actions but lacks explicit preferences. Confidence scores capped at 60 |
833
- | Config patterns only | Minimal | Technology fingerprint only: tooling and dependency patterns, no behavioral decisions. Profilera should warn the user this is not a full profile |
885
+ | Available families | Profilera mode | Profile quality |
886
+ | ----------------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
887
+ | All four | Full | Complete profile: all 12 categories, cross-validated confidence scores |
888
+ | Crystallized only | Partial | Instruction-heavy profile: strong in architecture/tooling standards, weak in process/workflow and meta-decision patterns |
889
+ | Crystallized + one other | Partial | Substantially complete: most categories populated, confidence scores may be lower for categories that depend on the missing family |
890
+ | History or conversations only (no crystallized) | Partial | Behavior-only profile: can infer patterns from actions but lacks explicit preferences. Confidence scores capped at 60 |
891
+ | Config patterns only | Minimal | Technology fingerprint only: tooling and dependency patterns, no behavioral decisions. Profilera should warn the user this is not a full profile |
834
892
 
835
893
  **Degradation surface rule**: when a source family is missing, profilera MUST note which families were absent in the profile's source metadata comment. This lets consuming skills weight profile entries appropriately: a profile built from config patterns only should not be treated as authoritative for workflow decisions.
836
894
 
@@ -844,12 +902,12 @@ Adapters MAY define additional record types beyond the four portable ones to cap
844
902
 
845
903
  Claude Code provides a built-in memory system that persists user and project memory as Markdown files with optional frontmatter at `~/.claude/projects/*/memory/*.md`. The Claude Code adapter extracts these as instruction_document records with `doc_type: "claude_memory"` rather than as a separate record type, keeping the portable corpus contract clean.
846
904
 
847
- | Field | Required | Type | Purpose |
848
- |-------|----------|------|---------|
849
- | `name` | Yes | string | Entry name or title |
850
- | `description` | No | string | Summary from frontmatter |
851
- | `memory_type` | No | string | Host-specific categorization |
852
- | `content` | Yes | string | Full text content (body after frontmatter) |
905
+ | Field | Required | Type | Purpose |
906
+ | ------------- | -------- | ------ | ------------------------------------------ |
907
+ | `name` | Yes | string | Entry name or title |
908
+ | `description` | No | string | Summary from frontmatter |
909
+ | `memory_type` | No | string | Host-specific categorization |
910
+ | `content` | Yes | string | Full text content (body after frontmatter) |
853
911
 
854
912
  When the Claude Code adapter encounters memory files, it emits them as instruction_document records with these additional conventions:
855
913
 
@@ -876,22 +934,22 @@ Both fields are required. A valid corpus file always contains exactly these two
876
934
 
877
935
  The metadata object describes the extraction run, not the records themselves. It provides enough context for consumers to understand what runtimes contributed, how many records were produced, and whether any errors occurred.
878
936
 
879
- | Field | Required | Type | Purpose |
880
- |-------|----------|------|---------|
881
- | `extracted_at` | Yes | string (ISO 8601) | When the extraction ran |
882
- | `runtimes` | Yes | array of string | Runtime identifiers that were probed and found available (e.g., `["claude-code"]`) |
883
- | `adapter_version` | Yes | string | Version of the corpus builder that produced this file |
884
- | `families` | Yes | object | Per-source-family extraction summary (see below) |
885
- | `total_records` | Yes | integer | Total number of records in the `records` array |
886
- | `errors` | No | array of string | Human-readable error messages from extraction failures; omitted when empty |
937
+ | Field | Required | Type | Purpose |
938
+ | ----------------- | -------- | ----------------- | ---------------------------------------------------------------------------------- |
939
+ | `extracted_at` | Yes | string (ISO 8601) | When the extraction ran |
940
+ | `runtimes` | Yes | array of string | Runtime identifiers that were probed and found available (e.g., `["claude-code"]`) |
941
+ | `adapter_version` | Yes | string | Version of the corpus builder that produced this file |
942
+ | `families` | Yes | object | Per-source-family extraction summary (see below) |
943
+ | `total_records` | Yes | integer | Total number of records in the `records` array |
944
+ | `errors` | No | array of string | Human-readable error messages from extraction failures; omitted when empty |
887
945
 
888
946
  The `families` object has one key per source family name (matching the four portable family names from the Source families table: `instruction_document`, `history_prompt`, `conversation_turn`, `project_config_signal`). Each value is an object:
889
947
 
890
- | Field | Required | Type | Purpose |
891
- |-------|----------|------|---------|
892
- | `count` | Yes | integer | Number of records extracted for this family |
893
- | `status` | Yes | string | `"ok"`, `"partial"`, or `"missing"` |
894
- | `error` | No | string | Explanation when status is `"partial"` or `"missing"`; omitted when `"ok"` |
948
+ | Field | Required | Type | Purpose |
949
+ | -------- | -------- | ------- | -------------------------------------------------------------------------- |
950
+ | `count` | Yes | integer | Number of records extracted for this family |
951
+ | `status` | Yes | string | `"ok"`, `"partial"`, or `"missing"` |
952
+ | `error` | No | string | Explanation when status is `"partial"` or `"missing"`; omitted when `"ok"` |
895
953
 
896
954
  A family with status `"ok"` extracted all records successfully. `"partial"` means some records were extracted but errors occurred during extraction. `"missing"` means the family could not be extracted at all (e.g., the runtime data directory was not found).
897
955
 
@@ -910,10 +968,10 @@ Consumers filter and group records by `source_kind` to access specific families.
910
968
  "runtimes": ["claude-code"],
911
969
  "adapter_version": "2.7.0",
912
970
  "families": {
913
- "instruction_document": {"count": 12, "status": "ok"},
914
- "history_prompt": {"count": 87, "status": "ok"},
915
- "conversation_turn": {"count": 234, "status": "ok"},
916
- "project_config_signal": {"count": 5, "status": "ok"}
971
+ "instruction_document": { "count": 12, "status": "ok" },
972
+ "history_prompt": { "count": 87, "status": "ok" },
973
+ "conversation_turn": { "count": 234, "status": "ok" },
974
+ "project_config_signal": { "count": 5, "status": "ok" }
917
975
  },
918
976
  "total_records": 338,
919
977
  "errors": []
@@ -945,8 +1003,8 @@ Before extracting records, the corpus builder probes for available runtimes by c
945
1003
 
946
1004
  Each runtime registers a probe function that checks for the existence of its data directory. The probe returns a boolean indicating whether that runtime's data is available on the current system.
947
1005
 
948
- | Runtime | Probe path | What it checks |
949
- |---------|-----------|----------------|
1006
+ | Runtime | Probe path | What it checks |
1007
+ | ----------- | ------------ | ---------------------------------------------------------------------------------------------- |
950
1008
  | Claude Code | `~/.claude/` | Directory exists and contains session data (e.g., `projects/` subdirectory or `history.jsonl`) |
951
1009
 
952
1010
  Future runtimes add their own probe entries. The corpus builder iterates all registered probes, collects the list of available runtimes, and runs their extractors. Runtimes that are not detected are skipped without error.
@@ -979,10 +1037,10 @@ This gate is the entry-side complement to Section 20 (Behavioral Verification Ga
979
1037
 
980
1038
  The gate applies to any skill that spawns a subagent with `isolation: "worktree"`. Currently two skills do this:
981
1039
 
982
- | Skill | Spawn point | What it writes before spawn |
983
- |-------|----------------|-------------------------------|
1040
+ | Skill | Spawn point | What it writes before spawn |
1041
+ | --------- | ----------------------------- | ------------------------------------------------------------------------------------- |
984
1042
  | realisera | Step 5 (implementation spawn) | PLAN.md status updates, PROGRESS.md cycle start, context files from orient/plan steps |
985
- | optimera | Experiment spawn step | EXPERIMENTS.md updates, OBJECTIVE.md refinements, harness configuration changes |
1043
+ | optimera | Experiment spawn step | EXPERIMENTS.md updates, OBJECTIVE.md refinements, harness configuration changes |
986
1044
 
987
1045
  orkestrera delegates skills without worktree isolation (it runs realisera or other skills as background subagents in the same working directory). orkestrera is covered transitively: when realisera creates a worktree at its Step 5, the gate commits everything in the working tree, including any uncommitted changes orkestrera wrote before spawning realisera.
988
1046
 
@@ -1029,10 +1087,10 @@ This rule applies to all commits produced by any skill: checkpoint commits, real
1029
1087
 
1030
1088
  The two gates form a coherent pair bracketing the worktree lifecycle:
1031
1089
 
1032
- | Gate | Section | Boundary | Question it answers |
1033
- |------|---------|----------|---------------------|
1034
- | Pre-spawn Git Commit | 23 | Entry: before worktree creation | Does the subagent start from current state? |
1035
- | Behavioral Verification Gate | 20 | Exit: after implementation | Did the work actually run against real state? |
1090
+ | Gate | Section | Boundary | Question it answers |
1091
+ | ---------------------------- | ------- | ------------------------------- | --------------------------------------------- |
1092
+ | Pre-spawn Git Commit | 23 | Entry: before worktree creation | Does the subagent start from current state? |
1093
+ | Behavioral Verification Gate | 20 | Exit: after implementation | Did the work actually run against real state? |
1036
1094
 
1037
1095
  Both gates are mandatory for worktree-spawned cycles. A cycle that passes Section 20 verification but skipped the Section 23 gate may have verified behavior built on stale context. A cycle that passes the Section 23 gate but skips Section 20 verification has current context but unverified output.
1038
1096