agentera 3.0.0-dev.6 → 3.0.0-dev.7

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 (439) hide show
  1. package/bundle/extract-corpus-parity.json +23 -0
  2. package/bundle/references/adapters/cursor.md +10 -9
  3. package/bundle/references/adapters/opencode.md +26 -26
  4. package/bundle/references/adapters/runtime-adapter-characterization.md +1 -1
  5. package/bundle/references/adapters/runtime-adapter-registry.yaml +16 -10
  6. package/bundle/references/adapters/runtime-feature-parity.md +2 -2
  7. package/bundle/references/analysis/benchmark.md +1 -1
  8. package/bundle/references/analysis/startup-measurement-contract.yaml +7 -7
  9. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +4 -3
  10. package/bundle/references/cli/agent-ready-state-contract.yaml +6 -6
  11. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +4 -4
  12. package/bundle/references/cli/capability-tool-classification.yaml +12 -12
  13. package/bundle/references/cli/coexistence-probe.yaml +4 -0
  14. package/bundle/references/cli/parity-expected-actual-template.md +30 -0
  15. package/bundle/references/cli/routing-execution-vocabulary.yaml +6 -6
  16. package/bundle/references/cli/routing-model.md +96 -0
  17. package/bundle/references/cli/trigger-schema-enrichment.md +136 -0
  18. package/bundle/references/cli/update-channels.yaml +16 -1
  19. package/bundle/references/cli/upgrade-repair-wording.md +17 -3
  20. package/bundle/references/cli/vocabulary-index.yaml +17 -12
  21. package/bundle/references/cli/vocabulary.md +314 -309
  22. package/bundle/registry.json +13 -13
  23. package/bundle/skills/agentera/.claude-plugin/plugin.json +13 -13
  24. package/bundle/skills/agentera/SKILL.md +99 -415
  25. package/bundle/skills/agentera/agents/audit.toml +6 -0
  26. package/bundle/skills/agentera/agents/build.toml +6 -0
  27. package/bundle/skills/agentera/agents/design.toml +6 -0
  28. package/bundle/skills/agentera/agents/{planera.toml → discuss.toml} +3 -3
  29. package/bundle/skills/agentera/agents/{resonera.toml → document.toml} +3 -3
  30. package/bundle/skills/agentera/agents/{optimera.toml → optimize.toml} +2 -2
  31. package/bundle/skills/agentera/agents/orchestrate.toml +6 -0
  32. package/bundle/skills/agentera/agents/plan.toml +6 -0
  33. package/bundle/skills/agentera/agents/profile.toml +6 -0
  34. package/bundle/skills/agentera/agents/research.toml +6 -0
  35. package/bundle/skills/agentera/agents/status.toml +6 -0
  36. package/bundle/skills/agentera/agents/vision.toml +6 -0
  37. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/artifacts.yaml +10 -10
  38. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/triggers.yaml +15 -6
  39. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/validation.yaml +9 -9
  40. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/artifacts.yaml +11 -11
  41. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/triggers.yaml +13 -3
  42. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/validation.yaml +7 -7
  43. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/artifacts.yaml +6 -6
  44. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/triggers.yaml +15 -3
  45. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/validation.yaml +5 -5
  46. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/artifacts.yaml +6 -6
  47. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/triggers.yaml +11 -3
  48. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/validation.yaml +4 -4
  49. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/artifacts.yaml +10 -10
  50. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/triggers.yaml +14 -3
  51. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/validation.yaml +8 -8
  52. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/artifacts.yaml +8 -8
  53. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/triggers.yaml +11 -3
  54. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/validation.yaml +7 -7
  55. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/artifacts.yaml +10 -10
  56. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/triggers.yaml +16 -3
  57. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/validation.yaml +27 -27
  58. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/artifacts.yaml +8 -8
  59. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/exit.yaml +2 -2
  60. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/triggers.yaml +15 -3
  61. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/validation.yaml +3 -3
  62. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/artifacts.yaml +2 -2
  63. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/exit.yaml +2 -1
  64. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/triggers.yaml +7 -3
  65. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/validation.yaml +2 -2
  66. package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/artifacts.yaml +5 -5
  67. package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/triggers.yaml +9 -3
  68. package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/validation.yaml +2 -2
  69. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/artifacts.yaml +14 -11
  70. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/triggers.yaml +10 -4
  71. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/validation.yaml +5 -5
  72. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/artifacts.yaml +8 -8
  73. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/triggers.yaml +17 -3
  74. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/validation.yaml +7 -7
  75. package/bundle/skills/agentera/capability_schema_contract.yaml +178 -34
  76. package/bundle/skills/agentera/protocol.yaml +29 -29
  77. package/bundle/skills/agentera/references/contract.md +328 -319
  78. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +4 -4
  79. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +9 -9
  80. package/bundle/skills/agentera/schemas/artifacts/design.yaml +4 -4
  81. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +8 -7
  82. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +5 -5
  83. package/bundle/skills/agentera/schemas/artifacts/health.yaml +5 -5
  84. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +4 -4
  85. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +5 -5
  86. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +5 -5
  87. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +40 -35
  88. package/bundle/skills/agentera/schemas/artifacts/vision.yaml +3 -3
  89. package/dist/analytics/extractCorpus/cli.js +49 -1
  90. package/dist/analytics/extractCorpus/cli.js.map +1 -1
  91. package/dist/analytics/extractCorpus/copilotSessions.js +47 -5
  92. package/dist/analytics/extractCorpus/copilotSessions.js.map +1 -1
  93. package/dist/analytics/extractCorpus/core.js +19 -12
  94. package/dist/analytics/extractCorpus/core.js.map +1 -1
  95. package/dist/analytics/extractCorpus/corpus.js +26 -13
  96. package/dist/analytics/extractCorpus/corpus.js.map +1 -1
  97. package/dist/analytics/extractCorpus/coverageAudit.js +261 -0
  98. package/dist/analytics/extractCorpus/coverageAudit.js.map +1 -0
  99. package/dist/analytics/extractCorpus/cursorSessions.js +6 -3
  100. package/dist/analytics/extractCorpus/cursorSessions.js.map +1 -1
  101. package/dist/analytics/extractCorpus/extractCorpusParity.js +105 -0
  102. package/dist/analytics/extractCorpus/extractCorpusParity.js.map +1 -0
  103. package/dist/analytics/extractCorpus/filesystemSources.js.map +1 -1
  104. package/dist/analytics/extractCorpus/index.js +3 -0
  105. package/dist/analytics/extractCorpus/index.js.map +1 -1
  106. package/dist/analytics/extractCorpus/jsonlSessions.js.map +1 -1
  107. package/dist/analytics/extractCorpus/sqliteCaps.js +44 -0
  108. package/dist/analytics/extractCorpus/sqliteCaps.js.map +1 -0
  109. package/dist/analytics/extractCorpus/sqliteSessions.js +98 -5
  110. package/dist/analytics/extractCorpus/sqliteSessions.js.map +1 -1
  111. package/dist/analytics/usageStats.js +19 -19
  112. package/dist/analytics/usageStats.js.map +1 -1
  113. package/dist/capabilities/audit/instructions.js +6 -0
  114. package/dist/capabilities/audit/instructions.js.map +1 -0
  115. package/dist/capabilities/build/instructions.js +6 -0
  116. package/dist/capabilities/build/instructions.js.map +1 -0
  117. package/dist/capabilities/design/instructions.js +5 -0
  118. package/dist/capabilities/design/instructions.js.map +1 -0
  119. package/dist/capabilities/discuss/instructions.js +6 -0
  120. package/dist/capabilities/discuss/instructions.js.map +1 -0
  121. package/dist/capabilities/document/instructions.js +6 -0
  122. package/dist/capabilities/document/instructions.js.map +1 -0
  123. package/dist/capabilities/index.js +24 -24
  124. package/dist/capabilities/index.js.map +1 -1
  125. package/dist/capabilities/inspirera/instructions.js +1 -1
  126. package/dist/capabilities/inspirera/instructions.js.map +1 -1
  127. package/dist/capabilities/optimize/instructions.js +6 -0
  128. package/dist/capabilities/optimize/instructions.js.map +1 -0
  129. package/dist/capabilities/orchestrate/instructions.js +6 -0
  130. package/dist/capabilities/orchestrate/instructions.js.map +1 -0
  131. package/dist/capabilities/plan/instructions.js +6 -0
  132. package/dist/capabilities/plan/instructions.js.map +1 -0
  133. package/dist/capabilities/planera/instructions.js +1 -1
  134. package/dist/capabilities/planera/instructions.js.map +1 -1
  135. package/dist/capabilities/profile/instructions.js +6 -0
  136. package/dist/capabilities/profile/instructions.js.map +1 -0
  137. package/dist/capabilities/profilera/instructions.js +1 -1
  138. package/dist/capabilities/profilera/instructions.js.map +1 -1
  139. package/dist/capabilities/realisera/instructions.js +1 -1
  140. package/dist/capabilities/realisera/instructions.js.map +1 -1
  141. package/dist/capabilities/research/instructions.js +6 -0
  142. package/dist/capabilities/research/instructions.js.map +1 -0
  143. package/dist/capabilities/resonera/instructions.js +1 -1
  144. package/dist/capabilities/resonera/instructions.js.map +1 -1
  145. package/dist/capabilities/status/instructions.js +6 -0
  146. package/dist/capabilities/status/instructions.js.map +1 -0
  147. package/dist/capabilities/vision/instructions.js +6 -0
  148. package/dist/capabilities/vision/instructions.js.map +1 -0
  149. package/dist/capabilities/visionera/instructions.js +1 -1
  150. package/dist/capabilities/visionera/instructions.js.map +1 -1
  151. package/dist/capabilities/visualisera/instructions.js +3 -4
  152. package/dist/capabilities/visualisera/instructions.js.map +1 -1
  153. package/dist/cli/appContext.js +16 -17
  154. package/dist/cli/appContext.js.map +1 -1
  155. package/dist/cli/capabilityContext/benchmark.js +23 -16
  156. package/dist/cli/capabilityContext/benchmark.js.map +1 -1
  157. package/dist/cli/capabilityContext/bespoke.js +20 -9
  158. package/dist/cli/capabilityContext/bespoke.js.map +1 -1
  159. package/dist/cli/capabilityContext/build.js +177 -0
  160. package/dist/cli/capabilityContext/build.js.map +1 -0
  161. package/dist/cli/capabilityContext/closeout.js +11 -11
  162. package/dist/cli/capabilityContext/closeout.js.map +1 -1
  163. package/dist/cli/capabilityContext/contract.js +24 -22
  164. package/dist/cli/capabilityContext/contract.js.map +1 -1
  165. package/dist/cli/capabilityContext/evidence.js +35 -25
  166. package/dist/cli/capabilityContext/evidence.js.map +1 -1
  167. package/dist/cli/capabilityContext/index.js +1 -1
  168. package/dist/cli/capabilityContext/index.js.map +1 -1
  169. package/dist/cli/capabilityContext/orchestration.js +8 -8
  170. package/dist/cli/capabilityContext/orchestration.js.map +1 -1
  171. package/dist/cli/capabilityContext/planState.js +4 -4
  172. package/dist/cli/capabilityContext/planState.js.map +1 -1
  173. package/dist/cli/capabilityContext/progress.js +9 -2
  174. package/dist/cli/capabilityContext/progress.js.map +1 -1
  175. package/dist/cli/capabilityContext/realisera.js +21 -21
  176. package/dist/cli/capabilityContext/realisera.js.map +1 -1
  177. package/dist/cli/capabilityContext/shared.js +1 -1
  178. package/dist/cli/capabilityContext/shared.js.map +1 -1
  179. package/dist/cli/capabilityContext/slim.js +4 -2
  180. package/dist/cli/capabilityContext/slim.js.map +1 -1
  181. package/dist/cli/capabilityContext/startup.js +23 -18
  182. package/dist/cli/capabilityContext/startup.js.map +1 -1
  183. package/dist/cli/capabilityContext/types.js +20 -23
  184. package/dist/cli/capabilityContext/types.js.map +1 -1
  185. package/dist/cli/capabilityContext.js +1 -1
  186. package/dist/cli/capabilityContext.js.map +1 -1
  187. package/dist/cli/commands/appHome.js +23 -0
  188. package/dist/cli/commands/appHome.js.map +1 -0
  189. package/dist/cli/commands/capability.js +2 -2
  190. package/dist/cli/commands/capability.js.map +1 -1
  191. package/dist/cli/commands/compact.js.map +1 -1
  192. package/dist/cli/commands/doctor.js +9 -107
  193. package/dist/cli/commands/doctor.js.map +1 -1
  194. package/dist/cli/commands/prime/bundleStatus.js +140 -0
  195. package/dist/cli/commands/prime/bundleStatus.js.map +1 -0
  196. package/dist/cli/commands/prime/collectOrientationState.js +156 -0
  197. package/dist/cli/commands/prime/collectOrientationState.js.map +1 -0
  198. package/dist/cli/commands/prime/orientationOutput.js +210 -0
  199. package/dist/cli/commands/prime/orientationOutput.js.map +1 -0
  200. package/dist/cli/commands/prime/routeOutput.js +50 -0
  201. package/dist/cli/commands/prime/routeOutput.js.map +1 -0
  202. package/dist/cli/commands/prime/types.js +2 -0
  203. package/dist/cli/commands/prime/types.js.map +1 -0
  204. package/dist/cli/commands/prime/v1Migration.js +39 -0
  205. package/dist/cli/commands/prime/v1Migration.js.map +1 -0
  206. package/dist/cli/commands/prime.js +11 -554
  207. package/dist/cli/commands/prime.js.map +1 -1
  208. package/dist/cli/commands/query.js +4 -1
  209. package/dist/cli/commands/query.js.map +1 -1
  210. package/dist/cli/commands/report.js +17 -9
  211. package/dist/cli/commands/report.js.map +1 -1
  212. package/dist/cli/commands/schema.js +23 -18
  213. package/dist/cli/commands/schema.js.map +1 -1
  214. package/dist/cli/commands/state/decisions.js +11 -5
  215. package/dist/cli/commands/state/decisions.js.map +1 -1
  216. package/dist/cli/commands/state/docs.js +8 -4
  217. package/dist/cli/commands/state/docs.js.map +1 -1
  218. package/dist/cli/commands/state/experiments.js +1 -0
  219. package/dist/cli/commands/state/experiments.js.map +1 -1
  220. package/dist/cli/commands/state/health.js +3 -1
  221. package/dist/cli/commands/state/health.js.map +1 -1
  222. package/dist/cli/commands/state/objective.js +1 -0
  223. package/dist/cli/commands/state/objective.js.map +1 -1
  224. package/dist/cli/commands/state/plan.js +2 -1
  225. package/dist/cli/commands/state/plan.js.map +1 -1
  226. package/dist/cli/commands/state/progress.js +1 -1
  227. package/dist/cli/commands/state/shared.js.map +1 -1
  228. package/dist/cli/commands/state/todo.js +1 -1
  229. package/dist/cli/commands/state/todo.js.map +1 -1
  230. package/dist/cli/commands/validate.js +21 -85
  231. package/dist/cli/commands/validate.js.map +1 -1
  232. package/dist/cli/commands/verify.js +1 -1
  233. package/dist/cli/commands/verify.js.map +1 -1
  234. package/dist/cli/contracts/bundleStatus.js +2 -0
  235. package/dist/cli/contracts/bundleStatus.js.map +1 -0
  236. package/dist/cli/contracts/orientationState.js +2 -0
  237. package/dist/cli/contracts/orientationState.js.map +1 -0
  238. package/dist/cli/dispatch/argvParser.js +33 -0
  239. package/dist/cli/dispatch/argvParser.js.map +1 -0
  240. package/dist/cli/dispatch/check.js +19 -19
  241. package/dist/cli/dispatch/check.js.map +1 -1
  242. package/dist/cli/dispatch/commands.js +27 -0
  243. package/dist/cli/dispatch/commands.js.map +1 -0
  244. package/dist/cli/dispatch/index.js +6 -1
  245. package/dist/cli/dispatch/index.js.map +1 -1
  246. package/dist/cli/dispatch/lifecycle.js +160 -55
  247. package/dist/cli/dispatch/lifecycle.js.map +1 -1
  248. package/dist/cli/dispatch/prime.js +31 -27
  249. package/dist/cli/dispatch/prime.js.map +1 -1
  250. package/dist/cli/dispatch/state.js +11 -16
  251. package/dist/cli/dispatch/state.js.map +1 -1
  252. package/dist/cli/help.js +41 -6
  253. package/dist/cli/help.js.map +1 -1
  254. package/dist/cli/orientation/attention.js +61 -0
  255. package/dist/cli/orientation/attention.js.map +1 -0
  256. package/dist/cli/orientation/corpusCoverage.js +71 -0
  257. package/dist/cli/orientation/corpusCoverage.js.map +1 -0
  258. package/dist/cli/orientation.js +128 -77
  259. package/dist/cli/orientation.js.map +1 -1
  260. package/dist/cli/prime-blob.js +1 -1
  261. package/dist/cli/startupCompletenessContract.js +56 -0
  262. package/dist/cli/startupCompletenessContract.js.map +1 -0
  263. package/dist/cli/stateQuery.js +9 -2
  264. package/dist/cli/stateQuery.js.map +1 -1
  265. package/dist/cli/todoSeverity.js +19 -0
  266. package/dist/cli/todoSeverity.js.map +1 -0
  267. package/dist/core/envPaths.js +21 -0
  268. package/dist/core/envPaths.js.map +1 -0
  269. package/dist/core/jsonValue.js +6 -0
  270. package/dist/core/jsonValue.js.map +1 -0
  271. package/dist/core/pyjson.js +67 -2
  272. package/dist/core/pyjson.js.map +1 -1
  273. package/dist/eval/evalSkills.js +17 -12
  274. package/dist/eval/evalSkills.js.map +1 -1
  275. package/dist/eval/semanticEval.js +43 -19
  276. package/dist/eval/semanticEval.js.map +1 -1
  277. package/dist/eval/semanticFixtures.js +16 -4
  278. package/dist/eval/semanticFixtures.js.map +1 -1
  279. package/dist/hooks/compaction/apply.js +31 -6
  280. package/dist/hooks/compaction/apply.js.map +1 -1
  281. package/dist/hooks/compaction/dryRun.js +5 -3
  282. package/dist/hooks/compaction/dryRun.js.map +1 -1
  283. package/dist/hooks/compaction/index.js +2 -2
  284. package/dist/hooks/compaction/index.js.map +1 -1
  285. package/dist/hooks/compaction/parse.js +132 -3
  286. package/dist/hooks/compaction/parse.js.map +1 -1
  287. package/dist/hooks/compaction/retention.js +3 -1
  288. package/dist/hooks/compaction/retention.js.map +1 -1
  289. package/dist/hooks/compaction/status.js +7 -9
  290. package/dist/hooks/compaction/status.js.map +1 -1
  291. package/dist/hooks/compaction/todoResolved.js +137 -0
  292. package/dist/hooks/compaction/todoResolved.js.map +1 -0
  293. package/dist/hooks/cursorSessionStart.js +10 -2
  294. package/dist/hooks/cursorSessionStart.js.map +1 -1
  295. package/dist/hooks/sessionStart.js +14 -7
  296. package/dist/hooks/sessionStart.js.map +1 -1
  297. package/dist/hooks/sessionStop.js +3 -0
  298. package/dist/hooks/sessionStop.js.map +1 -1
  299. package/dist/hooks/todoLayout.js +177 -0
  300. package/dist/hooks/todoLayout.js.map +1 -0
  301. package/dist/hooks/validateArtifact/index.js +3 -1
  302. package/dist/hooks/validateArtifact/index.js.map +1 -1
  303. package/dist/hooks/validateArtifact/markdown.js +57 -6
  304. package/dist/hooks/validateArtifact/markdown.js.map +1 -1
  305. package/dist/hooks/validateArtifact/runtime.js +6 -3
  306. package/dist/hooks/validateArtifact/runtime.js.map +1 -1
  307. package/dist/hooks/validateArtifact/schema.js +15 -11
  308. package/dist/hooks/validateArtifact/schema.js.map +1 -1
  309. package/dist/hooks/validateArtifact/traversal.js +1 -0
  310. package/dist/hooks/validateArtifact/traversal.js.map +1 -1
  311. package/dist/hooks/validateArtifact/violations.js +2 -2
  312. package/dist/hooks/validateArtifact/violations.js.map +1 -1
  313. package/dist/migrate/v2HandoffManifest.js +119 -5
  314. package/dist/migrate/v2HandoffManifest.js.map +1 -1
  315. package/dist/registries/artifactRegistry.js +23 -9
  316. package/dist/registries/artifactRegistry.js.map +1 -1
  317. package/dist/registries/capabilityContract.js +144 -1
  318. package/dist/registries/capabilityContract.js.map +1 -1
  319. package/dist/registries/evaluatorHandoffContract.js +2 -2
  320. package/dist/registries/evaluatorHandoffContract.js.map +1 -1
  321. package/dist/registries/packageRegistry.js +4 -3
  322. package/dist/registries/packageRegistry.js.map +1 -1
  323. package/dist/registries/runtimeAdapterRegistry.js +5 -4
  324. package/dist/registries/runtimeAdapterRegistry.js.map +1 -1
  325. package/dist/registries/triggerLoader.js +211 -0
  326. package/dist/registries/triggerLoader.js.map +1 -0
  327. package/dist/release/releaseMetadata.js +1 -1
  328. package/dist/release/releaseMetadata.js.map +1 -1
  329. package/dist/routing/index.js +2 -0
  330. package/dist/routing/index.js.map +1 -0
  331. package/dist/routing/routeEngine.js +189 -0
  332. package/dist/routing/routeEngine.js.map +1 -0
  333. package/dist/setup/codex/configToml.js +10 -15
  334. package/dist/setup/codex/configToml.js.map +1 -1
  335. package/dist/setup/codex/constants.js +12 -12
  336. package/dist/setup/codex/constants.js.map +1 -1
  337. package/dist/setup/cursor.js +6 -4
  338. package/dist/setup/cursor.js.map +1 -1
  339. package/dist/setup/cursorSurfaces.js +67 -0
  340. package/dist/setup/cursorSurfaces.js.map +1 -0
  341. package/dist/setup/doctor/core.js +6 -6
  342. package/dist/setup/doctor/core.js.map +1 -1
  343. package/dist/setup/doctor/diagnostics.js +16 -23
  344. package/dist/setup/doctor/diagnostics.js.map +1 -1
  345. package/dist/setup/doctor/opencode.js +32 -0
  346. package/dist/setup/doctor/opencode.js.map +1 -1
  347. package/dist/setup/doctor/report.js +27 -76
  348. package/dist/setup/doctor/report.js.map +1 -1
  349. package/dist/setup/smokeChecks.js +10 -10
  350. package/dist/setup/smokeChecks.js.map +1 -1
  351. package/dist/state/installRoot.js +49 -18
  352. package/dist/state/installRoot.js.map +1 -1
  353. package/dist/state/startupAnalysis/benchmark.js +22 -18
  354. package/dist/state/startupAnalysis/benchmark.js.map +1 -1
  355. package/dist/state/startupAnalysis/contract.js +5 -1
  356. package/dist/state/startupAnalysis/contract.js.map +1 -1
  357. package/dist/state/startupAnalysis/helpers.js +26 -71
  358. package/dist/state/startupAnalysis/helpers.js.map +1 -1
  359. package/dist/state/startupAnalysis/index.js.map +1 -1
  360. package/dist/state/startupAnalysis/metrics.js +25 -18
  361. package/dist/state/startupAnalysis/metrics.js.map +1 -1
  362. package/dist/state/startupAnalysis/records.js +13 -9
  363. package/dist/state/startupAnalysis/records.js.map +1 -1
  364. package/dist/state/startupAnalysis/report.js +26 -37
  365. package/dist/state/startupAnalysis/report.js.map +1 -1
  366. package/dist/state/startupAnalysis/threshold.js +6 -6
  367. package/dist/state/startupAnalysis/threshold.js.map +1 -1
  368. package/dist/upgrade/appContentRefresh.js +342 -0
  369. package/dist/upgrade/appContentRefresh.js.map +1 -0
  370. package/dist/upgrade/appModel.js +8 -6
  371. package/dist/upgrade/appModel.js.map +1 -1
  372. package/dist/upgrade/bundleEvidence.js +34 -0
  373. package/dist/upgrade/bundleEvidence.js.map +1 -0
  374. package/dist/upgrade/channels.js +11 -4
  375. package/dist/upgrade/channels.js.map +1 -1
  376. package/dist/upgrade/cliProbe.js +22 -0
  377. package/dist/upgrade/cliProbe.js.map +1 -0
  378. package/dist/upgrade/coexistenceProbe.js +29 -5
  379. package/dist/upgrade/coexistenceProbe.js.map +1 -1
  380. package/dist/upgrade/compatibility.js +13 -4
  381. package/dist/upgrade/compatibility.js.map +1 -1
  382. package/dist/upgrade/doctor.js +130 -187
  383. package/dist/upgrade/doctor.js.map +1 -1
  384. package/dist/upgrade/doctorClassifier.js +177 -0
  385. package/dist/upgrade/doctorClassifier.js.map +1 -0
  386. package/dist/upgrade/installedHooksRetirement.js +190 -0
  387. package/dist/upgrade/installedHooksRetirement.js.map +1 -0
  388. package/dist/upgrade/legacyAgentCleanup.js +116 -0
  389. package/dist/upgrade/legacyAgentCleanup.js.map +1 -0
  390. package/dist/upgrade/migrateArtifactsV2ToV3.js +57 -31
  391. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
  392. package/dist/upgrade/nextMajorDoctor.js +29 -9
  393. package/dist/upgrade/nextMajorDoctor.js.map +1 -1
  394. package/dist/upgrade/npxPlatformStatus.js +23 -0
  395. package/dist/upgrade/npxPlatformStatus.js.map +1 -0
  396. package/dist/upgrade/projectIntegration.js +69 -75
  397. package/dist/upgrade/projectIntegration.js.map +1 -1
  398. package/dist/upgrade/projectIntegrationDecision.js +93 -0
  399. package/dist/upgrade/projectIntegrationDecision.js.map +1 -0
  400. package/dist/upgrade/runtimeMigration.js +156 -66
  401. package/dist/upgrade/runtimeMigration.js.map +1 -1
  402. package/dist/upgrade/versionResolution.js +2 -2
  403. package/dist/upgrade/versionResolution.js.map +1 -1
  404. package/dist/validate/appHomeContract.js +1 -1
  405. package/dist/validate/appHomeContract.js.map +1 -1
  406. package/dist/validate/capability.js +124 -11
  407. package/dist/validate/capability.js.map +1 -1
  408. package/dist/validate/crossCapability.js +1 -1
  409. package/dist/validate/crossCapability.js.map +1 -1
  410. package/dist/validate/lifecycleAdapters/legacyPythonParity.js +93 -0
  411. package/dist/validate/lifecycleAdapters/legacyPythonParity.js.map +1 -0
  412. package/dist/validate/lifecycleAdapters/nodeFormChecks.js +488 -0
  413. package/dist/validate/lifecycleAdapters/nodeFormChecks.js.map +1 -0
  414. package/dist/validate/lifecycleAdapters/shared.js +198 -0
  415. package/dist/validate/lifecycleAdapters/shared.js.map +1 -0
  416. package/dist/validate/lifecycleAdapters.js +13 -723
  417. package/dist/validate/lifecycleAdapters.js.map +1 -1
  418. package/dist/validate/vocabularyAuthority.js +10 -5
  419. package/dist/validate/vocabularyAuthority.js.map +1 -1
  420. package/package.json +26 -23
  421. package/bundle/skills/agentera/agents/dokumentera.toml +0 -6
  422. package/bundle/skills/agentera/agents/hej.toml +0 -6
  423. package/bundle/skills/agentera/agents/inspektera.toml +0 -6
  424. package/bundle/skills/agentera/agents/inspirera.toml +0 -6
  425. package/bundle/skills/agentera/agents/orkestrera.toml +0 -6
  426. package/bundle/skills/agentera/agents/profilera.toml +0 -6
  427. package/bundle/skills/agentera/agents/realisera.toml +0 -6
  428. package/bundle/skills/agentera/agents/visionera.toml +0 -6
  429. package/bundle/skills/agentera/agents/visualisera.toml +0 -6
  430. /package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/exit.yaml +0 -0
  431. /package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/exit.yaml +0 -0
  432. /package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/exit.yaml +0 -0
  433. /package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/exit.yaml +0 -0
  434. /package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/exit.yaml +0 -0
  435. /package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/exit.yaml +0 -0
  436. /package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/exit.yaml +0 -0
  437. /package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/exit.yaml +0 -0
  438. /package/bundle/skills/agentera/capabilities/{hej → status}/schemas/exit.yaml +0 -0
  439. /package/bundle/skills/agentera/capabilities/{visionera → vision}/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/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,14 +239,14 @@ 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
 
@@ -249,11 +258,11 @@ Growing artifacts are compacted to cap read cost for consuming skills. Compactio
249
258
 
250
259
  **PROGRESS.md**, compacted by realisera when writing a new cycle entry:
251
260
 
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 |
261
+ | Tier | Entries | Format |
262
+ | ---------------- | --------------------- | ---------------------------------------- |
263
+ | Full detail | 10 most recent cycles | Standard cycle entry format |
264
+ | One-line archive | Cycles 11 through 50 | `Cycle N (YYYY-MM-DD): ≤15-word summary` |
265
+ | Dropped | Cycles older than 50 | Removed entirely |
257
266
 
258
267
  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.
259
268
 
@@ -261,21 +270,21 @@ Active cycle entries are stored newest-first: descending by cycle number. Insert
261
270
 
262
271
  **EXPERIMENTS.md**, compacted by optimera when writing a new experiment:
263
272
 
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 |
273
+ | Tier | Entries | Format |
274
+ | ---------------- | -------------------------- | -------------------------------- |
275
+ | Full detail | 10 most recent experiments | Standard experiment entry format |
276
+ | One-line archive | Experiments 11 through 50 | `EXP-N: ≤15-word result summary` |
277
+ | Dropped | Experiments older than 50 | Removed entirely |
269
278
 
270
279
  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.
271
280
 
272
281
  **DECISIONS.md**, compacted by resonera when writing a new decision:
273
282
 
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 |
283
+ | Tier | Entries | Format |
284
+ | ---------------- | ------------------------ | ------------------------------------------------------ |
285
+ | Full detail | 10 most recent decisions | Standard decision entry format |
286
+ | One-line archive | Decisions 11 through 50 | `Decision N (YYYY-MM-DD): [Choice] — ≤15-word summary` |
287
+ | Dropped | Decisions older than 50 | Removed entirely |
279
288
 
280
289
  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.
281
290
 
@@ -285,23 +294,23 @@ When writing a new decision, choose `N` as one greater than the highest decision
285
294
 
286
295
  **HEALTH.md**, compacted by inspektera when writing a new audit:
287
296
 
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 |
297
+ | Tier | Entries | Format |
298
+ | ---------------- | --------------------- | -------------------------------------------------- |
299
+ | Full detail | 10 most recent audits | Standard audit entry format |
300
+ | One-line archive | Audits 11 through 50 | `Audit N (YYYY-MM-DD): [grade] — ≤15-word summary` |
301
+ | Dropped | Audits older than 50 | Removed entirely |
293
302
 
294
303
  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.
295
304
 
296
305
  **TODO.md Resolved section**, compacted by realisera when marking an item resolved:
297
306
 
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 |
307
+ | Tier | Entries | Format |
308
+ | ---------------- | ----------------------------- | ------------------------------------------------ |
309
+ | Full detail | 10 most recent resolved items | Standard resolved entry format |
310
+ | One-line archive | Items 11 through 50 | `- [x] [type:train] ≤15-word resolution summary` |
311
+ | Dropped | Items older than 50 | Removed entirely |
303
312
 
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.
313
+ 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.
305
314
 
306
315
  ## 5. Artifact Path Resolution
307
316
 
@@ -340,7 +349,7 @@ Skills that read the decision profile use one of two patterns:
340
349
  ### Script pattern (for skills that need confidence-weighted summaries)
341
350
 
342
351
  ```
343
- Read `$PROFILERA_PROFILE_DIR/PROFILE.md` directly
352
+ Read `$AGENTERA_PROFILE_DIR/PROFILE.md` directly
344
353
  ```
345
354
 
346
355
  Run from the profilera skill directory. Mentioned skills: realisera, optimera, inspektera, planera, inspirera.
@@ -352,14 +361,14 @@ Standard threshold language (after migration to 0-100):
352
361
 
353
362
  ### Direct read pattern (for skills that need qualitative profile context)
354
363
 
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.
364
+ 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
365
 
357
366
  Both patterns MUST include a fallback instruction:
358
367
  "If the script or PROFILE.md is missing, proceed without persona grounding."
359
368
 
360
369
  **Linter check**: Deterministic. Script invocation syntax, threshold values, fallback instruction presence.
361
370
 
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`.
371
+ 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
372
 
364
373
  ## 11. Exit Signals
365
374
 
@@ -367,12 +376,12 @@ Every skill MUST report a completion status at the end of its workflow. This ena
367
376
 
368
377
  ### Statuses
369
378
 
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 |
379
+ | Status | Meaning | When to use |
380
+ | ------------ | ----------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
381
+ | **complete** | All steps completed successfully | The skill's workflow ran to completion and all acceptance criteria (if any) were met |
382
+ | **flagged** | Completed, but with issues the user should know about | The workflow completed but discovered problems, made compromises, or has caveats worth surfacing |
383
+ | **stuck** | Cannot proceed | A hard blocker prevents completion: missing dependency, permission issue, ambiguous requirement too consequential to resolve autonomously |
384
+ | **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
385
 
377
386
  ### Rules
378
387
 
@@ -401,20 +410,20 @@ DESIGN.md is the source of truth for token definitions. This spec defines how sk
401
410
 
402
411
  Each skill has a unique Unicode glyph used as a subtle signature in output.
403
412
 
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 |
413
+ | Skill | Glyph | Code | Meaning |
414
+ | ----------- | ----- | ------ | ---------------------- |
415
+ | hej | ⌂ | U+2302 | home base |
416
+ | realisera | ⧉ | U+29C9 | joined building blocks |
417
+ | inspektera | ⛶ | U+26F6 | viewfinder frame |
418
+ | resonera | ❈ | U+2748 | spark of insight |
419
+ | planera | ≡ | U+2261 | structured layers |
420
+ | visionera | ⛥ | U+26E5 | guiding star |
421
+ | optimera | ⎘ | U+2398 | measurement |
422
+ | dokumentera | ▤ | U+25A4 | text on page |
423
+ | profilera | ♾ | U+267E | permanent mark |
424
+ | inspirera | ⬚ | U+2B1A | frame to fill |
425
+ | visualisera | ◰ | U+25F0 | design grid |
426
+ | orkestrera | ⎈ | U+2388 | helm, steering |
418
427
 
419
428
  ### Semantic tokens
420
429
 
@@ -422,46 +431,46 @@ Six token families express status, urgency, certainty, and direction.
422
431
 
423
432
  **Status** (task/item completion, square fill progression):
424
433
 
425
- | State | Glyph | Code |
426
- |-------|-------|------|
427
- | complete | ■ | U+25A0 |
428
- | in-progress | ▣ | U+25A3 |
429
- | open | □ | U+25A1 |
430
- | blocked | ▨ | U+25A8 |
434
+ | State | Glyph | Code |
435
+ | ----------- | ----- | ------ |
436
+ | complete | ■ | U+25A0 |
437
+ | in-progress | ▣ | U+25A3 |
438
+ | open | □ | U+25A1 |
439
+ | blocked | ▨ | U+25A8 |
431
440
 
432
441
  **Severity** (issue priority, rightward arrows, more arrows = higher priority):
433
442
 
434
- | Level | Glyph | Code |
435
- |-------|-------|------|
436
- | critical | ⇶ | U+21F6 |
437
- | degraded | ⇉ | U+21C9 |
438
- | normal | → | U+2192 |
439
- | annoying | ⇢ | U+21E2 |
443
+ | Level | Glyph | Code |
444
+ | -------- | ----- | ------ |
445
+ | critical | ⇶ | U+21F6 |
446
+ | degraded | ⇉ | U+21C9 |
447
+ | normal | → | U+2192 |
448
+ | annoying | ⇢ | U+21E2 |
440
449
 
441
450
  **Confidence** (decision certainty, box-drawing line weight):
442
451
 
443
- | Level | Glyph | Code |
444
- |-------|-------|------|
445
- | firm | ━ | U+2501 |
446
- | provisional | ─ | U+2500 |
447
- | exploratory | ┄ | U+2504 |
452
+ | Level | Glyph | Code |
453
+ | ----------- | ----- | ------ |
454
+ | firm | ━ | U+2501 |
455
+ | provisional | ─ | U+2500 |
456
+ | exploratory | ┄ | U+2504 |
448
457
 
449
458
  **Trends** (direction of change):
450
459
 
451
- | Direction | Glyph | Code |
452
- |-----------|-------|------|
453
- | improving | ⮉ | U+2B89 |
454
- | degrading | ⮋ | U+2B8B |
460
+ | Direction | Glyph | Code |
461
+ | --------- | ----- | ------ |
462
+ | improving | ⮉ | U+2B89 |
463
+ | degrading | ⮋ | U+2B8B |
455
464
 
456
465
  **Structural** (layout primitives):
457
466
 
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 |
467
+ | Element | Glyph/Pattern | Code |
468
+ | ---------------- | ------------------- | ---------------- |
469
+ | section divider | `─── label ───────` | U+2500 |
470
+ | list item | ▸ | U+25B8 |
471
+ | inline separator | · | U+00B7 |
472
+ | flow / target | → | U+2192 |
473
+ | progress bar | █▓░ | U+2588/2593/2591 |
465
474
 
466
475
  ### Composition rules
467
476
 
@@ -478,11 +487,11 @@ Six token families express status, urgency, certainty, and direction.
478
487
 
479
488
  Three levels of visual dividers create a consistent hierarchy across skill output.
480
489
 
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.) |
490
+ | Level | Pattern | Use |
491
+ | -------------- | ----------------------------------- | ------------------------------------- |
492
+ | Skill boundary | `─── glyph skillname · context ───` | Session opener, exit signal |
493
+ | Step boundary | `── step N/M: verb` | Workflow progress between steps |
494
+ | Container | `── label` | Mid-session blocks (scratchpad, etc.) |
486
495
 
487
496
  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
497
 
@@ -548,15 +557,15 @@ Rules:
548
557
 
549
558
  ### Token-to-artifact mapping
550
559
 
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 |
560
+ | Artifact | Token families used |
561
+ | ------------ | ------------------------------------------------------------------- |
562
+ | PLAN.md | Status (■/▣/□/▨) for task states |
563
+ | TODO.md | Severity (⇶/⇉/→/⇢) in section headings, Status (□/■) via checkboxes |
564
+ | DECISIONS.md | Confidence (━/─/┄) alongside confidence labels |
565
+ | HEALTH.md | Trends (⮉/⮋) for trajectory, severity for findings |
566
+ | PROGRESS.md | Status (■) for cycle completion markers |
567
+ | VISION.md | Structural (▸, ·) for principles and direction |
568
+ | DOCS.md | Structural (▸, ·) for index, status tokens for coverage |
560
569
 
561
570
  ### Rules
562
571
 
@@ -574,25 +583,25 @@ Every realisera cycle operates in one of five phases. Phases map the suite's ski
574
583
 
575
584
  ### Phases
576
585
 
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 |
586
+ | Phase | Skills | Purpose |
587
+ | -------------- | --------------------------------------------- | ------------------------------------------------------------------- |
588
+ | **envision** | visionera | Define or refine the project's north star |
589
+ | **deliberate** | resonera | Reason through decisions before committing to a direction |
590
+ | **plan** | planera | Structure work into tasks with dependencies and acceptance criteria |
591
+ | **build** | realisera, optimera, dokumentera, visualisera | Implement, optimize, document, or design |
592
+ | **audit** | inspektera | Evaluate structural health and alignment |
584
593
 
585
594
  ### Transitions
586
595
 
587
596
  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
597
 
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 |
598
+ | From | Valid successors |
599
+ | ---------- | --------------------------------- |
600
+ | envision | deliberate, plan, build |
601
+ | deliberate | plan, build, envision |
602
+ | plan | build, deliberate |
603
+ | build | build, audit, plan |
604
+ | audit | build, plan, deliberate, envision |
596
605
 
597
606
  **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
607
 
@@ -622,20 +631,20 @@ Stale artifacts mislead routing decisions and cause skills to act on outdated co
622
631
 
623
632
  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
633
 
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) |
634
+ | Skill | Expected artifact outputs |
635
+ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
636
+ | visionera | .agentera/vision.yaml |
637
+ | resonera | .agentera/decisions.yaml |
638
+ | planera | .agentera/plan.yaml |
639
+ | realisera | .agentera/progress.yaml, TODO.md, CHANGELOG.md |
640
+ | 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`) |
641
+ | inspektera | .agentera/health.yaml, TODO.md |
642
+ | dokumentera | .agentera/docs.yaml |
643
+ | visualisera | DESIGN.md |
644
+ | profilera | (profile-path capability) <!-- platform: profile-path --> |
645
+ | inspirera | (no owned artifact; findings are filed to TODO.md or fed into other skills) |
646
+ | orkestrera | (orchestrator; updates .agentera/plan.yaml task statuses and delegates to other skills) |
647
+ | hej | (router; reads artifacts but produces none) |
639
648
 
640
649
  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
650
 
@@ -671,11 +680,11 @@ This gate is orthogonal to Section 19 Staleness Detection. Section 19 asks: did
671
680
 
672
681
  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
682
 
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 |
683
+ | Shape | Content |
684
+ | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
685
+ | 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 |
686
+ | Allowlisted N/A tag | `N/A: <tag>` where `<tag>` is drawn from the enumerated allowlist below |
687
+ | 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
688
 
680
689
  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
690
 
@@ -683,13 +692,13 @@ Observed output is always preferred when the change is runnable. The N/A paths e
683
692
 
684
693
  Exactly five tags are recognized. Any other shorthand must fall through to the free-form rationale path.
685
694
 
686
- | Tag | Meaning |
687
- |-----|---------|
688
- | `docs-only` | The change touched only documentation files (README, spec, skill instructions, templates) with no code path affected |
695
+ | Tag | Meaning |
696
+ | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
697
+ | `docs-only` | The change touched only documentation files (README, spec, skill instructions, templates) with no code path affected |
689
698
  | `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 |
699
+ | `chore-dep-bump` | The change updated a dependency version without modifying any project code that calls that dependency differently |
700
+ | `chore-build-config` | The change modified build tooling, linter configuration, or packaging metadata without altering runtime behavior |
701
+ | `test-only` | The change added or adjusted tests without modifying the code under test |
693
702
 
694
703
  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
704
 
@@ -697,14 +706,14 @@ A cycle that bundles runnable work with an N/A-tagged change still requires obse
697
706
 
698
707
  "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
708
 
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 |
709
+ | Archetype | Canonical entrypoint form |
710
+ | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
711
+ | CLI tool | Invoke the binary with realistic arguments that exercise the changed path, capturing stdout/stderr and exit code |
712
+ | Library / SDK | Run a smoke driver (a short script or REPL session) that exercises the public API surface touched by the change |
713
+ | Web service | Send a request to a production-shaped endpoint (local server with production configuration or a staging instance) and record the response |
714
+ | 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 --> |
715
+ | Design system | Render a representative component against the real design tokens and visually inspect (screenshot or DOM snapshot) against the expected output |
716
+ | Data pipeline | Run the pipeline against a real input sample (not synthetic fixtures) and record the observed output or side effects |
708
717
 
709
718
  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
719
 
@@ -720,9 +729,9 @@ Projects without a `verification_budget` key have no time cap. The default is: t
720
729
 
721
730
  The gate is enforced independently by two skills; each holds a different phase and a different slice of the enforcement contract.
722
731
 
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 |
732
+ | Skill | Role | Phase | What it enforces |
733
+ | ---------- | ------------------ | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
734
+ | 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
735
  | 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
736
 
728
737
  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.
@@ -743,17 +752,17 @@ Four canonical record families capture the decision-relevant signals profilera c
743
752
 
744
753
  Every record includes these fields regardless of type:
745
754
 
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 |
755
+ | Field | Required | Type | Purpose |
756
+ | ----------------- | -------- | ----------------- | -------------------------------------------------------------------------------------------------------------- |
757
+ | `source_id` | Yes | string | Stable identifier for deduplication across extractions |
758
+ | `timestamp` | Yes | string (ISO 8601) | When the record was created or observed |
759
+ | `project_id` | Yes | string | Project this record belongs to; `"global"` for non-project-scoped data |
760
+ | `project_path` | No | string | Filesystem path to the project, when available |
761
+ | `session_id` | No | string | Host session identifier, when applicable |
762
+ | `source_kind` | Yes | string | Which record family this record belongs to (one of the four portable names below, or a runtime extension name) |
763
+ | `runtime` | Yes | string | Host runtime that produced this record (e.g., `"claude-code"`, `"opencode"`) |
764
+ | `adapter_version` | Yes | string | Version of the adapter that extracted this record |
765
+ | `data` | Yes | object | Type-specific payload for this record |
757
766
 
758
767
  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
768
 
@@ -763,13 +772,13 @@ All fields listed in the record family tables below live inside `data`, not besi
763
772
 
764
773
  Global or project-scoped instruction files the host exposes to agents. These encode recurring preferences, constraints, and standards.
765
774
 
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"` |
775
+ | Field | Required | Type | Purpose |
776
+ | ------------- | -------- | ------ | ----------------------------------------------------------------- |
777
+ | `doc_type` | Yes | string | Kind of instruction document (e.g., `"claude_md"`, `"agents_md"`) |
778
+ | `name` | Yes | string | Canonical name for this document |
779
+ | `description` | No | string | Human-readable summary |
780
+ | `content` | Yes | string | Full text content |
781
+ | `scope` | Yes | string | `"global"` or `"project"` |
773
782
 
774
783
  Claude Code source: `~/.claude/CLAUDE.md`, `~/git/*/CLAUDE.md`, `~/git/*/AGENTS.md` <!-- platform: artifact-resolution -->
775
784
 
@@ -777,10 +786,10 @@ Claude Code source: `~/.claude/CLAUDE.md`, `~/git/*/CLAUDE.md`, `~/git/*/AGENTS.
777
786
 
778
787
  Decision-rich prompts from the host's command history. These capture what the user asked, when, and in what project context.
779
788
 
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"` |
789
+ | Field | Required | Type | Purpose |
790
+ | ------------- | -------- | ------ | ------------------------------------------------------------- |
791
+ | `prompt` | Yes | string | The user's prompt text |
792
+ | `signal_type` | Yes | string | Classification: `"decision"`, `"correction"`, or `"question"` |
784
793
 
785
794
  Claude Code source: `~/.claude/history.jsonl`, filtered by decision-pattern regex <!-- platform: artifact-resolution -->
786
795
 
@@ -788,12 +797,12 @@ Claude Code source: `~/.claude/history.jsonl`, filtered by decision-pattern rege
788
797
 
789
798
  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
799
 
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"` |
800
+ | Field | Required | Type | Purpose |
801
+ | ------------------- | -------- | ------ | ------------------------------------------------------------------------------------ |
802
+ | `actor` | Yes | string | `"user"` or `"assistant"` |
803
+ | `content` | Yes | string | Turn text content |
804
+ | `preceding_context` | No | string | Prior assistant proposal (for user turns that respond to a proposal) |
805
+ | `signal_type` | No | string | Classification of the user's response: `"decision"`, `"correction"`, or `"question"` |
797
806
 
798
807
  Claude Code source: `~/.claude/projects/**/*.jsonl`, filtered for decision-rich exchanges <!-- platform: artifact-resolution -->
799
808
 
@@ -801,11 +810,11 @@ Claude Code source: `~/.claude/projects/**/*.jsonl`, filtered for decision-rich
801
810
 
802
811
  Recurring configuration or toolchain patterns associated with a project. These are objective evidence of technology choices, linting standards, and build conventions.
803
812
 
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.) |
813
+ | Field | Required | Type | Purpose |
814
+ | ------------- | -------- | --------------- | ---------------------------------------------------------------------------- |
815
+ | `config_type` | Yes | string | Kind of configuration file (e.g., `"gomod"`, `"golangci"`, `"package_json"`) |
816
+ | `file_path` | No | string | Path to the config file within the project |
817
+ | `signals` | Yes | array of string | Extracted key-value signals (dependencies, linters, targets, etc.) |
809
818
 
810
819
  Claude Code source: `~/git/*/` config files scanned per known config type list <!-- platform: artifact-resolution -->
811
820
 
@@ -813,24 +822,24 @@ Claude Code source: `~/git/*/` config files scanned per known config type list <
813
822
 
814
823
  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
824
 
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 |
825
+ | Family | Record types | Signal character |
826
+ | ---------------------- | --------------------- | -------------------------------------------------------------- |
827
+ | Crystallized decisions | instruction_document | Highest signal: explicitly authored preferences and standards |
828
+ | Decision history | history_prompt | Broad coverage: what the user asked across all sessions |
829
+ | Conversation exchanges | conversation_turn | Most nuanced: how decisions were made and corrected in context |
830
+ | Config patterns | project_config_signal | Most objective: what technology and standards actually shipped |
822
831
 
823
832
  ### Degradation
824
833
 
825
834
  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
835
 
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 |
836
+ | Available families | Profilera mode | Profile quality |
837
+ | ----------------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
838
+ | All four | Full | Complete profile: all 12 categories, cross-validated confidence scores |
839
+ | Crystallized only | Partial | Instruction-heavy profile: strong in architecture/tooling standards, weak in process/workflow and meta-decision patterns |
840
+ | Crystallized + one other | Partial | Substantially complete: most categories populated, confidence scores may be lower for categories that depend on the missing family |
841
+ | History or conversations only (no crystallized) | Partial | Behavior-only profile: can infer patterns from actions but lacks explicit preferences. Confidence scores capped at 60 |
842
+ | 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
843
 
835
844
  **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
845
 
@@ -844,12 +853,12 @@ Adapters MAY define additional record types beyond the four portable ones to cap
844
853
 
845
854
  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
855
 
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) |
856
+ | Field | Required | Type | Purpose |
857
+ | ------------- | -------- | ------ | ------------------------------------------ |
858
+ | `name` | Yes | string | Entry name or title |
859
+ | `description` | No | string | Summary from frontmatter |
860
+ | `memory_type` | No | string | Host-specific categorization |
861
+ | `content` | Yes | string | Full text content (body after frontmatter) |
853
862
 
854
863
  When the Claude Code adapter encounters memory files, it emits them as instruction_document records with these additional conventions:
855
864
 
@@ -876,22 +885,22 @@ Both fields are required. A valid corpus file always contains exactly these two
876
885
 
877
886
  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
887
 
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 |
888
+ | Field | Required | Type | Purpose |
889
+ | ----------------- | -------- | ----------------- | ---------------------------------------------------------------------------------- |
890
+ | `extracted_at` | Yes | string (ISO 8601) | When the extraction ran |
891
+ | `runtimes` | Yes | array of string | Runtime identifiers that were probed and found available (e.g., `["claude-code"]`) |
892
+ | `adapter_version` | Yes | string | Version of the corpus builder that produced this file |
893
+ | `families` | Yes | object | Per-source-family extraction summary (see below) |
894
+ | `total_records` | Yes | integer | Total number of records in the `records` array |
895
+ | `errors` | No | array of string | Human-readable error messages from extraction failures; omitted when empty |
887
896
 
888
897
  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
898
 
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"` |
899
+ | Field | Required | Type | Purpose |
900
+ | -------- | -------- | ------- | -------------------------------------------------------------------------- |
901
+ | `count` | Yes | integer | Number of records extracted for this family |
902
+ | `status` | Yes | string | `"ok"`, `"partial"`, or `"missing"` |
903
+ | `error` | No | string | Explanation when status is `"partial"` or `"missing"`; omitted when `"ok"` |
895
904
 
896
905
  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
906
 
@@ -910,10 +919,10 @@ Consumers filter and group records by `source_kind` to access specific families.
910
919
  "runtimes": ["claude-code"],
911
920
  "adapter_version": "2.7.0",
912
921
  "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"}
922
+ "instruction_document": { "count": 12, "status": "ok" },
923
+ "history_prompt": { "count": 87, "status": "ok" },
924
+ "conversation_turn": { "count": 234, "status": "ok" },
925
+ "project_config_signal": { "count": 5, "status": "ok" }
917
926
  },
918
927
  "total_records": 338,
919
928
  "errors": []
@@ -945,8 +954,8 @@ Before extracting records, the corpus builder probes for available runtimes by c
945
954
 
946
955
  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
956
 
948
- | Runtime | Probe path | What it checks |
949
- |---------|-----------|----------------|
957
+ | Runtime | Probe path | What it checks |
958
+ | ----------- | ------------ | ---------------------------------------------------------------------------------------------- |
950
959
  | Claude Code | `~/.claude/` | Directory exists and contains session data (e.g., `projects/` subdirectory or `history.jsonl`) |
951
960
 
952
961
  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 +988,10 @@ This gate is the entry-side complement to Section 20 (Behavioral Verification Ga
979
988
 
980
989
  The gate applies to any skill that spawns a subagent with `isolation: "worktree"`. Currently two skills do this:
981
990
 
982
- | Skill | Spawn point | What it writes before spawn |
983
- |-------|----------------|-------------------------------|
991
+ | Skill | Spawn point | What it writes before spawn |
992
+ | --------- | ----------------------------- | ------------------------------------------------------------------------------------- |
984
993
  | 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 |
994
+ | optimera | Experiment spawn step | EXPERIMENTS.md updates, OBJECTIVE.md refinements, harness configuration changes |
986
995
 
987
996
  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
997
 
@@ -1029,10 +1038,10 @@ This rule applies to all commits produced by any skill: checkpoint commits, real
1029
1038
 
1030
1039
  The two gates form a coherent pair bracketing the worktree lifecycle:
1031
1040
 
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? |
1041
+ | Gate | Section | Boundary | Question it answers |
1042
+ | ---------------------------- | ------- | ------------------------------- | --------------------------------------------- |
1043
+ | Pre-spawn Git Commit | 23 | Entry: before worktree creation | Does the subagent start from current state? |
1044
+ | Behavioral Verification Gate | 20 | Exit: after implementation | Did the work actually run against real state? |
1036
1045
 
1037
1046
  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
1047