agentera 3.0.0-dev.26 → 3.0.0-dev.28

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 (385) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +13 -3
  3. package/bundle/CHANGELOG.md +14 -1
  4. package/bundle/DESIGN.md +3 -7
  5. package/bundle/README.md +1 -4
  6. package/bundle/UPGRADE.md +33 -0
  7. package/bundle/fixtures/routing/hybrid-corpus.yaml +154 -0
  8. package/bundle/references/adapters/package-registry.yaml +2 -0
  9. package/bundle/references/adapters/package-surface-characterization.md +10 -5
  10. package/bundle/references/analysis/benchmark.md +4 -0
  11. package/bundle/references/analysis/verification-policy.yaml +142 -0
  12. package/bundle/references/artifacts/state-storage-authority.yaml +303 -14
  13. package/bundle/references/cli/capability-instruction-structure.md +2 -2
  14. package/bundle/references/cli/hybrid-route-contract.yaml +416 -0
  15. package/bundle/references/cli/prime-consumer-compatibility.yaml +77 -32
  16. package/bundle/references/cli/routing-model.md +136 -91
  17. package/bundle/references/cli/trigger-schema-enrichment.md +50 -46
  18. package/bundle/references/cli/vocabulary.md +7 -9
  19. package/bundle/references/meta/documentation-inventory.md +2 -2
  20. package/bundle/skills/agentera/SKILL.md +50 -18
  21. package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +13 -35
  22. package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +14 -36
  23. package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +5 -34
  24. package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +6 -40
  25. package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +5 -34
  26. package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +4 -35
  27. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +3 -2
  28. package/bundle/skills/agentera/capabilities/orchestrate/schemas/exit.yaml +1 -1
  29. package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +5 -37
  30. package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +8 -31
  31. package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +8 -37
  32. package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +5 -29
  33. package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +7 -47
  34. package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +7 -39
  35. package/bundle/skills/agentera/capability_schema_contract.yaml +29 -29
  36. package/bundle/skills/agentera/route-phrases.yaml +81 -0
  37. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +23 -5
  38. package/dist/analytics/extractCorpus/cli.js.map +1 -1
  39. package/dist/analytics/extractCorpus/copilotSessions.js.map +1 -1
  40. package/dist/analytics/extractCorpus/core.js.map +1 -1
  41. package/dist/analytics/extractCorpus/corpus.js.map +1 -1
  42. package/dist/analytics/extractCorpus/coverageAudit.js.map +1 -1
  43. package/dist/analytics/extractCorpus/cursorSessions.js.map +1 -1
  44. package/dist/analytics/extractCorpus/evidenceTiers.js.map +1 -1
  45. package/dist/analytics/extractCorpus/extractCorpusParity.js +1 -1
  46. package/dist/analytics/extractCorpus/extractCorpusParity.js.map +1 -1
  47. package/dist/analytics/extractCorpus/filesystemSources.js.map +1 -1
  48. package/dist/analytics/extractCorpus/index.js.map +1 -1
  49. package/dist/analytics/extractCorpus/jsonlSessions.js.map +1 -1
  50. package/dist/analytics/extractCorpus/sqliteCaps.js.map +1 -1
  51. package/dist/analytics/extractCorpus/sqliteSessions.js.map +1 -1
  52. package/dist/analytics/extractCorpus/tierReader.js.map +1 -1
  53. package/dist/analytics/extractCorpus.js.map +1 -1
  54. package/dist/analytics/profileSignals.js.map +1 -1
  55. package/dist/analytics/usageStats.js.map +1 -1
  56. package/dist/bin/agentera.js.map +1 -1
  57. package/dist/capabilities/audit/instructions.js.map +1 -1
  58. package/dist/capabilities/build/instructions.js.map +1 -1
  59. package/dist/capabilities/design/instructions.js.map +1 -1
  60. package/dist/capabilities/discuss/instructions.js +1 -1
  61. package/dist/capabilities/discuss/instructions.js.map +1 -1
  62. package/dist/capabilities/document/instructions.js.map +1 -1
  63. package/dist/capabilities/index.js.map +1 -1
  64. package/dist/capabilities/optimize/instructions.js.map +1 -1
  65. package/dist/capabilities/orchestrate/instructions.js +1 -1
  66. package/dist/capabilities/orchestrate/instructions.js.map +1 -1
  67. package/dist/capabilities/plan/instructions.js +1 -1
  68. package/dist/capabilities/plan/instructions.js.map +1 -1
  69. package/dist/capabilities/profile/instructions.js.map +1 -1
  70. package/dist/capabilities/research/instructions.js.map +1 -1
  71. package/dist/capabilities/status/instructions.js.map +1 -1
  72. package/dist/capabilities/status/startupInstructions.js.map +1 -1
  73. package/dist/capabilities/vision/instructions.js.map +1 -1
  74. package/dist/cli/appContext.js.map +1 -1
  75. package/dist/cli/argvalidate.js.map +1 -1
  76. package/dist/cli/capabilityContext/benchmark.js.map +1 -1
  77. package/dist/cli/capabilityContext/bespoke.js.map +1 -1
  78. package/dist/cli/capabilityContext/build.js.map +1 -1
  79. package/dist/cli/capabilityContext/closeout.js.map +1 -1
  80. package/dist/cli/capabilityContext/contract.js.map +1 -1
  81. package/dist/cli/capabilityContext/evidence.js +1 -1
  82. package/dist/cli/capabilityContext/evidence.js.map +1 -1
  83. package/dist/cli/capabilityContext/index.js.map +1 -1
  84. package/dist/cli/capabilityContext/orchestration.js +15 -5
  85. package/dist/cli/capabilityContext/orchestration.js.map +1 -1
  86. package/dist/cli/capabilityContext/planState.js +1 -1
  87. package/dist/cli/capabilityContext/planState.js.map +1 -1
  88. package/dist/cli/capabilityContext/progress.js.map +1 -1
  89. package/dist/cli/capabilityContext/shared.js.map +1 -1
  90. package/dist/cli/capabilityContext/slim.js +16 -3
  91. package/dist/cli/capabilityContext/slim.js.map +1 -1
  92. package/dist/cli/capabilityContext/startup.js +3 -0
  93. package/dist/cli/capabilityContext/startup.js.map +1 -1
  94. package/dist/cli/capabilityContext/types.js.map +1 -1
  95. package/dist/cli/capabilityContext.js.map +1 -1
  96. package/dist/cli/commands/appHome.js.map +1 -1
  97. package/dist/cli/commands/capability.js.map +1 -1
  98. package/dist/cli/commands/compact.js.map +1 -1
  99. package/dist/cli/commands/doctor.js.map +1 -1
  100. package/dist/cli/commands/durability.js.map +1 -1
  101. package/dist/cli/commands/entityMigrate.js +7 -3
  102. package/dist/cli/commands/entityMigrate.js.map +1 -1
  103. package/dist/cli/commands/lint.js.map +1 -1
  104. package/dist/cli/commands/prime/briefOrientation.js +33 -8
  105. package/dist/cli/commands/prime/briefOrientation.js.map +1 -1
  106. package/dist/cli/commands/prime/bundleStatus.js.map +1 -1
  107. package/dist/cli/commands/prime/collectEntityOrientation.js +117 -18
  108. package/dist/cli/commands/prime/collectEntityOrientation.js.map +1 -1
  109. package/dist/cli/commands/prime/collectOrientationState.js +4 -2
  110. package/dist/cli/commands/prime/collectOrientationState.js.map +1 -1
  111. package/dist/cli/commands/prime/orientationOutput.js +47 -18
  112. package/dist/cli/commands/prime/orientationOutput.js.map +1 -1
  113. package/dist/cli/commands/prime/types.js.map +1 -1
  114. package/dist/cli/commands/prime/v1Migration.js.map +1 -1
  115. package/dist/cli/commands/prime.js +47 -23
  116. package/dist/cli/commands/prime.js.map +1 -1
  117. package/dist/cli/commands/query.js.map +1 -1
  118. package/dist/cli/commands/report.js.map +1 -1
  119. package/dist/cli/commands/route.js +142 -0
  120. package/dist/cli/commands/route.js.map +1 -0
  121. package/dist/cli/commands/schema.js.map +1 -1
  122. package/dist/cli/commands/state/decisions.js.map +1 -1
  123. package/dist/cli/commands/state/docs.js.map +1 -1
  124. package/dist/cli/commands/state/experimentRecords.js.map +1 -1
  125. package/dist/cli/commands/state/experiments.js.map +1 -1
  126. package/dist/cli/commands/state/get.js.map +1 -1
  127. package/dist/cli/commands/state/health.js.map +1 -1
  128. package/dist/cli/commands/state/index.js.map +1 -1
  129. package/dist/cli/commands/state/list.js.map +1 -1
  130. package/dist/cli/commands/state/objective.js.map +1 -1
  131. package/dist/cli/commands/state/plan.js.map +1 -1
  132. package/dist/cli/commands/state/planTasks.js.map +1 -1
  133. package/dist/cli/commands/state/plans.js.map +1 -1
  134. package/dist/cli/commands/state/progress.js.map +1 -1
  135. package/dist/cli/commands/state/shared.js.map +1 -1
  136. package/dist/cli/commands/state/todo.js.map +1 -1
  137. package/dist/cli/commands/state/write.js +21 -2
  138. package/dist/cli/commands/state/write.js.map +1 -1
  139. package/dist/cli/commands/upgrade.js.map +1 -1
  140. package/dist/cli/commands/upgradeVerify.js.map +1 -1
  141. package/dist/cli/commands/validate.js.map +1 -1
  142. package/dist/cli/commands/verify.js +17 -1
  143. package/dist/cli/commands/verify.js.map +1 -1
  144. package/dist/cli/contracts/bundleStatus.js.map +1 -1
  145. package/dist/cli/contracts/orientationState.js.map +1 -1
  146. package/dist/cli/dispatch/argvParser.js.map +1 -1
  147. package/dist/cli/dispatch/check.js.map +1 -1
  148. package/dist/cli/dispatch/commands.js.map +1 -1
  149. package/dist/cli/dispatch/index.js +18 -0
  150. package/dist/cli/dispatch/index.js.map +1 -1
  151. package/dist/cli/dispatch/lifecycle.js.map +1 -1
  152. package/dist/cli/dispatch/prime.js.map +1 -1
  153. package/dist/cli/dispatch/shared.js.map +1 -1
  154. package/dist/cli/dispatch/state.js.map +1 -1
  155. package/dist/cli/dispatch.js.map +1 -1
  156. package/dist/cli/errors.js +2 -2
  157. package/dist/cli/errors.js.map +1 -1
  158. package/dist/cli/help.js +20 -1
  159. package/dist/cli/help.js.map +1 -1
  160. package/dist/cli/migrationRequired.js +1 -1
  161. package/dist/cli/migrationRequired.js.map +1 -1
  162. package/dist/cli/orientation/attention.js.map +1 -1
  163. package/dist/cli/orientation/corpusCoverage.js.map +1 -1
  164. package/dist/cli/orientation.js +18 -4
  165. package/dist/cli/orientation.js.map +1 -1
  166. package/dist/cli/planArtifacts.js.map +1 -1
  167. package/dist/cli/planEvidence.js.map +1 -1
  168. package/dist/cli/planLifecycleState.js.map +1 -1
  169. package/dist/cli/planTaskIndex.js +12 -0
  170. package/dist/cli/planTaskIndex.js.map +1 -0
  171. package/dist/cli/prime-blob.js +1 -1
  172. package/dist/cli/prime-blob.js.map +1 -1
  173. package/dist/cli/startupCompletenessContract.js.map +1 -1
  174. package/dist/cli/stateQuery.js.map +1 -1
  175. package/dist/cli/structured.js.map +1 -1
  176. package/dist/cli/todoMarkdown.js.map +1 -1
  177. package/dist/cli/todoSeverity.js.map +1 -1
  178. package/dist/core/atomicWriter.js.map +1 -1
  179. package/dist/core/difflib.js.map +1 -1
  180. package/dist/core/envPaths.js.map +1 -1
  181. package/dist/core/jsonValue.js.map +1 -1
  182. package/dist/core/paths.js.map +1 -1
  183. package/dist/core/pyjson.js.map +1 -1
  184. package/dist/core/skillIdentity.js.map +1 -1
  185. package/dist/core/sourceRoot.js.map +1 -1
  186. package/dist/core/text.js.map +1 -1
  187. package/dist/core/toml.js.map +1 -1
  188. package/dist/core/yaml.js.map +1 -1
  189. package/dist/eval/evalSkills.js.map +1 -1
  190. package/dist/eval/hybridRouteEvaluation.js +156 -0
  191. package/dist/eval/hybridRouteEvaluation.js.map +1 -0
  192. package/dist/eval/semanticEval.js.map +1 -1
  193. package/dist/eval/semanticFixtures.js.map +1 -1
  194. package/dist/hooks/common.js.map +1 -1
  195. package/dist/hooks/compaction/apply.js.map +1 -1
  196. package/dist/hooks/compaction/dryRun.js.map +1 -1
  197. package/dist/hooks/compaction/index.js.map +1 -1
  198. package/dist/hooks/compaction/parse.js.map +1 -1
  199. package/dist/hooks/compaction/retention.js.map +1 -1
  200. package/dist/hooks/compaction/status.js.map +1 -1
  201. package/dist/hooks/compaction/types.js.map +1 -1
  202. package/dist/hooks/cursorPreToolUse.js.map +1 -1
  203. package/dist/hooks/cursorSessionStart.js.map +1 -1
  204. package/dist/hooks/projectHookInput.js.map +1 -1
  205. package/dist/hooks/sessionStart.js.map +1 -1
  206. package/dist/hooks/sessionStop.js.map +1 -1
  207. package/dist/hooks/validateArtifact/agentFacing.js.map +1 -1
  208. package/dist/hooks/validateArtifact/index.js.map +1 -1
  209. package/dist/hooks/validateArtifact/markdown.js.map +1 -1
  210. package/dist/hooks/validateArtifact/runtime.js.map +1 -1
  211. package/dist/hooks/validateArtifact/schema.js.map +1 -1
  212. package/dist/hooks/validateArtifact/traversal.js.map +1 -1
  213. package/dist/hooks/validateArtifact/violations.js.map +1 -1
  214. package/dist/migrate/v2HandoffManifest.js.map +1 -1
  215. package/dist/registries/artifactProtocolIds.js.map +1 -1
  216. package/dist/registries/artifactRegistry.js.map +1 -1
  217. package/dist/registries/capabilityContract.js +5 -20
  218. package/dist/registries/capabilityContract.js.map +1 -1
  219. package/dist/registries/evaluatorHandoffContract.js.map +1 -1
  220. package/dist/registries/evidenceTierContract.js.map +1 -1
  221. package/dist/registries/hybridRoute.js +203 -0
  222. package/dist/registries/hybridRoute.js.map +1 -0
  223. package/dist/registries/hybridRouteReceipt.js +221 -0
  224. package/dist/registries/hybridRouteReceipt.js.map +1 -0
  225. package/dist/registries/packageRegistry.js.map +1 -1
  226. package/dist/registries/triggerLoader.js +7 -43
  227. package/dist/registries/triggerLoader.js.map +1 -1
  228. package/dist/registries/verbosityBudgetContract.js.map +1 -1
  229. package/dist/release/releaseMetadata.js +2 -0
  230. package/dist/release/releaseMetadata.js.map +1 -1
  231. package/dist/runtime/lifecycleAdapterContract.js.map +1 -1
  232. package/dist/runtime/lifecycleAdapters.js.map +1 -1
  233. package/dist/runtime/lifecycleAuthority.js.map +1 -1
  234. package/dist/runtime/lifecycleOperationContract.js.map +1 -1
  235. package/dist/runtime/lifecycleOperations.js.map +1 -1
  236. package/dist/runtime/lifecycleOwnershipJournal.js.map +1 -1
  237. package/dist/runtime/lifecyclePublication.js.map +1 -1
  238. package/dist/runtime/lifecycleSnapshot.js.map +1 -1
  239. package/dist/runtime/retiredRuntimeCleanup.js.map +1 -1
  240. package/dist/setup/codex/agents.js.map +1 -1
  241. package/dist/setup/codex/cli.js.map +1 -1
  242. package/dist/setup/codex/configToml.js.map +1 -1
  243. package/dist/setup/codex/constants.js.map +1 -1
  244. package/dist/setup/codex/installRoot.js.map +1 -1
  245. package/dist/setup/codex/state.js.map +1 -1
  246. package/dist/setup/codex.js.map +1 -1
  247. package/dist/setup/opencode.js.map +1 -1
  248. package/dist/setup/opencodeConstants.js.map +1 -1
  249. package/dist/setup/sharedSkill.js.map +1 -1
  250. package/dist/setup/smokeChecks.js.map +1 -1
  251. package/dist/state/archiveDiscovery.js +24 -35
  252. package/dist/state/archiveDiscovery.js.map +1 -1
  253. package/dist/state/archivePublication.js.map +1 -1
  254. package/dist/state/archiveRecovery.js.map +1 -1
  255. package/dist/state/archiveReplay.js.map +1 -1
  256. package/dist/state/canonicalMigrationRecord.js +37 -0
  257. package/dist/state/canonicalMigrationRecord.js.map +1 -0
  258. package/dist/state/decisionEntities.js +73 -33
  259. package/dist/state/decisionEntities.js.map +1 -1
  260. package/dist/state/decisionLegacyValidation.js +31 -0
  261. package/dist/state/decisionLegacyValidation.js.map +1 -1
  262. package/dist/state/decisionMigrationProvenance.js +117 -0
  263. package/dist/state/decisionMigrationProvenance.js.map +1 -0
  264. package/dist/state/decisionOverlay.js.map +1 -1
  265. package/dist/state/decisionRevision.js.map +1 -1
  266. package/dist/state/decisionRevisionPublication.js.map +1 -1
  267. package/dist/state/directRetrieval.js.map +1 -1
  268. package/dist/state/durability.js +24 -5
  269. package/dist/state/durability.js.map +1 -1
  270. package/dist/state/entityCutover.js +2 -2
  271. package/dist/state/entityCutover.js.map +1 -1
  272. package/dist/state/entityCutoverGit.js.map +1 -1
  273. package/dist/state/entityMigrationCausality.js +99 -0
  274. package/dist/state/entityMigrationCausality.js.map +1 -0
  275. package/dist/state/entityMigrationPreview.js +141 -80
  276. package/dist/state/entityMigrationPreview.js.map +1 -1
  277. package/dist/state/entityPublicationContext.js.map +1 -1
  278. package/dist/state/entityStorage.js +81 -26
  279. package/dist/state/entityStorage.js.map +1 -1
  280. package/dist/state/experimentArchive.js.map +1 -1
  281. package/dist/state/experimentIdentity.js.map +1 -1
  282. package/dist/state/experimentRetrieval.js.map +1 -1
  283. package/dist/state/healthEntities.js +28 -31
  284. package/dist/state/healthEntities.js.map +1 -1
  285. package/dist/state/healthEntityValidation.js.map +1 -1
  286. package/dist/state/healthRepair.js.map +1 -1
  287. package/dist/state/installRoot.js.map +1 -1
  288. package/dist/state/legacyEntityCutoverEvidence.js.map +1 -1
  289. package/dist/state/legacyIdentity.js.map +1 -1
  290. package/dist/state/legacySummaryRecord.js +7 -0
  291. package/dist/state/legacySummaryRecord.js.map +1 -0
  292. package/dist/state/listAccounting.js.map +1 -1
  293. package/dist/state/listClassification.js.map +1 -1
  294. package/dist/state/listCursor.js +43 -0
  295. package/dist/state/listCursor.js.map +1 -0
  296. package/dist/state/listRetrieval.js.map +1 -1
  297. package/dist/state/migrationSourceBinding.js +29 -0
  298. package/dist/state/migrationSourceBinding.js.map +1 -0
  299. package/dist/state/objectiveExperimentEntities.js.map +1 -1
  300. package/dist/state/planEntities.js +46 -2
  301. package/dist/state/planEntities.js.map +1 -1
  302. package/dist/state/planIdentity.js.map +1 -1
  303. package/dist/state/planRetrieval.js.map +1 -1
  304. package/dist/state/planTaskRetrieval.js.map +1 -1
  305. package/dist/state/progressEntities.js +35 -59
  306. package/dist/state/progressEntities.js.map +1 -1
  307. package/dist/state/projectRoot.js.map +1 -1
  308. package/dist/state/projectionPolicy.js.map +1 -1
  309. package/dist/state/retrievalAuthority.js +10 -0
  310. package/dist/state/retrievalAuthority.js.map +1 -1
  311. package/dist/state/safeProjectFile.js.map +1 -1
  312. package/dist/state/startupAnalysis/benchmark.js.map +1 -1
  313. package/dist/state/startupAnalysis/contract.js.map +1 -1
  314. package/dist/state/startupAnalysis/helpers.js.map +1 -1
  315. package/dist/state/startupAnalysis/index.js.map +1 -1
  316. package/dist/state/startupAnalysis/metrics.js.map +1 -1
  317. package/dist/state/startupAnalysis/records.js.map +1 -1
  318. package/dist/state/startupAnalysis/report.js.map +1 -1
  319. package/dist/state/startupAnalysis/threshold.js.map +1 -1
  320. package/dist/state/startupAnalysis.js.map +1 -1
  321. package/dist/state/startupProjection.js +2 -1
  322. package/dist/state/startupProjection.js.map +1 -1
  323. package/dist/state/stateMode.js.map +1 -1
  324. package/dist/state/summaryEntityRead.js +26 -0
  325. package/dist/state/summaryEntityRead.js.map +1 -0
  326. package/dist/state/summaryMigrationProvenance.js +67 -0
  327. package/dist/state/summaryMigrationProvenance.js.map +1 -0
  328. package/dist/state/summarySourceRowAuthority.js +37 -0
  329. package/dist/state/summarySourceRowAuthority.js.map +1 -0
  330. package/dist/state/todoDocsEntities.js.map +1 -1
  331. package/dist/state/todoDocsEntityValidation.js.map +1 -1
  332. package/dist/state/write/assign.js.map +1 -1
  333. package/dist/state/write/candidateMutation.js.map +1 -1
  334. package/dist/state/write/errors.js.map +1 -1
  335. package/dist/state/write/experimentPublication.js.map +1 -1
  336. package/dist/state/write/explain.js +9 -3
  337. package/dist/state/write/explain.js.map +1 -1
  338. package/dist/state/write/fields.js.map +1 -1
  339. package/dist/state/write/helpers.js.map +1 -1
  340. package/dist/state/write/index.js.map +1 -1
  341. package/dist/state/write/input.js.map +1 -1
  342. package/dist/state/write/lock.js.map +1 -1
  343. package/dist/state/write/mutation.js.map +1 -1
  344. package/dist/state/write/operations.js +6 -0
  345. package/dist/state/write/operations.js.map +1 -1
  346. package/dist/state/write/planEvaluation.js +19 -5
  347. package/dist/state/write/planEvaluation.js.map +1 -1
  348. package/dist/state/write/planPublication.js +7 -0
  349. package/dist/state/write/planPublication.js.map +1 -1
  350. package/dist/state/write/serialize.js.map +1 -1
  351. package/dist/state/write/transaction.js +2 -1
  352. package/dist/state/write/transaction.js.map +1 -1
  353. package/dist/state/write/validate.js.map +1 -1
  354. package/dist/upgrade/appContentRefresh.js +15 -20
  355. package/dist/upgrade/appContentRefresh.js.map +1 -1
  356. package/dist/upgrade/appModel.js.map +1 -1
  357. package/dist/upgrade/atomicWriter.js.map +1 -1
  358. package/dist/upgrade/bundleEvidence.js.map +1 -1
  359. package/dist/upgrade/channels.js.map +1 -1
  360. package/dist/upgrade/coexistenceProbe.js.map +1 -1
  361. package/dist/upgrade/compatibility.js.map +1 -1
  362. package/dist/upgrade/doctor.js.map +1 -1
  363. package/dist/upgrade/doctorClassifier.js.map +1 -1
  364. package/dist/upgrade/installedHooksRetirement.js.map +1 -1
  365. package/dist/upgrade/legacyAgentCleanup.js.map +1 -1
  366. package/dist/upgrade/lifecycleUpgrade.js.map +1 -1
  367. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
  368. package/dist/upgrade/migrationPublication.js.map +1 -1
  369. package/dist/upgrade/nextMajorDoctor.js.map +1 -1
  370. package/dist/upgrade/npxPlatformStatus.js.map +1 -1
  371. package/dist/upgrade/projectIntegration.js.map +1 -1
  372. package/dist/upgrade/projectIntegrationDecision.js.map +1 -1
  373. package/dist/upgrade/runtimeMigration.js.map +1 -1
  374. package/dist/upgrade/upgradeCommands.js.map +1 -1
  375. package/dist/upgrade/upgradeLock.js.map +1 -1
  376. package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
  377. package/dist/upgrade/v3CapabilitySurface.js.map +1 -1
  378. package/dist/upgrade/versionResolution.js.map +1 -1
  379. package/dist/validate/appHomeContract.js.map +1 -1
  380. package/dist/validate/capability.js +11 -2
  381. package/dist/validate/capability.js.map +1 -1
  382. package/dist/validate/crossCapability.js.map +1 -1
  383. package/dist/validate/selfAudit.js.map +1 -1
  384. package/dist/validate/vocabularyAuthority.js.map +1 -1
  385. package/package.json +19 -6
@@ -0,0 +1,142 @@
1
+ schemaVersion: agentera.verificationPolicy.v1
2
+
3
+ # This file is the sole authority for CLI test ownership and policy composition.
4
+ # A matching explicit rule is required for specialized owners. Files with no
5
+ # explicit match belong to default_owner; multiple explicit matches are invalid.
6
+ inventory:
7
+ root: packages/cli/test
8
+ suffix: .test.ts
9
+ default_owner: source
10
+ rules:
11
+ - owner: stress
12
+ path: packages/cli/test/stress/entityStorageStress.test.ts
13
+ - owner: performance
14
+ path: packages/cli/test/performance/analyticsEvidenceTierCap.test.ts
15
+ - owner: performance
16
+ path: packages/cli/test/performance/entityMigrationPreviewCap.test.ts
17
+ - owner: performance
18
+ path: packages/cli/test/performance/entityAuthorityPerformance.test.ts
19
+ evidence_producer: true
20
+ - owner: package
21
+ prefix: packages/cli/test/packaging/
22
+
23
+ # Full-overlap validation accepts this governed YAML byte stream and the owner
24
+ # command's JSON result-file bytes as its only evidence authorities. Parsed
25
+ # objects are internal implementation details: callers cannot supply policy or
26
+ # reporter objects directly. The source proof requires exactly one matching
27
+ # conditional assertion in the declared file and nowhere else in the
28
+ # source-owner inventory.
29
+ overlap:
30
+ max_diagnostic_utf8_bytes: 8192
31
+ allowed_pending_assertion:
32
+ owner: source
33
+ path: packages/cli/test/build/generatedOutputPublication.test.ts
34
+ suite: generated generation publication
35
+ title: reads one real Darwin process identity independently of caller locale and timezone
36
+ status: skipped
37
+ executes_when:
38
+ platform: darwin
39
+
40
+ owners:
41
+ source:
42
+ config: packages/cli/vite.config.ts
43
+ correction: Run `pnpm -C packages/cli test:source`; fix the reported source test or its source setup.
44
+ stress:
45
+ config: packages/cli/vite.config.ts
46
+ correction: Run `pnpm -C packages/cli test:stress`; fix the named stress invariant or its fixture.
47
+ performance:
48
+ config: packages/cli/vite.config.ts
49
+ correction: Run `pnpm -C packages/cli test:performance`; check runner conditions and fix the named budget regression.
50
+ integration:
51
+ path: packages/cli/test/integration/performanceOwner.integration.mjs
52
+ command: [pnpm, run, test:performance:integration]
53
+ evidence:
54
+ schema_version: agentera.entityAuthorityPerformanceEvidence.v1
55
+ authority: references/artifacts/state-storage-authority.yaml#entity_target.measurement_contract
56
+ stdout_format: newline_delimited_json_record_amid_runner_output
57
+ max_utf8_bytes: 65536
58
+ forwarding:
59
+ # Delimiters are invocation syntax and are never forwarded. Every explicit
60
+ # file selection must resolve to exact inventory files and retain this
61
+ # owner's evidence producer.
62
+ safe_options:
63
+ --no-color: none
64
+ --logHeapUsage: none
65
+ --printConsoleTrace: none
66
+ --includeTaskLocation: none
67
+ forbidden_options:
68
+ -t: test-name selection can skip owned evidence
69
+ --testNamePattern: test-name selection can skip owned evidence
70
+ --exclude: file exclusion changes owner suite membership
71
+ --include: file inclusion changes owner suite membership
72
+ --dir: scan-root selection changes owner suite membership
73
+ -r: root configuration can redirect owner discovery
74
+ --root: root configuration can redirect owner discovery
75
+ -c: config selection can replace the owner configuration
76
+ --config: config selection can replace the owner configuration
77
+ --changed: change selection can skip owned evidence
78
+ --shard: sharding can skip owned evidence
79
+ --project: project selection can redirect owner execution
80
+ --tagsFilter: tag selection can skip owned evidence
81
+ --reporter: reporter selection can suppress the evidence line
82
+ --outputFile: output redirection can suppress the evidence line
83
+ --silent: output suppression can hide the evidence line
84
+ --hideSkippedTests: output filtering can hide owner diagnostics
85
+ package:
86
+ config: packages/cli/vite.package.config.ts
87
+ correction: Run `pnpm -C packages/cli verify:package`; fix package construction or the extracted-package assertion.
88
+
89
+ # Deterministic simultaneous-publication and stale-lock recovery evidence remains
90
+ # source-owned. The independent 100-repetition stale-lock race is stress-owned.
91
+ mixed_files: []
92
+ # Production-cap analytics, entity authority, and migration-preview wiring are intentionally
93
+ # separate from proportional source fixtures and run through performance in
94
+ # scheduled/release.
95
+
96
+ policies:
97
+ targeted: [source]
98
+ precommit: [source]
99
+ fast: [source]
100
+ local: [source]
101
+ merge: [source, package]
102
+ scheduled: [source, stress, performance]
103
+ release: [source, stress, performance, package]
104
+
105
+ # Task 1 classified probabilistic stale-lock repetition as scheduled/release
106
+ # evidence after proportional deterministic lock correctness remained in source.
107
+ # Therefore merge receives lock evidence through source, while scheduled also
108
+ # executes the stress owner.
109
+
110
+ # Pre-commit routing chooses release policy for authority and verification
111
+ # surfaces. All other paths retain the existing targeted source routing.
112
+ conservative_routing:
113
+ exact:
114
+ - .lefthook.yml
115
+ - protocol.yaml
116
+ - registry.json
117
+ - packages/cli/package.json
118
+ - packages/cli/vite.config.ts
119
+ - packages/cli/vite.package.config.ts
120
+ - packages/cli/vitest.shared.ts
121
+ - packages/cli/scripts/verify-lane.mjs
122
+ - packages/cli/scripts/performance-evidence.mjs
123
+ - packages/cli/scripts/overlap-pending.mjs
124
+ - packages/cli/test/integration/performanceOwner.integration.mjs
125
+ - packages/cli/scripts/build-package.mjs
126
+ - packages/cli/scripts/generated-output.mjs
127
+ - packages/cli/scripts/copy-bundle.mjs
128
+ - packages/cli/scripts/generate-extract-corpus-parity.mjs
129
+ - packages/cli/scripts/verification-barrier.mjs
130
+ - packages/cli/scripts/verify-generated-overlap.mjs
131
+ - packages/cli/scripts/pack-package.mjs
132
+ - packages/cli/scripts/reject-direct-prepack.mjs
133
+ - packages/cli/test/sourceSetup.ts
134
+ - packages/cli/test/helpers/sourceSubprocess.ts
135
+ - references/analysis/verification-policy.yaml
136
+ - scripts/precommit-vitest.sh
137
+ prefixes:
138
+ - .github/workflows/
139
+ - packages/cli/test/packaging/
140
+ - references/adapters/
141
+ - references/artifacts/
142
+ - skills/
@@ -187,6 +187,27 @@ entity_target:
187
187
  mutation_after_snapshot: cursor_snapshot_unavailable
188
188
  omission: whole_entries_only_with_count_reason_continuation_and_exact_get
189
189
  scalar_truncation: forbidden
190
+ - boundary: progress_summary
191
+ artifact: progress
192
+ independently_mutable: false
193
+ relationships: []
194
+ implementation: implemented
195
+ publication: immutable
196
+ mutation: forbidden
197
+ record:
198
+ required_fields: [summary, migration_provenance]
199
+ required_paths: []
200
+ forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number]
201
+ canonical_metadata:
202
+ summary_migration_provenance:
203
+ path: record.migration_provenance
204
+ required_fields: [source_path, source_record_sha256]
205
+ additional_fields: forbidden
206
+ source_path: project-relative v2 aggregate source path
207
+ sources:
208
+ - path: .agentera/progress.yaml
209
+ collections: [cycles, archive]
210
+ source_row_provenance: entity_target.declared_compacted_summary_contract.source_row_provenance
190
211
  - boundary: decision
191
212
  artifact: decisions
192
213
  independently_mutable: true
@@ -197,6 +218,20 @@ entity_target:
197
218
  required_fields: [date, question, context, alternatives, choice, reasoning, confidence]
198
219
  required_paths: []
199
220
  forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number, satisfaction]
221
+ canonical_metadata:
222
+ migration_provenance:
223
+ applicability: inherited_unsupported_confidence_only
224
+ required_fields: [kind, source, source_path, source_record_sha256, confidence]
225
+ additional_fields: forbidden
226
+ kind: inherited_decision_confidence
227
+ sources: [current_projection, verified_archive]
228
+ semantics: >-
229
+ Cutover persists this envelope-level metadata only when an authority-backed
230
+ complete-record classifier proves that high, medium, or low confidence is
231
+ the source record's sole schema violation. confidence must match the
232
+ canonical record, source_path is project-relative, and source_record_sha256
233
+ binds the complete parsed source record before canonical alias removal.
234
+ Current confidence values and ordinary decision writes omit this metadata.
200
235
  retrieval:
201
236
  exact: agentera state decisions get --id ID --format json
202
237
  list: agentera state decisions list [--limit N] [--cursor TOKEN] --format json
@@ -219,6 +254,28 @@ entity_target:
219
254
  required_fields: [decision, state]
220
255
  required_paths: []
221
256
  forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number]
257
+ - boundary: decision_summary
258
+ artifact: decisions
259
+ independently_mutable: false
260
+ relationships: []
261
+ implementation: implemented
262
+ publication: immutable
263
+ mutation: forbidden
264
+ record:
265
+ required_fields: [summary, migration_provenance]
266
+ required_paths: []
267
+ forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number]
268
+ canonical_metadata:
269
+ summary_migration_provenance:
270
+ path: record.migration_provenance
271
+ required_fields: [source_path, source_record_sha256]
272
+ additional_fields: forbidden
273
+ source_path: project-relative v2 aggregate source path
274
+ sources:
275
+ - path: .agentera/decisions.yaml
276
+ collections: [decisions, archive]
277
+ source_row_provenance: entity_target.declared_compacted_summary_contract.source_row_provenance
278
+ satisfaction: optional_inline_read_only_source_retained_field
222
279
  - boundary: decision_revision
223
280
  artifact: decisions
224
281
  independently_mutable: true
@@ -254,8 +311,29 @@ entity_target:
254
311
  scalar_truncation: forbidden
255
312
  repair: >-
256
313
  Canonical health audit entities are immutable and cannot be row-deduplicated.
257
- Malformed envelopes, duplicate IDs, or conflicting ownership fail before effects
258
- and recover through agentera check validate state; no repair event is fabricated.
314
+ Malformed envelopes, duplicate IDs, or conflicting ownership fail before effects
315
+ and recover through agentera check validate state; no repair event is fabricated.
316
+ - boundary: health_summary
317
+ artifact: health
318
+ independently_mutable: false
319
+ relationships: []
320
+ implementation: implemented
321
+ publication: immutable
322
+ mutation: forbidden
323
+ record:
324
+ required_fields: [summary, migration_provenance]
325
+ required_paths: []
326
+ forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number]
327
+ canonical_metadata:
328
+ summary_migration_provenance:
329
+ path: record.migration_provenance
330
+ required_fields: [source_path, source_record_sha256]
331
+ additional_fields: forbidden
332
+ source_path: project-relative v2 aggregate source path
333
+ sources:
334
+ - path: .agentera/health.yaml
335
+ collections: [audits, archive]
336
+ source_row_provenance: entity_target.declared_compacted_summary_contract.source_row_provenance
259
337
  - boundary: plan
260
338
  artifact: plan
261
339
  independently_mutable: true
@@ -298,7 +376,7 @@ entity_target:
298
376
  - boundary: plan_task
299
377
  artifact: plan
300
378
  independently_mutable: true
301
- relationships: [plan, depends_on_tasks]
379
+ relationships: [plan, depends_on_tasks, superseded_by]
302
380
  implementation: implemented
303
381
  publication: replace_owned_entity
304
382
  record:
@@ -414,6 +492,10 @@ entity_target:
414
492
  field: depends_on
415
493
  target: plan_task
416
494
  cardinality: zero_or_many_same_plan
495
+ - source: plan_task
496
+ field: superseded_by
497
+ target: plan_task
498
+ cardinality: zero_or_many_same_plan
417
499
  - source: experiment
418
500
  field: objective
419
501
  target: objective
@@ -449,13 +531,195 @@ entity_target:
449
531
  - all intentional_singletons
450
532
  - immutable historical prose and evidence, except structured references explicitly declared for rewrite
451
533
  - genuinely singleton editorial artifacts added by an authority amendment
534
+ declared_compacted_summary_contract:
535
+ status: implemented
536
+ activation: >-
537
+ The three summary boundaries are active entity and migration authority in
538
+ entity_target.entities. Ordinary summary readers and startup projection
539
+ expose retained degraded history without reconstructing missing detail.
540
+ runtime_boundary_source: entity_target.entities
541
+ runtime_exclusion: >-
542
+ No experiment_summary boundary is activated. Summary boundaries are
543
+ immutable/read-only and are not ordinary write targets.
544
+ source_scope:
545
+ included_artifacts: [progress, decisions, health]
546
+ excluded_artifacts:
547
+ - objective_experiments: protected v2 family; not a compacted-summary migration input
548
+ - runtime_local_session_state: runtime-local state is outside canonical project migration
549
+ - compacted_todo_rows: already satisfy the canonical TODO shape and are not remapped as summaries
550
+ authority_rule: >-
551
+ This implemented scope does not reconstruct Git history, normalize source
552
+ summaries, retain dual authority, or provide a repair or import command.
553
+ source_row_provenance:
554
+ semantic_id: v2_compacted_summary_physical_row.v1
555
+ status: implemented
556
+ accepted_parsed_row_values: [mapping, scalar_string]
557
+ normalization: >-
558
+ Preview normalizes either accepted parsed physical row value to canonical
559
+ retained summary content for matching and publication. A mapping retains
560
+ its source fields subject to canonical alias removal and declared metadata
561
+ injection; a scalar string becomes {summary: value}.
562
+ source_record_sha256:
563
+ format: lowercase_sha256_hex
564
+ input: >-
565
+ original parsed physical source row value, which may be a mapping or a
566
+ scalar string, before summary normalization, canonical alias removal, or
567
+ metadata injection
568
+ canonicalization: >-
569
+ SHA-256 of UTF-8 canonical JSON: recursively sort mapping keys, preserve
570
+ array order, serialize scalar strings with JSON.stringify, and emit no
571
+ insignificant whitespace.
572
+ diagnostics:
573
+ status: implemented
574
+ implementation: >-
575
+ Read-only migration preview classifies independent invalid source
576
+ identities as roots, then reports generated graph dependents separately.
577
+ Ordinary summary reads and startup do not expose these migration-only
578
+ fields.
579
+ counts:
580
+ blockers: total root_blockers plus dependent_blockers
581
+ root_blockers: independently invalid, ambiguous, conflicting, or unsupported source identities
582
+ dependent_blockers: >-
583
+ Downstream diagnostics caused by a named root blocker. Each dependent names
584
+ its root source identity and does not increase root corruption.
585
+ dependent_blocker_required_fields: [root_source_identity]
586
+ corruption_count: corrupt classification counts source roots only, never generated dependents
587
+ graph: >-
588
+ A resolved relationship to a root (including a chain) is a dependent
589
+ blocker. Missing references make their owning source a root. Cycles with
590
+ no source root choose their lexicographically first source identity as a
591
+ deterministic corrupt root; preview does not attempt graph recovery.
592
+ source_outcomes:
593
+ status: implemented
594
+ valid_compacted_summary:
595
+ outcome: ready_with_degraded_provenance
596
+ rule: >-
597
+ Map each valid supported v2 summary to its declared immutable summary
598
+ boundary, retain source fields and migration provenance, and never
599
+ reconstruct missing detail.
600
+ missing_detail_not_declared_summary:
601
+ outcome: blocked
602
+ rule: retain evidence and stop before publication; never infer omitted fields
603
+ inherited_confidence_only:
604
+ outcome: ready_with_legacy_caveat
605
+ rule: >-
606
+ Preserve an inherited full-decision high, medium, or low label exactly and
607
+ report its caveat. Only new or amended labels must use the current strict
608
+ vocabulary.
609
+ boundaries:
610
+ - boundary: progress_summary
611
+ artifact: progress
612
+ independently_mutable: false
613
+ implementation: implemented
614
+ publication: immutable
615
+ mutation: forbidden
616
+ canonical_representation: one_immutable_degraded_summary_entity_per_valid_v2_summary
617
+ relationships: []
618
+ record:
619
+ required_fields: [summary, migration_provenance]
620
+ additional_fields: source_retained_fields_plus_declared_metadata
621
+ declared_metadata_fields: [migration_provenance]
622
+ source_retained_fields: >-
623
+ Preserve every source-retained field in the canonical record except
624
+ public_schema.forbidden_canonical_aliases. migration_provenance is
625
+ declared canonical metadata, not a retained source field. Missing
626
+ full-detail fields remain absent; migration does not normalize or
627
+ reconstruct them.
628
+ forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number]
629
+ migration_provenance:
630
+ path: record.migration_provenance
631
+ required_fields: [source_path, source_record_sha256]
632
+ additional_fields: forbidden
633
+ source_path: project-relative v2 aggregate source path
634
+ source_row_provenance: entity_target.declared_compacted_summary_contract.source_row_provenance
635
+ retrieval:
636
+ exact: agentera state progress get --id ID --format json
637
+ list: agentera state progress list [--limit N] [--cursor TOKEN] --format json
638
+ detail_availability: summary
639
+ compatibility: degraded
640
+ caveats: required
641
+ ordering: full_timestamp_desc_then_id_asc_then_summary_id_asc
642
+ summary_ordering: canonical_id_asc_without_chronology_claim
643
+ mutation: read_only
644
+ - boundary: decision_summary
645
+ artifact: decisions
646
+ independently_mutable: false
647
+ implementation: implemented
648
+ publication: immutable
649
+ mutation: forbidden
650
+ canonical_representation: one_immutable_degraded_summary_entity_per_valid_v2_summary
651
+ relationships: []
652
+ record:
653
+ required_fields: [summary, migration_provenance]
654
+ additional_fields: source_retained_fields_plus_declared_metadata
655
+ declared_metadata_fields: [migration_provenance]
656
+ source_retained_fields: >-
657
+ Preserve every source-retained field in the canonical record except
658
+ public_schema.forbidden_canonical_aliases. migration_provenance is
659
+ declared canonical metadata, not a retained source field. Missing
660
+ full-detail fields remain absent; migration does not normalize or
661
+ reconstruct them.
662
+ forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number]
663
+ satisfaction: optional_inline_read_only_source_retained_field
664
+ satisfaction_rule: >-
665
+ Satisfaction may be absent. When retained, it remains inline and read-only;
666
+ a decision summary never creates or targets a decision_satisfaction entity.
667
+ migration_provenance:
668
+ path: record.migration_provenance
669
+ required_fields: [source_path, source_record_sha256]
670
+ additional_fields: forbidden
671
+ source_path: project-relative v2 aggregate source path
672
+ source_row_provenance: entity_target.declared_compacted_summary_contract.source_row_provenance
673
+ retrieval:
674
+ exact: agentera state decisions get --id ID --format json
675
+ list: agentera state decisions list [--limit N] [--cursor TOKEN] --format json
676
+ detail_availability: summary
677
+ compatibility: degraded
678
+ caveats: required
679
+ ordering: full_date_desc_then_id_asc_then_summary_id_asc
680
+ summary_ordering: canonical_id_asc_without_chronology_claim
681
+ mutation: read_only
682
+ - boundary: health_summary
683
+ artifact: health
684
+ independently_mutable: false
685
+ implementation: implemented
686
+ publication: immutable
687
+ mutation: forbidden
688
+ canonical_representation: one_immutable_degraded_summary_entity_per_valid_v2_summary
689
+ relationships: []
690
+ record:
691
+ required_fields: [summary, migration_provenance]
692
+ additional_fields: source_retained_fields_plus_declared_metadata
693
+ declared_metadata_fields: [migration_provenance]
694
+ source_retained_fields: >-
695
+ Preserve every source-retained field in the canonical record except
696
+ public_schema.forbidden_canonical_aliases. migration_provenance is
697
+ declared canonical metadata, not a retained source field. Missing
698
+ full-detail fields remain absent; migration does not normalize or
699
+ reconstruct them.
700
+ forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number]
701
+ migration_provenance:
702
+ path: record.migration_provenance
703
+ required_fields: [source_path, source_record_sha256]
704
+ additional_fields: forbidden
705
+ source_path: project-relative v2 aggregate source path
706
+ source_row_provenance: entity_target.declared_compacted_summary_contract.source_row_provenance
707
+ retrieval:
708
+ exact: agentera state health get --id ID --format json
709
+ list: agentera state health list [--limit N] [--cursor TOKEN] --format json
710
+ detail_availability: summary
711
+ compatibility: degraded
712
+ caveats: required
713
+ ordering: full_date_desc_then_id_asc_then_summary_id_asc
714
+ summary_ordering: canonical_id_asc_without_chronology_claim
715
+ mutation: read_only
452
716
  measurement_contract:
453
717
  status: implemented
454
718
  environment: Linux, Node.js 22 or newer, one cold CLI process per sample
455
719
  fixtures:
456
- small: 100 valid entities distributed across every declared entity boundary
457
- large: 1000 valid entities distributed across every declared entity boundary
458
- relationship_rule: every declared relationship has at least one valid fixture edge
720
+ small: 100 valid entities distributed across every active entity_target.entities boundary
721
+ large: 1000 valid entities distributed across every active entity_target.entities boundary
722
+ relationship_rule: every active entity_target.relationships declaration has at least one valid fixture edge
459
723
  sampling:
460
724
  repetitions: 5
461
725
  pass_rule: every repetition stays within every applicable limit
@@ -590,7 +854,7 @@ entity_migration:
590
854
  .agentera/archive/recovery/projection-correlation.yaml recovery set by
591
855
  identity, archive bytes, final record SHA-256, parent/child Git proof or
592
856
  legacy converter/source proof, current projection bytes, and overlay.
593
- Missing, changed, new, replaced, or unlisted recovery evidence blocks.
857
+ Missing, changed, new, replaced, or unlisted recovery evidence blocks.
594
858
  internal_migration_diagnostic: true
595
859
  read_only_preview:
596
860
  implementation: implemented
@@ -656,6 +920,9 @@ entity_migration:
656
920
  mirrors: excess canonical-identical physical records grouped under one logical identity
657
921
  duplicates: excess divergent physical records claiming one logical identity
658
922
  conflicts: logical identities with divergent candidates plus proposed-target collisions
923
+ root_blockers: independently invalid source identities, counted once per source identity
924
+ dependent_blockers: generated relationship-to-root diagnostics, each carrying root_source_identity
925
+ blockers: root_blockers plus dependent_blockers
659
926
  zero_write: >-
660
927
  Inventory, preview, malformed-input handling, and source-binding checks
661
928
  open no writer or upgrade lock and create no directory, temporary file,
@@ -674,7 +941,10 @@ entity_migration:
674
941
  degraded_recoverable:
675
942
  outcome: ready_with_provenance
676
943
  rule: admit only independently validated full detail and record its recovery provenance
677
- summary_only_or_missing_detail:
944
+ valid_compacted_summary:
945
+ outcome: ready_with_degraded_provenance
946
+ rule: preserve retained summary fields and source-record provenance without reconstructing omitted detail
947
+ missing_detail_not_declared_summary:
678
948
  outcome: blocked
679
949
  rule: retain evidence and stop before publication; never reconstruct omitted fields
680
950
  ambiguous_or_duplicate_identity:
@@ -764,12 +1034,14 @@ retrieval:
764
1034
  plan_tasks: implemented
765
1035
  plans: implemented
766
1036
  experiments: implemented
1037
+ progress: implemented
1038
+ decisions: implemented
1039
+ health: implemented
767
1040
  authority_boundary: >-
768
1041
  This group owns public list/get envelopes, cursors, selectors, identities,
769
1042
  omissions, and structured retrieval failures. It does not replace storage
770
- ownership: numbered archives remain authoritative for progress, decisions,
771
- and health; immutable plan files remain authoritative for plan history; and
772
- objective directories remain authoritative for experiments.
1043
+ ownership: canonical entity files remain authoritative after the durable
1044
+ cutover marker; retained v2 aggregates are immutable migration evidence only.
773
1045
  envelope:
774
1046
  schema_version: agentera.stateRetrieval.v1
775
1047
  required_fields:
@@ -784,12 +1056,28 @@ retrieval:
784
1056
  - source
785
1057
  - source_contract
786
1058
  entry_required_fields:
787
- - stable_id
788
- - addressable
1059
+ - id
1060
+ - artifact
1061
+ - boundary
789
1062
  - detail_availability
790
1063
  - compatibility
791
1064
  - provenance
792
1065
  - retrieval
1066
+ summary_boundary_entries:
1067
+ visibility: >-
1068
+ Progress, decision, and health list/get reads include both the full
1069
+ boundary and its corresponding immutable summary boundary under the
1070
+ same artifact vocabulary.
1071
+ full: { detail_availability: full, compatibility: current }
1072
+ summary:
1073
+ detail_availability: summary
1074
+ compatibility: degraded
1075
+ required_fields: [boundary, caveats, record.migration_provenance]
1076
+ provenance: record_level_summary_migration_provenance
1077
+ mutation: immutable_read_only
1078
+ ordering: >-
1079
+ Summary rows without a full-record temporal sort field sort after
1080
+ timestamped or dated full rows and then by canonical ID ascending.
793
1081
  counts_required_fields: [total, returned, remaining, omitted]
794
1082
  status_values: [ok, degraded]
795
1083
  cursor:
@@ -1837,7 +2125,8 @@ budgets:
1837
2125
  # to routing-essential leaves plus named recovery pointers for omitted
1838
2126
  # rich state. Pretty UTF-8 JSON + trailing newline is measured and an
1839
2127
  # over-budget brief is rejected in favor of a bounded degraded envelope;
1840
- # diagnostics stay on stderr. prime_dashboard keeps full fidelity.
2128
+ # diagnostics stay on stderr. prime_dashboard keeps full current state
2129
+ # while omitting duplicated ordinary history entries with recovery.
1841
2130
  max_utf8_bytes: 12000
1842
2131
  prime_dashboard:
1843
2132
  manifest_id: prime-dashboard
@@ -111,9 +111,9 @@ against D80 plus this reference doc.
111
111
  |---|---|---|---|---|---|---|---|
112
112
  | ⌂ status | Linear | 10,389 | Yes | Yes | Yes | None | Complete (D79) |
113
113
  | ⛥ vision | Mode-split | 16,667 | Yes | Yes | Yes | Has vision.yaml shape subsection; shared pre-write self-audit hoist (DRY between Create and Refine modes) | Complete (D81) |
114
- | ❈ discuss | Loop | 12,045 | Yes | Yes | Yes | Has decisions.yaml shape subsection; Getting started folded into §6; loop shape named "The deliberation loop" (§3); fog-aware readiness check at Done; steering rules (breadth-first, ask-user-to-sketch); schema files use artifact-id labels not canonical filenames | Complete (D82) |
114
+ | ❈ discuss | Loop | 12,045 | Yes | Yes | Yes | Has decisions.yaml shape subsection; Getting started folded into §6; loop shape named "The deliberation loop" (§3); readiness check names unclear or unverified items at Done; steering rules (breadth-first, ask-user-to-sketch); schema files use artifact-id labels not canonical filenames | Complete (D82) |
115
115
  | ⬚ research | Linear | 12,484 | Yes | Yes | Yes | Has deliverable template; has transferable concepts checkpoint between source reading and target exploration; runtime-agnostic tool references | Complete (D83) |
116
- | ≡ plan | Mode-split | 14,515 | Yes | Yes | Yes | Has skip/light/full modes; `unknowns:` and `rejected:` full-plan fields; `How build reads PLAN.md` removed (artifact read contract declared in §2 only); fog-check at handoff; replan trigger qualitative (surprises on one task alter downstream acceptance); Getting started folded into §6; YAML formats reordered intent-first | Complete (D84) |
116
+ | ≡ plan | Mode-split | 14,515 | Yes | Yes | Yes | Has skip/light/full modes; `unknowns:` and `rejected:` full-plan fields; `How build reads PLAN.md` removed (artifact read contract declared in §2 only); unknowns check at handoff; replan trigger qualitative (surprises on one task alter downstream acceptance); Getting started folded into §6; YAML formats reordered intent-first | Complete (D84) |
117
117
  | ⧉ build | Cycle | 15,081 | Yes | Yes | Yes | Has Handling blocked work; vision bootstrap folded into Workflow phases; brainstorm cut to minimal fallback; subagent spawning table cut to brief pointer; self-audit folded into Log (8 steps); plan unknowns consumption; cycle boundary stated once; `/loop` replaced with explicit user request | Complete (D85) |
118
118
  | ⎘ optimize | Cycle | 20,622 | Yes | Yes | Yes | Has Handling blocked experiments; self-audit folded into Log (7 steps); subagent spawning table compressed (D85 propagation); benchmark context lean seam; experiments.yaml has context block; brainstorm stripped to 4 questions | Complete (D86) |
119
119
  | ⛶ audit | Linear | 18,401 | Yes | Yes | Yes | Has finding taxonomy plus health.yaml shape; has 3 agentera-specific dimension mechanics (Version health, Artifact freshness, Prose health); Getting started folded into §6; self-audit folded into Report (7→6 steps); subagent spawning compressed to brief pointer; evidence_context startup delegation (bespoke); decision satisfaction authority rule in Safety rails | Complete (D87) |