agentera 3.0.0-dev.39 → 3.0.0-dev.41

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 (428) hide show
  1. package/README.md +1 -1
  2. package/bundle/CHANGELOG.md +55 -8
  3. package/bundle/README.md +3 -3
  4. package/bundle/references/artifacts/glossary-entry-contract.yaml +18 -5
  5. package/bundle/references/artifacts/state-storage-authority.yaml +865 -171
  6. package/bundle/references/cli/agent-ready-state-contract.yaml +12 -12
  7. package/bundle/references/cli/audience-namespace-cli-migration.yaml +5 -5
  8. package/bundle/references/cli/prime-consumer-compatibility.yaml +58 -18
  9. package/bundle/references/cli/vocabulary-index.yaml +1 -1
  10. package/bundle/references/cli/vocabulary.md +4 -3
  11. package/bundle/skills/agentera/SKILL.md +23 -4
  12. package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +3 -3
  13. package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +3 -1
  14. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +2 -1
  15. package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +3 -1
  16. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +2 -2
  17. package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +3 -1
  18. package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +3 -1
  19. package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +2 -1
  20. package/bundle/skills/agentera/capability_schema_contract.yaml +1 -1
  21. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +89 -30
  22. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +103 -20
  23. package/dist/analytics/extractCorpus/cli.js.map +1 -1
  24. package/dist/analytics/extractCorpus/copilotSessions.js.map +1 -1
  25. package/dist/analytics/extractCorpus/core.js.map +1 -1
  26. package/dist/analytics/extractCorpus/corpus.js.map +1 -1
  27. package/dist/analytics/extractCorpus/coverageAudit.js.map +1 -1
  28. package/dist/analytics/extractCorpus/cursorSessions.js.map +1 -1
  29. package/dist/analytics/extractCorpus/evidenceTiers.js.map +1 -1
  30. package/dist/analytics/extractCorpus/extractCorpusParity.js.map +1 -1
  31. package/dist/analytics/extractCorpus/filesystemSources.js.map +1 -1
  32. package/dist/analytics/extractCorpus/index.js.map +1 -1
  33. package/dist/analytics/extractCorpus/jsonlSessions.js.map +1 -1
  34. package/dist/analytics/extractCorpus/sqliteCaps.js.map +1 -1
  35. package/dist/analytics/extractCorpus/sqliteSessions.js.map +1 -1
  36. package/dist/analytics/extractCorpus/tierReader.js.map +1 -1
  37. package/dist/analytics/extractCorpus.js.map +1 -1
  38. package/dist/analytics/glossaryAdviceResolution.js.map +1 -1
  39. package/dist/analytics/glossaryInputAcquisition.js.map +1 -1
  40. package/dist/analytics/personalGlossaryAdmission.js.map +1 -1
  41. package/dist/analytics/personalGlossaryProfile.js +2 -1
  42. package/dist/analytics/personalGlossaryProfile.js.map +1 -1
  43. package/dist/analytics/profileSignals.js.map +1 -1
  44. package/dist/analytics/usageStats.js.map +1 -1
  45. package/dist/audit/terminologyDrift.js.map +1 -1
  46. package/dist/bin/agentera.js.map +1 -1
  47. package/dist/capabilities/audit/instructions.js.map +1 -1
  48. package/dist/capabilities/build/instructions.js +2 -2
  49. package/dist/capabilities/build/instructions.js.map +1 -1
  50. package/dist/capabilities/design/instructions.js.map +1 -1
  51. package/dist/capabilities/discuss/instructions.js +2 -1
  52. package/dist/capabilities/discuss/instructions.js.map +1 -1
  53. package/dist/capabilities/document/instructions.js.map +1 -1
  54. package/dist/capabilities/index.js +1 -1
  55. package/dist/capabilities/index.js.map +1 -1
  56. package/dist/capabilities/optimize/instructions.js +1 -0
  57. package/dist/capabilities/optimize/instructions.js.map +1 -1
  58. package/dist/capabilities/orchestrate/instructions.js.map +1 -1
  59. package/dist/capabilities/plan/instructions.js +3 -2
  60. package/dist/capabilities/plan/instructions.js.map +1 -1
  61. package/dist/capabilities/profile/instructions.js.map +1 -1
  62. package/dist/capabilities/research/instructions.js.map +1 -1
  63. package/dist/capabilities/status/instructions.js +8 -1
  64. package/dist/capabilities/status/instructions.js.map +1 -1
  65. package/dist/capabilities/status/startupInstructions.js.map +1 -1
  66. package/dist/capabilities/vision/instructions.js.map +1 -1
  67. package/dist/cli/appContext.js.map +1 -1
  68. package/dist/cli/argvalidate.js.map +1 -1
  69. package/dist/cli/capabilityContext/benchmark.js +2 -1
  70. package/dist/cli/capabilityContext/benchmark.js.map +1 -1
  71. package/dist/cli/capabilityContext/bespoke.js.map +1 -1
  72. package/dist/cli/capabilityContext/build.js +6 -6
  73. package/dist/cli/capabilityContext/build.js.map +1 -1
  74. package/dist/cli/capabilityContext/closeout.js +11 -7
  75. package/dist/cli/capabilityContext/closeout.js.map +1 -1
  76. package/dist/cli/capabilityContext/contract.js +4 -4
  77. package/dist/cli/capabilityContext/contract.js.map +1 -1
  78. package/dist/cli/capabilityContext/evidence.js +4 -4
  79. package/dist/cli/capabilityContext/evidence.js.map +1 -1
  80. package/dist/cli/capabilityContext/index.js.map +1 -1
  81. package/dist/cli/capabilityContext/orchestration.js +12 -7
  82. package/dist/cli/capabilityContext/orchestration.js.map +1 -1
  83. package/dist/cli/capabilityContext/planState.js.map +1 -1
  84. package/dist/cli/capabilityContext/progress.js.map +1 -1
  85. package/dist/cli/capabilityContext/projectVerification.js.map +1 -1
  86. package/dist/cli/capabilityContext/shared.js +2 -2
  87. package/dist/cli/capabilityContext/shared.js.map +1 -1
  88. package/dist/cli/capabilityContext/slim.js.map +1 -1
  89. package/dist/cli/capabilityContext/startup.js +6 -2
  90. package/dist/cli/capabilityContext/startup.js.map +1 -1
  91. package/dist/cli/capabilityContext/types.js +19 -14
  92. package/dist/cli/capabilityContext/types.js.map +1 -1
  93. package/dist/cli/capabilityContext.js.map +1 -1
  94. package/dist/cli/commands/appHome.js.map +1 -1
  95. package/dist/cli/commands/capability.js.map +1 -1
  96. package/dist/cli/commands/compact.js.map +1 -1
  97. package/dist/cli/commands/doctor.js.map +1 -1
  98. package/dist/cli/commands/durability.js.map +1 -1
  99. package/dist/cli/commands/entityMigrate.js.map +1 -1
  100. package/dist/cli/commands/glossaryAdvice.js.map +1 -1
  101. package/dist/cli/commands/lint.js.map +1 -1
  102. package/dist/cli/commands/personalGlossary.js.map +1 -1
  103. package/dist/cli/commands/prime/briefOrientation.js +260 -44
  104. package/dist/cli/commands/prime/briefOrientation.js.map +1 -1
  105. package/dist/cli/commands/prime/buildExecutionRequest.js.map +1 -1
  106. package/dist/cli/commands/prime/bundleStatus.js.map +1 -1
  107. package/dist/cli/commands/prime/collectEntityOrientation.js +22 -13
  108. package/dist/cli/commands/prime/collectEntityOrientation.js.map +1 -1
  109. package/dist/cli/commands/prime/collectOrientationState.js +20 -28
  110. package/dist/cli/commands/prime/collectOrientationState.js.map +1 -1
  111. package/dist/cli/commands/prime/orientationOutput.js +4 -5
  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 +1 -1
  116. package/dist/cli/commands/prime.js.map +1 -1
  117. package/dist/cli/commands/profileGrounding.js +29 -50
  118. package/dist/cli/commands/profileGrounding.js.map +1 -1
  119. package/dist/cli/commands/query.js.map +1 -1
  120. package/dist/cli/commands/report.js.map +1 -1
  121. package/dist/cli/commands/route.js.map +1 -1
  122. package/dist/cli/commands/schema.js +4 -43
  123. package/dist/cli/commands/schema.js.map +1 -1
  124. package/dist/cli/commands/state/decisions.js +1 -1
  125. package/dist/cli/commands/state/decisions.js.map +1 -1
  126. package/dist/cli/commands/state/docs.js.map +1 -1
  127. package/dist/cli/commands/state/experimentRecords.js +28 -15
  128. package/dist/cli/commands/state/experimentRecords.js.map +1 -1
  129. package/dist/cli/commands/state/experiments.js.map +1 -1
  130. package/dist/cli/commands/state/get.js +6 -3
  131. package/dist/cli/commands/state/get.js.map +1 -1
  132. package/dist/cli/commands/state/health.js.map +1 -1
  133. package/dist/cli/commands/state/index.js +3 -46
  134. package/dist/cli/commands/state/index.js.map +1 -1
  135. package/dist/cli/commands/state/list.js +41 -22
  136. package/dist/cli/commands/state/list.js.map +1 -1
  137. package/dist/cli/commands/state/objective.js.map +1 -1
  138. package/dist/cli/commands/state/plan.js.map +1 -1
  139. package/dist/cli/commands/state/planTasks.js +26 -13
  140. package/dist/cli/commands/state/planTasks.js.map +1 -1
  141. package/dist/cli/commands/state/plans.js +31 -19
  142. package/dist/cli/commands/state/plans.js.map +1 -1
  143. package/dist/cli/commands/state/progress.js.map +1 -1
  144. package/dist/cli/commands/state/shared.js.map +1 -1
  145. package/dist/cli/commands/state/todo.js +2 -1
  146. package/dist/cli/commands/state/todo.js.map +1 -1
  147. package/dist/cli/commands/state/write.js +52 -48
  148. package/dist/cli/commands/state/write.js.map +1 -1
  149. package/dist/cli/commands/upgrade.js.map +1 -1
  150. package/dist/cli/commands/upgradeVerify.js.map +1 -1
  151. package/dist/cli/commands/validate.js +44 -4
  152. package/dist/cli/commands/validate.js.map +1 -1
  153. package/dist/cli/commands/verify.js.map +1 -1
  154. package/dist/cli/contracts/bundleStatus.js.map +1 -1
  155. package/dist/cli/contracts/orientationState.js.map +1 -1
  156. package/dist/cli/dispatch/argvParser.js.map +1 -1
  157. package/dist/cli/dispatch/check.js.map +1 -1
  158. package/dist/cli/dispatch/commands.js.map +1 -1
  159. package/dist/cli/dispatch/index.js +12 -4
  160. package/dist/cli/dispatch/index.js.map +1 -1
  161. package/dist/cli/dispatch/lifecycle.js.map +1 -1
  162. package/dist/cli/dispatch/prime.js.map +1 -1
  163. package/dist/cli/dispatch/shared.js.map +1 -1
  164. package/dist/cli/dispatch/state.js +53 -86
  165. package/dist/cli/dispatch/state.js.map +1 -1
  166. package/dist/cli/dispatch.js.map +1 -1
  167. package/dist/cli/errors.js.map +1 -1
  168. package/dist/cli/help.js +134 -48
  169. package/dist/cli/help.js.map +1 -1
  170. package/dist/cli/migrationRequired.js.map +1 -1
  171. package/dist/cli/orientation/attention.js +8 -5
  172. package/dist/cli/orientation/attention.js.map +1 -1
  173. package/dist/cli/orientation/corpusCoverage.js.map +1 -1
  174. package/dist/cli/orientation.js +61 -38
  175. package/dist/cli/orientation.js.map +1 -1
  176. package/dist/cli/planArtifacts.js.map +1 -1
  177. package/dist/cli/planEvidence.js.map +1 -1
  178. package/dist/cli/planLifecycleState.js +3 -1
  179. package/dist/cli/planLifecycleState.js.map +1 -1
  180. package/dist/cli/planTaskIndex.js.map +1 -1
  181. package/dist/cli/prime-blob.js +2 -1
  182. package/dist/cli/prime-blob.js.map +1 -1
  183. package/dist/cli/profileAcquisition.js +168 -0
  184. package/dist/cli/profileAcquisition.js.map +1 -0
  185. package/dist/cli/startupCompletenessContract.js +5 -2
  186. package/dist/cli/startupCompletenessContract.js.map +1 -1
  187. package/dist/cli/stateQuery.js.map +1 -1
  188. package/dist/cli/structured.js.map +1 -1
  189. package/dist/cli/todoMarkdown.js +25 -11
  190. package/dist/cli/todoMarkdown.js.map +1 -1
  191. package/dist/cli/todoReadinessSelection.js +52 -17
  192. package/dist/cli/todoReadinessSelection.js.map +1 -1
  193. package/dist/cli/todoSeverity.js.map +1 -1
  194. package/dist/core/atomicWriter.js.map +1 -1
  195. package/dist/core/difflib.js.map +1 -1
  196. package/dist/core/envPaths.js.map +1 -1
  197. package/dist/core/jsonValue.js.map +1 -1
  198. package/dist/core/paths.js.map +1 -1
  199. package/dist/core/pyjson.js.map +1 -1
  200. package/dist/core/shell.js +5 -0
  201. package/dist/core/shell.js.map +1 -0
  202. package/dist/core/skillIdentity.js.map +1 -1
  203. package/dist/core/sourceRoot.js.map +1 -1
  204. package/dist/core/text.js.map +1 -1
  205. package/dist/core/toml.js.map +1 -1
  206. package/dist/core/yaml.js.map +1 -1
  207. package/dist/eval/evalSkills.js.map +1 -1
  208. package/dist/eval/hybridRouteEvaluation.js.map +1 -1
  209. package/dist/eval/semanticEval.js.map +1 -1
  210. package/dist/eval/semanticFixtures.js.map +1 -1
  211. package/dist/hooks/common.js.map +1 -1
  212. package/dist/hooks/compaction/apply.js.map +1 -1
  213. package/dist/hooks/compaction/dryRun.js.map +1 -1
  214. package/dist/hooks/compaction/index.js.map +1 -1
  215. package/dist/hooks/compaction/parse.js.map +1 -1
  216. package/dist/hooks/compaction/retention.js.map +1 -1
  217. package/dist/hooks/compaction/status.js.map +1 -1
  218. package/dist/hooks/compaction/types.js.map +1 -1
  219. package/dist/hooks/cursorPreToolUse.js.map +1 -1
  220. package/dist/hooks/cursorSessionStart.js.map +1 -1
  221. package/dist/hooks/projectHookInput.js.map +1 -1
  222. package/dist/hooks/sessionStart.js.map +1 -1
  223. package/dist/hooks/sessionStop.js.map +1 -1
  224. package/dist/hooks/validateArtifact/agentFacing.js.map +1 -1
  225. package/dist/hooks/validateArtifact/index.js.map +1 -1
  226. package/dist/hooks/validateArtifact/markdown.js.map +1 -1
  227. package/dist/hooks/validateArtifact/runtime.js.map +1 -1
  228. package/dist/hooks/validateArtifact/schema.js +6 -0
  229. package/dist/hooks/validateArtifact/schema.js.map +1 -1
  230. package/dist/hooks/validateArtifact/traversal.js.map +1 -1
  231. package/dist/hooks/validateArtifact/violations.js.map +1 -1
  232. package/dist/migrate/v2HandoffManifest.js.map +1 -1
  233. package/dist/registries/artifactProtocolIds.js.map +1 -1
  234. package/dist/registries/artifactRegistry.js.map +1 -1
  235. package/dist/registries/artifactSchemaProjection.js +46 -0
  236. package/dist/registries/artifactSchemaProjection.js.map +1 -0
  237. package/dist/registries/capabilityContract.js.map +1 -1
  238. package/dist/registries/evaluatorHandoffContract.js.map +1 -1
  239. package/dist/registries/evidenceTierContract.js.map +1 -1
  240. package/dist/registries/glossaryAdviceContract.js.map +1 -1
  241. package/dist/registries/glossaryCaveatContract.js.map +1 -1
  242. package/dist/registries/glossaryConsumerContractValidation.js +1 -5
  243. package/dist/registries/glossaryConsumerContractValidation.js.map +1 -1
  244. package/dist/registries/glossaryEntryContract.js +10 -0
  245. package/dist/registries/glossaryEntryContract.js.map +1 -1
  246. package/dist/registries/glossaryTermIdentity.js.map +1 -1
  247. package/dist/registries/glossaryTermOccurrence.js.map +1 -1
  248. package/dist/registries/hybridRoute.js.map +1 -1
  249. package/dist/registries/hybridRouteReceipt.js.map +1 -1
  250. package/dist/registries/packageRegistry.js.map +1 -1
  251. package/dist/registries/todoReadinessContract.js +49 -6
  252. package/dist/registries/todoReadinessContract.js.map +1 -1
  253. package/dist/registries/triggerLoader.js.map +1 -1
  254. package/dist/registries/verbosityBudgetContract.js.map +1 -1
  255. package/dist/release/releaseMetadata.js.map +1 -1
  256. package/dist/runtime/lifecycleAdapterContract.js.map +1 -1
  257. package/dist/runtime/lifecycleAdapters.js.map +1 -1
  258. package/dist/runtime/lifecycleAuthority.js.map +1 -1
  259. package/dist/runtime/lifecycleOperationContract.js.map +1 -1
  260. package/dist/runtime/lifecycleOperations.js.map +1 -1
  261. package/dist/runtime/lifecycleOwnershipJournal.js.map +1 -1
  262. package/dist/runtime/lifecyclePublication.js.map +1 -1
  263. package/dist/runtime/lifecycleSnapshot.js.map +1 -1
  264. package/dist/runtime/nativeResourceCleanup.js.map +1 -1
  265. package/dist/setup/codex/cli.js.map +1 -1
  266. package/dist/setup/codex/configToml.js.map +1 -1
  267. package/dist/setup/codex/constants.js.map +1 -1
  268. package/dist/setup/codex/installRoot.js.map +1 -1
  269. package/dist/setup/codex/state.js.map +1 -1
  270. package/dist/setup/codex.js.map +1 -1
  271. package/dist/setup/opencode.js.map +1 -1
  272. package/dist/setup/opencodeConstants.js.map +1 -1
  273. package/dist/setup/sharedSkill.js.map +1 -1
  274. package/dist/setup/smokeChecks.js.map +1 -1
  275. package/dist/state/archiveDiscovery.js +8 -5
  276. package/dist/state/archiveDiscovery.js.map +1 -1
  277. package/dist/state/archivePublication.js.map +1 -1
  278. package/dist/state/archiveRecovery.js.map +1 -1
  279. package/dist/state/archiveReplay.js.map +1 -1
  280. package/dist/state/canonicalMigrationRecord.js.map +1 -1
  281. package/dist/state/changelog.js.map +1 -1
  282. package/dist/state/decisionEntities.js +59 -20
  283. package/dist/state/decisionEntities.js.map +1 -1
  284. package/dist/state/decisionLegacyValidation.js.map +1 -1
  285. package/dist/state/decisionMigrationProvenance.js.map +1 -1
  286. package/dist/state/decisionOverlay.js.map +1 -1
  287. package/dist/state/decisionRevision.js.map +1 -1
  288. package/dist/state/decisionRevisionMigration.js.map +1 -1
  289. package/dist/state/directRetrieval.js.map +1 -1
  290. package/dist/state/durability.js.map +1 -1
  291. package/dist/state/entityCutover.js.map +1 -1
  292. package/dist/state/entityCutoverGit.js.map +1 -1
  293. package/dist/state/entityGlossaryAuthority.js.map +1 -1
  294. package/dist/state/entityListProjection.js +188 -0
  295. package/dist/state/entityListProjection.js.map +1 -0
  296. package/dist/state/entityListRuntimeRegistry.js +50 -0
  297. package/dist/state/entityListRuntimeRegistry.js.map +1 -0
  298. package/dist/state/entityMigrationCausality.js.map +1 -1
  299. package/dist/state/entityMigrationIdentity.js.map +1 -1
  300. package/dist/state/entityMigrationPreview.js +32 -3
  301. package/dist/state/entityMigrationPreview.js.map +1 -1
  302. package/dist/state/entityPublicationContext.js +607 -765
  303. package/dist/state/entityPublicationContext.js.map +1 -1
  304. package/dist/state/entityRetrievalHelp.js +476 -0
  305. package/dist/state/entityRetrievalHelp.js.map +1 -0
  306. package/dist/state/entityStorage.js.map +1 -1
  307. package/dist/state/exactReplacementRecovery.js +19 -0
  308. package/dist/state/exactReplacementRecovery.js.map +1 -0
  309. package/dist/state/experimentArchive.js.map +1 -1
  310. package/dist/state/experimentIdentity.js.map +1 -1
  311. package/dist/state/healthEntities.js +15 -16
  312. package/dist/state/healthEntities.js.map +1 -1
  313. package/dist/state/healthEntityValidation.js.map +1 -1
  314. package/dist/state/healthRepair.js.map +1 -1
  315. package/dist/state/installRoot.js.map +1 -1
  316. package/dist/state/legacyEntityCutoverEvidence.js.map +1 -1
  317. package/dist/state/legacyIdentity.js.map +1 -1
  318. package/dist/state/legacySummaryRecord.js.map +1 -1
  319. package/dist/state/listAccounting.js.map +1 -1
  320. package/dist/state/listClassification.js.map +1 -1
  321. package/dist/state/listCursor.js.map +1 -1
  322. package/dist/state/listRetrieval.js.map +1 -1
  323. package/dist/state/migrationSourceBinding.js.map +1 -1
  324. package/dist/state/objectiveExperimentEntities.js +22 -22
  325. package/dist/state/objectiveExperimentEntities.js.map +1 -1
  326. package/dist/state/planEntities.js +75 -29
  327. package/dist/state/planEntities.js.map +1 -1
  328. package/dist/state/planIdentity.js +4 -1
  329. package/dist/state/planIdentity.js.map +1 -1
  330. package/dist/state/planRetrieval.js.map +1 -1
  331. package/dist/state/planTaskRetrieval.js +41 -31
  332. package/dist/state/planTaskRetrieval.js.map +1 -1
  333. package/dist/state/progressEntities.js +40 -25
  334. package/dist/state/progressEntities.js.map +1 -1
  335. package/dist/state/progressGlossaryCaveat.js.map +1 -1
  336. package/dist/state/progressPublicationOrder.js.map +1 -1
  337. package/dist/state/projectRoot.js.map +1 -1
  338. package/dist/state/projectionPolicy.js +12 -5
  339. package/dist/state/projectionPolicy.js.map +1 -1
  340. package/dist/state/retrievalAuthority.js +86 -272
  341. package/dist/state/retrievalAuthority.js.map +1 -1
  342. package/dist/state/safeProjectFile.js.map +1 -1
  343. package/dist/state/startupAnalysis/benchmark.js.map +1 -1
  344. package/dist/state/startupAnalysis/contract.js.map +1 -1
  345. package/dist/state/startupAnalysis/helpers.js.map +1 -1
  346. package/dist/state/startupAnalysis/index.js.map +1 -1
  347. package/dist/state/startupAnalysis/metrics.js.map +1 -1
  348. package/dist/state/startupAnalysis/records.js.map +1 -1
  349. package/dist/state/startupAnalysis/report.js.map +1 -1
  350. package/dist/state/startupAnalysis/threshold.js.map +1 -1
  351. package/dist/state/startupAnalysis.js.map +1 -1
  352. package/dist/state/startupProjection.js.map +1 -1
  353. package/dist/state/stateMode.js +11 -8
  354. package/dist/state/stateMode.js.map +1 -1
  355. package/dist/state/stateStorageAuthority.js.map +1 -1
  356. package/dist/state/summaryEntityRead.js.map +1 -1
  357. package/dist/state/summaryMigrationProvenance.js.map +1 -1
  358. package/dist/state/summarySourceRowAuthority.js.map +1 -1
  359. package/dist/state/todoDocsEntities.js +811 -91
  360. package/dist/state/todoDocsEntities.js.map +1 -1
  361. package/dist/state/todoDocsEntityValidation.js +127 -2
  362. package/dist/state/todoDocsEntityValidation.js.map +1 -1
  363. package/dist/state/todoReconciliationActivation.js +63 -0
  364. package/dist/state/todoReconciliationActivation.js.map +1 -0
  365. package/dist/state/todoReconciliationTransaction.js +554 -0
  366. package/dist/state/todoReconciliationTransaction.js.map +1 -0
  367. package/dist/state/write/assign.js.map +1 -1
  368. package/dist/state/write/candidateMutation.js +1 -12
  369. package/dist/state/write/candidateMutation.js.map +1 -1
  370. package/dist/state/write/errors.js.map +1 -1
  371. package/dist/state/write/experimentPublication.js.map +1 -1
  372. package/dist/state/write/explain.js +198 -177
  373. package/dist/state/write/explain.js.map +1 -1
  374. package/dist/state/write/fields.js.map +1 -1
  375. package/dist/state/write/glossaryPublication.js.map +1 -1
  376. package/dist/state/write/grammar.js +271 -0
  377. package/dist/state/write/grammar.js.map +1 -0
  378. package/dist/state/write/helpers.js.map +1 -1
  379. package/dist/state/write/index.js.map +1 -1
  380. package/dist/state/write/input.js +351 -5
  381. package/dist/state/write/input.js.map +1 -1
  382. package/dist/state/write/lock.js.map +1 -1
  383. package/dist/state/write/mutation.js.map +1 -1
  384. package/dist/state/write/operations.js +140 -343
  385. package/dist/state/write/operations.js.map +1 -1
  386. package/dist/state/write/planEvaluation.js +4 -0
  387. package/dist/state/write/planEvaluation.js.map +1 -1
  388. package/dist/state/write/planPublication.js +48 -3
  389. package/dist/state/write/planPublication.js.map +1 -1
  390. package/dist/state/write/runtimeOperations.js +65 -0
  391. package/dist/state/write/runtimeOperations.js.map +1 -0
  392. package/dist/state/write/serialize.js.map +1 -1
  393. package/dist/state/write/transaction.js +13 -7
  394. package/dist/state/write/transaction.js.map +1 -1
  395. package/dist/state/write/validate.js.map +1 -1
  396. package/dist/upgrade/appContentRefresh.js.map +1 -1
  397. package/dist/upgrade/appModel.js.map +1 -1
  398. package/dist/upgrade/atomicWriter.js.map +1 -1
  399. package/dist/upgrade/bundleEvidence.js.map +1 -1
  400. package/dist/upgrade/channels.js.map +1 -1
  401. package/dist/upgrade/coexistenceProbe.js.map +1 -1
  402. package/dist/upgrade/compatibility.js.map +1 -1
  403. package/dist/upgrade/doctor.js.map +1 -1
  404. package/dist/upgrade/doctorClassifier.js.map +1 -1
  405. package/dist/upgrade/installedHooksRetirement.js.map +1 -1
  406. package/dist/upgrade/legacyAgentCleanup.js.map +1 -1
  407. package/dist/upgrade/lifecycleUpgrade.js.map +1 -1
  408. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
  409. package/dist/upgrade/migrationPublication.js.map +1 -1
  410. package/dist/upgrade/nextMajorDoctor.js.map +1 -1
  411. package/dist/upgrade/npxPlatformStatus.js.map +1 -1
  412. package/dist/upgrade/projectIntegration.js.map +1 -1
  413. package/dist/upgrade/projectIntegrationDecision.js.map +1 -1
  414. package/dist/upgrade/runtimeMigration.js.map +1 -1
  415. package/dist/upgrade/upgradeCommands.js.map +1 -1
  416. package/dist/upgrade/upgradeLock.js.map +1 -1
  417. package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
  418. package/dist/upgrade/v3CapabilitySurface.js.map +1 -1
  419. package/dist/upgrade/versionResolution.js.map +1 -1
  420. package/dist/validate/appHomeContract.js.map +1 -1
  421. package/dist/validate/capability.js.map +1 -1
  422. package/dist/validate/crossCapability.js.map +1 -1
  423. package/dist/validate/selfAudit.js.map +1 -1
  424. package/dist/validate/v1LegacyCruft.js.map +1 -1
  425. package/dist/validate/vocabularyAuthority.js.map +1 -1
  426. package/package.json +2 -2
  427. package/dist/state/experimentRetrieval.js +0 -447
  428. package/dist/state/experimentRetrieval.js.map +0 -1
@@ -62,7 +62,7 @@ slash_route_aliases:
62
62
  Decision 43 aliases are exact `/agentera <alias>` routes, not CLI state
63
63
  commands. Teaching `status`, `build`, `audit`, or `document` as CLI commands
64
64
  would blur route vocabulary with state access; the shared word `plan` keeps
65
- separate meanings as `/agentera plan` routing and `agentera state plan` state.
65
+ separate meanings as `/agentera plan` routing and `agentera state plan list` state.
66
66
  doctor:
67
67
  status: implemented_hard_rename
68
68
  command: doctor
@@ -170,7 +170,7 @@ structured_output:
170
170
  - summary_fields
171
171
  - entry_fields
172
172
  complete_semantics: >-
173
- When `complete_for_plan_artifact` is true, `agentera state plan --format
173
+ When `complete_for_plan_artifact` is true, `agentera state plan list --format
174
174
  json` includes plan summary metadata, tasks, dependencies, acceptance
175
175
  criteria, evidence, overall acceptance, surprises, and previous-plan
176
176
  archive references needed for normal read-only startup/evaluation
@@ -376,7 +376,7 @@ startup_completeness:
376
376
  before any raw artifact read. Complete startup state must never require raw
377
377
  artifact reads for normal capability startup.
378
378
  current_cli_fallback:
379
- - agentera state plan --format json
379
+ - agentera state plan list --format json
380
380
  state_families_added:
381
381
  - plan task details, dependencies, acceptance criteria, and evidence summaries
382
382
  - docs artifact mapping and source-contract completeness metadata
@@ -492,7 +492,7 @@ evidence_context_target_contract:
492
492
  caveats:
493
493
  - profile-derived state is stale and must not trigger profile refresh
494
494
  - orchestration_context is incomplete for missing decisions, vision, and profile state
495
- - command: agentera state plan --format json
495
+ - command: agentera state plan list --format json
496
496
  included_state:
497
497
  - active plan header and summary
498
498
  - task dependencies
@@ -502,7 +502,7 @@ evidence_context_target_contract:
502
502
  - previous_plan_archived pointer
503
503
  missing_state: []
504
504
  raw_artifact_reads_required: false
505
- - command: agentera state docs --format json
505
+ - command: agentera state docs list --format json
506
506
  included_state:
507
507
  - artifact mapping
508
508
  - version files
@@ -510,7 +510,7 @@ evidence_context_target_contract:
510
510
  - indexed document freshness
511
511
  missing_state: []
512
512
  raw_artifact_reads_required: false
513
- - command: agentera state todo --format json
513
+ - command: agentera state todo list --format json
514
514
  included_state:
515
515
  - open 2.3.10 evidence-context TODO
516
516
  - deferred 2.3.11 and 2.3.12 source-contract TODOs
@@ -567,22 +567,22 @@ evidence_context_target_contract:
567
567
  required_for_normal_task_evaluation:
568
568
  - family: evaluation_target
569
569
  source: plan/orchestration CLI state
570
- fallback: agentera state plan --format json
570
+ fallback: agentera state plan list --format json
571
571
  - family: plan_criteria
572
- source: agentera state plan --format json entries.acceptance
572
+ source: agentera state plan list --format json entries.acceptance
573
573
  fallback: none when complete_for_plan_artifact is true
574
574
  - family: progress_verification
575
575
  source: agentera state progress list --limit 20 --format json latest verification
576
576
  fallback: agentera state progress get --id ID --format json
577
577
  - family: docs_state
578
- source: agentera state docs --format json summary and entries
579
- fallback: agentera state docs --format json
578
+ source: agentera state docs list --format json summary and entries
579
+ fallback: agentera state docs list --format json
580
580
  - family: health_state
581
581
  source: agentera state health list --limit 20 --format json latest audit
582
582
  fallback: agentera state health get --id ID --format json
583
583
  - family: todo_state
584
- source: agentera state todo --format json known issues and source-contract TODOs
585
- fallback: agentera state todo --format json
584
+ source: agentera state todo list --format json known issues and source-contract TODOs
585
+ fallback: agentera state todo list --format json
586
586
  - family: source_contract
587
587
  source: evidence_context.source_contract
588
588
  fallback: listed existing CLI commands before raw reads
@@ -259,7 +259,7 @@ decision_reconciliation:
259
259
  decision_45:
260
260
  routine_state_aliases: >-
261
261
  Routine state names stay stable via top-level aliases during migration. Canonical
262
- reads become `agentera state <name>`; envelopes, field selection, and
262
+ reads become `agentera state <name> list`; envelopes, field selection, and
263
263
  source_contract semantics are unchanged.
264
264
  slash_route_separation: >-
265
265
  Decision 43 slash aliases remain excluded from the CLI command surface. The
@@ -273,10 +273,10 @@ plan_routing_distinction:
273
273
  Request-to-capability routing — start or continue Planera planning work. This
274
274
  is not a CLI command and does not read `.agentera/plan.yaml` by itself.
275
275
  state_read:
276
- invocation: agentera state plan
276
+ invocation: agentera state plan list
277
277
  legacy_alias: >-
278
278
  Top-level `agentera plan` is capability routing, not a state-read alias;
279
- use `agentera state plan` for project state.
279
+ use `agentera state plan list` for project state.
280
280
  surface: CLI routine state read
281
281
  meaning: >-
282
282
  Read-only access to the active plan artifact summary, tasks, acceptance
@@ -287,11 +287,11 @@ plan_routing_distinction:
287
287
  surface: CLI top-level capability routing command
288
288
  meaning: >-
289
289
  Emits plan capability routing guidance prose/schemas pointers. Does not replace
290
- `state plan` reads or `/agentera plan` slash routing. Capability startup JSON
290
+ `state plan list` reads or `/agentera plan` slash routing. Capability startup JSON
291
291
  remains `agentera prime --context plan --format json`.
292
292
  agent_guidance: >-
293
293
  Use `/agentera plan` when the user wants planning work routed to Planera; use
294
- `agentera state plan` when the agent needs plan artifact state; use
294
+ `agentera state plan list` when the agent needs plan artifact state; use
295
295
  `agentera plan` for capability routing guidance; use
296
296
  `agentera prime --context plan` for bounded plan startup context.
297
297
  migration_phases:
@@ -213,7 +213,7 @@ field_classification:
213
213
  rationale: >-
214
214
  Default-only when no docs state. Task 2 omits it from the default bare
215
215
  briefing when docs.exists is false (see default_emission_omission_contract);
216
- recovery via `agentera state docs`.
216
+ recovery via `agentera state docs list --format json`.
217
217
  - field: progress
218
218
  status: required
219
219
  rationale: opencode reads progress.latest; status brief references shipped work.
@@ -223,7 +223,8 @@ field_classification:
223
223
  Default-only when none active. Task 2 omits it from the default bare
224
224
  briefing when objective.active is false (see
225
225
  default_emission_omission_contract); status derives "none active" from
226
- state_presence.active.objective. Recovery via `agentera state objective`.
226
+ state_presence.active.objective. Recovery via
227
+ `agentera state objective list --format json`.
227
228
  - field: state_presence
228
229
  status: required
229
230
  rationale: Owns missing-versus-empty semantics; must not be omitted.
@@ -250,7 +251,10 @@ field_classification:
250
251
  recover the current history.
251
252
  - field: shared_skill
252
253
  status: required
253
- rationale: Canonical shared-skill path and read-only diagnosis.
254
+ rationale: >-
255
+ Canonical shared-skill status and read-only diagnosis. Bare prime omits
256
+ the privacy-sensitive absolute path; doctor or an explicit shared_skill
257
+ field read recovers full path diagnostics.
254
258
  - field: decision_attention
255
259
  status: conditional
256
260
  rationale: Null unless returned decisions require satisfaction review.
@@ -442,13 +446,13 @@ default_emission_omission_contract:
442
446
  the sole v1 signal.
443
447
  - field: docs
444
448
  omitted_when: docs.exists !== true
445
- recovery_command: agentera state docs
449
+ recovery_command: agentera state docs list --format json
446
450
  disambiguated_by: >-
447
451
  state_presence.available.docs and state_presence.absence.docs carry the
448
452
  missing-vs-empty signal for the docs artifact family.
449
453
  - field: objective
450
454
  omitted_when: objective.active !== true
451
- recovery_command: agentera state objective
455
+ recovery_command: agentera state objective list --format json
452
456
  disambiguated_by: >-
453
457
  state_presence.active.objective is false; status derives "none active"
454
458
  from state_presence rather than from an emitted default-only objective
@@ -475,9 +479,10 @@ default_emission_omission_contract:
475
479
  # `--dashboard` (full fidelity, 35000-byte budget), `--fields <name>`, and the
476
480
  # `--context` capsule are NOT projected and keep the full payload. The byte
477
481
  # gate is deterministic pretty-JSON UTF-8 measurement; an over-budget brief is
478
- # rejected in favor of a bounded degraded envelope (status ok, brief.brief
479
- # block signals degraded) that keeps command/status/mode/state_presence/a
480
- # bounded brief source_contract and the byte-budget error with a recovery command.
482
+ # rejected in favor of a bounded degraded envelope (status ok, brief.status
483
+ # signals degraded). Every successful envelope keeps bounded plan selection,
484
+ # executable next_action, canonical history evidence, profile,
485
+ # state_presence, source_contract, and the byte-budget recovery.
481
486
  brief_omission_contract:
482
487
  implemented_by: packages/cli/src/cli/commands/prime/briefOrientation.ts:briefOrientationPayload
483
488
  applies_to: default bare prime (no --fields, no --dashboard, no --context)
@@ -494,6 +499,9 @@ default_emission_omission_contract:
494
499
  omitted_when_default). issues ships as the deprecated count-only
495
500
  transition projection and excludes canonical todo.detail.
496
501
  projected_subdetail:
502
+ - field: startup.path_diagnostics
503
+ reason: startup_path_diagnostics
504
+ recovery: agentera doctor --format json
497
505
  - field: plan.tasks
498
506
  reason: plan_task_detail
499
507
  recovery: agentera state plan tasks list --format json
@@ -502,10 +510,16 @@ default_emission_omission_contract:
502
510
  recovery: agentera state plan list --format json
503
511
  - field: plan.diagnostics
504
512
  reason: plan_diagnostics
505
- recovery: agentera state plan --format json
506
- - field: history.{progress,decisions,health}.entries
513
+ recovery: agentera state plan list --format json
514
+ - field: history.progress.entries
515
+ reason: startup_history_entries
516
+ recovery: agentera state progress list --format json
517
+ - field: history.decisions.entries
518
+ reason: startup_history_entries
519
+ recovery: agentera state decisions list --format json
520
+ - field: history.health.entries
507
521
  reason: startup_history_entries
508
- recovery: agentera state <artifact> list --limit 20 --format json
522
+ recovery: agentera state health list --format json
509
523
  - field: project_integration.phases
510
524
  reason: phase_blockers
511
525
  recovery: agentera doctor --format json
@@ -518,21 +532,47 @@ default_emission_omission_contract:
518
532
  - field: profile.bounded_signals
519
533
  reason: profile_signal_detail
520
534
  recovery: agentera profile --format json
535
+ history_projection:
536
+ count_fields: [total, returned, remaining, full, summary]
537
+ degraded_fields: [caveats, degraded_history]
538
+ provenance_fields: [source_contract]
539
+ recovery_fields: [retrieval.list, retrieval.get]
540
+ semantics: >-
541
+ Progress, decisions, and health retain canonical entity-history counts.
542
+ A degraded or compacted history retains bounded caveats, explicit
543
+ summary-only counts, source-contract provenance, and exact list/get
544
+ pointers. It never reconstructs omitted records or infers decision
545
+ satisfaction; explicit firm, provisional, missing, compacted, and
546
+ review-needed evidence remains unchanged when present.
521
547
  never_collapsed: >-
522
548
  state_presence is projected to its finite contract-owned active, available,
523
549
  any_active, absence_explained, and absence keys rather than copied verbatim;
524
550
  known boolean values and absence reasons remain bounded, so missing versus
525
551
  present-but-empty stays behaviorally distinguishable even for adversarial
526
552
  caller objects. source_contract is likewise projected to bounded known
527
- fields and named recovery pointers. plan.first_pending, progress.latest,
528
- health.grade/trajectory, todo counts, next_action.object, and attention
529
- are retained as the routing-essential leaves consumers read.
553
+ fields and named recovery pointers. Every successful normal or degraded
554
+ envelope keeps plan.first_pending identity, dependencies, acceptance, and
555
+ exact task get; next_action keeps its executable identity, capability,
556
+ phase, eligibility, and exact retrieval. Canonical history counts,
557
+ degraded caveats, and exact history recovery remain bounded consumer
558
+ evidence. Every bare-prime projection omits absolute app-home,
559
+ source-root, shared-skill, schema, and project path diagnostics while
560
+ retaining app/shared-skill status, stable source identity, truthful
561
+ presence, and doctor recovery. brief.path_diagnostics_recovery retains
562
+ that doctor command even when compact or irreducible metadata omits the
563
+ full recovery catalog. Normal and degraded projections retain bounded progress and
564
+ health signals; degraded projections also retain bounded TODO counts and
565
+ attention. Optional startup paths, plan task catalogs, and next-action
566
+ alternatives compact before selected routing or canonical history evidence.
530
567
  fallback_behavior: >-
531
568
  The detailed degraded envelope is byte-gated again after utf8_bytes is
532
- settled. If it cannot fit, a compact and then an irreducible finite routing
533
- envelope are tried deterministically. If the configured budget cannot hold
534
- the irreducible envelope, briefOrientationPayload fails explicitly rather
535
- than emitting over-budget stdout.
569
+ settled. If it cannot fit, the recovery catalog, optional source-contract
570
+ detail, next-action alternatives, and free text compact proportionally
571
+ before selected plan, executable next_action, or canonical history
572
+ evidence. A compact and then irreducible finite routing envelope are tried
573
+ deterministically. If the configured budget cannot hold that routing
574
+ evidence, briefOrientationPayload fails explicitly rather than returning
575
+ exit zero without an executable task or emitting over-budget stdout.
536
576
 
537
577
  # ---------------------------------------------------------------------------
538
578
  # Fixtures used by packages/cli/test/cli/primeCompatibilityBoundary.test.ts.
@@ -42,7 +42,7 @@ normalization_rules:
42
42
  use: agentera prime source data, status dashboard rendered briefing
43
43
  avoid: Treating raw CLI labels as the user-facing dashboard.
44
44
  - rule: Routine state uses the state namespace.
45
- use: agentera state plan, agentera state docs, agentera state health
45
+ use: agentera state plan list, agentera state docs list, agentera state health list
46
46
  avoid: agentera plan, agentera docs, or agentera health as routine state commands.
47
47
  - rule: query is advanced access.
48
48
  use: agentera query --list-artifacts, agentera query <artifact>
@@ -173,9 +173,10 @@ Primary route aliases are slash-route vocabulary, not CLI command vocabulary:
173
173
 
174
174
  Do not teach primary aliases as CLI state commands. v3 orientation is
175
175
  `agentera prime` (capability ID `status` via `prime --context status`); routine
176
- state reads use `agentera state plan`, `state progress`, `state health`,
177
- `state todo`, `state decisions`, `state docs`, `state objective`,
178
- `state experiments`, and advanced `state query`. The v2 stable distribution
176
+ record reads use `agentera state plan list`, `state progress list`,
177
+ `state health list`, `state todo list`, `state decisions list`, `state docs list`,
178
+ `state objective list`, objective-scoped `state experiments list`, exact
179
+ `get --id ID`, and advanced `state query`. The v2 stable distribution
179
180
  retains `hej` and the rest of the Swedish capability surface per Decision 70.
180
181
 
181
182
  When capability prose recommends another capability, use the handoff label
@@ -212,14 +212,33 @@ npx -y agentera@next state <progress|decisions|plan|health> explain --verb <verb
212
212
 
213
213
  Common mutations:
214
214
 
215
- - `npx -y agentera@next state progress append ... --format json`
216
- - `npx -y agentera@next state decisions append ... --format json`
215
+ - `npx -y agentera@next state progress append --input <path|-> --format json`
216
+ - `npx -y agentera@next state decisions append --input <path|-> --format json`
217
+ - `npx -y agentera@next state decisions amend --id ID --base-sha256 HASH --input <path|-> --format json`
217
218
  - `npx -y agentera@next state decisions update --id ID ... --format json`
218
219
  - `npx -y agentera@next state plan create --input plan.yaml --format json`
219
- - `npx -y agentera@next state plan update|set-status --id ID ... --format json`
220
- - `npx -y agentera@next state plan set-plan-status --status complete --format json`
220
+ - `npx -y agentera@next state plan append [--plan PLAN_ID] --input task.yaml --format json`
221
+ - `npx -y agentera@next state plan update --id TASK_ID [--plan PLAN_ID] --input task-patch.yaml --format json`
222
+ - `npx -y agentera@next state plan set-status --id TASK_ID --status STATUS --format json`
223
+ - `npx -y agentera@next state plan set-plan-status [--plan PLAN_ID] --status complete --format json`
221
224
  - `npx -y agentera@next state plan archive --format json`
222
225
  - `npx -y agentera@next state health append --input audit.yaml --format json`
226
+ - `npx -y agentera@next state todo create --input todo.yaml --format json`
227
+ - `npx -y agentera@next state todo update --id ID --input todo-patch.yaml --format json`
228
+ - `npx -y agentera@next state todo set-severity|supersede|resolve|reopen --id ID ... --format json`
229
+
230
+ TODO create input is a full YAML/JSON typed record. TODO update input is a
231
+ patch: omitted fields remain unchanged and only `target_version`,
232
+ `requirements`, `acceptance`, and `readiness` accept typed clears. Public TODO
233
+ fields remain TODO.md-owned; readiness, dependencies, gates, evidence, and
234
+ lifecycle metadata remain Agentera-owned. Lifecycle verbs are flag-only and do
235
+ not accept record payloads.
236
+
237
+ Plan create task numbers and dependency values are create-local symbolic
238
+ ordinals inside one atomic input document; the writer removes them before
239
+ publishing bare ten-letter plan and task envelope IDs. A legacy composite
240
+ `header.id` is migration-only and is never a public selector. Post-publication
241
+ task append/update payloads use only mutable task content and bare task IDs.
223
242
 
224
243
  Add `--dry-run` to preview any mutation without publishing it. Artifacts not
225
244
  listed above are outside the typed writer contract and remain governed by their
@@ -67,9 +67,9 @@ ARTIFACTS:
67
67
  local_role: consumes
68
68
  description: >-
69
69
  Build consumes status profile summary first and reads profile grounding
70
- only from `agentera report profile-grounding --format json`. Missing,
71
- stale, or malformed state is a caveat and does not authorize refresh or
72
- direct profile reads during normal startup.
70
+ only from `agentera report profile-grounding --format json` when shared
71
+ validity is `valid`. Absent or repair-needed state preserves exact
72
+ recovery and does not authorize refresh or direct profile reads.
73
73
  9:
74
74
  id: A9
75
75
  artifact: docs
@@ -113,10 +113,12 @@ VALIDATION:
113
113
  rule: sanitized_profile_grounding
114
114
  description: >-
115
115
  Build MUST ground only from the `content` returned by `agentera report
116
- profile-grounding --format json`; it MUST NOT direct-read PROFILE.md.
116
+ profile-grounding --format json` when shared validity is valid; it MUST
117
+ preserve absent/repair-needed recovery and MUST NOT direct-read PROFILE.md.
117
118
  severity: critical
118
119
  checks:
119
120
  - "Sanitized grounding command used after prime startup"
121
+ - "Prime and report validity objects agree before content use"
120
122
  - "Raw profile path not read"
121
123
  12:
122
124
  id: V12
@@ -41,7 +41,8 @@ ARTIFACTS:
41
41
  description: >-
42
42
  Discuss reads only sanitized non-glossary content from `agentera report
43
43
  profile-grounding --format json` at session start. It never direct-reads
44
- the profile path; malformed owned Glossary boundaries fail closed.
44
+ the profile path. It uses content only when the shared validity object is
45
+ valid; absent or repair-needed results fail closed with exact recovery.
45
46
  6:
46
47
  id: A6
47
48
  artifact: docs
@@ -81,10 +81,12 @@ VALIDATION:
81
81
  rule: sanitized_profile_grounding
82
82
  description: >-
83
83
  Discuss MUST ground only from the `content` returned by `agentera report
84
- profile-grounding --format json`; it MUST NOT direct-read PROFILE.md.
84
+ profile-grounding --format json` when shared validity is valid; it MUST
85
+ preserve absent/repair-needed recovery and MUST NOT direct-read PROFILE.md.
85
86
  severity: critical
86
87
  checks:
87
88
  - "Sanitized grounding command used at session start"
89
+ - "Prime and report validity objects agree before content use"
88
90
  - "Raw profile path not read"
89
91
  9:
90
92
  id: V9
@@ -55,8 +55,8 @@ ARTIFACTS:
55
55
  description: >-
56
56
  Plan reads only sanitized non-glossary content from `agentera report
57
57
  profile-grounding --format json` to calibrate planning depth and pattern
58
- preferences. It never direct-reads the profile path; malformed owned
59
- Glossary boundaries fail closed.
58
+ preferences. It never direct-reads the profile path and uses content only
59
+ for shared validity `valid`; absent and repair-needed results fail closed.
60
60
  9:
61
61
  id: A9
62
62
  artifact: docs
@@ -92,10 +92,12 @@ VALIDATION:
92
92
  rule: sanitized_profile_grounding
93
93
  description: >-
94
94
  Plan MUST ground only from the `content` returned by `agentera report
95
- profile-grounding --format json`; it MUST NOT direct-read PROFILE.md.
95
+ profile-grounding --format json` when shared validity is valid; it MUST
96
+ preserve absent/repair-needed recovery and MUST NOT direct-read PROFILE.md.
96
97
  severity: critical
97
98
  checks:
98
99
  - "Sanitized grounding command used during Orient"
100
+ - "Prime and report validity objects agree before content use"
99
101
  - "Raw profile path not read"
100
102
  10:
101
103
  id: V10
@@ -9,7 +9,9 @@ ARTIFACTS:
9
9
  deterministic personal Glossary section containing shared glossary entries
10
10
  and lifecycle metadata; rendering and persistence are active while lookup
11
11
  remains deferred. Profile writes this in both Full and Validate modes,
12
- then reads it for validation and update context.
12
+ then reads it for validation and update context. Prime exposes its
13
+ canonical resolved path only inside `prime --context profile`; no other
14
+ Prime context or profile-grounding failure may serialize that path.
13
15
  2:
14
16
  id: A2
15
17
  artifact: decisions
@@ -69,4 +69,5 @@ ARTIFACTS:
69
69
  artifact: profile
70
70
  local_role: consumes
71
71
  description: >-
72
- Status reads this to report profile status (loaded/not found) in the briefing.
72
+ Status reports profile validity as valid, absent, or repair_needed and
73
+ keeps freshness separate without exposing profile paths or content.
@@ -281,7 +281,7 @@ ROUTE_ALIASES:
281
281
  canonical_name_precedence: true
282
282
  cli_boundary: >-
283
283
  Slash routes and state commands are distinct: `/agentera plan` routes to
284
- the plan capability, while `agentera state plan` remains the
284
+ the plan capability, while `agentera state plan list` remains the
285
285
  state-oriented CLI command for reading plan state. Do not add capability or
286
286
  alias commands to the CLI.
287
287
  primary_aliases:
@@ -5,10 +5,16 @@
5
5
  # and acceptance criteria, overall acceptance, and surprises.
6
6
  #
7
7
  # The active authority uses one plan or plan_task entity per writer-owned file.
8
- # The aggregate model and ordinal fields below are retained only as an exact
9
- # legacy migration input schema; they are not ordinary post-cutover contracts.
8
+ # The aggregate model below is the complete atomic plan-create input. Its task
9
+ # numbers and numeric/string dependency references are create-local symbols,
10
+ # not persisted identities. Fields explicitly labeled migration-only remain
11
+ # compatibility input and are not ordinary post-cutover entity contracts.
10
12
  #
11
- # ── Field-by-field mapping: v1 PLAN.md → v2 plan.yaml ──
13
+ # ── Legacy migration-input mapping: v1 PLAN.md → v2 plan.yaml ──
14
+ #
15
+ # The ordinal task fields in this mapping are create-local symbolic references.
16
+ # They are valid only inside one atomic `state plan create --input` document and
17
+ # are removed when the writer publishes plan and plan_task entities.
12
18
  #
13
19
  # v1 Field v2 Field v2 ID
14
20
  # ─────────────────────────────────────────────────────────────────────
@@ -26,7 +32,7 @@
26
32
  # ## Scope / **Out**: <list> SCOPE.excluded PL12
27
33
  # ## Scope / **Deferred**: <list> SCOPE.deferred PL13
28
34
  # ## Design PLAN.design PL14
29
- # ### Task N: <name> TASK.number PL15
35
+ # ### Task N: <name> TASK.number PL15 (create-local only)
30
36
  # (task name from heading) TASK.name PL16
31
37
  # **Depends on**: <text> TASK.depends_on PL17
32
38
  # **Status**: <status> TASK.status PL18
@@ -65,7 +71,34 @@ ENTITY_AUTHORITY:
65
71
  task_get: agentera state plan tasks get --id ID --format json
66
72
  mutation: agentera state plan explain --format json
67
73
  direct_file_edits: forbidden
68
- legacy_schema_below: migration_input_only
74
+ aggregate_schema_below: atomic_create_input
75
+ migration_compatibility: explicitly_labeled_fields_only
76
+
77
+ CANONICAL_ENTITY_CONTRACT:
78
+ authority: typed_state_writer
79
+ envelope_identity:
80
+ plan:
81
+ field: id
82
+ format: bare_ten_letter_id
83
+ selector: --id ID
84
+ assignment: writer_assigned_on_create
85
+ plan_task:
86
+ field: id
87
+ format: bare_ten_letter_id
88
+ selector: --id ID
89
+ assignment: writer_assigned_on_append
90
+ create_local_symbols:
91
+ scope: one_atomic_plan_create_input
92
+ task_field: number
93
+ dependency_accepted_forms: [positive_integer, canonical_numeric_string]
94
+ dependency_normalization: canonical_numeric_string_before_resolution
95
+ publication: remove_number_and_resolve_dependencies_to_bare_entity_ids
96
+ migration_compatibility:
97
+ header_id:
98
+ format: composite_plan_identity
99
+ status: migration_only_noncanonical
100
+ public_selector: forbidden
101
+ legacy_task_references: convert_to_bare_entity_ids_during_migration
69
102
 
70
103
  GROUP_PREFIXES:
71
104
  BUDGET: PB
@@ -165,11 +198,11 @@ HEADER:
165
198
  type: string
166
199
  required: false
167
200
  description: >-
168
- Stable plan identity assigned by the typed writer at first publication and
169
- retained unchanged when the plan moves from active to archived history.
170
- Legacy plans without this field derive a read-only identity.
201
+ Migration-only source identity. Canonical plan identity is the bare
202
+ ten-letter envelope `id` assigned by the typed writer; this source
203
+ `header.id` is never a public selector.
171
204
  validation:
172
- - "Must match plan:<lowercase RFC 9562 UUID> when present"
205
+ - "Composite header.id is accepted only by legacy migration compatibility"
173
206
 
174
207
  PLAN:
175
208
  1:
@@ -324,11 +357,12 @@ TASK:
324
357
  type: integer
325
358
  required: true
326
359
  description: >-
327
- Task number within the plan. Sequential, starting from 1.
328
- May include a descriptive name (e.g., 'Task 2: Shared Protocol').
360
+ Create-local symbolic task ordinal within one atomic plan input.
361
+ Sequential values start at 1, are removed on publication, and are never
362
+ a canonical entity identity or public selector.
329
363
  validation:
330
- - "Must be a positive integer"
331
- - "Must be unique within the plan"
364
+ - "Must be a positive integer in the create input"
365
+ - "Must be unique within that atomic input"
332
366
  2:
333
367
  id: PT16
334
368
  field: name
@@ -342,11 +376,24 @@ TASK:
342
376
  3:
343
377
  id: PT17
344
378
  field: depends_on
345
- type: list[string]
379
+ path: tasks[].depends_on
380
+ type: list[integer|string]
381
+ write_operations: [create]
382
+ accepted_forms:
383
+ atomic_plan_create: [positive_integer, canonical_numeric_string]
384
+ legacy_migration_only: [legacy_task_reference_string]
385
+ normalization: canonical_numeric_string_before_same_document_resolution
346
386
  required: false
347
387
  description: >-
348
- Task dependencies. References task numbers or names that must
349
- complete before this task can start. Empty for root tasks.
388
+ Numeric or numeric-string dependency references are create-local symbolic
389
+ task ordinals only inside the current complete plan create input. The writer
390
+ resolves them within that atomic document, removes the ordinal references,
391
+ and publishes dependencies as bare ten-letter task envelope IDs. Empty for
392
+ root tasks.
393
+ validation:
394
+ - positive_integer_or_canonical_numeric_string
395
+ - unique_after_normalization_within_task
396
+ - resolves_to_declared_task_ordinal_in_same_atomic_document
350
397
  4:
351
398
  id: PT18
352
399
  field: status
@@ -403,18 +450,20 @@ VALIDATION:
403
450
  rule: unique_entity_ids
404
451
  severity: error
405
452
  description: >-
406
- Task numbers must be unique within a plan and sequential.
453
+ Create-local task ordinals must be unique within one atomic plan input and
454
+ sequential; they are not persisted entity identities.
407
455
  checks:
408
- - "All task numbers are unique"
409
- - "Task numbers are sequential starting from 1"
456
+ - "All create-local task ordinals are unique"
457
+ - "Create-local task ordinals are sequential starting from 1"
410
458
  2:
411
459
  id: PV2
412
460
  rule: required_fields
413
461
  severity: error
414
462
  description: >-
415
- The plan must have: level, created, status, title, what, why,
416
- scope.included, scope.excluded, and at least one task. Each task
417
- must have number, name, and status.
463
+ A complete create input must have: level, created, status, title, what,
464
+ why, scope.included, scope.excluded, and at least one task. Each task's
465
+ number is create-local and is removed before identity conversion. Legacy
466
+ source documents use the separate migration compatibility contract.
418
467
  checks:
419
468
  - "level is present and is 'light' or 'full'"
420
469
  - "created is present and matches YYYY-MM-DD"
@@ -443,10 +492,14 @@ VALIDATION:
443
492
  rule: dependency_references
444
493
  severity: error
445
494
  description: >-
446
- Task depends_on references must point to valid task numbers
447
- within the same plan.
495
+ Create-local depends_on references must point to valid task ordinals in
496
+ the same atomic input before conversion to bare task IDs. Legacy source
497
+ references use the migration compatibility path, not this public writer
498
+ vocabulary.
448
499
  checks:
449
- - "Each dependency references an existing task number"
500
+ - "Each create-local dependency is a positive integer or canonical numeric string"
501
+ - "Each normalized dependency references an existing task ordinal"
502
+ - "Each task's normalized dependency ordinals are unique"
450
503
  - "No circular dependency chains"
451
504
  5:
452
505
  id: PV5
@@ -463,12 +516,18 @@ LIFECYCLE_CONTRACT:
463
516
  authority: this schema
464
517
  canonical:
465
518
  identity:
519
+ field: id
520
+ format: bare_ten_letter_id
521
+ assignment: The typed entity writer assigns the envelope identity at first publication.
522
+ transition: Active and archived entity positions retain the identical bare identity.
523
+ legacy: Legacy source header.id is migration-only and never a public selector.
524
+ collision: Different canonical entities with one identity are ambiguous and never selected by path or time.
525
+ migration_source_identity:
466
526
  field: header.id
467
- format: 'plan:<lowercase-rfc9562-uuid>'
468
- assignment: The typed create writer assigns identity at first publication.
469
- transition: Active and archived positions retain the identical identity.
470
- legacy: Missing identity is derived deterministically at read time without rewriting bytes.
471
- collision: Different documents with one identity are ambiguous and never selected by path or time.
527
+ format: 'plan:<lowercase-rfc9562-uuid> or legacy-plan:<sha256>'
528
+ status: migration_only_noncanonical
529
+ assignment: Read-only compatibility derivation or retained legacy source value.
530
+ public_selector: forbidden
472
531
  persisted_status:
473
532
  field: header.status
474
533
  values: