agentera 3.0.0-dev.4 → 3.0.0-dev.46

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 (585) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +108 -22
  3. package/bundle/.agentera-npx-bundle.json +1 -1
  4. package/bundle/CHANGELOG.md +1351 -0
  5. package/bundle/DESIGN.md +229 -0
  6. package/bundle/LICENSE +201 -0
  7. package/bundle/README.md +143 -0
  8. package/bundle/UPGRADE.md +236 -0
  9. package/bundle/extract-corpus-parity.json +21 -0
  10. package/bundle/fixtures/routing/hybrid-corpus.yaml +154 -0
  11. package/bundle/references/adapters/package-publication.json +437 -0
  12. package/bundle/references/adapters/package-registry.yaml +434 -189
  13. package/bundle/references/adapters/package-surface-characterization.md +66 -35
  14. package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +74 -0
  15. package/bundle/references/adapters/runtime-lifecycle-authority.yaml +62 -0
  16. package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +84 -0
  17. package/bundle/references/adapters/runtime-retired-resources.yaml +333 -0
  18. package/bundle/references/analysis/evidence-tier-authority.yaml +518 -0
  19. package/bundle/references/analysis/verification-policy.yaml +191 -0
  20. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +20 -10
  21. package/bundle/references/artifacts/glossary-entry-contract.yaml +1254 -0
  22. package/bundle/references/artifacts/state-storage-authority.yaml +2982 -0
  23. package/bundle/references/artifacts/verbosity-budget-authority.yaml +42 -0
  24. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +7 -8
  25. package/bundle/references/cli/capability-instruction-contract.yaml +97 -59
  26. package/bundle/references/cli/hybrid-route-contract.yaml +438 -0
  27. package/bundle/references/cli/routing-model.md +155 -0
  28. package/bundle/references/cli/trigger-schema-enrichment.md +147 -0
  29. package/bundle/references/cli/update-channels.yaml +35 -2
  30. package/bundle/references/cli/vocabulary-index.yaml +23 -20
  31. package/bundle/references/cli/vocabulary.md +337 -366
  32. package/bundle/references/meta/retained-reference-authority.yaml +151 -0
  33. package/bundle/registry.json +14 -14
  34. package/bundle/skills/agentera/SKILL.md +218 -408
  35. package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +84 -0
  36. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/exit.yaml +2 -2
  37. package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +25 -0
  38. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/validation.yaml +37 -18
  39. package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +102 -0
  40. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/exit.yaml +6 -5
  41. package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +27 -0
  42. package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +176 -0
  43. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/artifacts.yaml +12 -12
  44. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/exit.yaml +5 -5
  45. package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +16 -0
  46. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/validation.yaml +7 -7
  47. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +51 -0
  48. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/exit.yaml +2 -2
  49. package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +20 -0
  50. package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +144 -0
  51. package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +80 -0
  52. package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +16 -0
  53. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/validation.yaml +18 -18
  54. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/artifacts.yaml +18 -18
  55. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/exit.yaml +2 -2
  56. package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +16 -0
  57. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/validation.yaml +9 -9
  58. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +76 -0
  59. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/exit.yaml +9 -7
  60. package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +23 -0
  61. package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +121 -0
  62. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +66 -0
  63. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/exit.yaml +2 -2
  64. package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +23 -0
  65. package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +121 -0
  66. package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +23 -0
  67. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/exit.yaml +6 -5
  68. package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +20 -0
  69. package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +115 -0
  70. package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +24 -0
  71. package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +16 -0
  72. package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/validation.yaml +2 -2
  73. package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +73 -0
  74. package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +22 -0
  75. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/validation.yaml +5 -5
  76. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/artifacts.yaml +16 -16
  77. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/exit.yaml +7 -6
  78. package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +23 -0
  79. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/validation.yaml +18 -20
  80. package/bundle/skills/agentera/capability_schema_contract.yaml +200 -37
  81. package/bundle/skills/agentera/protocol.yaml +31 -31
  82. package/bundle/skills/agentera/route-phrases.yaml +81 -0
  83. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +5 -4
  84. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +40 -22
  85. package/bundle/skills/agentera/schemas/artifacts/design.yaml +5 -4
  86. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +15 -19
  87. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +145 -14
  88. package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +82 -0
  89. package/bundle/skills/agentera/schemas/artifacts/health.yaml +58 -21
  90. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +22 -8
  91. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +421 -33
  92. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +143 -53
  93. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +345 -31
  94. package/bundle/skills/agentera/schemas/artifacts/vision.yaml +3 -3
  95. package/dist/analytics/extractCorpus/cli.js +190 -0
  96. package/dist/analytics/extractCorpus/copilotSessions.js +275 -0
  97. package/dist/analytics/extractCorpus/core.js +392 -0
  98. package/dist/analytics/extractCorpus/corpus.js +167 -0
  99. package/dist/analytics/extractCorpus/coverageAudit.js +260 -0
  100. package/dist/analytics/extractCorpus/cursorSessions.js +425 -0
  101. package/dist/analytics/extractCorpus/evidenceTiers.js +603 -0
  102. package/dist/analytics/extractCorpus/extractCorpusParity.js +105 -0
  103. package/dist/analytics/extractCorpus/filesystemSources.js +118 -0
  104. package/dist/analytics/extractCorpus/index.js +14 -0
  105. package/dist/analytics/extractCorpus/jsonlSessions.js +204 -0
  106. package/dist/analytics/extractCorpus/sqliteCaps.js +43 -0
  107. package/dist/analytics/extractCorpus/sqliteSessions.js +367 -0
  108. package/dist/analytics/extractCorpus/tierReader.js +108 -0
  109. package/dist/analytics/extractCorpus.js +2 -1791
  110. package/dist/analytics/glossaryAdviceResolution.js +166 -0
  111. package/dist/analytics/glossaryInputAcquisition.js +319 -0
  112. package/dist/analytics/personalGlossaryAdmission.js +133 -0
  113. package/dist/analytics/personalGlossaryProfile.js +219 -0
  114. package/dist/analytics/profileSignals.js +211 -0
  115. package/dist/analytics/usageStats.js +169 -42
  116. package/dist/audit/terminologyDrift.js +281 -0
  117. package/dist/bin/agentera.js +3 -2
  118. package/dist/capabilities/audit/instructions.js +16 -0
  119. package/dist/capabilities/build/instructions.js +56 -0
  120. package/dist/capabilities/design/instructions.js +4 -0
  121. package/dist/capabilities/discuss/instructions.js +29 -0
  122. package/dist/capabilities/document/instructions.js +11 -0
  123. package/dist/capabilities/index.js +40 -0
  124. package/dist/capabilities/optimize/instructions.js +14 -0
  125. package/dist/capabilities/orchestrate/instructions.js +40 -0
  126. package/dist/capabilities/plan/instructions.js +32 -0
  127. package/dist/capabilities/profile/instructions.js +70 -0
  128. package/dist/capabilities/research/instructions.js +5 -0
  129. package/dist/capabilities/status/instructions.js +11 -0
  130. package/dist/capabilities/status/startupInstructions.js +34 -0
  131. package/dist/capabilities/vision/instructions.js +4 -0
  132. package/dist/cli/appContext.js +30 -24
  133. package/dist/cli/argvalidate.js +0 -1
  134. package/dist/cli/capabilityContext/benchmark.js +565 -0
  135. package/dist/cli/capabilityContext/bespoke.js +44 -0
  136. package/dist/cli/capabilityContext/build.js +242 -0
  137. package/dist/cli/capabilityContext/closeout.js +233 -0
  138. package/dist/cli/capabilityContext/contract.js +179 -0
  139. package/dist/cli/capabilityContext/evidence.js +463 -0
  140. package/dist/cli/capabilityContext/index.js +3 -0
  141. package/dist/cli/capabilityContext/orchestration.js +131 -0
  142. package/dist/cli/capabilityContext/planState.js +260 -0
  143. package/dist/cli/capabilityContext/progress.js +142 -0
  144. package/dist/cli/capabilityContext/projectVerification.js +409 -0
  145. package/dist/cli/capabilityContext/shared.js +83 -0
  146. package/dist/cli/capabilityContext/slim.js +152 -0
  147. package/dist/cli/capabilityContext/startup.js +150 -0
  148. package/dist/cli/capabilityContext/startupAggregation.js +68 -0
  149. package/dist/cli/capabilityContext/types.js +56 -0
  150. package/dist/cli/capabilityContext.js +1 -2421
  151. package/dist/cli/commands/appHome.js +22 -0
  152. package/dist/cli/commands/capability.js +5 -12
  153. package/dist/cli/commands/compact.js +41 -13
  154. package/dist/cli/commands/doctor.js +127 -97
  155. package/dist/cli/commands/durability.js +81 -0
  156. package/dist/cli/commands/glossaryAdvice.js +138 -0
  157. package/dist/cli/commands/lint.js +26 -44
  158. package/dist/cli/commands/personalGlossary.js +176 -0
  159. package/dist/cli/commands/prime/briefOrientation.js +747 -0
  160. package/dist/cli/commands/prime/buildExecutionRequest.js +165 -0
  161. package/dist/cli/commands/prime/bundleStatus.js +190 -0
  162. package/dist/cli/commands/prime/collectEntityOrientation.js +311 -0
  163. package/dist/cli/commands/prime/collectOrientationState.js +212 -0
  164. package/dist/cli/commands/prime/orientationOutput.js +397 -0
  165. package/dist/cli/commands/prime/types.js +1 -0
  166. package/dist/cli/commands/prime/v1Migration.js +38 -0
  167. package/dist/cli/commands/prime.js +80 -558
  168. package/dist/cli/commands/profileGrounding.js +55 -0
  169. package/dist/cli/commands/query.js +78 -53
  170. package/dist/cli/commands/report.js +96 -25
  171. package/dist/cli/commands/route.js +142 -0
  172. package/dist/cli/commands/schema.js +266 -143
  173. package/dist/cli/commands/state/decisions.js +387 -0
  174. package/dist/cli/commands/state/docs.js +70 -0
  175. package/dist/cli/commands/state/experimentRecords.js +151 -0
  176. package/dist/cli/commands/state/experiments.js +14 -0
  177. package/dist/cli/commands/state/get.js +129 -0
  178. package/dist/cli/commands/state/health.js +14 -0
  179. package/dist/cli/commands/state/index.js +16 -0
  180. package/dist/cli/commands/state/list.js +194 -0
  181. package/dist/cli/commands/state/objective.js +25 -0
  182. package/dist/cli/commands/state/plan.js +14 -0
  183. package/dist/cli/commands/state/planTasks.js +154 -0
  184. package/dist/cli/commands/state/plans.js +154 -0
  185. package/dist/cli/commands/state/progress.js +13 -0
  186. package/dist/cli/commands/state/shared.js +14 -0
  187. package/dist/cli/commands/state/todo.js +42 -0
  188. package/dist/cli/commands/state/write.js +434 -0
  189. package/dist/cli/commands/upgrade.js +146 -5
  190. package/dist/cli/commands/upgradeVerify.js +118 -0
  191. package/dist/cli/commands/validate.js +272 -213
  192. package/dist/cli/commands/verify.js +24 -9
  193. package/dist/cli/contracts/bundleStatus.js +1 -0
  194. package/dist/cli/contracts/orientationState.js +1 -0
  195. package/dist/cli/dispatch/argvParser.js +32 -0
  196. package/dist/cli/dispatch/check.js +372 -0
  197. package/dist/cli/dispatch/commands.js +27 -0
  198. package/dist/cli/dispatch/index.js +207 -0
  199. package/dist/cli/dispatch/lifecycle.js +652 -0
  200. package/dist/cli/dispatch/prime.js +139 -0
  201. package/dist/cli/dispatch/projections.js +17 -0
  202. package/dist/cli/dispatch/shared.js +63 -0
  203. package/dist/cli/dispatch/state.js +140 -0
  204. package/dist/cli/dispatch.js +1 -996
  205. package/dist/cli/errors.js +52 -0
  206. package/dist/cli/help.js +390 -43
  207. package/dist/cli/migrationRequired.js +87 -0
  208. package/dist/cli/orientation/attention.js +59 -0
  209. package/dist/cli/orientation/corpusCoverage.js +102 -0
  210. package/dist/cli/orientation.js +444 -173
  211. package/dist/cli/planArtifacts.js +350 -0
  212. package/dist/cli/planEvidence.js +157 -0
  213. package/dist/cli/planLifecycleState.js +36 -0
  214. package/dist/cli/planTaskIndex.js +11 -0
  215. package/dist/cli/preCutoverCommand.js +32 -0
  216. package/dist/cli/prime-blob.js +71 -3
  217. package/dist/cli/profileAcquisition.js +167 -0
  218. package/dist/cli/startupCompletenessContract.js +59 -0
  219. package/dist/cli/stateQuery.js +63 -14
  220. package/dist/cli/structured.js +0 -1
  221. package/dist/cli/todoMarkdown.js +46 -0
  222. package/dist/cli/todoReadinessSelection.js +192 -0
  223. package/dist/cli/todoSeverity.js +18 -0
  224. package/dist/core/atomicWriter.js +20 -0
  225. package/dist/core/developmentChannel.js +1 -0
  226. package/dist/core/developmentInvocation.js +374 -0
  227. package/dist/core/difflib.js +0 -1
  228. package/dist/core/envPaths.js +20 -0
  229. package/dist/core/jsonValue.js +5 -0
  230. package/dist/core/paths.js +0 -1
  231. package/dist/core/pyjson.js +67 -3
  232. package/dist/core/shell.js +4 -0
  233. package/dist/core/skillIdentity.js +23 -0
  234. package/dist/core/sourceRoot.js +9 -12
  235. package/dist/core/text.js +10 -0
  236. package/dist/core/toml.js +0 -1
  237. package/dist/core/yaml.js +8 -1
  238. package/dist/eval/evalSkills.js +30 -26
  239. package/dist/eval/hybridRouteEvaluation.js +155 -0
  240. package/dist/eval/semanticEval.js +43 -20
  241. package/dist/eval/semanticFixtures.js +16 -5
  242. package/dist/hooks/common.js +11 -81
  243. package/dist/hooks/compaction/apply.js +446 -0
  244. package/dist/hooks/compaction/dryRun.js +184 -0
  245. package/dist/hooks/compaction/index.js +22 -0
  246. package/dist/hooks/compaction/parse.js +325 -0
  247. package/dist/hooks/compaction/retention.js +202 -0
  248. package/dist/hooks/compaction/status.js +360 -0
  249. package/dist/hooks/compaction/types.js +5 -0
  250. package/dist/hooks/validateArtifact/agentFacing.js +9 -0
  251. package/dist/hooks/validateArtifact/index.js +92 -0
  252. package/dist/hooks/validateArtifact/markdown.js +145 -0
  253. package/dist/hooks/validateArtifact/schema.js +546 -0
  254. package/dist/hooks/validateArtifact/traversal.js +107 -0
  255. package/dist/hooks/validateArtifact/violations.js +107 -0
  256. package/dist/migrate/v2HandoffManifest.js +452 -0
  257. package/dist/registries/activationContract.js +2 -0
  258. package/dist/registries/activationTuples.js +106 -0
  259. package/dist/registries/artifactProtocolIds.js +78 -0
  260. package/dist/registries/artifactRegistry.js +224 -63
  261. package/dist/registries/artifactSchemaProjection.js +45 -0
  262. package/dist/registries/capabilityContract.js +141 -13
  263. package/dist/registries/evaluatorHandoffContract.js +170 -0
  264. package/dist/registries/evidenceTierContract.js +371 -0
  265. package/dist/registries/glossaryAdviceContract.js +79 -0
  266. package/dist/registries/glossaryCaveatContract.js +67 -0
  267. package/dist/registries/glossaryConsumerContractValidation.js +787 -0
  268. package/dist/registries/glossaryEntryContract.js +757 -0
  269. package/dist/registries/glossaryTermIdentity.js +17 -0
  270. package/dist/registries/glossaryTermOccurrence.js +20 -0
  271. package/dist/registries/hybridRoute.js +274 -0
  272. package/dist/registries/hybridRouteReceipt.js +221 -0
  273. package/dist/registries/packagePublication.js +229 -0
  274. package/dist/registries/packageRegistry.js +187 -211
  275. package/dist/registries/todoReadinessContract.js +448 -0
  276. package/dist/registries/triggerLoader.js +174 -0
  277. package/dist/registries/verbosityBudgetContract.js +205 -0
  278. package/dist/release/releaseMetadata.js +385 -0
  279. package/dist/runtime/lifecycleAdapterContract.js +457 -0
  280. package/dist/runtime/lifecycleAdapters.js +777 -0
  281. package/dist/runtime/lifecycleAuthority.js +453 -0
  282. package/dist/runtime/lifecycleOperationContract.js +123 -0
  283. package/dist/runtime/lifecycleOperations.js +634 -0
  284. package/dist/runtime/lifecycleOwnershipJournal.js +622 -0
  285. package/dist/runtime/lifecyclePublication.js +415 -0
  286. package/dist/runtime/lifecycleSnapshot.js +438 -0
  287. package/dist/runtime/nativeResourceCleanup.js +502 -0
  288. package/dist/setup/opencode.js +20 -0
  289. package/dist/setup/opencodeConstants.js +1 -0
  290. package/dist/setup/sharedSkill.js +45 -0
  291. package/dist/setup/smokeChecks.js +21 -82
  292. package/dist/state/archiveDiscovery.js +580 -0
  293. package/dist/state/archivePublication.js +225 -0
  294. package/dist/state/archiveRecovery.js +237 -0
  295. package/dist/state/archiveReplay.js +53 -0
  296. package/dist/state/canonicalMigrationRecord.js +36 -0
  297. package/dist/state/changelog.js +221 -0
  298. package/dist/state/decisionEntities.js +367 -0
  299. package/dist/state/decisionLegacyValidation.js +215 -0
  300. package/dist/state/decisionMigrationProvenance.js +199 -0
  301. package/dist/state/decisionOverlay.js +254 -0
  302. package/dist/state/decisionRevision.js +256 -0
  303. package/dist/state/decisionRevisionMigration.js +89 -0
  304. package/dist/state/directRetrieval.js +323 -0
  305. package/dist/state/durability.js +324 -0
  306. package/dist/state/entityCutover.js +459 -0
  307. package/dist/state/entityCutoverGit.js +127 -0
  308. package/dist/state/entityGlossaryAuthority.js +13 -0
  309. package/dist/state/entityListProjection.js +187 -0
  310. package/dist/state/entityListRuntimeRegistry.js +85 -0
  311. package/dist/state/entityMigrationCausality.js +97 -0
  312. package/dist/state/entityMigrationIdentity.js +5 -0
  313. package/dist/state/entityMigrationPreview.js +846 -0
  314. package/dist/state/entityMigrationTodo.js +133 -0
  315. package/dist/state/entityPublicationContext.js +806 -0
  316. package/dist/state/entityRetrievalHelp.js +506 -0
  317. package/dist/state/entityStorage.js +896 -0
  318. package/dist/state/exactReplacementRecovery.js +18 -0
  319. package/dist/state/experimentArchive.js +63 -0
  320. package/dist/state/experimentIdentity.js +202 -0
  321. package/dist/state/healthEntities.js +262 -0
  322. package/dist/state/healthEntityValidation.js +18 -0
  323. package/dist/state/healthRepair.js +69 -0
  324. package/dist/state/installRoot.js +64 -25
  325. package/dist/state/legacyEntityCutoverEvidence.js +65 -0
  326. package/dist/state/legacyIdentity.js +47 -0
  327. package/dist/state/legacySummaryRecord.js +6 -0
  328. package/dist/state/listAccounting.js +54 -0
  329. package/dist/state/listClassification.js +17 -0
  330. package/dist/state/listCursor.js +42 -0
  331. package/dist/state/listRetrieval.js +781 -0
  332. package/dist/state/migrationSourceBinding.js +30 -0
  333. package/dist/state/objectiveExperimentEntities.js +322 -0
  334. package/dist/state/planEntities.js +530 -0
  335. package/dist/state/planIdentity.js +47 -0
  336. package/dist/state/planRetrieval.js +313 -0
  337. package/dist/state/planTaskRetrieval.js +294 -0
  338. package/dist/state/progressEntities.js +512 -0
  339. package/dist/state/progressGlossaryCaveat.js +168 -0
  340. package/dist/state/progressPublicationOrder.js +19 -0
  341. package/dist/state/projectRoot.js +62 -0
  342. package/dist/state/projectionPolicy.js +190 -0
  343. package/dist/state/retrievalAuthority.js +156 -0
  344. package/dist/state/safeProjectFile.js +155 -0
  345. package/dist/state/startupAnalysis/benchmark.js +432 -0
  346. package/dist/state/startupAnalysis/contract.js +160 -0
  347. package/dist/state/startupAnalysis/helpers.js +286 -0
  348. package/dist/state/startupAnalysis/index.js +6 -0
  349. package/dist/state/startupAnalysis/metrics.js +340 -0
  350. package/dist/state/startupAnalysis/records.js +198 -0
  351. package/dist/state/startupAnalysis/report.js +111 -0
  352. package/dist/state/startupAnalysis/threshold.js +512 -0
  353. package/dist/state/startupAnalysis.js +2 -1953
  354. package/dist/state/startupProjection.js +499 -0
  355. package/dist/state/stateMode.js +85 -0
  356. package/dist/state/stateStorageAuthority.js +47 -0
  357. package/dist/state/summaryEntityRead.js +25 -0
  358. package/dist/state/summaryMigrationProvenance.js +66 -0
  359. package/dist/state/summarySourceRowAuthority.js +36 -0
  360. package/dist/state/todoDocsEntities.js +1064 -0
  361. package/dist/state/todoDocsEntityValidation.js +158 -0
  362. package/dist/state/todoMarkdownProjection.js +51 -0
  363. package/dist/state/todoReconciliationActivation.js +132 -0
  364. package/dist/state/todoReconciliationInspection.js +173 -0
  365. package/dist/state/todoReconciliationRepair.js +170 -0
  366. package/dist/state/todoReconciliationTransaction.js +582 -0
  367. package/dist/state/write/assign.js +20 -0
  368. package/dist/state/write/candidateMutation.js +269 -0
  369. package/dist/state/write/errors.js +11 -0
  370. package/dist/state/write/experimentPublication.js +192 -0
  371. package/dist/state/write/explain.js +332 -0
  372. package/dist/state/write/fields.js +61 -0
  373. package/dist/state/write/glossaryPublication.js +263 -0
  374. package/dist/state/write/grammar.js +280 -0
  375. package/dist/state/write/helpers.js +29 -0
  376. package/dist/state/write/index.js +12 -0
  377. package/dist/state/write/input.js +367 -0
  378. package/dist/state/write/lock.js +837 -0
  379. package/dist/state/write/mutation.js +234 -0
  380. package/dist/state/write/operations.js +169 -0
  381. package/dist/state/write/planEvaluation.js +128 -0
  382. package/dist/state/write/planPublication.js +179 -0
  383. package/dist/state/write/runtimeOperations.js +142 -0
  384. package/dist/state/write/serialize.js +1 -0
  385. package/dist/state/write/transaction.js +52 -0
  386. package/dist/state/write/validate.js +7 -0
  387. package/dist/upgrade/appContentRefresh.js +383 -0
  388. package/dist/upgrade/appModel.js +8 -7
  389. package/dist/upgrade/atomicWriter.js +1 -0
  390. package/dist/upgrade/bundleEvidence.js +33 -0
  391. package/dist/upgrade/channels.js +12 -8
  392. package/dist/upgrade/compatibility.js +56 -21
  393. package/dist/upgrade/doctor.js +197 -192
  394. package/dist/upgrade/doctorClassifier.js +187 -0
  395. package/dist/upgrade/installedHooksRetirement.js +196 -0
  396. package/dist/upgrade/legacyAgentCleanup.js +282 -0
  397. package/dist/upgrade/lifecycleUpgrade.js +113 -0
  398. package/dist/upgrade/migrateArtifactsV2ToV3.js +367 -149
  399. package/dist/upgrade/migrationPublication.js +122 -0
  400. package/dist/upgrade/nextMajorDoctor.js +155 -0
  401. package/dist/upgrade/npxPlatformStatus.js +22 -0
  402. package/dist/upgrade/projectIntegration.js +145 -187
  403. package/dist/upgrade/projectIntegrationDecision.js +50 -0
  404. package/dist/upgrade/retiredResourceDiagnostics.js +117 -0
  405. package/dist/upgrade/runtimeMigration.js +278 -352
  406. package/dist/upgrade/upgradeCommands.js +14 -1
  407. package/dist/upgrade/upgradeLock.js +85 -0
  408. package/dist/upgrade/upgradeOrchestrator.js +263 -59
  409. package/dist/upgrade/v3CapabilitySurface.js +14 -0
  410. package/dist/upgrade/versionResolution.js +12 -5
  411. package/dist/validate/activationArtifactEvidence.js +844 -0
  412. package/dist/validate/activationConjunction.js +816 -0
  413. package/dist/validate/activationEvidenceManifest.js +515 -0
  414. package/dist/validate/activationPackageSemantics.js +29 -0
  415. package/dist/validate/appHomeContract.js +5 -11
  416. package/dist/validate/bootstrapAuthority.js +44 -0
  417. package/dist/validate/capability.js +144 -15
  418. package/dist/validate/crossCapability.js +15 -10
  419. package/dist/validate/retainedReferenceAuthority.js +879 -0
  420. package/dist/validate/selfAudit.js +73 -37
  421. package/dist/validate/v1LegacyCruft.js +131 -0
  422. package/dist/validate/vocabularyAuthority.js +303 -0
  423. package/package.json +53 -27
  424. package/bundle/references/adapters/cursor.md +0 -213
  425. package/bundle/references/adapters/opencode.md +0 -530
  426. package/bundle/references/adapters/package-manifest-interface-model.yaml +0 -337
  427. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -79
  428. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  429. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -548
  430. package/bundle/references/adapters/runtime-feature-parity.md +0 -189
  431. package/bundle/references/analysis/benchmark.md +0 -267
  432. package/bundle/references/analysis/startup-measurement-contract.yaml +0 -424
  433. package/bundle/references/cli/agent-ready-state-contract.yaml +0 -953
  434. package/bundle/references/cli/audience-namespace-cli-migration.yaml +0 -355
  435. package/bundle/references/cli/bundle-skill-vocabulary.yaml +0 -278
  436. package/bundle/references/cli/capability-tool-classification.yaml +0 -53
  437. package/bundle/references/cli/routing-execution-vocabulary.yaml +0 -281
  438. package/bundle/references/meta/documentation-inventory.md +0 -43
  439. package/bundle/references/v1-section-mapping.md +0 -47
  440. package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
  441. package/bundle/skills/agentera/agents/dokumentera.toml +0 -6
  442. package/bundle/skills/agentera/agents/hej.toml +0 -6
  443. package/bundle/skills/agentera/agents/inspektera.toml +0 -6
  444. package/bundle/skills/agentera/agents/inspirera.toml +0 -6
  445. package/bundle/skills/agentera/agents/optimera.toml +0 -6
  446. package/bundle/skills/agentera/agents/orkestrera.toml +0 -6
  447. package/bundle/skills/agentera/agents/planera.toml +0 -6
  448. package/bundle/skills/agentera/agents/profilera.toml +0 -6
  449. package/bundle/skills/agentera/agents/realisera.toml +0 -6
  450. package/bundle/skills/agentera/agents/resonera.toml +0 -6
  451. package/bundle/skills/agentera/agents/visionera.toml +0 -6
  452. package/bundle/skills/agentera/agents/visualisera.toml +0 -6
  453. package/bundle/skills/agentera/capabilities/dokumentera/instructions.md +0 -428
  454. package/bundle/skills/agentera/capabilities/dokumentera/schemas/artifacts.yaml +0 -73
  455. package/bundle/skills/agentera/capabilities/dokumentera/schemas/triggers.yaml +0 -35
  456. package/bundle/skills/agentera/capabilities/hej/instructions.md +0 -331
  457. package/bundle/skills/agentera/capabilities/hej/schemas/artifacts.yaml +0 -69
  458. package/bundle/skills/agentera/capabilities/hej/schemas/triggers.yaml +0 -58
  459. package/bundle/skills/agentera/capabilities/inspektera/instructions.md +0 -514
  460. package/bundle/skills/agentera/capabilities/inspektera/schemas/artifacts.yaml +0 -76
  461. package/bundle/skills/agentera/capabilities/inspektera/schemas/triggers.yaml +0 -38
  462. package/bundle/skills/agentera/capabilities/inspirera/instructions.md +0 -280
  463. package/bundle/skills/agentera/capabilities/inspirera/schemas/artifacts.yaml +0 -24
  464. package/bundle/skills/agentera/capabilities/inspirera/schemas/triggers.yaml +0 -34
  465. package/bundle/skills/agentera/capabilities/optimera/instructions.md +0 -437
  466. package/bundle/skills/agentera/capabilities/optimera/schemas/triggers.yaml +0 -39
  467. package/bundle/skills/agentera/capabilities/orkestrera/instructions.md +0 -433
  468. package/bundle/skills/agentera/capabilities/orkestrera/schemas/artifacts.yaml +0 -64
  469. package/bundle/skills/agentera/capabilities/orkestrera/schemas/triggers.yaml +0 -42
  470. package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +0 -107
  471. package/bundle/skills/agentera/capabilities/planera/instructions.md +0 -368
  472. package/bundle/skills/agentera/capabilities/planera/schemas/artifacts.yaml +0 -62
  473. package/bundle/skills/agentera/capabilities/planera/schemas/triggers.yaml +0 -34
  474. package/bundle/skills/agentera/capabilities/planera/schemas/validation.yaml +0 -61
  475. package/bundle/skills/agentera/capabilities/profilera/instructions.md +0 -419
  476. package/bundle/skills/agentera/capabilities/profilera/schemas/artifacts.yaml +0 -18
  477. package/bundle/skills/agentera/capabilities/profilera/schemas/triggers.yaml +0 -45
  478. package/bundle/skills/agentera/capabilities/profilera/schemas/validation.yaml +0 -57
  479. package/bundle/skills/agentera/capabilities/realisera/instructions.md +0 -403
  480. package/bundle/skills/agentera/capabilities/realisera/schemas/artifacts.yaml +0 -80
  481. package/bundle/skills/agentera/capabilities/realisera/schemas/triggers.yaml +0 -39
  482. package/bundle/skills/agentera/capabilities/realisera/schemas/validation.yaml +0 -110
  483. package/bundle/skills/agentera/capabilities/resonera/instructions.md +0 -329
  484. package/bundle/skills/agentera/capabilities/resonera/schemas/artifacts.yaml +0 -47
  485. package/bundle/skills/agentera/capabilities/resonera/schemas/triggers.yaml +0 -46
  486. package/bundle/skills/agentera/capabilities/resonera/schemas/validation.yaml +0 -77
  487. package/bundle/skills/agentera/capabilities/visionera/instructions.md +0 -309
  488. package/bundle/skills/agentera/capabilities/visionera/schemas/triggers.yaml +0 -41
  489. package/bundle/skills/agentera/capabilities/visualisera/instructions.md +0 -400
  490. package/bundle/skills/agentera/capabilities/visualisera/schemas/triggers.yaml +0 -33
  491. package/bundle/skills/agentera/references/contract.md +0 -1039
  492. package/bundle/skills/hej/.claude-plugin/plugin.json +0 -6
  493. package/bundle/skills/hej/SKILL.md +0 -69
  494. package/bundle/skills/hej/agents/hej.toml +0 -11
  495. package/bundle/skills/hej/agents/openai.yaml +0 -8
  496. package/dist/analytics/extractCorpus.js.map +0 -1
  497. package/dist/analytics/usageStats.js.map +0 -1
  498. package/dist/bin/agentera.js.map +0 -1
  499. package/dist/cli/appContext.js.map +0 -1
  500. package/dist/cli/argvalidate.js.map +0 -1
  501. package/dist/cli/capabilityContext.js.map +0 -1
  502. package/dist/cli/commands/backfill.js +0 -84
  503. package/dist/cli/commands/backfill.js.map +0 -1
  504. package/dist/cli/commands/capability.js.map +0 -1
  505. package/dist/cli/commands/compact.js.map +0 -1
  506. package/dist/cli/commands/doctor.js.map +0 -1
  507. package/dist/cli/commands/lint.js.map +0 -1
  508. package/dist/cli/commands/prime.js.map +0 -1
  509. package/dist/cli/commands/query.js.map +0 -1
  510. package/dist/cli/commands/report.js.map +0 -1
  511. package/dist/cli/commands/schema.js.map +0 -1
  512. package/dist/cli/commands/state.js +0 -1012
  513. package/dist/cli/commands/state.js.map +0 -1
  514. package/dist/cli/commands/upgrade.js.map +0 -1
  515. package/dist/cli/commands/validate.js.map +0 -1
  516. package/dist/cli/commands/verify.js.map +0 -1
  517. package/dist/cli/dispatch.js.map +0 -1
  518. package/dist/cli/help.js.map +0 -1
  519. package/dist/cli/orientation.js.map +0 -1
  520. package/dist/cli/prime-blob.js.map +0 -1
  521. package/dist/cli/stateQuery.js.map +0 -1
  522. package/dist/cli/structured.js.map +0 -1
  523. package/dist/core/difflib.js.map +0 -1
  524. package/dist/core/git.js +0 -43
  525. package/dist/core/git.js.map +0 -1
  526. package/dist/core/paths.js.map +0 -1
  527. package/dist/core/pyjson.js.map +0 -1
  528. package/dist/core/sourceRoot.js.map +0 -1
  529. package/dist/core/toml.js.map +0 -1
  530. package/dist/core/yaml.js.map +0 -1
  531. package/dist/eval/evalSkills.js.map +0 -1
  532. package/dist/eval/semanticEval.js.map +0 -1
  533. package/dist/eval/semanticFixtures.js.map +0 -1
  534. package/dist/hooks/common.js.map +0 -1
  535. package/dist/hooks/compaction.js +0 -935
  536. package/dist/hooks/compaction.js.map +0 -1
  537. package/dist/hooks/cursorPreToolUse.js +0 -19
  538. package/dist/hooks/cursorPreToolUse.js.map +0 -1
  539. package/dist/hooks/cursorSessionStart.js +0 -71
  540. package/dist/hooks/cursorSessionStart.js.map +0 -1
  541. package/dist/hooks/sessionStart.js +0 -209
  542. package/dist/hooks/sessionStart.js.map +0 -1
  543. package/dist/hooks/sessionStop.js +0 -212
  544. package/dist/hooks/sessionStop.js.map +0 -1
  545. package/dist/hooks/validateArtifact.js +0 -933
  546. package/dist/hooks/validateArtifact.js.map +0 -1
  547. package/dist/registries/artifactRegistry.js.map +0 -1
  548. package/dist/registries/capabilityContract.js.map +0 -1
  549. package/dist/registries/packageRegistry.js.map +0 -1
  550. package/dist/registries/runtimeAdapterRegistry.js +0 -315
  551. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  552. package/dist/setup/codex.js +0 -1056
  553. package/dist/setup/codex.js.map +0 -1
  554. package/dist/setup/copilot.js +0 -227
  555. package/dist/setup/copilot.js.map +0 -1
  556. package/dist/setup/cursor.js +0 -127
  557. package/dist/setup/cursor.js.map +0 -1
  558. package/dist/setup/doctor.js +0 -1297
  559. package/dist/setup/doctor.js.map +0 -1
  560. package/dist/setup/smokeChecks.js.map +0 -1
  561. package/dist/state/installRoot.js.map +0 -1
  562. package/dist/state/progressCommit.js +0 -289
  563. package/dist/state/progressCommit.js.map +0 -1
  564. package/dist/state/startupAnalysis.js.map +0 -1
  565. package/dist/upgrade/appModel.js.map +0 -1
  566. package/dist/upgrade/channels.js.map +0 -1
  567. package/dist/upgrade/compatibility.js.map +0 -1
  568. package/dist/upgrade/doctor.js.map +0 -1
  569. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -571
  570. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  571. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +0 -1
  572. package/dist/upgrade/projectIntegration.js.map +0 -1
  573. package/dist/upgrade/runtimeMigration.js.map +0 -1
  574. package/dist/upgrade/upgradeCommands.js.map +0 -1
  575. package/dist/upgrade/upgradeOrchestrator.js.map +0 -1
  576. package/dist/upgrade/versionResolution.js.map +0 -1
  577. package/dist/validate/appHomeContract.js.map +0 -1
  578. package/dist/validate/capability.js.map +0 -1
  579. package/dist/validate/crossCapability.js.map +0 -1
  580. package/dist/validate/lifecycleAdapters.js +0 -772
  581. package/dist/validate/lifecycleAdapters.js.map +0 -1
  582. package/dist/validate/selfAudit.js.map +0 -1
  583. /package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/exit.yaml +0 -0
  584. /package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/exit.yaml +0 -0
  585. /package/bundle/skills/agentera/capabilities/{hej → status}/schemas/exit.yaml +0 -0
@@ -1,404 +1,173 @@
1
1
  ---
2
2
  name: agentera
3
3
  description: >
4
- The open protocol for turning AI agents into engineering teams.
5
- One Agentera skill with twelve capabilities, each defined by human-readable
6
- prose and machine-readable schemas. The agent reads this file to route
7
- incoming requests to the right capability. Use this skill for /agentera,
8
- Agentera capability requests, and a complete user message exactly `hej`;
9
- bare `hej` runs the agentera prime orientation dashboard path instead of a generic greeting.
10
- version: "2.7.6"
4
+ One agent, one CLI, many capabilities. Per-capability instructions live in
5
+ `packages/cli/src/capabilities/<name>/instructions.ts` and the runtime serves
6
+ it through `npx -y agentera@next prime --context <name> --format json`. Use this skill
7
+ for /agentera and Agentera capability requests; bare `/agentera` runs the
8
+ prime orientation dashboard path instead of a generic greeting.
9
+ version: "3.0.0"
11
10
  spec_sections: [1, 2, 3, 4, 5, 6, 11, 13, 18, 19, 20, 22, 23]
11
+ capabilities:
12
+ - status
13
+ - vision
14
+ - discuss
15
+ - research
16
+ - plan
17
+ - build
18
+ - optimize
19
+ - audit
20
+ - document
21
+ - profile
22
+ - design
23
+ - orchestrate
12
24
  ---
13
25
 
14
26
  # agentera
15
27
 
16
- One install, one entry point, one query interface to all project state. Twelve capabilities live inside one Agentera skill.
28
+ One agent, one CLI, many capabilities. The CLI owns project memory,
29
+ capability instructions, the deterministic routing tiers, and the worker-spec
30
+ contract. The host owns open-ended semantic judgment from the trigger intent
31
+ documentation after deterministic abstention; it learns that contract from the CLI.
17
32
 
18
33
  ---
19
34
 
20
- ## Shared Protocol
35
+ ## Bootstrap
21
36
 
22
- All capabilities reference shared primitives defined in `protocol.yaml`:
23
-
24
- - **Confidence scale**: 0-100, five tiers with explicit boundaries
25
- - **Severity levels**: finding vocabulary and issue vocabulary
26
- - **Visual tokens**: status, severity, confidence, and trend glyphs
27
- - **Phase model**: five phases with valid transitions
28
-
29
- Capabilities import these by name. The schema contract ensures consistent usage.
30
-
31
- ---
32
-
33
- ## Capabilities
34
-
35
- | | Capability | Primary route | Purpose |
36
- |---|---|---|---|
37
- | ⌂ | hej | `/agentera status` | Orientation and routing |
38
- | ⛥ | visionera | `/agentera vision` | Define project direction |
39
- | ❈ | resonera | `/agentera discuss` | Structured deliberation |
40
- | ⬚ | inspirera | `/agentera research` | External pattern analysis |
41
- | ≡ | planera | `/agentera plan` | Planning with acceptance criteria |
42
- | ⧉ | realisera | `/agentera build` | Autonomous development |
43
- | ⎘ | optimera | `/agentera optimize` | Metric-driven optimization |
44
- | ⛶ | inspektera | `/agentera audit` | Codebase health audit |
45
- | ▤ | dokumentera | `/agentera document` | Documentation |
46
- | ♾ | profilera | `/agentera profile` | Decision profiling |
47
- | ◰ | visualisera | `/agentera design` | Visual identity system |
48
- | ⎈ | orkestrera | `/agentera orchestrate` | Multi-cycle orchestration |
49
-
50
- ---
51
-
52
- ## Routing Logic
53
-
54
- When a request arrives, route to the matching capability using the five-layer routing model from Decision 42.
55
-
56
- ### Prerequisite: Single-call installed CLI gate
57
-
58
- This gate is mandatory, but the gate and the orientation dashboard source are the same
59
- installed CLI invocation. For bare `/agentera` or bare `hej`, the first normal
60
- state-access tool call is:
37
+ Run one pre-cutover `@next` call for orientation. It is read-only in clean, v2,
38
+ partially migrated, and v3 projects. Clean, v2, and partial state returns
39
+ `blocked` with the exact full entity-upgrade command in
40
+ `state_cutover.recovery_command`; v3 returns `ok` unless health is degraded.
41
+ The JSON also returns bounded app status, state slices, attention, and startup
42
+ availability.
61
43
 
62
44
  ```bash
63
- npx -y agentera prime
45
+ npx -y agentera@next prime --context status --format json
64
46
  ```
65
47
 
66
- Resolve `RESOLVED_AGENTERA_HOME` with the app-home precedence `AGENTERA_HOME`
67
- when set, otherwise the platform data home. Do not run `glob`, `grep`, `read`,
68
- `ls`, `python`, `doctor`, `--help`, `registry.json`,
69
- or `.agentera-bundle.json` preflight checks before this call. The CLI owns app
70
- validation, v1 detection, profile detection, artifact condensation, and the
71
- `source_contract` that tells the caller how to render the dashboard.
72
- Never combine the app-home assignment with the same shell command that expands
73
- the managed app script path; shell expansion can otherwise turn an unset
74
- `AGENTERA_HOME` into `npx -y agentera` before the assignment takes effect.
75
-
76
- If the command exits successfully, inspect the CLI-provided `bundle.status`
77
- installed-app status object. If its value is `fresh`, treat the installed app gate as passed
78
- for that briefing and render from the output. The object includes
79
- `expectedVersion`, `expectedVersionSource`, `appHome`, `managedAppRoot`,
80
- `userDataRoot`, repair commands, and approval text.
81
-
82
- ### User-facing repair wording
83
-
84
- Recovery and troubleshooting prompts must be plain enough for a non-technical
85
- user. Never ask the user to choose between technical install concepts, internal
86
- directory states, command-mode flags, or package-layout terms. Keep those as
87
- internal facts.
88
- User-facing copy must answer four questions in this order:
89
-
90
- 1. What happened: `Agentera found an old or broken local copy of itself.`
91
- 2. What the preview did: `Nothing was changed.`
92
- 3. What the recommended fix will do: `Install a fresh Agentera app copy in the normal Agentera directory.`
93
- 4. What it will not do: `It will not edit your project files, shell startup files, or unknown directories.`
94
-
95
- Use recommendation-first choices only when a choice is unavoidable. Put the safe
96
- default first and name it as the recommendation. Good labels: `Use the safe fix
97
- (Recommended)`, `Choose a different directory`, `Stop`. Bad labels: `Use platform
98
- home`, `Force old directory`, or labels that expose internal flags and app-file
99
- packaging terms.
100
- Only mention commands and paths after the plain explanation, as technical detail.
101
-
102
- If the command cannot execute because `AGENTERA_HOME` names the old default
103
- `$HOME/.agents/agentera` and `npx -y agentera` is missing,
104
- do not require a successful failed CLI invocation and do not first ask the user to
105
- unset `AGENTERA_HOME`. Tell the user: `Agentera found an old or broken local copy
106
- of itself. The safe fix is to install a fresh copy in the normal Agentera directory.`
107
- Then show this preview command and say it changes nothing:
48
+ An `ok` outcome needs no fallback or second dashboard call. Follow an exact
49
+ recovery command for other outcomes; every returned v3 command stays on
50
+ `npx -y agentera@next`. Do not use bare or stable-channel CLI forms before
51
+ stable promotion. For deeper read-only evidence, run
52
+ `npx -y agentera@next doctor --format json`.
53
+
54
+ For capability-specific startup context:
108
55
 
109
56
  ```bash
110
- npx -y agentera@latest doctor
57
+ npx -y agentera@next prime --context <capability> --format json
111
58
  ```
112
59
 
113
- This preview writes nothing. Because no explicit `--install-root` is supplied,
114
- upgrade can choose the normal platform app directory and preview repair for app
115
- files, managed runtime surfaces, and cleanup of the old directory. Ask for
116
- explicit approval before writes, using plain wording such as
117
- `Approve the safe Agentera repair at <directory>`. After approval, apply the same
118
- safe repair path:
60
+ This returns the capability's instructions, declared read/write needs, artifact
61
+ inventory, and `capability_context.startup`. Check its `outcome` (`ok`,
62
+ `degraded`, or `blocked`). The `availability` rows identify bounded included
63
+ families and deferred families; use a deferred row's `detail_command` for
64
+ detail. Use this response before reading the instructions module directly.
65
+
66
+ For static routing guidance (CLI vs native tools):
119
67
 
120
68
  ```bash
121
- npx -y agentera@latest prime
69
+ npx -y agentera@next prime --guidance
122
70
  ```
123
71
 
124
- After apply, retry the installed command from the platform app home reported by
125
- the upgrade output, not from the old default directory. If the command executes but
126
- fails before argparse, reports `invalid choice` for `prime`, or reports a status of
127
- `outdated`, `manual_review_needed`, missing-command, or repair-needed:
72
+ ### Upgrade from v2 to v3 development
128
73
 
129
- - Say `Agentera found an old or broken local copy of itself.`
130
- - Say whether the preview changed anything; preview commands change nothing.
131
- - State the safe recommendation in plain language before paths or commands.
132
- - Show the clone-free preview command from `bundle.dryRunCommand` when present:
74
+ The preview is optional. Apply is one full command:
133
75
 
134
76
  ```bash
135
- npx -y agentera@latest doctor
77
+ npx -y agentera@next upgrade --channel development --project "$PWD" --dry-run
78
+ npx -y agentera@next upgrade --channel development --project "$PWD" --yes
136
79
  ```
137
80
 
138
- Ask for explicit approval before writes. A normal affirmative response is
139
- acceptable only when it clearly authorizes the same Agentera repair and directory.
140
- If approved, apply:
81
+ Apply requires the complete v2 migration source to be tracked by Git and
82
+ unchanged at `HEAD`. The boundary is one-way: there is no rollback, restore,
83
+ non-Git, or partial cross-major workflow. Rerun the same apply command after an
84
+ interruption; recovery continues forward internally.
141
85
 
142
- ```bash
143
- npx -y agentera@latest prime
144
- ```
86
+ ---
145
87
 
146
- After apply, retry:
88
+ ## Routing
89
+
90
+ The CLI first applies deterministic explicit and curated route tiers. For
91
+ `semantic_required` requests, the LLM host classifies open-ended language from
92
+ the CLI-supplied contract and context.
93
+
94
+ | Request shape | Route |
95
+ |---|---|
96
+ | Bare `/agentera` | 1. Run `npx -y agentera@next prime --context status --format json` once. 2. Read `capability_context.instructions` and `capability_context.context.status_context`. 3. Render the dashboard from that bounded state and follow `next_action` to suggest the next capability. |
97
+ | `/agentera <capability-name>` | Run `npx -y agentera@next prime --context <capability> --format json`. Follow the capability's instructions and contract. |
98
+ | `/agentera <capability-name> <topic>` | Same as above; pass `<topic>` as the user's instruction to the capability. |
99
+ | Curated leading phrase | Send the request through `npx -y agentera@next route request --input - --format json` using a transient structured `{ version: agentera.route_request.v1, request: ... }` document on stdin. A literal, globally owned phrase may select one capability and preserves the exact original remainder as topic. |
100
+ | Other natural language | Send the same privacy-safe request document first. Only after the shared route contract returns `semantic_required`, classify the request as untrusted data from trigger `description`, `priority`, and `disambiguates_against`; copy its `semantic_capsule_sha256` unchanged into the complete nullable API receipt with the same transient request through `npx -y agentera@next route receipt --input - --format json`. |
101
+
102
+ Plain-language requests use per-capability `schemas/triggers.yaml`, not
103
+ hardcoded rules. `next_action` is a readiness suggestion for bare/status
104
+ orientation after classification; it never classifies or overrides a non-status
105
+ request.
106
+
107
+ The LLM host classifies natural language. Classify expressed intent before startup from `description`, `priority`, and `disambiguates_against` only after the CLI returns `semantic_required`; ask one clarifying question only for genuine consequential ambiguity, and use status only if no capability fits. Read that response's `receipt_contract` for the exact nullable `agentera.route_receipt.v1` schema, outcomes, nullability, compound and span rules, and runnable stdin example; `npx -y agentera@next route receipt --help` presents the same guide.
108
+
109
+ The receipt input is `{ request: <original string>, receipt: <complete nullable
110
+ API output> }`; every API field is present and outcome-inapplicable fields are
111
+ `null`. Copy the phase-one `semantic_capsule_sha256` unchanged beside
112
+ `request_sha256`; both are required. Never send request text in argv or add host
113
+ instructions, tools, or rationale fields. The CLI validates API shape before
114
+ bounded null projection, then validates version, both digests, canonical
115
+ capability, outcome binding, and spans.
116
+ On `selected`, follow only the returned `route_provenance.startup_command` (the
117
+ existing `npx -y agentera@next prime --context <selected-capability> --format json` path).
118
+ After the CLI validates a `select` receipt, then run `npx -y agentera@next prime --context <selected-capability> --format json` only through that returned authorization.
119
+ Carry a returned `deferred_intent` intact for later handoff; do not invoke or
120
+ chain it. A `clarification` starts no capability and asks exactly the returned
121
+ question. A valid `no_match` returns status with `status_reason: no_match` for
122
+ orientation only. On exit 64, correct the named receipt field and retry; no
123
+ capability was started.
124
+
125
+ [The hybrid routing model](../../references/cli/routing-model.md) defines the
126
+ shared two-phase request/receipt contract. Open-ended language remains LLM-owned:
127
+ no scores, thresholds, or borderline band. The phrase registry is the only
128
+ deterministic natural-language authority; do not revive legacy trigger patterns,
129
+ regexes, thresholds, or bands. `next_action` never classifies or overrides a
130
+ request, and a compound remainder is preserved rather than silently chained.
131
+ Decision mpulyomlyl supersedes Decision 76 only for this curated literal fast
132
+ path.
133
+
134
+ Run `npx -y agentera@next route evaluate --format json` to evaluate the frozen visible
135
+ development and adversarial corpus. Its report binds the protocol, phrase
136
+ authority, and shared-skill hashes, labels every result with a routing tier, and
137
+ keeps request text out of output. It proves protocol conformance, not semantic
138
+ generalization. It does not invoke a semantic host: deterministic and
139
+ receipt-validation conformance and run-specific local p95 values are measured
140
+ locally, while semantic model quality and latency are host-dependent and
141
+ explicitly unmeasured.
142
+
143
+ Handoff verbs:
144
+
145
+ - `route`: user directly invoked a capability. Consent to invoke; no extra confirmation.
146
+ - `suggest`: recommend a downstream capability and wait for confirmation.
147
+ - `dispatch`: invoke another capability autonomously only when the current capability owns that orchestration flow.
148
+ - `chain`: dispatch multiple capabilities only inside an orchestrated flow.
149
+
150
+ Capability handoffs use glyph plus canonical name (e.g. `⧉ build`, `≡ plan`).
147
151
 
148
- ```bash
149
- npx -y agentera prime
150
- ```
152
+ ---
151
153
 
152
- If `AGENTERA_HOME` names the old default `$HOME/.agents/agentera`, no explicit
153
- `--install-root` was supplied, and `npx -y agentera` is
154
- missing or out of date, treat this as safe to preview with the normal Agentera
155
- directory above. Do not first ask the user to unset `AGENTERA_HOME`; do not claim to
156
- prove where the environment value came from. If `AGENTERA_HOME` names any other
157
- missing path, file, or directory with unknown files and the single command cannot
158
- run, do not overwrite it silently or fall back to a local checkout. Say:
159
- `Agentera was told to use a directory it cannot safely use. Choose a different
160
- Agentera directory, or approve --force only after checking that directory is safe to
161
- replace.`
162
-
163
- If a leftover 1.x managed marker block (`# agentera: AGENTERA_HOME (managed)`) is
164
- reported in shell startup diagnostics, say plainly that Agentera will not edit
165
- those files. Cleanup is user-owned manual cleanup, not a repair write. Upgrade
166
- does not scan shell startup files.
167
-
168
- Only after the installed CLI succeeds, proceed to Step -1 and the routing layers
169
- below. Do not fall through to a local checkout as a workaround; the npx commands
170
- above are portable and require no local checkout.
171
-
172
- ### Step -1: Top-level CLI-first state access
173
-
174
- The `agentera` CLI is the authoritative interface to project state. Use
175
- top-level state commands for routine access. `agentera query` is reserved for
176
- advanced/custom artifact inspection when no normal command serves the needed
177
- state.
178
-
179
- Before any artifact-backed briefing, route decision, or capability state read,
180
- run the top-level command that owns the needed state. The app health gate
181
- above must have already confirmed the installed CLI is usable.
182
-
183
- Routine commands are: `prime`, `state plan`, `state progress`, `state health`,
184
- `state todo`, `state decisions`, `state docs`, `state objective`, and
185
- `state experiments`. Top-level aliases for legacy commands remain during migration with stderr deprecation; see [audience-namespace-cli-migration.yaml](references/cli/audience-namespace-cli-migration.yaml) for the full list. Discovery and custom
186
- inspection remain available through `agentera schema --format json`
187
- (with legacy `describe` alias),
188
- `state query --list-artifacts`, and `state query <artifact-name> --format json|yaml`.
189
- Structured discovery includes an artifact-location contract with mapped paths,
190
- normal read commands, and raw-access boundaries; use that contract before
191
- reading `.agentera/docs.yaml` or probing `.agentera/` for path discovery.
192
-
193
- Do not silently bypass the CLI and read raw `.agentera/*.yaml` files first. If
194
- CLI state declares complete startup coverage, do not perform defensive raw
195
- artifact reads for normal startup. If CLI state is unavailable or incomplete,
196
- try the CLI-provided fallback commands first; use raw artifact reads only as a
197
- last-resort fallback after those paths fail or still declare incomplete state.
198
- When `agentera state plan --format json` returns
199
- `source_contract.complete_for_plan_artifact=true`, treat its `summary`,
200
- `entries`, and `source_contract` as complete for normal `PLAN.md` startup and
201
- evaluation context; do not read `.agentera/plan.yaml` merely to re-check task
202
- dependencies, acceptance criteria, evidence, overall acceptance, surprises,
203
- prior-plan archive references, or plan metadata. This no-raw-read rule is for
204
- normal read-only startup/evaluation. Raw mapped plan artifact access remains valid
205
- for writes, archives, validation, corruption diagnostics, or unavailable or
206
- incomplete CLI state after CLI fallbacks.
207
-
208
- When artifact paths are the only missing fact, prefer the CLI discovery contract:
209
- `agentera schema --format json` exposes `artifact_locations`, and
210
- `agentera state query --list-artifacts --format json` exposes the same compact records
211
- with a `names` compatibility list. Plain `state query --list-artifacts` remains the
212
- human names list. These discovery surfaces do not replace routine state commands
213
- for normal artifact content reads.
214
-
215
- For bare `/agentera` or a bare user message exactly `hej`, run `agentera prime`
216
- first and render the README-style hej dashboard from that single composite
217
- result. The CLI output is source data, not the user-facing dashboard; do not
218
- relay raw `agentera prime` lines as the final briefing. Do not run individual `state plan`, `state progress`, `state health`,
219
- `state todo`, or `state decisions` commands unless `agentera prime` fails or explicitly asks
220
- for fallback. The final response must
221
- transform source labels such as `mode:`, `profile:`, `health:`, `issues:`,
222
- `plan:`, `objective:`, `attention:`, `next_action:`, `app_home:`,
223
- `v1_migration:`, and `source_contract:` into the dashboard below; never paste
224
- those labels as the briefing.
225
-
226
- Bare `/agentera` returning-project output must include these visible markers:
227
-
228
- ```text
229
- ┌─┐┌─┐┌─┐┌┐┌┌┬┐┌─┐┬─┐┌─┐
230
- ├─┤│ ┬├┤ │││ │ ├┤ ├┬┘├─┤
231
- ┴ ┴└─┘└─┘┘└┘ ┴ └─┘┴└─┴ ┴
232
-
233
- ─── status ─────────────────────────────
234
- [metric lines: health, issues, plan, objective, profile as available]
235
- [1-2 sentence narrative read closing the status section]
236
- ─── attention ──────────────────────────
237
- ─── next ───────────────────────────────
238
- ```
154
+ ## Dashboard rendering
239
155
 
240
- Use the README-style layout from hej Step 1b: metrics first, narrative read
241
- inside `status`, then attention and next. The issues summary line uses
242
- `critical · degraded · annoying` only. Omit `attention` only when the source has no attention items. Always include the
243
- mandatory `⌂ hej · <status>` marker below the dashboard code fence, and ask for
244
- confirmation before invoking the suggested downstream capability. For
245
- `/agentera <capability-name>` or `/agentera <alias>`, do not assume the route
246
- word is a CLI command. The CLI command surface is state-oriented, not
247
- capability-oriented:
248
- use the supported routine state command or commands that own the capability's
249
- needed artifacts, as declared by that capability's artifact schema. For example,
250
- `resonera` reads decisions through `agentera state decisions`, not through the
251
- unsupported capability-name command `agentera resonera`. Never run unsupported
252
- capability-name commands such as `agentera resonera`, `agentera planera`, or
253
- `agentera realisera` as a bootstrap step. Shared words stay split by interface:
254
- `/agentera plan` routes to planera, while `agentera state plan` reads plan state from
255
- the CLI. When capability-specific startup context is needed, request it through
256
- `agentera prime --context <capability> --format json`. Use returned
257
- `capability_context.state.included` directly, and for
258
- `capability_context.state.missing`, run the listed
259
- `capability_context.state.fallback_commands` before raw file access. Historical
260
- v2 paths `hej --capability-context` and `--context-profile` are removed in 3.0.
261
- For normal ≡ planera execution, use
262
- `capability_context.context.planning_context.startup_contract` from
263
- `agentera prime --context planera --format json`
264
- before reading `skills/agentera/capabilities/planera/instructions.md`. Read Planera prose only when
265
- editing Planera, resolving contradiction or ambiguity, validating detailed
266
- behavior not covered by the compact contract, or investigating benchmark/read-trigger
267
- evidence. This preserves Planera prose as detailed authority and does not add
268
- `agentera planera`; `/agentera plan` remains routing while `agentera state plan`
269
- remains plan state (top-level `agentera plan` is a migration alias).
270
- For normal DECISIONS.md context, use `agentera state decisions --format json` and its
271
- source_contract. When `complete_for_normal_deliberation_context=true`, preserve
272
- returned `missing_fields`, `compacted`, `caveats`, and `satisfaction.review_needed`
273
- instead of raw-reading `.agentera/decisions.yaml` to reconstruct missing history.
274
- Raw decision artifact access is reserved for Resonera-owned writes/repairs,
275
- artifact corruption diagnostics, or CLI defect investigation.
276
- Reading a capability's `instructions.md` file is not itself a capability invocation;
277
- invocation means routing to the capability, following its prose, and using the
278
- CLI state layer first for artifact-backed state.
279
-
280
- Capability handoffs use glyph plus canonical capability name, for example
281
- `⧉ realisera` or `≡ planera`. Reserve `/agentera <alias>` wording for explicit
282
- slash-route documentation and do not use standalone slash-capability names such
283
- as `/realisera` or `/planera` as handoff labels. SG priority codes such as `SG2`
284
- are internal protocol references; do not render them in user-facing handoff
285
- labels.
286
-
287
- Handoff verbs are normative:
288
-
289
- - `route`: the user directly invoked a capability by canonical name, primary
290
- alias, or slash route. This is consent to invoke that capability; do not ask
291
- for extra handoff confirmation.
292
- - `suggest`: recommend a downstream capability and wait for user confirmation.
293
- - `handoff prompt`: ask whether to run the suggested capability. Use the native
294
- question tool for multi-choice prompts and for a single state-changing
295
- Proceed/Cancel handoff. State-changing means the proposed next step may write
296
- artifacts, edit code, run optimization or orchestration cycles, apply
297
- migrations, refresh app/runtime state, or otherwise mutate project/runtime
298
- state. Use the behavior rule first, with common examples such as ⧉ realisera,
299
- ≡ planera when creating or updating plans, ▤ dokumentera when writing docs,
300
- ⎘ optimera when running or applying optimization cycles, and ⎈ orkestrera
301
- when dispatching cycles. A single non-mutating suggestion may use a free-form
302
- prompt; clear replies such as `yes`, `start`, `do it`, or `run <capability>`
303
- confirm the named suggestion. Ambiguous replies get one clarifying question.
304
- - `dispatch`: invoke another capability autonomously only when the current
305
- capability explicitly owns that orchestration flow.
306
- - `chain`: dispatch multiple capabilities autonomously only inside an explicitly
307
- orchestrated flow; otherwise suggest the next capability and wait.
308
-
309
- The first Agentera/hej response in a fresh interaction should deliver the brief
310
- and a free-form continuation prompt, not a native question menu, unless the user
311
- explicitly asks for bounded choices or the suggested next step is a
312
- state-changing Proceed/Cancel handoff. Mid-conversation, use the runtime's
313
- native question tool only when there are at least two meaningful non-terminal
314
- next actions or a consequential Proceed/Cancel decision; state-changing
315
- capability handoffs are consequential Proceed/Cancel decisions even when there
316
- is only one suggested action. Do not count `Done` or free-form/custom answer
317
- affordances as alternatives. Current host examples are Claude Code
318
- `AskUserQuestion`, Copilot `ask_user`, Codex `request_user_input`, and OpenCode
319
- `question`. Put the recommended choice first with `(Recommended)` in its label
320
- and include `Done`. Selecting a downstream capability option is confirmation to
321
- invoke that capability; selecting `Done` stops without routing. This generic
322
- question-tool gating applies to hej and capability handoff prompts. Once a
323
- capability is invoked, that capability's own interaction rules control whether
324
- the runtime-native question tool is required.
325
-
326
- ### Step 0: V1 migration handling
327
-
328
- Do not perform separate v1 Markdown/YAML discovery before a normal prime briefing.
329
- The top-level CLI owns v1 detection. For bare `/agentera` or bare `hej`, render
330
- any `v1 artifacts detected` attention item and affected-file list from
331
- `agentera prime`; do not spend extra tool calls on `.agentera/*.md`,
332
- `.agentera/*.yaml`, or `VISION.md` globs.
333
-
334
- If the CLI reports v1 state, use the `v1_migration.dry_run_command` preview it
335
- supplies. A no-write preview is mandatory before any apply command. Tell the
336
- user the preview changes nothing, then ask before applying. Only after
337
- confirmation, run `v1_migration.apply_command`.
338
- Never infer consent from the presence of v1 artifacts.
339
- The preview command shape is
340
- `npx -y agentera@latest doctor`
341
- or, from a local checkout, `node packages/cli/dist/bin/agentera.js doctor`
342
- when supplied by the CLI.
343
- Do not replace the CLI-owned preview with manual artifact inspection,
344
- hand-written migration steps, or raw YAML reads. Only the apply step requires confirmation.
345
-
346
- The upgrade command is idempotent. It installs or updates Agentera app files
347
- when invoked through `uvx`, migrates v1 artifacts, wires runtime config to that
348
- app home, and removes fixable outdated v1 runtime artifacts.
349
- The artifacts phase migrates supported v1 Markdown files to YAML with backups
350
- after preview and confirmation. Package refreshes that run `npx skills remove`
351
- for v1 skill entries and `npx skills add` for `/agentera` remain explicit opt-in
352
- via `--update-packages`. `npx skills update` by itself updates only the visible
353
- skill; if `/agentera` then finds missing or out-of-date app files, run the
354
- plain-language repair preview above so upgrade updates the app and cleans up
355
- the old default directory when it is recoverable.
356
-
357
- ### Layer 1: Bare `/agentera` or bare `hej` — delegate to prime
358
-
359
- If the request is `/agentera` with no additional text, or the complete user
360
- message is exactly `hej`, delegate immediately to hej. Hej performs state-aware
361
- routing through the `agentera prime` composite result, which condenses project
362
- artifacts and suggests the most useful next capability. This is deterministic
363
- and never wrong. Bare `hej` must not be handled as a generic greeting.
364
-
365
- ### Layer 2: capability name or `/agentera <primary-alias>` — direct route
366
-
367
- If the request text exactly matches a capability name (case-insensitive, e.g.,
368
- "resonera", "planera", "hej"), route directly to that capability without
369
- evaluating natural-language trigger patterns. Canonical Swedish names remain the
370
- protocol identity and bypass natural-language matching.
371
-
372
- If the request begins with a canonical capability name followed by more text, or
373
- uses `/agentera <capability-name> <topic>`, route directly to that capability and
374
- pass the remaining text as the user's topic or instruction. For example,
375
- `resonera decide whether to keep this API` invokes ❈ resonera; it must not
376
- receive a generic analysis response and must not try the unsupported CLI command
377
- `agentera resonera`.
378
-
379
- If the request text exactly matches one primary alias from
380
- `capability_schema_contract.yaml` `ROUTE_ALIASES.primary_aliases`, route directly
381
- to that alias's capability without evaluating natural-language trigger patterns.
382
- Each capability has exactly one primary alias. Secondary user wording stays in
383
- capability trigger schemas below this layer. Examples: `deliberate`,
384
- `brainstorm`, and `rubber duck` remain resonera trigger wording; `brief` and
385
- `what's next` remain hej trigger wording. These are not primary aliases.
386
-
387
- ### Layer 3: Natural language with high-confidence match
388
-
389
- If the request is natural language (e.g., "help me think through this"), evaluate capability trigger schemas and route when the schema-owned semantics produce a high-confidence match.
390
-
391
- ### Layer 4: Borderline match — disambiguation
392
-
393
- If the schema-owned routing semantics produce competing borderline matches, present a disambiguation prompt instead of silently choosing. List the matching capabilities with brief descriptions and ask the user to confirm or clarify.
394
-
395
- ### Layer 5: No match — fallback to hej
396
-
397
- If no capability matches with sufficient confidence, route to hej for orientation. Hej handles greetings, status requests, and ambiguous inputs.
398
-
399
- ### Trigger Pattern Discovery
400
-
401
- The trigger-to-capability map for Layers 3-4 is derived from each capability's `schemas/triggers.yaml`, not hardcoded here. Pattern matching, priority, thresholds, fallback, and disambiguation metadata belong to those trigger schemas and the capability schema contract. This keeps the routing layer focused on request-to-capability routing; capability directories and schemas remain the detailed Interface sources.
156
+ The prime dashboard rendering contract template, field-by-field rules, output
157
+ budget, attention-item ordering, exit marker is owned by the status capability
158
+ instructions. `npx -y agentera@next prime --context status --format json` returns the full
159
+ `capability_context.instructions` body and the bounded
160
+ `capability_context.context.status_context` state and one
161
+ `capability_context.startup` availability projection in one response. Render
162
+ from that capsule without a separate bare-prime call or raw artifact read. An
163
+ `ok` outcome needs no second call; for deferred detail, use only that family's
164
+ exact `detail_command`.
165
+ Ask for confirmation before invoking a state-changing downstream capability.
166
+
167
+ The first response in a fresh interaction delivers the brief and a free-form
168
+ continuation prompt, not a native question menu unless the user explicitly
169
+ asks for bounded choices or the suggested next step is a state-changing
170
+ Proceed/Cancel handoff.
402
171
 
403
172
  ---
404
173
 
@@ -408,63 +177,104 @@ The trigger-to-capability map for Layers 3-4 is derived from each capability's `
408
177
  - NEVER push to remote repos without explicit user instruction
409
178
  - NEVER modify `.agentera/vision.yaml` or objective state during execution cycles (only the user or the owning capability may change these)
410
179
  - NEVER commit secrets or credentials to any artifact or file
411
- - Respect artifact path resolution: check `.agentera/docs.yaml` for path overrides before accessing any agent-facing artifact
180
+ - For supported mutations, use the state writer; it resolves `.agentera/docs.yaml` path overrides and validates the published bytes
181
+ - For direct access to other agent-facing artifacts, respect `.agentera/docs.yaml` path overrides
412
182
  </critical>
413
183
 
414
184
  ---
415
185
 
416
- ## Exit signals
186
+ ## Capabilities
417
187
 
418
- All capabilities use the exit vocabulary defined by `protocol.yaml` `EXIT_SIGNALS`. Capability `schemas/exit.yaml` files reference that protocol authority; the routing layer does not maintain a separate exit-signal table.
188
+ | | Capability | Primary route | Purpose |
189
+ |---|---|---|---|
190
+ | ⌂ | status | `/agentera status` | Orientation and routing |
191
+ | ⛥ | vision | `/agentera vision` | Define project direction |
192
+ | ❈ | discuss | `/agentera discuss` | Structured deliberation |
193
+ | ⬚ | research | `/agentera research` | External pattern analysis |
194
+ | ≡ | plan | `/agentera plan` | Planning with acceptance criteria |
195
+ | ⧉ | build | `/agentera build` | Autonomous development |
196
+ | ⎘ | optimize | `/agentera optimize` | Metric-driven optimization |
197
+ | ⛶ | audit | `/agentera audit` | Codebase health audit |
198
+ | ▤ | document | `/agentera document` | Documentation |
199
+ | ♾ | profile | `/agentera profile` | Decision profiling |
200
+ | ◰ | design | `/agentera design` | Visual identity system |
201
+ | ⎈ | orchestrate | `/agentera orchestrate` | Multi-cycle orchestration |
419
202
 
420
203
  ---
421
204
 
422
- ## Cross-skill integration
205
+ ## Artifact writes
423
206
 
424
- The twelve-skill suite is collapsed into one Agentera skill. Each capability's schemas define cross-capability artifact references using stable IDs. Cross-capability routing is handled through capability trigger schemas described in the Routing Logic section. Capabilities read from and write to the same artifact store (`.agentera/` for agent-facing, project root for human-facing), so inter-capability data flows through shared artifacts, not direct invocation.
207
+ The CLI state writer is the canonical mutation path for entity-backed state.
208
+ Every public record has `id` and `artifact`, lives in one writer-owned entity
209
+ file, and is retrieved through bounded `list` or exact `get --id` commands. Do
210
+ not edit `.agentera/entities/` directly. The writer assigns bare IDs, validates
211
+ records, publishes atomically, and supports filesystem-safe previews.
425
212
 
426
- ### Artifact path resolution
213
+ Discover the live contract before constructing a write:
427
214
 
428
- Before reading or writing any artifact, check if `.agentera/docs.yaml` exists. If it has an Artifact Mapping section, use the path specified for each canonical filename. If `.agentera/docs.yaml` doesn't exist or has no mapping for a given artifact, use the default layout:
215
+ ```bash
216
+ npx -y agentera@next state decisions explain --format json
217
+ npx -y agentera@next state decisions explain --verb update --format json
218
+ ```
429
219
 
430
- - Human-facing artifacts at the project root: `TODO.md`, `CHANGELOG.md`, `DESIGN.md`
431
- - Agent-facing artifacts in `.agentera/` as YAML: `progress.yaml`, `decisions.yaml`, `health.yaml`, `plan.yaml`, `docs.yaml`, `vision.yaml`, `objective.yaml`, `experiments.yaml`
220
+ The same pattern applies to every writable artifact:
432
221
 
433
- ---
222
+ ```bash
223
+ npx -y agentera@next state <progress|decisions|plan|health> explain --verb <verb> --format json
224
+ ```
434
225
 
435
- ## Directory Structure
226
+ Common mutations:
227
+
228
+ - `npx -y agentera@next state progress append --input <path|-> --format json`
229
+ - `npx -y agentera@next state decisions append --input <path|-> --format json`
230
+ - `npx -y agentera@next state decisions amend --id ID --base-sha256 HASH --input <path|-> --format json`
231
+ - `npx -y agentera@next state decisions update --id ID ... --format json`
232
+ - `npx -y agentera@next state plan create --input plan.yaml --format json`
233
+ - `npx -y agentera@next state plan append [--plan PLAN_ID] --input task.yaml --format json`
234
+ - `npx -y agentera@next state plan update --id TASK_ID [--plan PLAN_ID] --input task-patch.yaml --format json`
235
+ - `npx -y agentera@next state plan set-status --id TASK_ID --status STATUS --format json`
236
+ - `npx -y agentera@next state plan set-plan-status [--plan PLAN_ID] --status complete --format json`
237
+ - `npx -y agentera@next state plan archive --format json`
238
+ - `npx -y agentera@next state health append --input audit.yaml --format json`
239
+ - `npx -y agentera@next state todo create --input todo.yaml --format json`
240
+ - `npx -y agentera@next state todo update --id ID --input todo-patch.yaml --format json`
241
+ - `npx -y agentera@next state todo set-severity --id ID ... --format json`
242
+ - `npx -y agentera@next state todo supersede --id ID ... --format json`
243
+ - `npx -y agentera@next state todo resolve --id ID ... --format json`
244
+ - `npx -y agentera@next state todo reopen --id ID ... --format json`
245
+
246
+ TODO create input is a full YAML/JSON typed record. TODO update input is a
247
+ patch: omitted fields remain unchanged and only `target_version`,
248
+ `requirements`, `acceptance`, and `readiness` accept typed clears. Public TODO
249
+ fields remain TODO.md-owned; readiness, dependencies, gates, evidence, and
250
+ lifecycle metadata remain Agentera-owned. Lifecycle verbs are flag-only and do
251
+ not accept record payloads.
252
+
253
+ Plan create task numbers and dependency values are create-local symbolic
254
+ ordinals inside one atomic input document; the writer removes them before
255
+ publishing bare ten-letter plan and task envelope IDs. A legacy composite
256
+ `header.id` is migration-only and is never a public selector. Post-publication
257
+ task append/update payloads use only mutable task content and bare task IDs.
258
+
259
+ Add `--dry-run` to preview any mutation without publishing it. Artifacts not
260
+ listed above are outside the typed writer contract and remain governed by their
261
+ owning capability's instructions and safety rails.
262
+ `npx -y agentera@next schema --format json` exposes the machine-readable writer operation matrix under
263
+ `state_writer` and on each writable `artifact_schemas[*].write_interface`.
436
264
 
437
- ```
438
- skills/agentera/
439
- SKILL.md # This file
440
- protocol.yaml # Shared primitives
441
- capability_schema_contract.yaml # Self-referential schema contract
442
- capabilities/
443
- hej/
444
- instructions.md
445
- schemas/
446
- triggers.yaml
447
- artifacts.yaml
448
- validation.yaml
449
- exit.yaml
450
- resonera/
451
- instructions.md
452
- schemas/
453
- triggers.yaml
454
- artifacts.yaml
455
- validation.yaml
456
- exit.yaml
457
- ... (12 capabilities total)
458
- ```
265
+ ---
459
266
 
460
- Validate any capability against the contract through the canonical CLI:
267
+ ## Artifact path resolution
461
268
 
462
- ```bash
463
- npx -y agentera check validate capability <name-or-path>
464
- ```
269
+ The state writer resolves entity storage itself. Before directly reading or
270
+ writing an intentional singleton outside the writer contract, check whether
271
+ `.agentera/docs.yaml` maps it to another path. If no mapping exists, use the
272
+ default singleton layout:
465
273
 
466
- Self-validate the contract:
274
+ - Human-facing artifacts at the project root: `TODO.md`, `CHANGELOG.md`, `DESIGN.md`
275
+ - Agent-facing singletons: `.agentera/docs.yaml` and `.agentera/vision.yaml`
467
276
 
468
- ```bash
469
- npx -y agentera check validate capability-contract --format json
470
- ```
277
+ Do not silently bypass the CLI and read raw entity files first. If
278
+ CLI state declares complete coverage, do not perform defensive raw artifact
279
+ reads. Use raw artifact reads only as a last-resort after the applicable
280
+ availability row's exact detail command fails or state declares corruption.