agentera 3.0.0-dev.1 → 3.0.0-dev.10

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 (522) hide show
  1. package/README.md +40 -6
  2. package/bundle/.agentera-npx-bundle.json +1 -1
  3. package/bundle/extract-corpus-parity.json +23 -0
  4. package/bundle/references/adapters/cursor.md +10 -9
  5. package/bundle/references/adapters/opencode.md +26 -26
  6. package/bundle/references/adapters/package-registry.yaml +0 -1
  7. package/bundle/references/adapters/package-surface-characterization.md +1 -2
  8. package/bundle/references/adapters/runtime-adapter-characterization.md +1 -1
  9. package/bundle/references/adapters/runtime-adapter-registry.yaml +16 -10
  10. package/bundle/references/adapters/runtime-feature-parity.md +2 -2
  11. package/bundle/references/analysis/benchmark.md +1 -1
  12. package/bundle/references/analysis/startup-measurement-contract.yaml +18 -18
  13. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +4 -3
  14. package/bundle/references/cli/agent-ready-state-contract.yaml +26 -23
  15. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +4 -4
  16. package/bundle/references/cli/audience-namespace-cli-migration.yaml +40 -26
  17. package/bundle/references/cli/bundle-skill-vocabulary.yaml +2 -30
  18. package/bundle/references/cli/capability-instruction-contract.yaml +98 -57
  19. package/bundle/references/cli/capability-instruction-structure.md +144 -0
  20. package/bundle/references/cli/capability-tool-classification.yaml +12 -12
  21. package/bundle/references/cli/coexistence-probe.yaml +13 -0
  22. package/bundle/references/cli/parity-expected-actual-template.md +30 -0
  23. package/bundle/references/cli/routing-execution-vocabulary.yaml +12 -12
  24. package/bundle/references/cli/routing-model.md +94 -0
  25. package/bundle/references/cli/single-name-protocol.yaml +42 -0
  26. package/bundle/references/cli/trigger-schema-enrichment.md +136 -0
  27. package/bundle/references/cli/update-channels.yaml +43 -7
  28. package/bundle/references/cli/upgrade-repair-wording.md +45 -0
  29. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +98 -0
  30. package/bundle/references/cli/vocabulary-index.yaml +20 -15
  31. package/bundle/references/cli/vocabulary.md +339 -323
  32. package/bundle/references/meta/documentation-inventory.md +9 -3
  33. package/bundle/registry.json +14 -14
  34. package/bundle/skills/agentera/.claude-plugin/plugin.json +13 -13
  35. package/bundle/skills/agentera/SKILL.md +99 -413
  36. package/bundle/skills/agentera/agents/audit.toml +6 -0
  37. package/bundle/skills/agentera/agents/build.toml +6 -0
  38. package/bundle/skills/agentera/agents/design.toml +6 -0
  39. package/bundle/skills/agentera/agents/discuss.toml +6 -0
  40. package/bundle/skills/agentera/agents/document.toml +6 -0
  41. package/bundle/skills/agentera/agents/optimize.toml +6 -0
  42. package/bundle/skills/agentera/agents/orchestrate.toml +6 -0
  43. package/bundle/skills/agentera/agents/plan.toml +6 -0
  44. package/bundle/skills/agentera/agents/profile.toml +6 -0
  45. package/bundle/skills/agentera/agents/research.toml +6 -0
  46. package/bundle/skills/agentera/agents/status.toml +6 -0
  47. package/bundle/skills/agentera/agents/vision.toml +6 -0
  48. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/artifacts.yaml +10 -10
  49. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/triggers.yaml +15 -6
  50. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/validation.yaml +9 -9
  51. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/artifacts.yaml +11 -11
  52. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/triggers.yaml +13 -3
  53. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/validation.yaml +7 -7
  54. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/artifacts.yaml +6 -6
  55. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/triggers.yaml +15 -3
  56. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/validation.yaml +5 -5
  57. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/artifacts.yaml +6 -6
  58. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/triggers.yaml +11 -3
  59. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/validation.yaml +4 -4
  60. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/artifacts.yaml +10 -10
  61. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/triggers.yaml +14 -3
  62. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/validation.yaml +8 -8
  63. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/artifacts.yaml +8 -8
  64. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/triggers.yaml +11 -3
  65. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/validation.yaml +7 -7
  66. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/artifacts.yaml +10 -10
  67. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/triggers.yaml +16 -3
  68. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/validation.yaml +36 -23
  69. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/artifacts.yaml +8 -8
  70. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/exit.yaml +2 -2
  71. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/triggers.yaml +15 -3
  72. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/validation.yaml +3 -3
  73. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/artifacts.yaml +2 -2
  74. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/exit.yaml +2 -1
  75. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/triggers.yaml +7 -3
  76. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/validation.yaml +2 -2
  77. package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/artifacts.yaml +5 -5
  78. package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/triggers.yaml +9 -3
  79. package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/validation.yaml +2 -2
  80. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/artifacts.yaml +14 -11
  81. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/triggers.yaml +12 -8
  82. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/validation.yaml +5 -5
  83. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/artifacts.yaml +8 -8
  84. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/triggers.yaml +17 -3
  85. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/validation.yaml +14 -16
  86. package/bundle/skills/agentera/capability_schema_contract.yaml +201 -38
  87. package/bundle/skills/agentera/protocol.yaml +29 -29
  88. package/bundle/skills/agentera/references/contract.md +329 -320
  89. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +4 -4
  90. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +10 -10
  91. package/bundle/skills/agentera/schemas/artifacts/design.yaml +4 -4
  92. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +8 -7
  93. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +5 -5
  94. package/bundle/skills/agentera/schemas/artifacts/health.yaml +5 -5
  95. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +4 -4
  96. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +5 -5
  97. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +20 -41
  98. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +43 -24
  99. package/bundle/skills/agentera/schemas/artifacts/vision.yaml +3 -3
  100. package/dist/analytics/extractCorpus/cli.js +149 -0
  101. package/dist/analytics/extractCorpus/cli.js.map +1 -0
  102. package/dist/analytics/extractCorpus/copilotSessions.js +273 -0
  103. package/dist/analytics/extractCorpus/copilotSessions.js.map +1 -0
  104. package/dist/analytics/extractCorpus/core.js +364 -0
  105. package/dist/analytics/extractCorpus/core.js.map +1 -0
  106. package/dist/analytics/extractCorpus/corpus.js +145 -0
  107. package/dist/analytics/extractCorpus/corpus.js.map +1 -0
  108. package/dist/analytics/extractCorpus/coverageAudit.js +261 -0
  109. package/dist/analytics/extractCorpus/coverageAudit.js.map +1 -0
  110. package/dist/analytics/extractCorpus/cursorSessions.js +423 -0
  111. package/dist/analytics/extractCorpus/cursorSessions.js.map +1 -0
  112. package/dist/analytics/extractCorpus/extractCorpusParity.js +105 -0
  113. package/dist/analytics/extractCorpus/extractCorpusParity.js.map +1 -0
  114. package/dist/analytics/extractCorpus/filesystemSources.js +122 -0
  115. package/dist/analytics/extractCorpus/filesystemSources.js.map +1 -0
  116. package/dist/analytics/extractCorpus/index.js +12 -0
  117. package/dist/analytics/extractCorpus/index.js.map +1 -0
  118. package/dist/analytics/extractCorpus/jsonlSessions.js +185 -0
  119. package/dist/analytics/extractCorpus/jsonlSessions.js.map +1 -0
  120. package/dist/analytics/extractCorpus/sqliteCaps.js +44 -0
  121. package/dist/analytics/extractCorpus/sqliteCaps.js.map +1 -0
  122. package/dist/analytics/extractCorpus/sqliteSessions.js +368 -0
  123. package/dist/analytics/extractCorpus/sqliteSessions.js.map +1 -0
  124. package/dist/analytics/extractCorpus.js +2 -1790
  125. package/dist/analytics/extractCorpus.js.map +1 -1
  126. package/dist/analytics/usageStats.js +42 -20
  127. package/dist/analytics/usageStats.js.map +1 -1
  128. package/dist/capabilities/audit/instructions.js +6 -0
  129. package/dist/capabilities/audit/instructions.js.map +1 -0
  130. package/dist/capabilities/build/instructions.js +6 -0
  131. package/dist/capabilities/build/instructions.js.map +1 -0
  132. package/dist/capabilities/design/instructions.js +5 -0
  133. package/dist/capabilities/design/instructions.js.map +1 -0
  134. package/dist/capabilities/discuss/instructions.js +6 -0
  135. package/dist/capabilities/discuss/instructions.js.map +1 -0
  136. package/dist/capabilities/document/instructions.js +6 -0
  137. package/dist/capabilities/document/instructions.js.map +1 -0
  138. package/dist/capabilities/index.js +38 -0
  139. package/dist/capabilities/index.js.map +1 -0
  140. package/dist/capabilities/optimize/instructions.js +6 -0
  141. package/dist/capabilities/optimize/instructions.js.map +1 -0
  142. package/dist/capabilities/orchestrate/instructions.js +6 -0
  143. package/dist/capabilities/orchestrate/instructions.js.map +1 -0
  144. package/dist/capabilities/plan/instructions.js +6 -0
  145. package/dist/capabilities/plan/instructions.js.map +1 -0
  146. package/dist/capabilities/profile/instructions.js +6 -0
  147. package/dist/capabilities/profile/instructions.js.map +1 -0
  148. package/dist/capabilities/research/instructions.js +6 -0
  149. package/dist/capabilities/research/instructions.js.map +1 -0
  150. package/dist/capabilities/status/instructions.js +5 -0
  151. package/dist/capabilities/status/instructions.js.map +1 -0
  152. package/dist/capabilities/vision/instructions.js +9 -0
  153. package/dist/capabilities/vision/instructions.js.map +1 -0
  154. package/dist/cli/appContext.js +16 -17
  155. package/dist/cli/appContext.js.map +1 -1
  156. package/dist/cli/capabilityContext/benchmark.js +564 -0
  157. package/dist/cli/capabilityContext/benchmark.js.map +1 -0
  158. package/dist/cli/capabilityContext/bespoke.js +36 -0
  159. package/dist/cli/capabilityContext/bespoke.js.map +1 -0
  160. package/dist/cli/capabilityContext/build.js +177 -0
  161. package/dist/cli/capabilityContext/build.js.map +1 -0
  162. package/dist/cli/capabilityContext/closeout.js +230 -0
  163. package/dist/cli/capabilityContext/closeout.js.map +1 -0
  164. package/dist/cli/capabilityContext/contract.js +188 -0
  165. package/dist/cli/capabilityContext/contract.js.map +1 -0
  166. package/dist/cli/capabilityContext/evidence.js +456 -0
  167. package/dist/cli/capabilityContext/evidence.js.map +1 -0
  168. package/dist/cli/capabilityContext/index.js +4 -0
  169. package/dist/cli/capabilityContext/index.js.map +1 -0
  170. package/dist/cli/capabilityContext/orchestration.js +107 -0
  171. package/dist/cli/capabilityContext/orchestration.js.map +1 -0
  172. package/dist/cli/capabilityContext/planState.js +271 -0
  173. package/dist/cli/capabilityContext/planState.js.map +1 -0
  174. package/dist/cli/capabilityContext/progress.js +103 -0
  175. package/dist/cli/capabilityContext/progress.js.map +1 -0
  176. package/dist/cli/capabilityContext/shared.js +94 -0
  177. package/dist/cli/capabilityContext/shared.js.map +1 -0
  178. package/dist/cli/capabilityContext/slim.js +108 -0
  179. package/dist/cli/capabilityContext/slim.js.map +1 -0
  180. package/dist/cli/capabilityContext/startup.js +213 -0
  181. package/dist/cli/capabilityContext/startup.js.map +1 -0
  182. package/dist/cli/capabilityContext/types.js +40 -0
  183. package/dist/cli/capabilityContext/types.js.map +1 -0
  184. package/dist/cli/capabilityContext.js +1 -2420
  185. package/dist/cli/capabilityContext.js.map +1 -1
  186. package/dist/cli/commands/appHome.js +23 -0
  187. package/dist/cli/commands/appHome.js.map +1 -0
  188. package/dist/cli/commands/capability.js +3 -10
  189. package/dist/cli/commands/capability.js.map +1 -1
  190. package/dist/cli/commands/compact.js +1 -1
  191. package/dist/cli/commands/compact.js.map +1 -1
  192. package/dist/cli/commands/doctor.js +53 -95
  193. package/dist/cli/commands/doctor.js.map +1 -1
  194. package/dist/cli/commands/lint.js +4 -36
  195. package/dist/cli/commands/lint.js.map +1 -1
  196. package/dist/cli/commands/prime/bundleStatus.js +185 -0
  197. package/dist/cli/commands/prime/bundleStatus.js.map +1 -0
  198. package/dist/cli/commands/prime/collectOrientationState.js +156 -0
  199. package/dist/cli/commands/prime/collectOrientationState.js.map +1 -0
  200. package/dist/cli/commands/prime/orientationOutput.js +210 -0
  201. package/dist/cli/commands/prime/orientationOutput.js.map +1 -0
  202. package/dist/cli/commands/prime/types.js +2 -0
  203. package/dist/cli/commands/prime/types.js.map +1 -0
  204. package/dist/cli/commands/prime/v1Migration.js +39 -0
  205. package/dist/cli/commands/prime/v1Migration.js.map +1 -0
  206. package/dist/cli/commands/prime.js +11 -486
  207. package/dist/cli/commands/prime.js.map +1 -1
  208. package/dist/cli/commands/query.js +5 -2
  209. package/dist/cli/commands/query.js.map +1 -1
  210. package/dist/cli/commands/report.js +32 -11
  211. package/dist/cli/commands/report.js.map +1 -1
  212. package/dist/cli/commands/schema.js +24 -20
  213. package/dist/cli/commands/schema.js.map +1 -1
  214. package/dist/cli/commands/state/decisions.js +403 -0
  215. package/dist/cli/commands/state/decisions.js.map +1 -0
  216. package/dist/cli/commands/state/docs.js +97 -0
  217. package/dist/cli/commands/state/docs.js.map +1 -0
  218. package/dist/cli/commands/state/experiments.js +68 -0
  219. package/dist/cli/commands/state/experiments.js.map +1 -0
  220. package/dist/cli/commands/state/health.js +116 -0
  221. package/dist/cli/commands/state/health.js.map +1 -0
  222. package/dist/cli/commands/state/index.js +51 -0
  223. package/dist/cli/commands/state/index.js.map +1 -0
  224. package/dist/cli/commands/state/objective.js +69 -0
  225. package/dist/cli/commands/state/objective.js.map +1 -0
  226. package/dist/cli/commands/state/plan.js +173 -0
  227. package/dist/cli/commands/state/plan.js.map +1 -0
  228. package/dist/cli/commands/state/progress.js +47 -0
  229. package/dist/cli/commands/state/progress.js.map +1 -0
  230. package/dist/cli/commands/state/shared.js +15 -0
  231. package/dist/cli/commands/state/shared.js.map +1 -0
  232. package/dist/cli/commands/state/todo.js +121 -0
  233. package/dist/cli/commands/state/todo.js.map +1 -0
  234. package/dist/cli/commands/upgrade.js +63 -1
  235. package/dist/cli/commands/upgrade.js.map +1 -1
  236. package/dist/cli/commands/upgradeVerify.js +81 -0
  237. package/dist/cli/commands/upgradeVerify.js.map +1 -0
  238. package/dist/cli/commands/validate.js +56 -96
  239. package/dist/cli/commands/validate.js.map +1 -1
  240. package/dist/cli/commands/verify.js +7 -1
  241. package/dist/cli/commands/verify.js.map +1 -1
  242. package/dist/cli/contracts/bundleStatus.js +2 -0
  243. package/dist/cli/contracts/bundleStatus.js.map +1 -0
  244. package/dist/cli/contracts/orientationState.js +2 -0
  245. package/dist/cli/contracts/orientationState.js.map +1 -0
  246. package/dist/cli/dispatch/argvParser.js +33 -0
  247. package/dist/cli/dispatch/argvParser.js.map +1 -0
  248. package/dist/cli/dispatch/check.js +328 -0
  249. package/dist/cli/dispatch/check.js.map +1 -0
  250. package/dist/cli/dispatch/commands.js +27 -0
  251. package/dist/cli/dispatch/commands.js.map +1 -0
  252. package/dist/cli/dispatch/index.js +182 -0
  253. package/dist/cli/dispatch/index.js.map +1 -0
  254. package/dist/cli/dispatch/lifecycle.js +603 -0
  255. package/dist/cli/dispatch/lifecycle.js.map +1 -0
  256. package/dist/cli/dispatch/prime.js +104 -0
  257. package/dist/cli/dispatch/prime.js.map +1 -0
  258. package/dist/cli/dispatch/shared.js +64 -0
  259. package/dist/cli/dispatch/shared.js.map +1 -0
  260. package/dist/cli/dispatch/state.js +144 -0
  261. package/dist/cli/dispatch/state.js.map +1 -0
  262. package/dist/cli/dispatch.js +1 -957
  263. package/dist/cli/dispatch.js.map +1 -1
  264. package/dist/cli/errors.js +53 -0
  265. package/dist/cli/errors.js.map +1 -0
  266. package/dist/cli/help.js +236 -0
  267. package/dist/cli/help.js.map +1 -0
  268. package/dist/cli/orientation/attention.js +65 -0
  269. package/dist/cli/orientation/attention.js.map +1 -0
  270. package/dist/cli/orientation/corpusCoverage.js +71 -0
  271. package/dist/cli/orientation/corpusCoverage.js.map +1 -0
  272. package/dist/cli/orientation.js +138 -84
  273. package/dist/cli/orientation.js.map +1 -1
  274. package/dist/cli/prime-blob.js +1 -1
  275. package/dist/cli/startupCompletenessContract.js +56 -0
  276. package/dist/cli/startupCompletenessContract.js.map +1 -0
  277. package/dist/cli/stateQuery.js +16 -2
  278. package/dist/cli/stateQuery.js.map +1 -1
  279. package/dist/cli/todoMarkdown.js +33 -0
  280. package/dist/cli/todoMarkdown.js.map +1 -0
  281. package/dist/cli/todoSeverity.js +19 -0
  282. package/dist/cli/todoSeverity.js.map +1 -0
  283. package/dist/core/envPaths.js +21 -0
  284. package/dist/core/envPaths.js.map +1 -0
  285. package/dist/core/jsonValue.js +6 -0
  286. package/dist/core/jsonValue.js.map +1 -0
  287. package/dist/core/pyjson.js +67 -2
  288. package/dist/core/pyjson.js.map +1 -1
  289. package/dist/eval/evalSkills.js +17 -12
  290. package/dist/eval/evalSkills.js.map +1 -1
  291. package/dist/eval/semanticEval.js +43 -19
  292. package/dist/eval/semanticEval.js.map +1 -1
  293. package/dist/eval/semanticFixtures.js +16 -4
  294. package/dist/eval/semanticFixtures.js.map +1 -1
  295. package/dist/hooks/common.js +8 -25
  296. package/dist/hooks/common.js.map +1 -1
  297. package/dist/hooks/compaction/apply.js +269 -0
  298. package/dist/hooks/compaction/apply.js.map +1 -0
  299. package/dist/hooks/compaction/dryRun.js +183 -0
  300. package/dist/hooks/compaction/dryRun.js.map +1 -0
  301. package/dist/hooks/compaction/index.js +23 -0
  302. package/dist/hooks/compaction/index.js.map +1 -0
  303. package/dist/hooks/compaction/parse.js +258 -0
  304. package/dist/hooks/compaction/parse.js.map +1 -0
  305. package/dist/hooks/compaction/retention.js +199 -0
  306. package/dist/hooks/compaction/retention.js.map +1 -0
  307. package/dist/hooks/compaction/status.js +241 -0
  308. package/dist/hooks/compaction/status.js.map +1 -0
  309. package/dist/hooks/compaction/types.js +6 -0
  310. package/dist/hooks/compaction/types.js.map +1 -0
  311. package/dist/hooks/cursorPreToolUse.js +1 -1
  312. package/dist/hooks/cursorPreToolUse.js.map +1 -1
  313. package/dist/hooks/cursorSessionStart.js +10 -2
  314. package/dist/hooks/cursorSessionStart.js.map +1 -1
  315. package/dist/hooks/sessionStart.js +18 -11
  316. package/dist/hooks/sessionStart.js.map +1 -1
  317. package/dist/hooks/sessionStop.js +6 -12
  318. package/dist/hooks/sessionStop.js.map +1 -1
  319. package/dist/hooks/validateArtifact/agentFacing.js +10 -0
  320. package/dist/hooks/validateArtifact/agentFacing.js.map +1 -0
  321. package/dist/hooks/validateArtifact/index.js +151 -0
  322. package/dist/hooks/validateArtifact/index.js.map +1 -0
  323. package/dist/hooks/validateArtifact/markdown.js +146 -0
  324. package/dist/hooks/validateArtifact/markdown.js.map +1 -0
  325. package/dist/hooks/validateArtifact/runtime.js +86 -0
  326. package/dist/hooks/validateArtifact/runtime.js.map +1 -0
  327. package/dist/hooks/validateArtifact/schema.js +459 -0
  328. package/dist/hooks/validateArtifact/schema.js.map +1 -0
  329. package/dist/hooks/validateArtifact/traversal.js +106 -0
  330. package/dist/hooks/validateArtifact/traversal.js.map +1 -0
  331. package/dist/hooks/validateArtifact/violations.js +105 -0
  332. package/dist/hooks/validateArtifact/violations.js.map +1 -0
  333. package/dist/migrate/v2HandoffManifest.js +451 -0
  334. package/dist/migrate/v2HandoffManifest.js.map +1 -0
  335. package/dist/registries/artifactProtocolIds.js +77 -0
  336. package/dist/registries/artifactProtocolIds.js.map +1 -0
  337. package/dist/registries/artifactRegistry.js +23 -9
  338. package/dist/registries/artifactRegistry.js.map +1 -1
  339. package/dist/registries/capabilityContract.js +156 -12
  340. package/dist/registries/capabilityContract.js.map +1 -1
  341. package/dist/registries/evaluatorHandoffContract.js +171 -0
  342. package/dist/registries/evaluatorHandoffContract.js.map +1 -0
  343. package/dist/registries/packageRegistry.js +4 -3
  344. package/dist/registries/packageRegistry.js.map +1 -1
  345. package/dist/registries/runtimeAdapterRegistry.js +5 -4
  346. package/dist/registries/runtimeAdapterRegistry.js.map +1 -1
  347. package/dist/registries/triggerLoader.js +211 -0
  348. package/dist/registries/triggerLoader.js.map +1 -0
  349. package/dist/release/releaseMetadata.js +235 -0
  350. package/dist/release/releaseMetadata.js.map +1 -0
  351. package/dist/setup/codex/agents.js +96 -0
  352. package/dist/setup/codex/agents.js.map +1 -0
  353. package/dist/setup/codex/cli.js +161 -0
  354. package/dist/setup/codex/cli.js.map +1 -0
  355. package/dist/setup/codex/configToml.js +639 -0
  356. package/dist/setup/codex/configToml.js.map +1 -0
  357. package/dist/setup/codex/constants.js +29 -0
  358. package/dist/setup/codex/constants.js.map +1 -0
  359. package/dist/setup/codex/installRoot.js +64 -0
  360. package/dist/setup/codex/installRoot.js.map +1 -0
  361. package/dist/setup/codex/state.js +270 -0
  362. package/dist/setup/codex/state.js.map +1 -0
  363. package/dist/setup/codex.js +11 -1055
  364. package/dist/setup/codex.js.map +1 -1
  365. package/dist/setup/cursor.js +6 -4
  366. package/dist/setup/cursor.js.map +1 -1
  367. package/dist/setup/cursorSurfaces.js +67 -0
  368. package/dist/setup/cursorSurfaces.js.map +1 -0
  369. package/dist/setup/doctor/core.js +296 -0
  370. package/dist/setup/doctor/core.js.map +1 -0
  371. package/dist/setup/doctor/diagnostics.js +240 -0
  372. package/dist/setup/doctor/diagnostics.js.map +1 -0
  373. package/dist/setup/doctor/opencode.js +301 -0
  374. package/dist/setup/doctor/opencode.js.map +1 -0
  375. package/dist/setup/doctor/report.js +425 -0
  376. package/dist/setup/doctor/report.js.map +1 -0
  377. package/dist/setup/doctor.js +9 -1275
  378. package/dist/setup/doctor.js.map +1 -1
  379. package/dist/setup/opencode.js +13 -0
  380. package/dist/setup/opencode.js.map +1 -0
  381. package/dist/setup/opencodeConstants.js +2 -0
  382. package/dist/setup/opencodeConstants.js.map +1 -0
  383. package/dist/setup/smokeChecks.js +111 -0
  384. package/dist/setup/smokeChecks.js.map +1 -0
  385. package/dist/state/installRoot.js +64 -24
  386. package/dist/state/installRoot.js.map +1 -1
  387. package/dist/state/startupAnalysis/benchmark.js +371 -0
  388. package/dist/state/startupAnalysis/benchmark.js.map +1 -0
  389. package/dist/state/startupAnalysis/contract.js +126 -0
  390. package/dist/state/startupAnalysis/contract.js.map +1 -0
  391. package/dist/state/startupAnalysis/helpers.js +287 -0
  392. package/dist/state/startupAnalysis/helpers.js.map +1 -0
  393. package/dist/state/startupAnalysis/index.js +7 -0
  394. package/dist/state/startupAnalysis/index.js.map +1 -0
  395. package/dist/state/startupAnalysis/metrics.js +341 -0
  396. package/dist/state/startupAnalysis/metrics.js.map +1 -0
  397. package/dist/state/startupAnalysis/records.js +199 -0
  398. package/dist/state/startupAnalysis/records.js.map +1 -0
  399. package/dist/state/startupAnalysis/report.js +112 -0
  400. package/dist/state/startupAnalysis/report.js.map +1 -0
  401. package/dist/state/startupAnalysis/threshold.js +500 -0
  402. package/dist/state/startupAnalysis/threshold.js.map +1 -0
  403. package/dist/state/startupAnalysis.js +2 -1952
  404. package/dist/state/startupAnalysis.js.map +1 -1
  405. package/dist/upgrade/appContentRefresh.js +367 -0
  406. package/dist/upgrade/appContentRefresh.js.map +1 -0
  407. package/dist/upgrade/appModel.js +11 -6
  408. package/dist/upgrade/appModel.js.map +1 -1
  409. package/dist/upgrade/atomicWriter.js +23 -0
  410. package/dist/upgrade/atomicWriter.js.map +1 -0
  411. package/dist/upgrade/bundleEvidence.js +34 -0
  412. package/dist/upgrade/bundleEvidence.js.map +1 -0
  413. package/dist/upgrade/channels.js +30 -8
  414. package/dist/upgrade/channels.js.map +1 -1
  415. package/dist/upgrade/coexistenceProbe.js +105 -0
  416. package/dist/upgrade/coexistenceProbe.js.map +1 -0
  417. package/dist/upgrade/compatibility.js +14 -16
  418. package/dist/upgrade/compatibility.js.map +1 -1
  419. package/dist/upgrade/doctor.js +187 -189
  420. package/dist/upgrade/doctor.js.map +1 -1
  421. package/dist/upgrade/doctorClassifier.js +188 -0
  422. package/dist/upgrade/doctorClassifier.js.map +1 -0
  423. package/dist/upgrade/installedHooksRetirement.js +190 -0
  424. package/dist/upgrade/installedHooksRetirement.js.map +1 -0
  425. package/dist/upgrade/legacyAgentCleanup.js +183 -0
  426. package/dist/upgrade/legacyAgentCleanup.js.map +1 -0
  427. package/dist/upgrade/migrateArtifactsV1ToV2.js +568 -0
  428. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +1 -0
  429. package/dist/upgrade/migrateArtifactsV2ToV3.js +103 -134
  430. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
  431. package/dist/upgrade/nextMajorDoctor.js +156 -0
  432. package/dist/upgrade/nextMajorDoctor.js.map +1 -0
  433. package/dist/upgrade/npxPlatformStatus.js +23 -0
  434. package/dist/upgrade/npxPlatformStatus.js.map +1 -0
  435. package/dist/upgrade/projectIntegration.js +233 -0
  436. package/dist/upgrade/projectIntegration.js.map +1 -0
  437. package/dist/upgrade/projectIntegrationDecision.js +42 -0
  438. package/dist/upgrade/projectIntegrationDecision.js.map +1 -0
  439. package/dist/upgrade/runtimeMigration.js +340 -80
  440. package/dist/upgrade/runtimeMigration.js.map +1 -1
  441. package/dist/upgrade/upgradeCommands.js +6 -2
  442. package/dist/upgrade/upgradeCommands.js.map +1 -1
  443. package/dist/upgrade/upgradeLock.js +54 -0
  444. package/dist/upgrade/upgradeLock.js.map +1 -0
  445. package/dist/upgrade/upgradeOrchestrator.js +24 -41
  446. package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
  447. package/dist/upgrade/upgradeSnapshot.js +93 -0
  448. package/dist/upgrade/upgradeSnapshot.js.map +1 -0
  449. package/dist/upgrade/v3CapabilitySurface.js +15 -0
  450. package/dist/upgrade/v3CapabilitySurface.js.map +1 -0
  451. package/dist/upgrade/versionResolution.js +12 -4
  452. package/dist/upgrade/versionResolution.js.map +1 -1
  453. package/dist/validate/appHomeContract.js +4 -4
  454. package/dist/validate/appHomeContract.js.map +1 -1
  455. package/dist/validate/capability.js +135 -14
  456. package/dist/validate/capability.js.map +1 -1
  457. package/dist/validate/crossCapability.js +1 -1
  458. package/dist/validate/crossCapability.js.map +1 -1
  459. package/dist/validate/lifecycleAdapters/legacyPythonParity.js +93 -0
  460. package/dist/validate/lifecycleAdapters/legacyPythonParity.js.map +1 -0
  461. package/dist/validate/lifecycleAdapters/nodeFormChecks.js +488 -0
  462. package/dist/validate/lifecycleAdapters/nodeFormChecks.js.map +1 -0
  463. package/dist/validate/lifecycleAdapters/shared.js +198 -0
  464. package/dist/validate/lifecycleAdapters/shared.js.map +1 -0
  465. package/dist/validate/lifecycleAdapters.js +13 -723
  466. package/dist/validate/lifecycleAdapters.js.map +1 -1
  467. package/dist/validate/selfAudit.js +62 -20
  468. package/dist/validate/selfAudit.js.map +1 -1
  469. package/dist/validate/vocabularyAuthority.js +303 -0
  470. package/dist/validate/vocabularyAuthority.js.map +1 -0
  471. package/package.json +29 -26
  472. package/bundle/references/v1-section-mapping.md +0 -47
  473. package/bundle/skills/agentera/agents/dokumentera.toml +0 -6
  474. package/bundle/skills/agentera/agents/hej.toml +0 -6
  475. package/bundle/skills/agentera/agents/inspektera.toml +0 -6
  476. package/bundle/skills/agentera/agents/inspirera.toml +0 -6
  477. package/bundle/skills/agentera/agents/optimera.toml +0 -6
  478. package/bundle/skills/agentera/agents/orkestrera.toml +0 -6
  479. package/bundle/skills/agentera/agents/planera.toml +0 -6
  480. package/bundle/skills/agentera/agents/profilera.toml +0 -6
  481. package/bundle/skills/agentera/agents/realisera.toml +0 -6
  482. package/bundle/skills/agentera/agents/resonera.toml +0 -6
  483. package/bundle/skills/agentera/agents/visionera.toml +0 -6
  484. package/bundle/skills/agentera/agents/visualisera.toml +0 -6
  485. package/bundle/skills/agentera/capabilities/dokumentera/instructions.md +0 -428
  486. package/bundle/skills/agentera/capabilities/hej/instructions.md +0 -331
  487. package/bundle/skills/agentera/capabilities/inspektera/instructions.md +0 -514
  488. package/bundle/skills/agentera/capabilities/inspirera/instructions.md +0 -280
  489. package/bundle/skills/agentera/capabilities/optimera/instructions.md +0 -437
  490. package/bundle/skills/agentera/capabilities/orkestrera/instructions.md +0 -433
  491. package/bundle/skills/agentera/capabilities/planera/instructions.md +0 -368
  492. package/bundle/skills/agentera/capabilities/profilera/instructions.md +0 -419
  493. package/bundle/skills/agentera/capabilities/realisera/instructions.md +0 -403
  494. package/bundle/skills/agentera/capabilities/resonera/instructions.md +0 -329
  495. package/bundle/skills/agentera/capabilities/visionera/instructions.md +0 -309
  496. package/bundle/skills/agentera/capabilities/visualisera/instructions.md +0 -400
  497. package/bundle/skills/hej/.claude-plugin/plugin.json +0 -6
  498. package/bundle/skills/hej/SKILL.md +0 -69
  499. package/bundle/skills/hej/agents/hej.toml +0 -11
  500. package/bundle/skills/hej/agents/openai.yaml +0 -8
  501. package/dist/cli/commands/backfill.js +0 -84
  502. package/dist/cli/commands/backfill.js.map +0 -1
  503. package/dist/cli/commands/state.js +0 -1012
  504. package/dist/cli/commands/state.js.map +0 -1
  505. package/dist/core/git.js +0 -43
  506. package/dist/core/git.js.map +0 -1
  507. package/dist/hooks/compaction.js +0 -935
  508. package/dist/hooks/compaction.js.map +0 -1
  509. package/dist/hooks/validateArtifact.js +0 -933
  510. package/dist/hooks/validateArtifact.js.map +0 -1
  511. package/dist/state/progressCommit.js +0 -289
  512. package/dist/state/progressCommit.js.map +0 -1
  513. /package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/exit.yaml +0 -0
  514. /package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/exit.yaml +0 -0
  515. /package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/exit.yaml +0 -0
  516. /package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/exit.yaml +0 -0
  517. /package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/exit.yaml +0 -0
  518. /package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/exit.yaml +0 -0
  519. /package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/exit.yaml +0 -0
  520. /package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/exit.yaml +0 -0
  521. /package/bundle/skills/agentera/capabilities/{hej → status}/schemas/exit.yaml +0 -0
  522. /package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/exit.yaml +0 -0
@@ -0,0 +1,144 @@
1
+ # Capability instruction structure
2
+
3
+ Origin: Decision 80 (2026-07-06) — Six-section spine for capability instructions.
4
+ Builds on D79 (status rewrite, direct-contract philosophy), D71 (RFC 2119 modal
5
+ vocabulary), D72 (bundle-to-app terminology), D57/D65 (instructions.ts as
6
+ canonical module served via `agentera prime --context`).
7
+
8
+ Agentera's 12 capability instruction files (`packages/cli/src/capabilities/<name>/instructions.ts`)
9
+ MUST follow a shared six-section spine. Five sections are shape-constrained; one
10
+ (Workflow phases) is mandatory-as-section but free-form in content. This document
11
+ owns the spine spec, the five workflow shapes taxonomy, and the per-capability
12
+ deviation table filled incrementally as each audit completes.
13
+
14
+ ---
15
+
16
+ ## The six-section spine
17
+
18
+ Every capability instructions.ts MUST contain these six sections in order:
19
+
20
+ ### 1. Purpose
21
+
22
+ One paragraph stating what the capability does, plus the capability glyph
23
+ (SG1-SG12). Shape-constrained: glyph plus one-paragraph purpose. No sub-sections.
24
+
25
+ ### 2. State artifacts
26
+
27
+ What the capability reads, writes, and consumes. Shape-constrained:
28
+ reads/writes/consumes declarations plus artifact path resolution. Per-capability
29
+ artifact-schema subsections allowed (e.g., vision's `vision.yaml shape`, document's
30
+ `docs.yaml shape`, design's `DESIGN.md format`).
31
+
32
+ ### 3. Workflow phases (mandatory section, free-form content)
33
+
34
+ The per-capability core. The section MUST exist and MUST be named "Workflow phases"
35
+ or a per-capability equivalent that names the workflow shape (e.g., "The orchestration
36
+ loop", "The cycle", "Briefing", "Running state"). Internal structure is per-capability:
37
+ linear steps, conversational loop, cycle-based, mode-split, or multi-surface. See
38
+ the five workflow shapes taxonomy below.
39
+
40
+ ### 4. Safety rails
41
+
42
+ `<critical>` block with MUST NOT / NEVER rules. Protocol-bound. Shape-constrained:
43
+ MUST start with `<critical>` tag, MUST use D71 RFC 2119 modal vocabulary for
44
+ protocol-force rules.
45
+
46
+ ### 5. Exit signals
47
+
48
+ EX1-EX4 conditions with the capability's canonical glyph marker. Protocol-bound.
49
+ Shape-constrained: MUST list all four exit conditions, MUST use the
50
+ `<glyph> <capability> · <status>` marker format.
51
+
52
+ ### 6. Cross-capability integration
53
+
54
+ Feeds-into, triggers, and informed-by declarations, plus getting-started use-case
55
+ examples (when to invoke this capability from other contexts). Shape-constrained:
56
+ MUST be present; depth is per-capability (status = one paragraph; orchestrate =
57
+ substantial surface descriptions). Invocation guidance ("Before a build session,
58
+ run `/agentera discuss`") folds into this section as the inverse of
59
+ feeds-into/triggers — same relationship, consumer perspective.
60
+
61
+ ---
62
+
63
+ ## Flex sections (per-capability optional)
64
+
65
+ Domain content sections MAY appear between spine sections when the capability has
66
+ capability-specific content that does not fit the spine (e.g., design: Colors and
67
+ Typography; profile: PROFILE.md template; research: deliverable template). These
68
+ are rare and documented in the deviation table below.
69
+
70
+ ---
71
+
72
+ ## Five workflow shapes taxonomy
73
+
74
+ Capabilities declare their workflow shape at the top of the Workflow phases section
75
+ so the deviation table can classify them:
76
+
77
+ | Shape | Capabilities | Structure |
78
+ |---|---|---|
79
+ | **Linear** | status, research, audit | Step N then Step N+1; one-shot progression |
80
+ | **Conversational loop** | discuss | Scratchpad plus per-turn question loop; no linear progression |
81
+ | **Cycle-based** | build, optimize | Iterative cycle with hypothesis/task/constraints; repeat until done |
82
+ | **Mode-split** | vision, document, profile, design, plan | Step 0 detect mode then mode-A / mode-B / mode-C |
83
+ | **Multi-surface** | orchestrate | Multiple surface templates with different structures per surface |
84
+
85
+ ---
86
+
87
+ ## Reference implementation
88
+
89
+ Status (D79) is the reference implementation. Its structure:
90
+
91
+ 1. **Purpose**: header plus glyph plus one-paragraph purpose plus direct-contract rule
92
+ 2. **State artifacts**: source_contract.capability_startup delegation rule (lean on
93
+ the contract; do not re-encode machine-readable rules in prose)
94
+ 3. **Workflow phases**: Dashboard rendering then Briefing then Routing suggestion
95
+ (linear shape, three phases)
96
+ 4. **Safety rails**: six MUST NOT rules in `<critical>` block
97
+ 5. **Exit signals**: EX1-EX4 with `⌂ status · <status>` marker
98
+ 6. **Cross-capability integration**: one paragraph (status has no
99
+ getting-started use-case examples to fold in)
100
+
101
+ Prose length: 10,389 chars. Modal vocabulary: 5 MUST, 5 MUST NOT. No v2-era residue.
102
+
103
+ ---
104
+
105
+ ## Per-capability deviation table
106
+
107
+ Filled incrementally as each audit completes. "Not audited" = not yet audited
108
+ against D80 plus this reference doc.
109
+
110
+ | Capability | Shape | Length | D71 modal | D72 terms | Direct contract | Deviations | Audit |
111
+ |---|---|---|---|---|---|---|---|
112
+ | ⌂ status | Linear | 10,389 | Yes | Yes | Yes | None | Complete (D79) |
113
+ | ⛥ vision | Mode-split | 16,667 | Yes | Yes | Yes | Has vision.yaml shape subsection; shared pre-write self-audit hoist (DRY between Create and Refine modes) | Complete (D81) |
114
+ | ❈ discuss | Loop | 13,816 | Not audited | Not audited | Not audited | Has deliverable template; has Getting started to fold | Not audited |
115
+ | ⬚ research | Linear | 12,251 | Not audited | Not audited | Not audited | Has deliverable template; has Notes on depth | Not audited |
116
+ | ≡ plan | Mode-split | 14,800 | Not audited | Not audited | Not audited | Has light/normal/full modes; has How build reads PLAN.md | Not audited |
117
+ | ⧉ build | Cycle | 20,662 | Not audited | Not audited | Not audited | Has Handling blocked work; no Getting started | Not audited |
118
+ | ⎘ optimize | Cycle | 25,990 | Not audited | Not audited | Not audited | Has Handling blocked experiments | Not audited |
119
+ | ⛶ audit | Linear | 31,313 | Not audited | Not audited | Not audited | Has finding taxonomy plus health.yaml write; Steps 1-7 | Not audited |
120
+ | ▤ document | Mode-split | 21,779 | Not audited | Not audited | Not audited | Has closeout context startup; has docs.yaml shape | Not audited |
121
+ | ♾ profile | Mode-split | 24,219 | Not audited | Not audited | Not audited | Has PROFILE.md template; has Notes on depth vs speed | Not audited |
122
+ | ◰ design | Mode-split | 20,596 | Not audited | Not audited | Not audited | Has Colors/Typography domain content; has DESIGN.md format | Not audited |
123
+ | ⎈ orchestrate | Multi-surface | 28,544 | Not audited | Not audited | Not audited | Has three surface templates; has Keeping the orchestrator lean | Not audited |
124
+
125
+ ---
126
+
127
+ ## Cross-cutting rules (apply to all 12)
128
+
129
+ These rules are inherited from prior decisions and are not re-stated per capability:
130
+
131
+ - **D71**: RFC 2119 modal vocabulary (MUST, MUST NOT, SHOULD, SHOULD NOT, MAY).
132
+ Capitalized keywords carry protocol force; lowercase modal verbs are ordinary English.
133
+ - **D72**: `app.*` terminology (not `bundle.*`).
134
+ - **D79 direct-contract philosophy**: lean on `source_contract.capability_startup`;
135
+ the prose MUST NOT re-encode rules the contract mechanizes (forbidden-command lists,
136
+ fallback ladders, do-not-read-raw-yaml warnings). If `complete_for_capability_startup`
137
+ is true, the prose trusts the contract.
138
+ - **D57/D65**: instructions.ts is the canonical module, served via
139
+ `agentera prime --context <name> --format json`.
140
+ - **Artifact path resolution**: SKILL.md owns the host-bootstrap artifact-path
141
+ resolution; capability prose delegates (status proved this in D79).
142
+ - **Procedural recovery content**: lives in the owning capability, not the consuming
143
+ one (status renders `project_integration` fields; upgrade/doctor owns the repair
144
+ procedure).
@@ -7,47 +7,47 @@ classification:
7
7
  mutation_capable:
8
8
  description: Needs file write, edit, and/or shell execution to fulfill purpose
9
9
  capabilities:
10
- realisera:
10
+ build:
11
11
  permission: {write: allow, bash: allow}
12
12
  rationale: Autonomous dev execution — writes code, runs tests/builds, commits
13
- optimera:
13
+ optimize:
14
14
  permission: {write: allow, bash: allow}
15
15
  rationale: Metric-driven optimization — runs experiments, writes harnesses
16
- orkestrera:
16
+ orchestrate:
17
17
  permission: {write: allow, bash: allow}
18
18
  rationale: Multi-cycle orchestration — dispatches workers, updates plan/progress
19
- dokumentera:
19
+ document:
20
20
  permission: {write: allow, bash: deny}
21
21
  rationale: Documentation generation — creates/updates doc files
22
- planera:
22
+ plan:
23
23
  permission: {write: allow, bash: deny}
24
24
  rationale: Plan management — writes plan.yaml, archives completed plans
25
25
 
26
26
  contextual_write:
27
27
  description: Writes owned Agentera state artifacts
28
28
  capabilities:
29
- visionera:
29
+ vision:
30
30
  permission: {write: allow, bash: deny}
31
31
  rationale: Writes vision.yaml, archives old visions
32
- resonera:
32
+ discuss:
33
33
  permission: {write: allow, bash: deny}
34
34
  rationale: Writes decisions.yaml, may update TODO.md
35
- visualisera:
35
+ design:
36
36
  permission: {write: allow, bash: deny}
37
37
  rationale: Writes DESIGN.md, archives old designs
38
- profilera:
38
+ profile:
39
39
  permission: {write: allow, bash: allow}
40
40
  rationale: Runs extraction scripts, writes PROFILE.md
41
- inspektera:
41
+ audit:
42
42
  permission: {write: allow, bash: deny}
43
43
  rationale: Writes health.yaml audit reports
44
44
 
45
45
  read_only:
46
46
  description: Only reads files, searches, analyzes
47
47
  capabilities:
48
- hej:
48
+ status:
49
49
  permission: {write: deny, bash: deny}
50
50
  rationale: Strictly read-only orientation dashboard
51
- inspirera:
51
+ research:
52
52
  permission: {write: deny, bash: deny}
53
53
  rationale: Analysis-only creative exploration
@@ -0,0 +1,13 @@
1
+ # v2/v3 coexistence doctor warning contract (both CLI lines).
2
+ schema_version: agentera.coexistenceProbe.v1
3
+ section_header: Coexistence
4
+ warning:
5
+ headline: "v3 detected alongside v2; pick one line"
6
+ resolutions:
7
+ - complete v3 migration
8
+ - uninstall v3
9
+ - stay on v2 explicitly
10
+ naming_divergence:
11
+ description: "v3 uses English capability IDs (status, vision, discuss, research, plan, build, optimize, audit, document, profile, design, orchestrate); v2 stable uses Swedish -era IDs (hej, visionera, resonera, inspirera, planera, realisera, optimera, inspektera, dokumentera, profilera, visualisera, orkestrera)"
12
+ v3_canonical: [status, vision, discuss, research, plan, build, optimize, audit, document, profile, design, orchestrate]
13
+ v2_stable: [hej, visionera, resonera, inspirera, planera, realisera, optimera, inspektera, dokumentera, profilera, visualisera, orkestrera]
@@ -0,0 +1,30 @@
1
+ # Parity EXPECTED/ACTUAL bug-demonstration template
2
+
3
+ Apply this pattern to `npmParityMatrix` / Python-oracle parity rows when fixing a
4
+ regression: land a **demonstrate** commit first, then a **fix** commit that only
5
+ flips the assertion.
6
+
7
+ ## Workflow
8
+
9
+ 1. **Demonstrate commit** — test passes on broken behavior; correct expectation
10
+ preserved in a block comment (`EXPECTED`); wrong behavior asserted (`ACTUAL`).
11
+ 2. **Fix commit** — delete comment markers and `ACTUAL` line; `EXPECTED` becomes the
12
+ live assertion. No other edits in the fix commit.
13
+
14
+ ## Minimal vitest shape
15
+
16
+ See `packages/cli/test/cli/parityExpectedActualTemplate.test.ts` for a runnable
17
+ micro-example. For real parity rows, mirror the pattern in the oracle fixture row
18
+ and `npmParityMatrix.test.ts` drift assertions.
19
+
20
+ ## npmParityMatrix row
21
+
22
+ When adding a row to the parity matrix for a pre-existing bug:
23
+
24
+ - Register the row with `drift_direction: equal` as the target after fix.
25
+ - In the demonstrate pass, temporarily pin oracle shape to the **wrong** envelope
26
+ or assert `ACTUAL` substring in a dedicated regression test.
27
+ - Fix pass restores `equal` against the corrected CLI output.
28
+
29
+ Do not apply EXPECTED/ACTUAL by default to every row — only where bisect clarity
30
+ justifies the two-commit ritual.
@@ -31,7 +31,7 @@ compatibility_boundary: >-
31
31
  canonical_concept_order:
32
32
  - request_to_capability_routing
33
33
  - next_action_recommendation
34
- - orkestrera_task_assignment
34
+ - orchestrate_task_assignment
35
35
  - worker_launch
36
36
  - runtime_subagent_support
37
37
  - worker_safety_git_commit
@@ -40,7 +40,7 @@ canonical_concepts:
40
40
  definition: >-
41
41
  Agentera chooses the capability that should handle a user request, using
42
42
  direct routes, primary route aliases, trigger schemas, disambiguation, or
43
- fallback to hej.
43
+ fallback to status.
44
44
  preferred_terms:
45
45
  - Agentera router
46
46
  - request-to-capability routing
@@ -65,15 +65,15 @@ canonical_concepts:
65
65
  - force
66
66
  - chain
67
67
  - conductor handoff
68
- orkestrera_task_assignment:
68
+ orchestrate_task_assignment:
69
69
  definition: >-
70
- Orkestrera assigns approved plan work to a worker capability during an
70
+ Orchestrate assigns approved plan work to a worker capability during an
71
71
  explicitly orchestrated flow; it evaluates the result instead of implementing
72
72
  the task itself.
73
73
  preferred_terms:
74
74
  - delegate
75
75
  - delegation
76
- - Orkestrera task delegation
76
+ - Orchestrate task delegation
77
77
  - assigned plan work
78
78
  forbidden_ambiguous_shortcuts:
79
79
  - conductor
@@ -82,7 +82,7 @@ canonical_concepts:
82
82
  - orchestrator implementation
83
83
  worker_launch:
84
84
  definition: >-
85
- Realisera or Optimera starts a worker through the host runtime when an
85
+ Build or Optimize starts a worker through the host runtime when an
86
86
  implementation or measurement cycle needs isolated execution.
87
87
  preferred_terms:
88
88
  - spawn
@@ -171,9 +171,9 @@ focused_scan:
171
171
  - (retired maintainer measurement tool)
172
172
  - skills/agentera/SKILL.md
173
173
  - skills/agentera/references/contract.md
174
- - skills/agentera/capabilities/realisera/instructions.md
175
- - skills/agentera/capabilities/optimera/instructions.md
176
- - skills/agentera/capabilities/orkestrera/instructions.md
174
+ - packages/cli/src/capabilities/realisera/instructions.ts
175
+ - packages/cli/src/capabilities/optimera/instructions.ts
176
+ - packages/cli/src/capabilities/orkestrera/instructions.ts
177
177
  - tests/test_skill_dispatch_contract.py
178
178
  - tests/test_runtime_adapters.py
179
179
  - tests/test_runtime_adapter_registry.py
@@ -222,15 +222,15 @@ focused_scan:
222
222
  text: checkpoint before worktree dispatch
223
223
  classification: compatibility-preserved
224
224
  reason: The contract preserves the parseable historical checkpoint commit message string.
225
- - path: ^skills/agentera/capabilities/realisera/instructions\.md$
225
+ - path: ^packages/cli/src/capabilities/realisera/instructions\.ts$
226
226
  text: 'Step 5: Dispatch|checkpoint before worktree dispatch'
227
227
  classification: compatibility-preserved
228
228
  reason: Realisera preserves the current step heading and checkpoint commit message compatibility string.
229
- - path: ^skills/agentera/capabilities/optimera/instructions\.md$
229
+ - path: ^packages/cli/src/capabilities/optimera/instructions\.ts$
230
230
  text: checkpoint before worktree dispatch
231
231
  classification: compatibility-preserved
232
232
  reason: Optimera preserves the current checkpoint commit message compatibility string.
233
- - path: ^skills/agentera/capabilities/orkestrera/instructions\.md$
233
+ - path: ^packages/cli/src/capabilities/orkestrera/instructions\.ts$
234
234
  text: review pressure in dispatch|dispatch/evaluation context|`dispatch` and `chain` are autonomous orchestration verbs
235
235
  classification: canonical
236
236
  reason: Orkestrera capability prose uses dispatch for its explicitly owned orchestration loop.
@@ -0,0 +1,94 @@
1
+ # Five-layer routing model
2
+
3
+ Origin: Decision 76 (2026-06-30) — LLM-primary routing model. Retires the
4
+ deterministic NL routing engine and repositions the trigger schema as
5
+ LLM-readable intent documentation. Builds on the original five-layer concept
6
+ from Decision 42 (2026-05-04), redefining Layers 3-4 as LLM-native.
7
+
8
+ The Agentera routing model resolves incoming requests to a capability across
9
+ five layers. Layers 1, 2, and 5 are deterministic dispatch (bare invocation,
10
+ exact alias, no match); they are implemented and unchanged. Layers 3 and 4
11
+ cover natural-language requests. Per Decision 76, the LLM host — the AI model
12
+ that receives the user's message — owns natural-language routing natively. The
13
+ trigger schema (`description`, `disambiguates_against`, `priority`, phase
14
+ context) provides LLM-readable intent documentation the host consults; there is
15
+ no scoring engine, no confidence threshold, and no borderline band. Layer 4
16
+ (formerly borderline-band disambiguation) is dissolved into Layer 3: the LLM
17
+ resolves ambiguity natively, using `disambiguates_against` hints as advisory
18
+ context. Decision 75's request-vs-state mutual exclusivity is dissolved: request
19
+ intent and state-readiness are both advisory context the LLM consults.
20
+
21
+ ## Layer 1: Bare `/agentera` — delegate to prime
22
+
23
+ - **Input pattern**: the request is `/agentera` with no additional text.
24
+ - **Action**: delegate immediately to the status capability. Status performs
25
+ state-aware routing through the `agentera prime` composite result, which
26
+ condenses project artifacts and suggests the most useful next capability.
27
+ This is deterministic and never wrong.
28
+ - **Implementation status**: implemented and unchanged.
29
+
30
+ ## Layer 2: capability name or `/agentera <primary-alias>` — direct route
31
+
32
+ - **Input pattern**: the request text exactly matches a capability name
33
+ (case-insensitive), or exactly matches one primary alias from
34
+ `capability_schema_contract.yaml` `ROUTE_ALIASES.primary_aliases`, or begins
35
+ with a canonical capability name followed by more text (`/agentera <capability>
36
+ <topic>`).
37
+ - **Action**: route directly to that capability without evaluating natural-language
38
+ trigger descriptions. Pass any remaining text as the user's topic or instruction.
39
+ Each capability has exactly one primary alias; secondary wording stays in
40
+ capability trigger schemas below this layer.
41
+ - **Implementation status**: implemented and unchanged.
42
+
43
+ ## Layer 3: Natural language — LLM-native routing
44
+
45
+ - **Input pattern**: the request is natural language (e.g. "help me think
46
+ through this") that does not match Layer 1 or Layer 2.
47
+ - **Action**: the LLM host routes natively. It consults the trigger schema's
48
+ `description` fields (what each capability does), `disambiguates_against`
49
+ hints (how to tell near-equal capabilities apart), and `priority`
50
+ (relevance precedence) as LLM-readable intent documentation, then selects a
51
+ capability. There are no confidence scores, no thresholds, and no
52
+ weighted-average computation; the LLM reads the intent descriptions and
53
+ routes.
54
+ - **Resolving ambiguity**: when two capabilities could match a request, the
55
+ LLM host resolves the ambiguity natively, surfacing the
56
+ `disambiguates_against.hint` strings as advisory context when it asks the
57
+ user to confirm or clarify. The hints supply the words; the LLM supplies the
58
+ judgment.
59
+ - **Implementation status**: implemented — the LLM host owns this layer.
60
+ `references/cli/trigger-schema-enrichment.md` is the intent documentation
61
+ contract the host reads.
62
+
63
+ ## Layer 4: Dissolved into Layer 3
64
+
65
+ Layer 4 formerly described a borderline-band disambiguation engine that fired
66
+ when two capabilities scored within a configurable band. Decision 76 retired
67
+ that engine: ambiguity resolution is now part of Layer 3, performed natively by
68
+ the LLM host using the `disambiguates_against` hints as advisory context. There
69
+ is no separate disambiguation layer, no borderline band, and no
70
+ disambiguation-engine output schema.
71
+
72
+ ## Layer 5: No match — fallback to status
73
+
74
+ - **Input pattern**: the LLM host cannot map the request to any capability from
75
+ the trigger schema's intent descriptions.
76
+ - **Action**: route to status for orientation. Status handles status requests
77
+ and ambiguous inputs.
78
+ - **Implementation status**: implemented and unchanged.
79
+
80
+ ## Ownership boundaries
81
+
82
+ - **This document** defines what Layers 1-5 mean: their input patterns, actions,
83
+ and implementation status.
84
+ - **`skills/agentera/capability_schema_contract.yaml`** (`ENTRY_SCHEMA.fields.priority`
85
+ and `FIELD_RULES.TRIGGERS.priority`) defines trigger `priority` values
86
+ (`high`, `medium`, `low`) as an advisory relevance-precedence hint the LLM host
87
+ reads — not a scoring weight.
88
+ - **Per-capability `schemas/triggers.yaml`** owns the trigger `description`,
89
+ `priority`, and `disambiguates_against` intent documentation that the LLM host
90
+ consults for Layer 3 routing. `references/cli/trigger-schema-enrichment.md` is
91
+ the intent documentation contract; pattern matching and scoring belong to
92
+ neither, having been retired by Decision 76.
93
+ - **`skills/agentera/SKILL.md`** is the thin bootstrap routing surface per Decision
94
+ 74; it cross-references this document rather than restating the full model.
@@ -0,0 +1,42 @@
1
+ schema_version: agentera.single_name_protocol.v1
2
+ status: active_authority
3
+ decision: 58
4
+ purpose: >-
5
+ Machine-readable Decision 58 boundary: forbidden legacy protocol identifiers
6
+ and scan surfaces for the single-name protocol regression test.
7
+ human_index:
8
+ document: references/cli/vocabulary.md
9
+ forbidden_protocol_substrings:
10
+ - pattern: instruction_file
11
+ rationale: D65 renamed DIRECTORY_REQUIREMENTS and contract fields to instruction_module.
12
+ - pattern: canonical_instruction_file
13
+ rationale: Use canonical_instruction_module in capability-instruction-contract.yaml.
14
+ - pattern: legacy_instruction_file
15
+ rationale: Historical paths belong in archive or migration modules only.
16
+ - pattern: instructionPath
17
+ rationale: capabilityContract loader exposes instructionModulePath only.
18
+ forbidden_storage_protocol_markdown_artifacts:
19
+ - PROGRESS.md
20
+ - PLAN.md
21
+ - DECISIONS.md
22
+ - VISION.md
23
+ - HEALTH.md
24
+ - DOCS.md
25
+ - OBJECTIVE.md
26
+ - EXPERIMENTS.md
27
+ scan_roots:
28
+ - packages/cli/src
29
+ - skills/agentera/capability_schema_contract.yaml
30
+ - skills/agentera/protocol.yaml
31
+ - references/cli/capability-instruction-contract.yaml
32
+ - references/cli/vocabulary.md
33
+ - references/cli/vocabulary-index.yaml
34
+ - registry.json
35
+ scan_exclude_globs:
36
+ - "**/capabilities/**/instructions.ts"
37
+ - "**/migrateArtifactsV1ToV2.ts"
38
+ - "**/migrateArtifactsV2ToV3.ts"
39
+ - "**/migrateArtifacts*.ts"
40
+ - "**/*.test.ts"
41
+ - "**/test/**"
42
+ comment_line_exempt: true
@@ -0,0 +1,136 @@
1
+ # Trigger intent documentation contract
2
+
3
+ Authority for Layer 3 LLM-native capability routing. This document defines the
4
+ trigger-schema fields the LLM host consults to understand what each capability
5
+ does and how to disambiguate near-equal requests. The fields are documentation
6
+ the host reads, not inputs to a scoring engine.
7
+
8
+ - **Authority path:** `references/cli/trigger-schema-enrichment.md`
9
+ - **Schema contract:** `skills/agentera/capability_schema_contract.yaml` (the
10
+ contract loader at `packages/cli/src/registries/capabilityContract.ts` consumes it)
11
+ - **Trigger files:** `skills/agentera/capabilities/<name>/schemas/triggers.yaml`
12
+ - **Scope:** Layer 3 (LLM-native natural-language routing) of the five-layer
13
+ routing model. Layer 4 (formerly borderline-band disambiguation) is dissolved
14
+ into Layer 3. Layers 1, 2, and 5 are unchanged.
15
+
16
+ ## Decision 76 — repositioning
17
+
18
+ Decision 76 (2026-06-30) retires the deterministic NL routing engine. The LLM
19
+ host — the AI model that receives the user's message — owns natural-language
20
+ routing natively. This document is repositioned from a scoring-enrichment
21
+ contract to the **trigger intent documentation contract**: it defines the
22
+ `triggers.yaml` fields that help the LLM host understand what each capability
23
+ does and how to disambiguate near-equal requests.
24
+
25
+ The fields stay as documentation, not as scoring inputs. The LLM host reads the
26
+ descriptions and disambiguates natively; `priority` and `disambiguates_against`
27
+ are advisory hints, not scoring weights. There is no scoring algorithm, no
28
+ confidence threshold, no borderline band, and no `prime --route` output schema.
29
+ Decision 75's request-vs-state mutual exclusivity is dissolved: request intent
30
+ and state-readiness are both advisory context the LLM consults. Decision 76
31
+ supersedes Decision 75 design choices 2 (request-derived scoring as router), 4
32
+ (mutual exclusivity), and 5 (pure request-derived).
33
+
34
+ Decision 76 records the design choices and rejected alternatives (including the
35
+ tuning-the-engine and reposition-`--route` alternatives that were rejected).
36
+
37
+ ## 1. Field shape
38
+
39
+ The fields below are the LLM-readable intent documentation the host consults.
40
+ `description` and `priority` are base trigger fields required on every
41
+ `TRIGGERS` entry; `disambiguates_against` is an optional enrichment that gives
42
+ the host disambiguation words to surface when a request could match more than
43
+ one capability.
44
+
45
+ ### 1.1 `description`
46
+
47
+ - **Type:** non-empty string (required on every `TRIGGERS` entry).
48
+ - **Meaning:** the LLM-readable explanation of what this trigger entry routes to.
49
+ The LLM host reads this to decide whether a natural-language request matches
50
+ the capability's intent. Prose that names the capability's purpose and the
51
+ request shapes it owns reads better than keyword lists; write it for a reader
52
+ who has never seen the capability before.
53
+ - **Validation failure:** a missing, empty, or non-string `description` fails
54
+ validation with an error message naming the offending entry ID.
55
+
56
+ ```
57
+ TRIGGERS:
58
+ 1:
59
+ id: T2
60
+ description: >-
61
+ Audit and codebase health requests.
62
+ priority: medium
63
+ patterns:
64
+ - "check code health"
65
+ - "architecture review"
66
+ ```
67
+
68
+ ### 1.2 `disambiguates_against`
69
+
70
+ - **Type:** list of mappings. Each entry MUST contain:
71
+ - `capability` — string referencing a valid capability ID (one of the twelve
72
+ English canonical IDs enumerated by `ROUTE_ALIASES.primary_aliases` in
73
+ `capability_schema_contract.yaml`: `status`, `vision`, `discuss`, `research`,
74
+ `plan`, `build`, `optimize`, `audit`, `document`, `profile`, `design`,
75
+ `orchestrate`).
76
+ - `hint` — non-empty string distinguishing this trigger's intent from the
77
+ named capability on near-equal requests.
78
+ - **Meaning:** declares which other capabilities this trigger's intent could be
79
+ confused with, with a hint the LLM host consults when it sees a request that
80
+ could match more than one capability. The list is advisory: the LLM host
81
+ resolves ambiguity natively and MAY surface the hint when asking the user to
82
+ confirm or clarify. The hint supplies the words; the LLM supplies the
83
+ judgment.
84
+ - **Validation failure:** a `capability` value that is not one of the twelve
85
+ canonical IDs, a missing `hint`, an empty `hint`, or an entry that is not a
86
+ mapping fails validation with the offending entry ID and the constraint.
87
+
88
+ ```
89
+ disambiguates_against:
90
+ - capability: build
91
+ hint: "vision refines existing project direction; build implements code"
92
+ - capability: optimize
93
+ hint: "vision is about what to build, not tuning existing code"
94
+ ```
95
+
96
+ ### 1.3 `priority`
97
+
98
+ - **Type:** string enum `high` | `medium` | `low` (required on every `TRIGGERS`
99
+ entry).
100
+ - **Meaning:** advisory relevance-precedence hint the LLM host reads alongside
101
+ `description` when deciding which capability best fits a request. `high`
102
+ marks a capability that owns the request strongly; `low` marks a capability
103
+ that is a plausible but weaker fit. It is not a scoring weight and feeds no
104
+ weighted-average calculation; the LLM host uses it as one signal among the
105
+ intent documentation.
106
+ - **Validation failure:** a missing `priority` or a value outside `high`,
107
+ `medium`, `low` fails validation with the offending entry ID.
108
+
109
+ ```
110
+ priority: high
111
+ ```
112
+
113
+ ## 2. Defaults summary
114
+
115
+ | Field | Required | Default when absent |
116
+ | --- | --- | --- |
117
+ | `description` | required | — |
118
+ | `disambiguates_against` | optional | empty list (no explicit collisions declared) |
119
+ | `priority` | required (`TRIGGERS`) | — |
120
+
121
+ `description` and `priority` are required on every `TRIGGERS` entry and have no
122
+ default. `disambiguates_against` is optional and defaults to an empty list. The
123
+ loader at `packages/cli/src/registries/capabilityContract.ts` is the consumer of
124
+ these shapes; tests and source that need them read through the loader rather than
125
+ re-declaring the values (per the AGENTS.md rule against duplicating
126
+ contract-owned values).
127
+
128
+ ## 3. Acceptance criteria mapping
129
+
130
+ | Criterion | Section |
131
+ | --- | --- |
132
+ | `description` is a non-empty string on every `TRIGGERS` entry | §1.1 |
133
+ | `disambiguates_against` entries reference a valid capability ID and include a non-empty hint | §1.2 |
134
+ | `priority` is one of `high` / `medium` / `low` on every `TRIGGERS` entry | §1.3 |
135
+ | Document reframed as LLM-readable intent documentation; no scoring algorithm, thresholds, borderline band, or `--route` output schema | Decision 76, §1 |
136
+ | Decision artifact lists each choice, ≥1 alternative, and rationale | Decision 76 in `.agentera/decisions.yaml` |