agentera 3.0.0-dev.7 → 3.0.0-dev.72

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 (723) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +118 -22
  3. package/bundle/CHANGELOG.md +1361 -0
  4. package/bundle/DESIGN.md +229 -0
  5. package/bundle/LICENSE +201 -0
  6. package/bundle/README.md +143 -0
  7. package/bundle/UPGRADE.md +252 -0
  8. package/bundle/extract-corpus-parity.json +2 -4
  9. package/bundle/fixtures/routing/hybrid-corpus.yaml +154 -0
  10. package/bundle/references/adapters/package-publication.json +488 -0
  11. package/bundle/references/adapters/package-registry.yaml +435 -188
  12. package/bundle/references/adapters/package-surface-characterization.md +66 -34
  13. package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +74 -0
  14. package/bundle/references/adapters/runtime-lifecycle-authority.yaml +62 -0
  15. package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +84 -0
  16. package/bundle/references/adapters/runtime-retired-resources.yaml +333 -0
  17. package/bundle/references/analysis/evidence-tier-authority.yaml +518 -0
  18. package/bundle/references/analysis/verification-policy.yaml +266 -0
  19. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +17 -8
  20. package/bundle/references/artifacts/glossary-entry-contract.yaml +1254 -0
  21. package/bundle/references/artifacts/state-storage-authority.yaml +3061 -0
  22. package/bundle/references/artifacts/verbosity-budget-authority.yaml +42 -0
  23. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +3 -4
  24. package/bundle/references/cli/capability-instruction-contract.yaml +11 -14
  25. package/bundle/references/cli/hybrid-route-contract.yaml +438 -0
  26. package/bundle/references/cli/routing-model.md +152 -93
  27. package/bundle/references/cli/trigger-schema-enrichment.md +57 -46
  28. package/bundle/references/cli/update-channels.yaml +4 -2
  29. package/bundle/references/cli/vocabulary-index.yaml +5 -7
  30. package/bundle/references/cli/vocabulary.md +51 -93
  31. package/bundle/references/meta/retained-reference-authority.yaml +151 -0
  32. package/bundle/skills/agentera/SKILL.md +183 -63
  33. package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +27 -19
  34. package/bundle/skills/agentera/capabilities/audit/schemas/exit.yaml +2 -2
  35. package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +13 -35
  36. package/bundle/skills/agentera/capabilities/audit/schemas/validation.yaml +30 -11
  37. package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +44 -21
  38. package/bundle/skills/agentera/capabilities/build/schemas/exit.yaml +8 -6
  39. package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +14 -36
  40. package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +95 -21
  41. package/bundle/skills/agentera/capabilities/design/schemas/artifacts.yaml +6 -6
  42. package/bundle/skills/agentera/capabilities/design/schemas/exit.yaml +5 -5
  43. package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +5 -34
  44. package/bundle/skills/agentera/capabilities/design/schemas/validation.yaml +2 -2
  45. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +17 -13
  46. package/bundle/skills/agentera/capabilities/discuss/schemas/exit.yaml +2 -2
  47. package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +6 -40
  48. package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +72 -5
  49. package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +24 -17
  50. package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +5 -35
  51. package/bundle/skills/agentera/capabilities/document/schemas/validation.yaml +13 -13
  52. package/bundle/skills/agentera/capabilities/optimize/schemas/artifacts.yaml +10 -10
  53. package/bundle/skills/agentera/capabilities/optimize/schemas/exit.yaml +2 -2
  54. package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +4 -35
  55. package/bundle/skills/agentera/capabilities/optimize/schemas/validation.yaml +3 -3
  56. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +34 -22
  57. package/bundle/skills/agentera/capabilities/orchestrate/schemas/exit.yaml +9 -7
  58. package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +5 -37
  59. package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +38 -37
  60. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +20 -16
  61. package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +8 -31
  62. package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +66 -6
  63. package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +9 -4
  64. package/bundle/skills/agentera/capabilities/profile/schemas/exit.yaml +4 -4
  65. package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +8 -37
  66. package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +61 -3
  67. package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +6 -6
  68. package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +5 -29
  69. package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +13 -12
  70. package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +7 -49
  71. package/bundle/skills/agentera/capabilities/vision/schemas/artifacts.yaml +8 -8
  72. package/bundle/skills/agentera/capabilities/vision/schemas/exit.yaml +7 -6
  73. package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +7 -39
  74. package/bundle/skills/agentera/capabilities/vision/schemas/validation.yaml +14 -16
  75. package/bundle/skills/agentera/capability_schema_contract.yaml +32 -32
  76. package/bundle/skills/agentera/protocol.yaml +4 -4
  77. package/bundle/skills/agentera/route-phrases.yaml +81 -0
  78. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +1 -0
  79. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +30 -12
  80. package/bundle/skills/agentera/schemas/artifacts/design.yaml +1 -0
  81. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +7 -12
  82. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +140 -9
  83. package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +82 -0
  84. package/bundle/skills/agentera/schemas/artifacts/health.yaml +56 -19
  85. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +18 -4
  86. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +457 -32
  87. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +131 -18
  88. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +302 -7
  89. package/dist/analytics/extractCorpus/cli.js +52 -11
  90. package/dist/analytics/extractCorpus/copilotSessions.js +6 -4
  91. package/dist/analytics/extractCorpus/core.js +40 -12
  92. package/dist/analytics/extractCorpus/corpus.js +39 -17
  93. package/dist/analytics/extractCorpus/coverageAudit.js +44 -45
  94. package/dist/analytics/extractCorpus/cursorSessions.js +6 -4
  95. package/dist/analytics/extractCorpus/evidenceTiers.js +603 -0
  96. package/dist/analytics/extractCorpus/extractCorpusParity.js +4 -4
  97. package/dist/analytics/extractCorpus/filesystemSources.js +1 -5
  98. package/dist/analytics/extractCorpus/index.js +3 -1
  99. package/dist/analytics/extractCorpus/jsonlSessions.js +24 -5
  100. package/dist/analytics/extractCorpus/sqliteCaps.js +0 -1
  101. package/dist/analytics/extractCorpus/sqliteSessions.js +0 -1
  102. package/dist/analytics/extractCorpus/tierReader.js +108 -0
  103. package/dist/analytics/extractCorpus.js +0 -1
  104. package/dist/analytics/glossaryAdviceResolution.js +166 -0
  105. package/dist/analytics/glossaryInputAcquisition.js +319 -0
  106. package/dist/analytics/personalGlossaryAdmission.js +133 -0
  107. package/dist/analytics/personalGlossaryProfile.js +219 -0
  108. package/dist/analytics/profileSignals.js +211 -0
  109. package/dist/analytics/usageStats.js +150 -23
  110. package/dist/audit/terminologyDrift.js +281 -0
  111. package/dist/bin/agentera.js +3 -2
  112. package/dist/capabilities/audit/instructions.js +16 -6
  113. package/dist/capabilities/build/instructions.js +59 -6
  114. package/dist/capabilities/design/instructions.js +3 -4
  115. package/dist/capabilities/discuss/instructions.js +29 -6
  116. package/dist/capabilities/document/instructions.js +11 -6
  117. package/dist/capabilities/index.js +16 -14
  118. package/dist/capabilities/optimize/instructions.js +14 -6
  119. package/dist/capabilities/orchestrate/instructions.js +42 -6
  120. package/dist/capabilities/plan/instructions.js +30 -3
  121. package/dist/capabilities/profile/instructions.js +70 -6
  122. package/dist/capabilities/research/instructions.js +4 -5
  123. package/dist/capabilities/status/instructions.js +15 -6
  124. package/dist/capabilities/status/startupInstructions.js +34 -0
  125. package/dist/capabilities/vision/instructions.js +3 -5
  126. package/dist/cli/appContext.js +14 -7
  127. package/dist/cli/argvalidate.js +0 -1
  128. package/dist/cli/capabilityContext/benchmark.js +5 -4
  129. package/dist/cli/capabilityContext/bespoke.js +14 -6
  130. package/dist/cli/capabilityContext/build.js +116 -42
  131. package/dist/cli/capabilityContext/closeout.js +30 -27
  132. package/dist/cli/capabilityContext/contract.js +18 -27
  133. package/dist/cli/capabilityContext/evidence.js +84 -77
  134. package/dist/cli/capabilityContext/index.js +0 -1
  135. package/dist/cli/capabilityContext/orchestration.js +42 -18
  136. package/dist/cli/capabilityContext/planState.js +89 -96
  137. package/dist/cli/capabilityContext/progress.js +51 -12
  138. package/dist/cli/capabilityContext/projectVerification.js +409 -0
  139. package/dist/cli/capabilityContext/shared.js +9 -20
  140. package/dist/cli/capabilityContext/slim.js +52 -8
  141. package/dist/cli/capabilityContext/startup.js +51 -114
  142. package/dist/cli/capabilityContext/startupAggregation.js +68 -0
  143. package/dist/cli/capabilityContext/types.js +26 -10
  144. package/dist/cli/capabilityContext.js +0 -1
  145. package/dist/cli/commands/appHome.js +0 -1
  146. package/dist/cli/commands/capability.js +2 -2
  147. package/dist/cli/commands/compact.js +163 -13
  148. package/dist/cli/commands/doctor.js +117 -11
  149. package/dist/cli/commands/durability.js +81 -0
  150. package/dist/cli/commands/glossaryAdvice.js +138 -0
  151. package/dist/cli/commands/lint.js +22 -8
  152. package/dist/cli/commands/personalGlossary.js +176 -0
  153. package/dist/cli/commands/prime/briefOrientation.js +746 -0
  154. package/dist/cli/commands/prime/buildExecutionRequest.js +165 -0
  155. package/dist/cli/commands/prime/bundleStatus.js +54 -4
  156. package/dist/cli/commands/prime/collectEntityOrientation.js +326 -0
  157. package/dist/cli/commands/prime/collectOrientationState.js +126 -63
  158. package/dist/cli/commands/prime/orientationOutput.js +267 -56
  159. package/dist/cli/commands/prime/types.js +0 -1
  160. package/dist/cli/commands/prime/v1Migration.js +0 -1
  161. package/dist/cli/commands/prime.js +76 -11
  162. package/dist/cli/commands/profileGrounding.js +55 -0
  163. package/dist/cli/commands/query.js +74 -52
  164. package/dist/cli/commands/report.js +73 -19
  165. package/dist/cli/commands/route.js +142 -0
  166. package/dist/cli/commands/schema.js +257 -138
  167. package/dist/cli/commands/state/decisions.js +40 -56
  168. package/dist/cli/commands/state/docs.js +58 -85
  169. package/dist/cli/commands/state/experimentRecords.js +151 -0
  170. package/dist/cli/commands/state/experiments.js +11 -65
  171. package/dist/cli/commands/state/get.js +129 -0
  172. package/dist/cli/commands/state/health.js +11 -113
  173. package/dist/cli/commands/state/index.js +6 -41
  174. package/dist/cli/commands/state/list.js +194 -0
  175. package/dist/cli/commands/state/objective.js +21 -65
  176. package/dist/cli/commands/state/plan.js +11 -170
  177. package/dist/cli/commands/state/planTasks.js +154 -0
  178. package/dist/cli/commands/state/plans.js +154 -0
  179. package/dist/cli/commands/state/progress.js +11 -45
  180. package/dist/cli/commands/state/shared.js +0 -1
  181. package/dist/cli/commands/state/todo.js +28 -107
  182. package/dist/cli/commands/state/write.js +433 -0
  183. package/dist/cli/commands/upgrade.js +146 -5
  184. package/dist/cli/commands/upgradeVerify.js +118 -0
  185. package/dist/cli/commands/validate.js +235 -136
  186. package/dist/cli/commands/verify.js +23 -8
  187. package/dist/cli/contracts/bundleStatus.js +0 -1
  188. package/dist/cli/contracts/orientationState.js +0 -1
  189. package/dist/cli/dispatch/argvParser.js +0 -1
  190. package/dist/cli/dispatch/check.js +84 -40
  191. package/dist/cli/dispatch/commands.js +3 -3
  192. package/dist/cli/dispatch/index.js +77 -52
  193. package/dist/cli/dispatch/lifecycle.js +117 -62
  194. package/dist/cli/dispatch/prime.js +37 -2
  195. package/dist/cli/dispatch/projections.js +17 -0
  196. package/dist/cli/dispatch/shared.js +1 -2
  197. package/dist/cli/dispatch/state.js +62 -66
  198. package/dist/cli/dispatch.js +0 -1
  199. package/dist/cli/errors.js +16 -17
  200. package/dist/cli/help.js +358 -39
  201. package/dist/cli/migrationRequired.js +122 -0
  202. package/dist/cli/orientation/attention.js +19 -19
  203. package/dist/cli/orientation/corpusCoverage.js +32 -1
  204. package/dist/cli/orientation.js +346 -129
  205. package/dist/cli/planArtifacts.js +350 -0
  206. package/dist/cli/planEvidence.js +157 -0
  207. package/dist/cli/planLifecycleState.js +36 -0
  208. package/dist/cli/planTaskIndex.js +11 -0
  209. package/dist/cli/preCutoverCommand.js +32 -0
  210. package/dist/cli/prime-blob.js +71 -3
  211. package/dist/cli/profileAcquisition.js +167 -0
  212. package/dist/cli/startupCompletenessContract.js +11 -8
  213. package/dist/cli/stateQuery.js +47 -12
  214. package/dist/cli/structured.js +0 -1
  215. package/dist/cli/todoMarkdown.js +25 -12
  216. package/dist/cli/todoReadinessSelection.js +192 -0
  217. package/dist/cli/todoSeverity.js +0 -1
  218. package/dist/core/atomicWriter.js +20 -0
  219. package/dist/core/developmentChannel.js +1 -0
  220. package/dist/core/developmentInvocation.js +374 -0
  221. package/dist/core/difflib.js +0 -1
  222. package/dist/core/envPaths.js +0 -1
  223. package/dist/core/jsonValue.js +0 -1
  224. package/dist/core/paths.js +0 -1
  225. package/dist/core/pyjson.js +0 -1
  226. package/dist/core/shell.js +4 -0
  227. package/dist/core/skillIdentity.js +23 -0
  228. package/dist/core/sourceRoot.js +9 -12
  229. package/dist/core/text.js +10 -0
  230. package/dist/core/toml.js +0 -1
  231. package/dist/core/yaml.js +8 -1
  232. package/dist/eval/evalSkills.js +13 -14
  233. package/dist/eval/hybridRouteEvaluation.js +155 -0
  234. package/dist/eval/semanticEval.js +0 -1
  235. package/dist/eval/semanticFixtures.js +0 -1
  236. package/dist/hooks/common.js +3 -56
  237. package/dist/hooks/compaction/apply.js +224 -47
  238. package/dist/hooks/compaction/dryRun.js +2 -1
  239. package/dist/hooks/compaction/index.js +5 -6
  240. package/dist/hooks/compaction/parse.js +73 -6
  241. package/dist/hooks/compaction/retention.js +28 -25
  242. package/dist/hooks/compaction/status.js +145 -26
  243. package/dist/hooks/compaction/types.js +0 -1
  244. package/dist/hooks/validateArtifact/agentFacing.js +0 -1
  245. package/dist/hooks/validateArtifact/index.js +6 -65
  246. package/dist/hooks/validateArtifact/markdown.js +9 -10
  247. package/dist/hooks/validateArtifact/schema.js +96 -9
  248. package/dist/hooks/validateArtifact/traversal.js +12 -11
  249. package/dist/hooks/validateArtifact/violations.js +5 -3
  250. package/dist/migrate/v2HandoffManifest.js +8 -3
  251. package/dist/registries/activationContract.js +2 -0
  252. package/dist/registries/activationTuples.js +108 -0
  253. package/dist/registries/artifactProtocolIds.js +2 -1
  254. package/dist/registries/artifactRegistry.js +207 -60
  255. package/dist/registries/artifactSchemaProjection.js +45 -0
  256. package/dist/registries/capabilityContract.js +5 -21
  257. package/dist/registries/evaluatorHandoffContract.js +0 -1
  258. package/dist/registries/evidenceTierContract.js +371 -0
  259. package/dist/registries/glossaryAdviceContract.js +79 -0
  260. package/dist/registries/glossaryCaveatContract.js +67 -0
  261. package/dist/registries/glossaryConsumerContractValidation.js +787 -0
  262. package/dist/registries/glossaryEntryContract.js +757 -0
  263. package/dist/registries/glossaryTermIdentity.js +17 -0
  264. package/dist/registries/glossaryTermOccurrence.js +20 -0
  265. package/dist/registries/hybridRoute.js +274 -0
  266. package/dist/registries/hybridRouteReceipt.js +221 -0
  267. package/dist/registries/packagePublication.js +273 -0
  268. package/dist/registries/packageRegistry.js +184 -209
  269. package/dist/registries/todoReadinessContract.js +448 -0
  270. package/dist/registries/triggerLoader.js +7 -44
  271. package/dist/registries/verbosityBudgetContract.js +205 -0
  272. package/dist/release/releaseMetadata.js +155 -5
  273. package/dist/runtime/lifecycleAdapterContract.js +457 -0
  274. package/dist/runtime/lifecycleAdapters.js +777 -0
  275. package/dist/runtime/lifecycleAuthority.js +453 -0
  276. package/dist/runtime/lifecycleOperationContract.js +123 -0
  277. package/dist/runtime/lifecycleOperations.js +634 -0
  278. package/dist/runtime/lifecycleOwnershipJournal.js +622 -0
  279. package/dist/runtime/lifecyclePublication.js +415 -0
  280. package/dist/runtime/lifecycleSnapshot.js +438 -0
  281. package/dist/runtime/nativeResourceCleanup.js +502 -0
  282. package/dist/setup/opencode.js +20 -13
  283. package/dist/setup/opencodeConstants.js +1 -0
  284. package/dist/setup/sharedSkill.js +45 -0
  285. package/dist/setup/smokeChecks.js +14 -75
  286. package/dist/state/archiveDiscovery.js +580 -0
  287. package/dist/state/archivePublication.js +225 -0
  288. package/dist/state/archiveRecovery.js +237 -0
  289. package/dist/state/archiveReplay.js +53 -0
  290. package/dist/state/canonicalMigrationRecord.js +36 -0
  291. package/dist/state/changelog.js +221 -0
  292. package/dist/state/decisionEntities.js +367 -0
  293. package/dist/state/decisionLegacyValidation.js +215 -0
  294. package/dist/state/decisionMigrationProvenance.js +199 -0
  295. package/dist/state/decisionOverlay.js +254 -0
  296. package/dist/state/decisionRevision.js +256 -0
  297. package/dist/state/decisionRevisionMigration.js +89 -0
  298. package/dist/state/directRetrieval.js +323 -0
  299. package/dist/state/durability.js +324 -0
  300. package/dist/state/entityCutover.js +459 -0
  301. package/dist/state/entityCutoverGit.js +127 -0
  302. package/dist/state/entityGlossaryAuthority.js +13 -0
  303. package/dist/state/entityListProjection.js +187 -0
  304. package/dist/state/entityListRuntimeRegistry.js +85 -0
  305. package/dist/state/entityMigrationCausality.js +97 -0
  306. package/dist/state/entityMigrationIdentity.js +5 -0
  307. package/dist/state/entityMigrationPreview.js +840 -0
  308. package/dist/state/entityMigrationTodo.js +133 -0
  309. package/dist/state/entityPublicationContext.js +859 -0
  310. package/dist/state/entityRetrievalHelp.js +506 -0
  311. package/dist/state/entityStorage.js +899 -0
  312. package/dist/state/exactReplacementRecovery.js +18 -0
  313. package/dist/state/experimentArchive.js +63 -0
  314. package/dist/state/experimentIdentity.js +202 -0
  315. package/dist/state/healthEntities.js +262 -0
  316. package/dist/state/healthEntityValidation.js +18 -0
  317. package/dist/state/healthRepair.js +69 -0
  318. package/dist/state/installRoot.js +15 -7
  319. package/dist/state/legacyEntityCutoverEvidence.js +65 -0
  320. package/dist/state/legacyIdentity.js +47 -0
  321. package/dist/state/legacySummaryRecord.js +6 -0
  322. package/dist/state/listAccounting.js +54 -0
  323. package/dist/state/listClassification.js +17 -0
  324. package/dist/state/listCursor.js +42 -0
  325. package/dist/state/listRetrieval.js +781 -0
  326. package/dist/state/migrationSourceBinding.js +30 -0
  327. package/dist/state/objectiveExperimentEntities.js +322 -0
  328. package/dist/state/planEntities.js +1027 -0
  329. package/dist/state/planIdentity.js +47 -0
  330. package/dist/state/planLineageValidation.js +52 -0
  331. package/dist/state/planReplacementTransaction.js +475 -0
  332. package/dist/state/planRetrieval.js +313 -0
  333. package/dist/state/planTaskRetrieval.js +294 -0
  334. package/dist/state/progressEntities.js +512 -0
  335. package/dist/state/progressGlossaryCaveat.js +168 -0
  336. package/dist/state/progressPublicationOrder.js +19 -0
  337. package/dist/state/progressWritePolicy.js +33 -0
  338. package/dist/state/projectRoot.js +62 -0
  339. package/dist/state/projectionPolicy.js +190 -0
  340. package/dist/state/retrievalAuthority.js +156 -0
  341. package/dist/state/safeProjectFile.js +155 -0
  342. package/dist/state/startupAnalysis/benchmark.js +70 -9
  343. package/dist/state/startupAnalysis/contract.js +44 -10
  344. package/dist/state/startupAnalysis/helpers.js +1 -2
  345. package/dist/state/startupAnalysis/index.js +0 -1
  346. package/dist/state/startupAnalysis/metrics.js +0 -1
  347. package/dist/state/startupAnalysis/records.js +0 -1
  348. package/dist/state/startupAnalysis/report.js +0 -1
  349. package/dist/state/startupAnalysis/threshold.js +13 -1
  350. package/dist/state/startupAnalysis.js +0 -1
  351. package/dist/state/startupProjection.js +499 -0
  352. package/dist/state/stateMode.js +222 -0
  353. package/dist/state/stateStorageAuthority.js +47 -0
  354. package/dist/state/summaryEntityRead.js +25 -0
  355. package/dist/state/summaryMigrationProvenance.js +66 -0
  356. package/dist/state/summarySourceRowAuthority.js +36 -0
  357. package/dist/state/todoActivationSafety.js +58 -0
  358. package/dist/state/todoDocsEntities.js +1124 -0
  359. package/dist/state/todoDocsEntityValidation.js +158 -0
  360. package/dist/state/todoMarkdownProjection.js +51 -0
  361. package/dist/state/todoReconciliationActivation.js +182 -0
  362. package/dist/state/todoReconciliationInspection.js +171 -0
  363. package/dist/state/todoReconciliationRepair.js +318 -0
  364. package/dist/state/todoReconciliationTransaction.js +595 -0
  365. package/dist/state/write/assign.js +20 -0
  366. package/dist/state/write/candidateMutation.js +269 -0
  367. package/dist/state/write/errors.js +11 -0
  368. package/dist/state/write/experimentPublication.js +192 -0
  369. package/dist/state/write/explain.js +377 -0
  370. package/dist/state/write/fields.js +61 -0
  371. package/dist/state/write/glossaryPublication.js +263 -0
  372. package/dist/state/write/grammar.js +285 -0
  373. package/dist/state/write/helpers.js +29 -0
  374. package/dist/state/write/index.js +12 -0
  375. package/dist/state/write/input.js +391 -0
  376. package/dist/state/write/lock.js +837 -0
  377. package/dist/state/write/mutation.js +234 -0
  378. package/dist/state/write/operations.js +170 -0
  379. package/dist/state/write/planEvaluation.js +128 -0
  380. package/dist/state/write/planPublication.js +179 -0
  381. package/dist/state/write/runtimeOperations.js +146 -0
  382. package/dist/state/write/serialize.js +1 -0
  383. package/dist/state/write/transaction.js +57 -0
  384. package/dist/state/write/validate.js +7 -0
  385. package/dist/upgrade/appContentRefresh.js +77 -36
  386. package/dist/upgrade/appModel.js +0 -1
  387. package/dist/upgrade/atomicWriter.js +1 -0
  388. package/dist/upgrade/bundleEvidence.js +0 -1
  389. package/dist/upgrade/channels.js +6 -9
  390. package/dist/upgrade/compatibility.js +43 -17
  391. package/dist/upgrade/doctor.js +55 -32
  392. package/dist/upgrade/doctorClassifier.js +11 -1
  393. package/dist/upgrade/installedHooksRetirement.js +46 -40
  394. package/dist/upgrade/legacyAgentCleanup.js +187 -21
  395. package/dist/upgrade/lifecycleUpgrade.js +113 -0
  396. package/dist/upgrade/migrateArtifactsV2ToV3.js +334 -64
  397. package/dist/upgrade/migrationPublication.js +122 -0
  398. package/dist/upgrade/nextMajorDoctor.js +0 -1
  399. package/dist/upgrade/npxPlatformStatus.js +0 -1
  400. package/dist/upgrade/projectIntegration.js +121 -159
  401. package/dist/upgrade/projectIntegrationDecision.js +42 -85
  402. package/dist/upgrade/retiredResourceDiagnostics.js +117 -0
  403. package/dist/upgrade/runtimeMigration.js +262 -453
  404. package/dist/upgrade/upgradeCommands.js +14 -1
  405. package/dist/upgrade/upgradeLock.js +85 -0
  406. package/dist/upgrade/upgradeOrchestrator.js +263 -59
  407. package/dist/upgrade/v3CapabilitySurface.js +2 -3
  408. package/dist/upgrade/versionResolution.js +0 -1
  409. package/dist/validate/activationArtifactEvidence.js +852 -0
  410. package/dist/validate/activationArtifactEvidenceTypes.js +12 -0
  411. package/dist/validate/activationConjunction.js +816 -0
  412. package/dist/validate/activationEvidenceManifest.js +531 -0
  413. package/dist/validate/activationPackageSemantics.js +29 -0
  414. package/dist/validate/appHomeContract.js +1 -7
  415. package/dist/validate/bootstrapAuthority.js +44 -0
  416. package/dist/validate/capability.js +11 -3
  417. package/dist/validate/crossCapability.js +14 -9
  418. package/dist/validate/retainedReferenceAuthority.js +879 -0
  419. package/dist/validate/selfAudit.js +39 -45
  420. package/dist/validate/v1LegacyCruft.js +131 -0
  421. package/dist/validate/vocabularyAuthority.js +8 -8
  422. package/package.json +41 -13
  423. package/bundle/references/adapters/cursor.md +0 -214
  424. package/bundle/references/adapters/opencode.md +0 -530
  425. package/bundle/references/adapters/package-manifest-interface-model.yaml +0 -337
  426. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -79
  427. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  428. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -554
  429. package/bundle/references/adapters/runtime-feature-parity.md +0 -189
  430. package/bundle/references/analysis/benchmark.md +0 -267
  431. package/bundle/references/analysis/startup-measurement-contract.yaml +0 -424
  432. package/bundle/references/cli/agent-ready-state-contract.yaml +0 -953
  433. package/bundle/references/cli/audience-namespace-cli-migration.yaml +0 -369
  434. package/bundle/references/cli/bundle-skill-vocabulary.yaml +0 -250
  435. package/bundle/references/cli/capability-tool-classification.yaml +0 -53
  436. package/bundle/references/cli/coexistence-probe.yaml +0 -13
  437. package/bundle/references/cli/parity-expected-actual-template.md +0 -30
  438. package/bundle/references/cli/routing-execution-vocabulary.yaml +0 -281
  439. package/bundle/references/cli/single-name-protocol.yaml +0 -42
  440. package/bundle/references/cli/upgrade-repair-wording.md +0 -45
  441. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +0 -98
  442. package/bundle/references/meta/documentation-inventory.md +0 -49
  443. package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
  444. package/bundle/skills/agentera/agents/audit.toml +0 -6
  445. package/bundle/skills/agentera/agents/build.toml +0 -6
  446. package/bundle/skills/agentera/agents/design.toml +0 -6
  447. package/bundle/skills/agentera/agents/discuss.toml +0 -6
  448. package/bundle/skills/agentera/agents/document.toml +0 -6
  449. package/bundle/skills/agentera/agents/optimize.toml +0 -6
  450. package/bundle/skills/agentera/agents/orchestrate.toml +0 -6
  451. package/bundle/skills/agentera/agents/plan.toml +0 -6
  452. package/bundle/skills/agentera/agents/profile.toml +0 -6
  453. package/bundle/skills/agentera/agents/research.toml +0 -6
  454. package/bundle/skills/agentera/agents/status.toml +0 -6
  455. package/bundle/skills/agentera/agents/vision.toml +0 -6
  456. package/bundle/skills/agentera/references/contract.md +0 -1048
  457. package/dist/analytics/extractCorpus/cli.js.map +0 -1
  458. package/dist/analytics/extractCorpus/copilotSessions.js.map +0 -1
  459. package/dist/analytics/extractCorpus/core.js.map +0 -1
  460. package/dist/analytics/extractCorpus/corpus.js.map +0 -1
  461. package/dist/analytics/extractCorpus/coverageAudit.js.map +0 -1
  462. package/dist/analytics/extractCorpus/cursorSessions.js.map +0 -1
  463. package/dist/analytics/extractCorpus/extractCorpusParity.js.map +0 -1
  464. package/dist/analytics/extractCorpus/filesystemSources.js.map +0 -1
  465. package/dist/analytics/extractCorpus/index.js.map +0 -1
  466. package/dist/analytics/extractCorpus/jsonlSessions.js.map +0 -1
  467. package/dist/analytics/extractCorpus/sqliteCaps.js.map +0 -1
  468. package/dist/analytics/extractCorpus/sqliteSessions.js.map +0 -1
  469. package/dist/analytics/extractCorpus.js.map +0 -1
  470. package/dist/analytics/usageStats.js.map +0 -1
  471. package/dist/bin/agentera.js.map +0 -1
  472. package/dist/capabilities/audit/instructions.js.map +0 -1
  473. package/dist/capabilities/build/instructions.js.map +0 -1
  474. package/dist/capabilities/design/instructions.js.map +0 -1
  475. package/dist/capabilities/discuss/instructions.js.map +0 -1
  476. package/dist/capabilities/document/instructions.js.map +0 -1
  477. package/dist/capabilities/dokumentera/instructions.js +0 -6
  478. package/dist/capabilities/dokumentera/instructions.js.map +0 -1
  479. package/dist/capabilities/hej/instructions.js +0 -6
  480. package/dist/capabilities/hej/instructions.js.map +0 -1
  481. package/dist/capabilities/index.js.map +0 -1
  482. package/dist/capabilities/inspektera/instructions.js +0 -6
  483. package/dist/capabilities/inspektera/instructions.js.map +0 -1
  484. package/dist/capabilities/inspirera/instructions.js +0 -6
  485. package/dist/capabilities/inspirera/instructions.js.map +0 -1
  486. package/dist/capabilities/optimera/instructions.js +0 -6
  487. package/dist/capabilities/optimera/instructions.js.map +0 -1
  488. package/dist/capabilities/optimize/instructions.js.map +0 -1
  489. package/dist/capabilities/orchestrate/instructions.js.map +0 -1
  490. package/dist/capabilities/orkestrera/instructions.js +0 -6
  491. package/dist/capabilities/orkestrera/instructions.js.map +0 -1
  492. package/dist/capabilities/plan/instructions.js.map +0 -1
  493. package/dist/capabilities/planera/instructions.js +0 -6
  494. package/dist/capabilities/planera/instructions.js.map +0 -1
  495. package/dist/capabilities/profile/instructions.js.map +0 -1
  496. package/dist/capabilities/profilera/instructions.js +0 -6
  497. package/dist/capabilities/profilera/instructions.js.map +0 -1
  498. package/dist/capabilities/realisera/instructions.js +0 -6
  499. package/dist/capabilities/realisera/instructions.js.map +0 -1
  500. package/dist/capabilities/research/instructions.js.map +0 -1
  501. package/dist/capabilities/resonera/instructions.js +0 -6
  502. package/dist/capabilities/resonera/instructions.js.map +0 -1
  503. package/dist/capabilities/status/instructions.js.map +0 -1
  504. package/dist/capabilities/vision/instructions.js.map +0 -1
  505. package/dist/capabilities/visionera/instructions.js +0 -6
  506. package/dist/capabilities/visionera/instructions.js.map +0 -1
  507. package/dist/capabilities/visualisera/instructions.js +0 -5
  508. package/dist/capabilities/visualisera/instructions.js.map +0 -1
  509. package/dist/cli/appContext.js.map +0 -1
  510. package/dist/cli/argvalidate.js.map +0 -1
  511. package/dist/cli/capabilityContext/benchmark.js.map +0 -1
  512. package/dist/cli/capabilityContext/bespoke.js.map +0 -1
  513. package/dist/cli/capabilityContext/build.js.map +0 -1
  514. package/dist/cli/capabilityContext/closeout.js.map +0 -1
  515. package/dist/cli/capabilityContext/contract.js.map +0 -1
  516. package/dist/cli/capabilityContext/evidence.js.map +0 -1
  517. package/dist/cli/capabilityContext/index.js.map +0 -1
  518. package/dist/cli/capabilityContext/orchestration.js.map +0 -1
  519. package/dist/cli/capabilityContext/planState.js.map +0 -1
  520. package/dist/cli/capabilityContext/progress.js.map +0 -1
  521. package/dist/cli/capabilityContext/realisera.js +0 -174
  522. package/dist/cli/capabilityContext/realisera.js.map +0 -1
  523. package/dist/cli/capabilityContext/shared.js.map +0 -1
  524. package/dist/cli/capabilityContext/slim.js.map +0 -1
  525. package/dist/cli/capabilityContext/startup.js.map +0 -1
  526. package/dist/cli/capabilityContext/types.js.map +0 -1
  527. package/dist/cli/capabilityContext.js.map +0 -1
  528. package/dist/cli/commands/appHome.js.map +0 -1
  529. package/dist/cli/commands/backfill.js +0 -84
  530. package/dist/cli/commands/backfill.js.map +0 -1
  531. package/dist/cli/commands/capability.js.map +0 -1
  532. package/dist/cli/commands/compact.js.map +0 -1
  533. package/dist/cli/commands/doctor.js.map +0 -1
  534. package/dist/cli/commands/lint.js.map +0 -1
  535. package/dist/cli/commands/prime/bundleStatus.js.map +0 -1
  536. package/dist/cli/commands/prime/collectOrientationState.js.map +0 -1
  537. package/dist/cli/commands/prime/orientationOutput.js.map +0 -1
  538. package/dist/cli/commands/prime/routeOutput.js +0 -50
  539. package/dist/cli/commands/prime/routeOutput.js.map +0 -1
  540. package/dist/cli/commands/prime/types.js.map +0 -1
  541. package/dist/cli/commands/prime/v1Migration.js.map +0 -1
  542. package/dist/cli/commands/prime.js.map +0 -1
  543. package/dist/cli/commands/query.js.map +0 -1
  544. package/dist/cli/commands/report.js.map +0 -1
  545. package/dist/cli/commands/schema.js.map +0 -1
  546. package/dist/cli/commands/state/decisions.js.map +0 -1
  547. package/dist/cli/commands/state/docs.js.map +0 -1
  548. package/dist/cli/commands/state/experiments.js.map +0 -1
  549. package/dist/cli/commands/state/health.js.map +0 -1
  550. package/dist/cli/commands/state/index.js.map +0 -1
  551. package/dist/cli/commands/state/objective.js.map +0 -1
  552. package/dist/cli/commands/state/plan.js.map +0 -1
  553. package/dist/cli/commands/state/progress.js.map +0 -1
  554. package/dist/cli/commands/state/shared.js.map +0 -1
  555. package/dist/cli/commands/state/todo.js.map +0 -1
  556. package/dist/cli/commands/state.js +0 -1023
  557. package/dist/cli/commands/state.js.map +0 -1
  558. package/dist/cli/commands/upgrade.js.map +0 -1
  559. package/dist/cli/commands/validate.js.map +0 -1
  560. package/dist/cli/commands/verify.js.map +0 -1
  561. package/dist/cli/contracts/bundleStatus.js.map +0 -1
  562. package/dist/cli/contracts/orientationState.js.map +0 -1
  563. package/dist/cli/dispatch/argvParser.js.map +0 -1
  564. package/dist/cli/dispatch/check.js.map +0 -1
  565. package/dist/cli/dispatch/commands.js.map +0 -1
  566. package/dist/cli/dispatch/index.js.map +0 -1
  567. package/dist/cli/dispatch/lifecycle.js.map +0 -1
  568. package/dist/cli/dispatch/prime.js.map +0 -1
  569. package/dist/cli/dispatch/shared.js.map +0 -1
  570. package/dist/cli/dispatch/state.js.map +0 -1
  571. package/dist/cli/dispatch.js.map +0 -1
  572. package/dist/cli/errors.js.map +0 -1
  573. package/dist/cli/help.js.map +0 -1
  574. package/dist/cli/orientation/attention.js.map +0 -1
  575. package/dist/cli/orientation/corpusCoverage.js.map +0 -1
  576. package/dist/cli/orientation.js.map +0 -1
  577. package/dist/cli/prime-blob.js.map +0 -1
  578. package/dist/cli/startupCompletenessContract.js.map +0 -1
  579. package/dist/cli/stateQuery.js.map +0 -1
  580. package/dist/cli/structured.js.map +0 -1
  581. package/dist/cli/todoMarkdown.js.map +0 -1
  582. package/dist/cli/todoSeverity.js.map +0 -1
  583. package/dist/core/difflib.js.map +0 -1
  584. package/dist/core/envPaths.js.map +0 -1
  585. package/dist/core/git.js +0 -43
  586. package/dist/core/git.js.map +0 -1
  587. package/dist/core/jsonValue.js.map +0 -1
  588. package/dist/core/paths.js.map +0 -1
  589. package/dist/core/pyjson.js.map +0 -1
  590. package/dist/core/sourceRoot.js.map +0 -1
  591. package/dist/core/toml.js.map +0 -1
  592. package/dist/core/yaml.js.map +0 -1
  593. package/dist/eval/evalSkills.js.map +0 -1
  594. package/dist/eval/semanticEval.js.map +0 -1
  595. package/dist/eval/semanticFixtures.js.map +0 -1
  596. package/dist/hooks/common.js.map +0 -1
  597. package/dist/hooks/compaction/apply.js.map +0 -1
  598. package/dist/hooks/compaction/dryRun.js.map +0 -1
  599. package/dist/hooks/compaction/index.js.map +0 -1
  600. package/dist/hooks/compaction/parse.js.map +0 -1
  601. package/dist/hooks/compaction/retention.js.map +0 -1
  602. package/dist/hooks/compaction/status.js.map +0 -1
  603. package/dist/hooks/compaction/todoResolved.js +0 -137
  604. package/dist/hooks/compaction/todoResolved.js.map +0 -1
  605. package/dist/hooks/compaction/types.js.map +0 -1
  606. package/dist/hooks/compaction.js +0 -935
  607. package/dist/hooks/compaction.js.map +0 -1
  608. package/dist/hooks/cursorPreToolUse.js +0 -19
  609. package/dist/hooks/cursorPreToolUse.js.map +0 -1
  610. package/dist/hooks/cursorSessionStart.js +0 -79
  611. package/dist/hooks/cursorSessionStart.js.map +0 -1
  612. package/dist/hooks/sessionStart.js +0 -216
  613. package/dist/hooks/sessionStart.js.map +0 -1
  614. package/dist/hooks/sessionStop.js +0 -206
  615. package/dist/hooks/sessionStop.js.map +0 -1
  616. package/dist/hooks/todoLayout.js +0 -177
  617. package/dist/hooks/todoLayout.js.map +0 -1
  618. package/dist/hooks/validateArtifact/agentFacing.js.map +0 -1
  619. package/dist/hooks/validateArtifact/index.js.map +0 -1
  620. package/dist/hooks/validateArtifact/markdown.js.map +0 -1
  621. package/dist/hooks/validateArtifact/runtime.js +0 -86
  622. package/dist/hooks/validateArtifact/runtime.js.map +0 -1
  623. package/dist/hooks/validateArtifact/schema.js.map +0 -1
  624. package/dist/hooks/validateArtifact/traversal.js.map +0 -1
  625. package/dist/hooks/validateArtifact/violations.js.map +0 -1
  626. package/dist/hooks/validateArtifact.js +0 -924
  627. package/dist/hooks/validateArtifact.js.map +0 -1
  628. package/dist/migrate/v2HandoffManifest.js.map +0 -1
  629. package/dist/registries/artifactProtocolIds.js.map +0 -1
  630. package/dist/registries/artifactRegistry.js.map +0 -1
  631. package/dist/registries/capabilityContract.js.map +0 -1
  632. package/dist/registries/evaluatorHandoffContract.js.map +0 -1
  633. package/dist/registries/packageRegistry.js.map +0 -1
  634. package/dist/registries/runtimeAdapterRegistry.js +0 -316
  635. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  636. package/dist/registries/triggerLoader.js.map +0 -1
  637. package/dist/release/releaseMetadata.js.map +0 -1
  638. package/dist/routing/index.js +0 -2
  639. package/dist/routing/index.js.map +0 -1
  640. package/dist/routing/routeEngine.js +0 -189
  641. package/dist/routing/routeEngine.js.map +0 -1
  642. package/dist/setup/codex/agents.js +0 -96
  643. package/dist/setup/codex/agents.js.map +0 -1
  644. package/dist/setup/codex/cli.js +0 -161
  645. package/dist/setup/codex/cli.js.map +0 -1
  646. package/dist/setup/codex/configToml.js +0 -639
  647. package/dist/setup/codex/configToml.js.map +0 -1
  648. package/dist/setup/codex/constants.js +0 -29
  649. package/dist/setup/codex/constants.js.map +0 -1
  650. package/dist/setup/codex/installRoot.js +0 -64
  651. package/dist/setup/codex/installRoot.js.map +0 -1
  652. package/dist/setup/codex/state.js +0 -270
  653. package/dist/setup/codex/state.js.map +0 -1
  654. package/dist/setup/codex.js +0 -12
  655. package/dist/setup/codex.js.map +0 -1
  656. package/dist/setup/copilot.js +0 -227
  657. package/dist/setup/copilot.js.map +0 -1
  658. package/dist/setup/cursor.js +0 -129
  659. package/dist/setup/cursor.js.map +0 -1
  660. package/dist/setup/cursorSurfaces.js +0 -67
  661. package/dist/setup/cursorSurfaces.js.map +0 -1
  662. package/dist/setup/doctor/core.js +0 -300
  663. package/dist/setup/doctor/core.js.map +0 -1
  664. package/dist/setup/doctor/diagnostics.js +0 -240
  665. package/dist/setup/doctor/diagnostics.js.map +0 -1
  666. package/dist/setup/doctor/opencode.js +0 -313
  667. package/dist/setup/doctor/opencode.js.map +0 -1
  668. package/dist/setup/doctor/report.js +0 -425
  669. package/dist/setup/doctor/report.js.map +0 -1
  670. package/dist/setup/doctor.js +0 -10
  671. package/dist/setup/doctor.js.map +0 -1
  672. package/dist/setup/opencode.js.map +0 -1
  673. package/dist/setup/smokeChecks.js.map +0 -1
  674. package/dist/state/installRoot.js.map +0 -1
  675. package/dist/state/progressCommit.js +0 -289
  676. package/dist/state/progressCommit.js.map +0 -1
  677. package/dist/state/startupAnalysis/benchmark.js.map +0 -1
  678. package/dist/state/startupAnalysis/contract.js.map +0 -1
  679. package/dist/state/startupAnalysis/helpers.js.map +0 -1
  680. package/dist/state/startupAnalysis/index.js.map +0 -1
  681. package/dist/state/startupAnalysis/metrics.js.map +0 -1
  682. package/dist/state/startupAnalysis/records.js.map +0 -1
  683. package/dist/state/startupAnalysis/report.js.map +0 -1
  684. package/dist/state/startupAnalysis/threshold.js.map +0 -1
  685. package/dist/state/startupAnalysis.js.map +0 -1
  686. package/dist/upgrade/appContentRefresh.js.map +0 -1
  687. package/dist/upgrade/appModel.js.map +0 -1
  688. package/dist/upgrade/bundleEvidence.js.map +0 -1
  689. package/dist/upgrade/channels.js.map +0 -1
  690. package/dist/upgrade/cliProbe.js +0 -22
  691. package/dist/upgrade/cliProbe.js.map +0 -1
  692. package/dist/upgrade/coexistenceProbe.js +0 -107
  693. package/dist/upgrade/coexistenceProbe.js.map +0 -1
  694. package/dist/upgrade/compatibility.js.map +0 -1
  695. package/dist/upgrade/doctor.js.map +0 -1
  696. package/dist/upgrade/doctorClassifier.js.map +0 -1
  697. package/dist/upgrade/installedHooksRetirement.js.map +0 -1
  698. package/dist/upgrade/legacyAgentCleanup.js.map +0 -1
  699. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -570
  700. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  701. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +0 -1
  702. package/dist/upgrade/nextMajorDoctor.js.map +0 -1
  703. package/dist/upgrade/npxPlatformStatus.js.map +0 -1
  704. package/dist/upgrade/projectIntegration.js.map +0 -1
  705. package/dist/upgrade/projectIntegrationDecision.js.map +0 -1
  706. package/dist/upgrade/runtimeMigration.js.map +0 -1
  707. package/dist/upgrade/upgradeCommands.js.map +0 -1
  708. package/dist/upgrade/upgradeOrchestrator.js.map +0 -1
  709. package/dist/upgrade/v3CapabilitySurface.js.map +0 -1
  710. package/dist/upgrade/versionResolution.js.map +0 -1
  711. package/dist/validate/appHomeContract.js.map +0 -1
  712. package/dist/validate/capability.js.map +0 -1
  713. package/dist/validate/crossCapability.js.map +0 -1
  714. package/dist/validate/lifecycleAdapters/legacyPythonParity.js +0 -93
  715. package/dist/validate/lifecycleAdapters/legacyPythonParity.js.map +0 -1
  716. package/dist/validate/lifecycleAdapters/nodeFormChecks.js +0 -488
  717. package/dist/validate/lifecycleAdapters/nodeFormChecks.js.map +0 -1
  718. package/dist/validate/lifecycleAdapters/shared.js +0 -198
  719. package/dist/validate/lifecycleAdapters/shared.js.map +0 -1
  720. package/dist/validate/lifecycleAdapters.js +0 -62
  721. package/dist/validate/lifecycleAdapters.js.map +0 -1
  722. package/dist/validate/selfAudit.js.map +0 -1
  723. package/dist/validate/vocabularyAuthority.js.map +0 -1
@@ -0,0 +1,1254 @@
1
+ schema_version: agentera.glossaryEntryContract.v1
2
+ status: active_authority
3
+ purpose: >-
4
+ Define glossary entry semantics once, specialize evidence ownership for
5
+ personal and project entries, and declare one consumer-semantics and caveat
6
+ lifecycle contract with bounded acquisition and shared advice resolution.
7
+ Build, Discuss, Plan, and prime consumption are active. Build alone owns
8
+ durable caveat publication; prime projects only bounded review attention.
9
+
10
+ authority:
11
+ source: references/artifacts/glossary-entry-contract.yaml
12
+ confidence: skills/agentera/protocol.yaml#CONFIDENCE_SCALE
13
+ personal_history: references/analysis/evidence-tier-authority.yaml
14
+ permanence_decay: packages/cli/src/capabilities/profile/instructions.ts#Profile-format
15
+ single_source_rule: >-
16
+ Producers and consumers derive entry shape from shared_primitive and must
17
+ not restate confidence bands, decay constants, or provenance variants.
18
+
19
+ shared_primitive:
20
+ required_fields: [term, meaning, confidence, permanence, temporal, provenance]
21
+ fields:
22
+ term:
23
+ type: non_empty_string
24
+ meaning:
25
+ type: non_empty_string
26
+ confidence:
27
+ type: integer
28
+ range_from: skills/agentera/protocol.yaml#CONFIDENCE_SCALE
29
+ permanence:
30
+ type: enum
31
+ values: [stable, durable, situational]
32
+ classification_rule: >-
33
+ Classify expected persistence independently from evidence strength.
34
+ Confidence changes never reclassify permanence.
35
+ temporal:
36
+ type: object
37
+ required_fields: [observed_at, last_confirmed_at]
38
+ field_type: iso_date
39
+ provenance:
40
+ type: discriminated_union
41
+ discriminator: kind
42
+ evidence_field: evidence
43
+ variants_from: provenance_variants
44
+
45
+ term_occurrence:
46
+ runtime: packages/cli/src/registries/glossaryTermOccurrence.ts#containsGlossaryTerm
47
+ consumers: [audit_evidence, project_publication_revalidation, confirmed_variant_guard]
48
+ comparison: exact_case_sensitive_literal
49
+ normalization: none
50
+ identifier_continuation: unicode_ID_Continue_plus_dollar_ZWNJ_ZWJ
51
+ rule: >-
52
+ Match one escaped literal without case folding or Unicode normalization.
53
+ When a term edge is an identifier-continuation character, reject an
54
+ occurrence adjacent to Unicode ID_Continue, dollar sign, U+200C ZERO WIDTH
55
+ NON-JOINER, or U+200D ZERO WIDTH JOINER. These are the ECMAScript identifier
56
+ continuation characters relevant to source-line terminology boundaries.
57
+ Literal escaping and fixed-width boundary assertions prevent regex syntax,
58
+ partial identifier matches, and input-dependent backtracking.
59
+
60
+ provenance_variants:
61
+ personal_explicit_definition:
62
+ owner: personal
63
+ evidence_count: 1
64
+ required_evidence_fields: [source_id, evidence_anchor, signal_type]
65
+ additional_evidence_fields: forbidden
66
+ allowed_signal_types: [correction, decision, instruction]
67
+ resolution_rule: >-
68
+ evidence_anchor resolves to source_id of exactly one retained
69
+ full-evidence shard through the bounded signal tier. One such distinct
70
+ retained record is sufficient; unanchored or unresolved evidence fails.
71
+ personal_inferred_usage:
72
+ owner: personal
73
+ evidence_count: 2
74
+ required_evidence_fields: [source_id, evidence_anchor, source_kind]
75
+ additional_evidence_fields: forbidden
76
+ allowed_source_kinds: [instruction_document, project_config_signal]
77
+ resolution_rule: >-
78
+ Each evidence_anchor resolves to its source_id in retained full evidence.
79
+ Both source_id and evidence_anchor must be pairwise distinct, so two
80
+ signals or anchors resolving to one retained record fail. Both anchors
81
+ remain exposed on the entry.
82
+ project_file:
83
+ owner: project
84
+ evidence_count: 1
85
+ required_evidence_fields: [source_path, source_record_sha256]
86
+ additional_evidence_fields: forbidden
87
+ resolution_rule: >-
88
+ source_path is a safe project-relative path and source_record_sha256 is
89
+ the lowercase SHA-256 of the cited parsed source record. These reuse the
90
+ repository source-path and record-digest provenance vocabulary from
91
+ references/artifacts/state-storage-authority.yaml.
92
+
93
+ ownership_contracts:
94
+ personal:
95
+ scope: user
96
+ implementation:
97
+ status: active_partial
98
+ active:
99
+ - bounded_admission
100
+ - explicit_classification
101
+ - inferred_evidence_check
102
+ - profile_full_rendering
103
+ - profile_persistence
104
+ inactive: [lookup]
105
+ allowed_provenance:
106
+ - personal_explicit_definition
107
+ - personal_inferred_usage
108
+ input:
109
+ tier: signal
110
+ authority: references/analysis/evidence-tier-authority.yaml
111
+ bounded_rule: >-
112
+ Admit only bounded personal-history signals and resolve qualifying
113
+ evidence one anchor at a time to retained full-evidence shards. Never
114
+ scan unbounded history or load a monolithic corpus.
115
+ excluded_categories:
116
+ - project_glossary_artifact_identity
117
+ - project_glossary_path
118
+ - project_glossary_record
119
+ - project_file_provenance
120
+ admission:
121
+ explicit:
122
+ candidate_signal_types: [correction, decision]
123
+ language_rule: >-
124
+ Admit only a quoted or code-delimited term followed by explicit
125
+ `means` language, or clarification language that combines `to clarify`
126
+ with `prefer` and `to mean`. The classifier returns the stated term
127
+ and meaning; unrelated correction or decision language abstains.
128
+ evidence_count: 1
129
+ inferred:
130
+ candidate_signal_types: [instruction, configuration]
131
+ source_kinds: [instruction_document, project_config_signal]
132
+ identity_rule: >-
133
+ A requested term must occur as a complete case-insensitive token in
134
+ two pairwise-distinct retained source identities and anchors. Duplicate
135
+ identities or anchors fail and successful admission exposes both.
136
+ evidence_count: 2
137
+ read_rule: >-
138
+ Read the bounded signal tier once, select only authority-declared signal
139
+ types and source kinds, and resolve each selected evidence_anchor through
140
+ direct single-shard retrieval. Never iterate full history or read legacy
141
+ corpus.json. Missing, legacy, corrupt, or insufficient evidence returns
142
+ deterministic recovery without a candidate.
143
+ insufficient_recovery: >-
144
+ Refresh bounded local-history evidence or provide another distinct
145
+ qualifying record; no personal glossary candidate was admitted.
146
+ isolation_rule: >-
147
+ Admission accepts only the personal tiers directory and optional legacy
148
+ corpus location. It has no project-glossary identity, path, or record
149
+ input, and its result is invariant to project-glossary presence.
150
+ retention_and_decay:
151
+ retention: Retained entries decay rather than disappearing solely because evidence ages.
152
+ confidence: Apply the existing profile permanence decay class to integer confidence.
153
+ permanence: Remains independently classified and is not changed by evidence age or confidence decay.
154
+ authority: packages/cli/src/capabilities/profile/instructions.ts#Profile-format
155
+ profile_output:
156
+ owner: profile_full
157
+ lifecycle_callable: packages/cli/src/analytics/personalGlossaryProfile.ts#updatePersonalGlossaryProfile
158
+ command:
159
+ canonical: npx -y agentera@next report profile-glossary
160
+ namespace: report
161
+ input_flag: --input
162
+ stdin_value: "-"
163
+ format: json
164
+ dry_run_flag: --dry-run
165
+ project_checkout: not_required
166
+ request:
167
+ schema_version: agentera.personalGlossaryUpdateRequest.v1
168
+ required_fields: [schema_version, profile_path, as_of, fresh_entries, retained_history]
169
+ additional_fields: forbidden
170
+ profile_path_rule: >-
171
+ Pass exactly profile_context.profile.path returned by
172
+ npx -y agentera@next prime --context profile --format json. The command never
173
+ discovers a profile, project root, or project glossary.
174
+ retained_history_shape: >-
175
+ A list of source_id, evidence_anchor, source_kind, and signal_type
176
+ records sufficient to validate fresh admitted entries. It may be
177
+ empty when regeneration supplies no fresh entries because retained
178
+ entries carry persisted provenance.
179
+ output_statuses: [changed, unchanged_replay, dry_run_candidate]
180
+ rule: >-
181
+ The packaged headless command validates the complete request before
182
+ effects and invokes the lifecycle_callable without duplicating merge,
183
+ decay, replacement, or persistence behavior. JSON is written to
184
+ stdout; diagnostics use the shared invalid-input envelope. Dry-run
185
+ computes the candidate without writing PROFILE.md.
186
+ section:
187
+ heading: "## Glossary"
188
+ start_marker: "<!-- agentera:personal-glossary:start -->"
189
+ end_marker: "<!-- agentera:personal-glossary:end -->"
190
+ encoding: deterministic_json_fence
191
+ document_schema_version: agentera.personalGlossarySection.v1
192
+ entry_shape: shared_primitive
193
+ lifecycle_metadata: [as_of, confidence_basis]
194
+ boundary_rule: >-
195
+ Add one owned section when absent or replace exactly the bytes from its
196
+ start marker through its end marker. Reject unmatched markers,
197
+ duplicate owned sections, or an unowned Glossary heading before any
198
+ write. Preserve every other profile byte exactly.
199
+ merge_identity:
200
+ normalization: unicode_caseless_exact_no_normalization
201
+ rule: >-
202
+ One locale-independent Unicode caseless-exact term identity may occur
203
+ once. Identity performs no Unicode normalization, accent folding, or
204
+ compatibility folding; canonically distinct strings remain distinct.
205
+ Preserve the established spelling and observed_at date. Fresh
206
+ qualifying evidence may refresh an entry only when meaning and
207
+ provenance kind are unchanged; divergent meaning or provenance kind is
208
+ a conflict rather than an implicit overwrite.
209
+ refresh_rule: >-
210
+ For matching fresh qualifying evidence, set confidence and its
211
+ confidence_basis to the fresh evidence-based integer, replace only the
212
+ same-kind personal evidence anchors, and set last_confirmed_at to the
213
+ injected as_of date. Preserve observed_at and permanence. This rule is
214
+ stable for identical input and as_of.
215
+ decay_rule: >-
216
+ Without matching fresh evidence, retain the entry and permanence. Derive
217
+ confidence from its unchanged confidence_basis, its permanence-class
218
+ lambda, and calendar days from last_confirmed_at to injected as_of using
219
+ the Profile formula; round to the nearest integer after applying the
220
+ existing floor. The section-level basis prevents same-date drift and
221
+ repeated compounding from already-decayed confidence. Age alone never
222
+ removes an entry.
223
+ isolation_rule: >-
224
+ The command and callable accept only a PROFILE.md path, fresh personal
225
+ entries, retained personal-history evidence, and an injected ISO date.
226
+ They have no project root, project glossary parameter, artifact lookup,
227
+ or project file read.
228
+ project:
229
+ scope: repository
230
+ implementation:
231
+ status: active
232
+ active: [audit_proposal_digest, build_publication, confirmed_variant_guard]
233
+ inactive: [lookup, precedence, semantic_equivalence_review]
234
+ allowed_provenance: [project_file]
235
+ input:
236
+ authority: repository_files
237
+ bounded_rule: Admit only the cited project-relative record bound by its record SHA-256.
238
+ excluded_categories: [personal_history_record, personal_history_anchor]
239
+ proposal_digest:
240
+ algorithm: sha256
241
+ encoding: lowercase_hex
242
+ canonicalization: >-
243
+ Hash the complete terminology finding except proposal_digest as canonical
244
+ JSON with mapping keys sorted recursively. Sort canonical_evidence and
245
+ each variant evidence by source_path, line, then source_record_sha256;
246
+ sort variants by case-insensitive term and then exact term. The digest
247
+ therefore changes when any proposal, confidence, severity, divergence,
248
+ term, source path, line identity, or source-record digest changes, but not
249
+ when equivalent evidence or variant arrays arrive in a different order.
250
+ Locale-independent lowercase ordering is only a deterministic sort key;
251
+ it does not define term identity.
252
+ proposal_validation:
253
+ owner: audit
254
+ shared_runtime: packages/cli/src/audit/terminologyDrift.ts#validateTerminologyProposal
255
+ required_rules:
256
+ - safe_distinct_evidence_identities_per_term
257
+ - unicode_caseless_exact_unique_term_identities
258
+ - best_supported_canonical_term_with_lexicographic_tie_break
259
+ - authority_confidence_floor_and_range
260
+ - confidence_below_70_forces_info_severity
261
+ - canonical_evidence_and_variant_order
262
+ - canonical_proposal_digest
263
+ publication_rule: >-
264
+ Build publication accepts only the complete canonical finding that this
265
+ Audit-owned validator can emit. Publication reuses this validator and
266
+ must not duplicate or weaken Audit proposal semantics.
267
+ entry_derivation:
268
+ term: proposal.proposed_canonical_term
269
+ meaning: proposal.concept
270
+ confidence: proposal.confidence
271
+ permanence: stable
272
+ temporal.observed_at: confirmation.confirmed_at calendar date
273
+ temporal.last_confirmed_at: confirmation.confirmed_at calendar date
274
+ provenance.kind: project_file
275
+ provenance.evidence: >-
276
+ Exactly the first canonical_evidence record after proposal-digest
277
+ canonical ordering, projected to source_path and source_record_sha256.
278
+ Line identifies and revalidates the source record during publication but
279
+ is not persisted because it is not part of the shared project_file
280
+ provenance variant.
281
+ rejection_rule: >-
282
+ Reject before effects when any required proposal or derived entry value
283
+ is absent or invalid; never invent a field or extend the shared entry.
284
+ publication:
285
+ owner: build
286
+ command: npx -y agentera@next state glossary publish --input REQUEST --format json
287
+ request:
288
+ schema_version: agentera.glossaryPublicationRequest.v1
289
+ required_fields: [schema_version, proposal, confirmation]
290
+ additional_fields: forbidden
291
+ proposal_shape: complete_terminology_drift_finding_with_proposal_digest
292
+ confirmation:
293
+ required_fields: [proposal_digest, confirmed_by, confirmed_at]
294
+ additional_fields: forbidden
295
+ confirmed_by: user
296
+ confirmed_at: iso_8601_timestamp
297
+ binding: >-
298
+ proposal_digest must equal the digest recomputed from proposal and
299
+ therefore binds the exact finding, every cited source record, and
300
+ the user's timestamped confirmation.
301
+ persisted_document:
302
+ schema_version: agentera.projectGlossary.v1
303
+ required_fields: [schema_version, approvals, entries]
304
+ additional_fields: forbidden
305
+ approvals:
306
+ type: list
307
+ immutable_record_fields: [proposal_digest, proposal, confirmation]
308
+ additional_record_fields: forbidden
309
+ entries:
310
+ type: list
311
+ item: shared_primitive
312
+ approval_fields: forbidden
313
+ terminology_set_identity:
314
+ normalization: unicode_caseless_exact_no_normalization
315
+ members: [paired_entry.term, paired_approval.proposal.variants.term]
316
+ uniqueness: global_across_complete_document
317
+ rule: >-
318
+ Every Unicode caseless-exact canonical or variant term belongs to
319
+ exactly one approval-entry pair. Identity performs no Unicode
320
+ normalization, accent folding, or compatibility folding. Reject
321
+ duplicate variants and every cross-set canonical/variant collision
322
+ before effects. An exact replay compares against its existing pair
323
+ and remains a no-op.
324
+ transaction: >-
325
+ Under the established project writer lock, resolve the registered
326
+ project path, safely re-read every cited project-relative source line,
327
+ recompute its SHA-256 and the proposal digest, validate the complete
328
+ candidate bytes, then atomically replace the single glossary document.
329
+ Creation follows the same path. Dry-run performs all validation without
330
+ publication.
331
+ merge_and_replay: >-
332
+ Preserve unrelated valid approvals and entries semantically unchanged.
333
+ Canonical and variant identity is case-insensitive and globally unique
334
+ across confirmed canonical sets. An exact approval and derived-entry
335
+ replay is a no-op. An approval without its matching entry, a matching
336
+ term with changed entry or proposal, reuse of an old confirmation for
337
+ changed proposal content, duplicate identity, cross-set terminology
338
+ collision, or malformed existing state is a conflict and must never be
339
+ repaired or overwritten implicitly.
340
+ confirmed_variant_guard:
341
+ owner: packages/cli/src/validate/v1LegacyCruft.ts#scanPost30CruftViolations
342
+ validation_surface: packages/cli/test/cli/v1LegacyCruft.test.ts
343
+ loader: packages/cli/src/state/write/glossaryPublication.ts#loadProjectGlossaryDocument
344
+ source_rule: >-
345
+ Resolve the glossary through the canonical artifact registry and consume
346
+ only complete validated approval-entry pairs. Derive each forbidden
347
+ variant from approval.proposal.variants and its canonical replacement
348
+ from the paired entry.term; never infer equivalence or consume personal
349
+ glossary state.
350
+ matching: exact_case_sensitive_boundary_aware_literal
351
+ approved_evidence_rule: >-
352
+ The exact source_path, line, and source_record_sha256 retained by the
353
+ immutable proposal is historical evidence and does not self-trigger.
354
+ Changed bytes at that location or a matching variant elsewhere fail.
355
+ exclusions:
356
+ - generated_output
357
+ - vendor_and_dependency_state
358
+ - cache_state
359
+ - repository_metadata
360
+ - historical_agentera_state
361
+ - project_glossary_document
362
+ - unrelated_agentera_state
363
+ excluded_directory_names:
364
+ - .agentera
365
+ - .agentera-generated
366
+ - .cache
367
+ - .git
368
+ - .next
369
+ - .pnpm
370
+ - .turbo
371
+ - .venv
372
+ - .vite
373
+ - build
374
+ - bundle
375
+ - coverage
376
+ - dist
377
+ - node_modules
378
+ - target
379
+ - vendor
380
+ exclusion_rule: >-
381
+ Skip a directory only when its basename exactly equals one declared
382
+ name. The validator and fixtures consume this list directly; prefixes,
383
+ suffixes, substrings, and nearby ordinary source names remain scanned.
384
+ failure_rule: >-
385
+ Emit one deterministic violation per variant location with the canonical
386
+ term, confirmed proposal evidence, offending source location, and the
387
+ runnable validation command. A malformed present glossary fails closed;
388
+ an absent glossary leaves the pre-existing legacy checks unchanged.
389
+
390
+ consumer_boundary:
391
+ contract_status: active
392
+ implementation:
393
+ acquisition: active
394
+ advice_resolution: active
395
+ capability_integrations:
396
+ build: active
397
+ discuss: active
398
+ plan: active
399
+ prime: active
400
+ forbidden_persisted_entry_fields: [precedence, collision, review]
401
+ deterministic_judgments:
402
+ term_identity: unicode_caseless_exact_no_normalization
403
+ term_identity_runtime: packages/cli/src/registries/glossaryTermIdentity.ts#unicodeCaselessExact
404
+ meaning_identity: exact_string
405
+ project_state_validity: schema_and_bound_validation
406
+ project_gap: valid_project_state_without_exact_term_identity
407
+ forbidden_semantic_heuristics: [scores, thresholds, embeddings, automatic_merge]
408
+ host_reviewed_judgments:
409
+ inferred_semantic_equivalence: >-
410
+ The host may identify a possible equivalence only from the current
411
+ meaning-sensitive input and bounded candidate meanings. It never selects
412
+ authority, merges entries, or resolves the review itself.
413
+ project_state:
414
+ gap_proving_states: [canonically_absent, valid_empty, valid_nonmatching]
415
+ invalid_states: [malformed, unreadable, ambiguous_path, over_bound]
416
+ invalid_rule: >-
417
+ An invalid project state cannot prove a project gap. Abstain rather than
418
+ falling back to a personal meaning, repairing state, or guessing authority.
419
+ acquisition:
420
+ implementation: active
421
+ runtime: packages/cli/src/analytics/glossaryInputAcquisition.ts#acquireGlossaryInputs
422
+ mutation: forbidden
423
+ bounds:
424
+ authority: consumer_boundary.profile_grounding.max_profile_utf8_bytes
425
+ max_source_utf8_bytes: 65536
426
+ max_entries: 100
427
+ rule: >-
428
+ Apply the existing bounded profile-read byte ceiling to each source and
429
+ admit at most 100 entries from either owned glossary. The entry ceiling
430
+ is declared only here and consumed by the runtime and schema validator.
431
+ Reject raw bytes above the source ceiling before decoding, decode UTF-8
432
+ fatally, and reject a parsed document above the entry ceiling; never
433
+ replacement-decode, truncate, or partially admit input. Exactly 65,536
434
+ raw bytes and 100 entries are permitted.
435
+ availability:
436
+ states:
437
+ - absent
438
+ - valid_empty
439
+ - valid_present
440
+ - malformed
441
+ - unreadable
442
+ - ambiguous
443
+ - over_bound
444
+ valid: [absent, valid_empty, valid_present]
445
+ invalid: [malformed, unreadable, ambiguous, over_bound]
446
+ project_gap_proving: [absent, valid_empty]
447
+ rule: >-
448
+ Classify the two sources independently. Project absence means the
449
+ canonical artifact does not exist; personal absence means PROFILE.md or
450
+ its owned Glossary section does not exist. A present empty owned document
451
+ is valid_empty. Invalid states expose no entries and cannot prove a
452
+ project gap. Dual invalid or absent input exposes no glossary entries;
453
+ valid project entries remain available when personal input is invalid.
454
+ project:
455
+ identity: glossary
456
+ discovery: packages/cli/src/registries/artifactRegistry.ts#loadArtifactRecord
457
+ path_resolution: packages/cli/src/registries/artifactRegistry.ts#resolveArtifactPath
458
+ docs_override: canonical_GLOSSARY.md_mapping_only
459
+ docs_override_read: bounded_no_follow_regular_file
460
+ project_root: packages/cli/src/state/projectRoot.ts#validateRealProjectRoot
461
+ boundary_rule: >-
462
+ Resolve only the registered glossary identity and its canonical docs
463
+ override under one validated real project root. Missing canonical
464
+ artifacts are absent. Unsafe overrides, path escapes, symlink ambiguity,
465
+ or unavailable registry identity classify ambiguous; malformed present
466
+ docs mappings or glossary documents fail closed and never fall back to a
467
+ default path.
468
+ filesystem_guarantee: >-
469
+ Open the canonical .agentera/docs.yaml and resolved glossary target with
470
+ O_NOFOLLOW after lstat snapshots of every existing project-relative path
471
+ component. Match the opened regular-file descriptor to the snapshotted
472
+ device and inode, read raw bytes from that descriptor, and require its
473
+ size, mtime, ctime, device, and inode plus every snapshotted parent path
474
+ identity to remain unchanged through the read. For an absent target,
475
+ require the first missing component to remain missing while all existing
476
+ parent identities remain unchanged. The descriptor pins accepted bytes;
477
+ a symlink, parent swap, changed identity, unsupported no-follow boundary,
478
+ or failed stability check is ambiguous. This does not claim detection of
479
+ an identity swapped away and restored between observations, because such
480
+ a swap cannot change bytes already pinned to the verified descriptor.
481
+ external_docs_rule: >-
482
+ A symlinked, escaped, changed, unreadable, malformed, over-bound, or
483
+ non-UTF-8 docs mapping is ambiguous and never selects a glossary target.
484
+ document_validation: ownership_contracts.project.publication
485
+ approval_output: forbidden
486
+ raw_source_provenance_output: forbidden
487
+ personal:
488
+ owner: ownership_contracts.personal.profile_output.owner
489
+ profile_path_input: >-
490
+ The caller passes exactly the profile path already returned by canonical
491
+ profile context. Acquisition does not discover or return that path and
492
+ accepts no project identity, root, glossary path, or project record.
493
+ section: ownership_contracts.personal.profile_output.section
494
+ parser: packages/cli/src/analytics/personalGlossaryProfile.ts#personalGlossaryConsumerEntries
495
+ grounding_parser_isolation: >-
496
+ profile-grounding continues to remove the owned section and never
497
+ exposes it. Consumer acquisition separately parses exactly the existing
498
+ single owned marker range and returns no bytes outside that range.
499
+ provenance_output: forbidden
500
+ producer_invariance: >-
501
+ Personal parsing accepts only profile bytes and therefore returns the
502
+ same result regardless of project glossary presence.
503
+ output:
504
+ entry_fields: [term, meaning, owner]
505
+ owners: [personal, project]
506
+ source_fields: [owner, availability, entries, gap_proving, diagnostic]
507
+ diagnostic_fields: [class, recovery]
508
+ diagnostic_rule: >-
509
+ Diagnostics name only the availability class and a public recovery.
510
+ They never contain profile paths, artifact paths, raw bytes, sections,
511
+ definitions, entries, anchors, approval records, or provenance.
512
+ entry_rule: >-
513
+ Return only validated term and meaning plus source ownership. Do not
514
+ return confidence, permanence, temporal metadata, personal anchors,
515
+ profile paths, unrelated profile sections, project approval records, or
516
+ project source provenance. Acquisition does not select precedence,
517
+ fallback, tension, review, or a primary outcome.
518
+ advice_resolution:
519
+ implementation: active
520
+ runtime: packages/cli/src/analytics/glossaryAdviceResolution.ts#resolveGlossaryAdvice
521
+ mutation: forbidden
522
+ invocation:
523
+ command: npx -y agentera@next report glossary-advice --input REQUEST --format json
524
+ request_schema_version: agentera.glossaryAdviceRequest.v1
525
+ request_fields: [schema_version, requested_term, host_review]
526
+ max_request_utf8_bytes: 131072
527
+ acquisition: internal_bounded_owned_sources
528
+ project_root: current_working_directory
529
+ profile_path: canonical_registry_resolution
530
+ output_envelope_fields: [schemaVersion, command, status, advice]
531
+ rule: >-
532
+ Consumers send the requested term and optional host review through one
533
+ structured stdin or file request. The CLI acquires both owned sources;
534
+ callers never read raw project glossary or profile files. The command is
535
+ read-only, headless, JSON-only, and never refreshes either source.
536
+ input:
537
+ fields: [requested_term, acquired, host_review]
538
+ requested_term_utf8_bound: consumer_boundary.acquisition.bounds.max_source_utf8_bytes
539
+ acquired_contract: consumer_boundary.acquisition.output
540
+ host_review:
541
+ optional: true
542
+ fields: [relation, candidate_owner, candidate_term]
543
+ relations: [inferred_equivalence]
544
+ candidate_owners: [personal]
545
+ rule: >-
546
+ A host may report only one explicit inferred-equivalence relation to
547
+ one differently named, valid acquired personal candidate. Omission
548
+ means no inferred candidate. Unknown relations, owners, fields, or
549
+ candidates fail before selection and never echo input content.
550
+ additional_fields: forbidden
551
+ output:
552
+ schema_version: agentera.glossaryAdvice.v1
553
+ fields: [outcome, applicable_meaning, applicable_owner, review, tension, advisory]
554
+ owners: [personal, project]
555
+ advisory_fields: [reason, ownership_state]
556
+ advisory_reasons: [personal_input_unavailable, inferred_equivalence]
557
+ advisory_ownership_states: [project_governs_exact]
558
+ rule: >-
559
+ Return exactly one matrix outcome and its authority-declared semantics.
560
+ Include only the selected meaning and owner. An orthogonal advisory may
561
+ expose only its bounded reason and ownership state. Never return the
562
+ requested or candidate term, acquisition diagnostics, source content,
563
+ paths, anchors, approvals, provenance, unrelated entries, or conflict
564
+ state.
565
+ failure:
566
+ classes: [invalid_request, invalid_acquisition, invalid_host_review]
567
+ rule: >-
568
+ Fail once before selection with only a bounded class and public recovery;
569
+ never quote or serialize an input term, meaning, diagnostic, path, raw
570
+ entry, profile or project content, approval, anchor, or provenance.
571
+ primary_selection:
572
+ dimensions:
573
+ project_input: [invalid, valid_gap, valid_exact]
574
+ personal_input: [invalid, valid_without_exact, valid_exact]
575
+ exact_meaning: [not_applicable, equivalent, divergent]
576
+ inferred_candidate: [absent, present]
577
+ valid_state_rule: >-
578
+ exact_meaning is equivalent or divergent exactly when both inputs have an
579
+ exact term; otherwise it is not_applicable. inferred_candidate is
580
+ considered only when no personal exact term exists.
581
+ order:
582
+ - invalid_or_unavailable_project
583
+ - equivalent_exact_collision
584
+ - divergent_exact_collision
585
+ - project_only
586
+ - proven_project_gap
587
+ - inferred_equivalence
588
+ - invalid_or_unavailable_personal
589
+ - no_applicable_entry
590
+ rule: >-
591
+ Evaluate rows in this order and select exactly the first matching primary
592
+ outcome. The declared valid input state space must match exactly one row;
593
+ availability and inferred-equivalence advisories never compete with a
594
+ usable exact project meaning.
595
+ outcome_matrix:
596
+ invalid_or_unavailable_project:
597
+ when: project input is malformed, unreadable, ambiguous, or over bound
598
+ match:
599
+ project_input: [invalid]
600
+ personal_input: [invalid, valid_without_exact, valid_exact]
601
+ exact_meaning: [not_applicable]
602
+ inferred_candidate: [absent, present]
603
+ judgment: deterministic
604
+ selected_owner: none
605
+ selected_meaning: none
606
+ review: unavailable
607
+ tension: authority_unavailable
608
+ equivalent_exact_collision:
609
+ when: valid personal and project entries have exact term identity and exact meaning identity
610
+ match:
611
+ project_input: [valid_exact]
612
+ personal_input: [valid_exact]
613
+ exact_meaning: [equivalent]
614
+ inferred_candidate: [absent, present]
615
+ judgment: deterministic
616
+ selected_owner: project
617
+ selected_meaning: project
618
+ review: none
619
+ tension: none
620
+ divergent_exact_collision:
621
+ when: valid personal and project entries have exact term identity but not exact meaning identity
622
+ match:
623
+ project_input: [valid_exact]
624
+ personal_input: [valid_exact]
625
+ exact_meaning: [divergent]
626
+ inferred_candidate: [absent, present]
627
+ judgment: deterministic
628
+ selected_owner: project
629
+ selected_meaning: project
630
+ review: none
631
+ tension: divergent_exact_collision
632
+ project_only:
633
+ when: >-
634
+ valid project input has an exact term and personal input is invalid,
635
+ unavailable, valid without an exact term, or only a differently named
636
+ inferred-equivalence candidate
637
+ match:
638
+ project_input: [valid_exact]
639
+ personal_input: [invalid, valid_without_exact]
640
+ exact_meaning: [not_applicable]
641
+ inferred_candidate: [absent, present]
642
+ judgment: deterministic
643
+ selected_owner: project
644
+ selected_meaning: project
645
+ review: none_for_primary
646
+ tension: none
647
+ proven_project_gap:
648
+ when: project state is gap-proving and one valid personal exact term exists
649
+ match:
650
+ project_input: [valid_gap]
651
+ personal_input: [valid_exact]
652
+ exact_meaning: [not_applicable]
653
+ inferred_candidate: [absent, present]
654
+ judgment: deterministic
655
+ selected_owner: personal
656
+ selected_meaning: personal
657
+ review: none
658
+ tension: none
659
+ inferred_equivalence:
660
+ when: >-
661
+ project state is gap-proving, personal input is valid without an exact
662
+ term, and the host identifies a possible semantic-equivalence candidate
663
+ match:
664
+ project_input: [valid_gap]
665
+ personal_input: [valid_without_exact]
666
+ exact_meaning: [not_applicable]
667
+ inferred_candidate: [present]
668
+ judgment: host_reviewed
669
+ selected_owner: none_until_review
670
+ selected_meaning: none_until_review
671
+ review: required_when_meaning_sensitive
672
+ tension: inferred_equivalence
673
+ invalid_or_unavailable_personal:
674
+ when: >-
675
+ project state is gap-proving and personal input is malformed,
676
+ unavailable, or over bound, so no fallback can be proven
677
+ match:
678
+ project_input: [valid_gap]
679
+ personal_input: [invalid]
680
+ exact_meaning: [not_applicable]
681
+ inferred_candidate: [absent, present]
682
+ judgment: deterministic
683
+ selected_owner: none
684
+ selected_meaning: none
685
+ review: unavailable
686
+ tension: input_unavailable
687
+ no_applicable_entry:
688
+ when: >-
689
+ project state is gap-proving, personal input is valid without an exact
690
+ term, and no inferred-equivalence candidate is present
691
+ match:
692
+ project_input: [valid_gap]
693
+ personal_input: [valid_without_exact]
694
+ exact_meaning: [not_applicable]
695
+ inferred_candidate: [absent]
696
+ judgment: deterministic
697
+ selected_owner: none
698
+ selected_meaning: none
699
+ review: none
700
+ tension: none
701
+ orthogonal_advisories:
702
+ personal_input_unavailable_with_project_exact:
703
+ primary_outcome: project_only
704
+ when: personal_input is invalid and project_input is valid_exact
705
+ match:
706
+ project_input: [valid_exact]
707
+ personal_input: [invalid]
708
+ exact_meaning: [not_applicable]
709
+ inferred_candidate: [absent, present]
710
+ caveat_reason: personal_input_unavailable
711
+ ownership_state: project_governs_exact
712
+ rule: >-
713
+ Preserve the exact project meaning. The bounded availability caveat may
714
+ report only reason and ownership state; it never becomes another primary
715
+ outcome or exposes personal content.
716
+ inferred_equivalence_with_project_exact:
717
+ primary_outcome: project_only
718
+ when: >-
719
+ personal_input is valid_without_exact, project_input is valid_exact, and
720
+ inferred_candidate is present
721
+ match:
722
+ project_input: [valid_exact]
723
+ personal_input: [valid_without_exact]
724
+ exact_meaning: [not_applicable]
725
+ inferred_candidate: [present]
726
+ review: required_when_the_inferred_relation_is_meaning_sensitive
727
+ caveat_reason: inferred_equivalence
728
+ ownership_state: project_governs_exact
729
+ rule: >-
730
+ Project authority remains the usable primary meaning. Host review governs
731
+ only the possible differently named relation and cannot displace, merge,
732
+ or suppress the exact project entry.
733
+ refresh_events:
734
+ required:
735
+ - initial_meaning_sensitive_input
736
+ - later_user_requirement_change_that_can_change_meaning
737
+ - later_user_intent_change_that_can_change_meaning
738
+ - later_acceptance_change_that_can_change_meaning
739
+ - later_deliberation_premise_change_that_can_change_meaning
740
+ - later_cycle_intent_change_that_can_change_meaning
741
+ - clarification_answer_for_a_reviewed_term
742
+ not_required:
743
+ - unrelated_conversation_turn
744
+ - unchanged_input_replay
745
+ - background_state_reread
746
+ - status_or_progress_render
747
+ - tool_output_without_requirement_or_intent_change
748
+ - artifact_rendering
749
+ - evaluator_text_without_user_change
750
+ - control_only_continuation
751
+ rule: >-
752
+ Refresh only at a governed event whose changed input can alter the meaning
753
+ used by the capability. Rereads and incidental turns do not refresh advice.
754
+ discuss_integration:
755
+ implementation: active
756
+ invocation: consumer_boundary.advice_resolution.invocation
757
+ governed_events: consumer_boundary.refresh_events
758
+ outcome_authority: consumer_boundary.outcome_matrix
759
+ disclosure: consumer_boundary.disclosure.transient_advice
760
+ interaction:
761
+ scope: current_user_authored_meaning_sensitive_input
762
+ transcript_scan: forbidden
763
+ done_only_control: no_refresh
764
+ review_rule: >-
765
+ Before meaning-sensitive reasoning or decision framing relies on an
766
+ inferred relation, ask one focused clarification question under the
767
+ existing one-question-per-turn and Done contract. The clarification may
768
+ identify a host-reviewed relation for a fresh advice request but is not
769
+ decision confirmation, approval, or publication consent.
770
+ exact_collision_rule: >-
771
+ Use an applicable project meaning for a divergent exact collision and
772
+ surface the bounded divergence as a concise scratchpad tension or Crux.
773
+ Never ask the user to choose project versus personal authority.
774
+ unavailable_rule: >-
775
+ Continue without glossary grounding when advice is unavailable, invalid,
776
+ or has no applicable entry. Ask ordinary clarification only when the term
777
+ is necessary and ambiguous, without fabricating glossary facts.
778
+ output_rule: >-
779
+ Use only the transient applicable meaning and owner needed for the current
780
+ deliberation, and never quote unrelated glossary content.
781
+ mutation: forbidden
782
+ forbidden_effects:
783
+ - glossary_write
784
+ - glossary_approval
785
+ - publication_consent
786
+ - progress_caveat
787
+ - plan_conflict
788
+ - decision_conflict
789
+ plan_integration:
790
+ implementation: active
791
+ invocation: consumer_boundary.advice_resolution.invocation
792
+ governed_events: consumer_boundary.refresh_events
793
+ outcome_authority: consumer_boundary.outcome_matrix
794
+ disclosure: consumer_boundary.disclosure.transient_advice
795
+ mode:
796
+ precedence:
797
+ - explicit_delegated_or_orchestrated_no_pause
798
+ - direct_user_invocation_with_available_clarification_turn
799
+ - unknown_or_ambiguous
800
+ signals:
801
+ explicit_delegated_or_orchestrated_no_pause:
802
+ result: autonomous
803
+ direct_user_invocation_with_available_clarification_turn:
804
+ result: interactive
805
+ unknown_or_ambiguous:
806
+ result: interactive_waiting
807
+ silence_or_timeout: never_autonomous
808
+ rule: >-
809
+ Use the first matching signal. Unknown or conflicting mode evidence waits
810
+ for interactive clarification; silence and elapsed time never imply
811
+ autonomous execution.
812
+ interaction:
813
+ scope: current_user_authored_meaning_sensitive_input
814
+ transcript_scan: forbidden
815
+ control_only_continuation: no_refresh
816
+ review:
817
+ interactive_sequence:
818
+ - emit_one_focused_clarification
819
+ - wait_for_user_answer
820
+ - refresh_advice_for_affected_term
821
+ - finalize_affected_scope_requirements_tasks_acceptance
822
+ autonomous_sequence:
823
+ - abstain_from_disputed_meaning
824
+ - defer_affected_scope_requirements_tasks_acceptance
825
+ - emit_transient_handoff_intent
826
+ clarification_effects:
827
+ - not_plan_approval
828
+ - not_decision_confirmation
829
+ - not_glossary_approval
830
+ - not_publication_consent
831
+ exact_collision_rule: >-
832
+ Use an applicable project meaning for a divergent exact collision. Where
833
+ the divergence materially affects planning, represent only the bounded
834
+ tension and never disclose the personal definition.
835
+ unavailable_rule: >-
836
+ Continue without glossary grounding when advice is unavailable, invalid,
837
+ or has no applicable entry. In interactive Plan, ask ordinary focused
838
+ clarification only when the term is necessary and meaning-critical.
839
+ autonomous_handoff_intent:
840
+ status: transient_emitted_not_delivered
841
+ caller_fields: [event, reason, ownership_state]
842
+ fixed_values:
843
+ event: current
844
+ accepted_writer_flags:
845
+ [--input]
846
+ input: one progress cycle YAML/JSON mapping whose glossary_caveat contains the three caller fields
847
+ writer_owned_fields: [caveat_id, capability, transition_id]
848
+ forbidden_fields: [caveat_id, capability, transition_id]
849
+ forbidden_claims: [delivered, stored, persisted, published, durable_envelope]
850
+ durable_writer: build
851
+ writer_interface: npx -y agentera@next state progress explain --verb append --format json
852
+ writer_result: authoritative_identity_and_six_field_envelope
853
+ allowed_reason_state_pairs: consumer_boundary.autonomous_caveat.allowed_current_pairs
854
+ rule: >-
855
+ Emit one intent only when autonomous meaning-sensitive work has unresolved
856
+ review or unavailable authority. The emitted-only intent contains exactly
857
+ event=current, reason, and ownership_state, the three caller inputs accepted
858
+ by the Build writer in one bounded structured record input. It is not delivered, stored, persisted, or published.
859
+ The writer creates caveat_id, capability=build, and transition_id=null to
860
+ complete the authoritative current envelope.
861
+ exact_project_personal_unavailable:
862
+ primary_outcome: project_only
863
+ advisory_reason: personal_input_unavailable
864
+ advisory_ownership_state: project_governs_exact
865
+ plan_action: ground_exact_project_meaning
866
+ autonomous_handoff_intent: none
867
+ durable_unresolved_caveat: none
868
+ rule: >-
869
+ Unavailable personal input does not make exact project authority
870
+ unresolved. Keep the advisory transient and never emit or publish it as
871
+ an autonomous unresolved handoff.
872
+ unavailable:
873
+ invalid_project:
874
+ interactive: clarify_or_wait_when_meaning_critical
875
+ autonomous: abstain_defer_and_emit_authority_unavailable
876
+ handoff_pair: [authority_unavailable, authority_unavailable]
877
+ invalid_personal_after_project_gap:
878
+ interactive: clarify_or_wait_when_meaning_critical
879
+ autonomous: abstain_defer_and_emit_personal_input_unavailable
880
+ handoff_pair: [personal_input_unavailable, authority_unavailable]
881
+ behavior_matrix:
882
+ interactive_review_required:
883
+ mode: interactive
884
+ plan_action: clarify_refresh_then_finalize
885
+ handoff_intent: none
886
+ autonomous_review_required:
887
+ mode: autonomous
888
+ plan_action: abstain_and_defer
889
+ handoff_intent: emitted
890
+ exact_project_personal_unavailable:
891
+ mode: any
892
+ plan_action: ground_exact_project_meaning
893
+ handoff_intent: none
894
+ unavailable_unresolved:
895
+ mode: autonomous
896
+ plan_action: abstain_and_defer
897
+ handoff_intent: emitted
898
+ divergent_exact_collision:
899
+ mode: any
900
+ plan_action: ground_project_and_bound_tension
901
+ handoff_intent: none
902
+ irrelevant_or_no_applicable_entry:
903
+ mode: any
904
+ plan_action: leave_unaffected_planning_unchanged
905
+ handoff_intent: none
906
+ output_rule: >-
907
+ Use only the transient applicable meaning and owner needed for affected
908
+ planning. An autonomous handoff intent is emitted, not delivered or stored,
909
+ and contains exactly event=current, reason, and ownership_state for a later
910
+ Build write.
911
+ handoff: consumer_boundary.autonomous_caveat.handoff.plan
912
+ mutation: forbidden
913
+ forbidden_effects:
914
+ - glossary_write
915
+ - glossary_approval
916
+ - publication_consent
917
+ - progress_caveat
918
+ - plan_conflict
919
+ - decision_conflict
920
+ disclosure:
921
+ transient_advice:
922
+ allowed: [outcome, applicable_meaning, applicable_owner, review, tension, advisory]
923
+ minimum_rule: >-
924
+ Include a meaning only when that meaning is selected by the matrix and
925
+ needed for the current meaning-sensitive work. Never include unrelated entries.
926
+ forbidden:
927
+ - personal_evidence_anchor
928
+ - personal_profile_path
929
+ - raw_personal_glossary_section
930
+ - unrelated_entry
931
+ - provenance
932
+ - project_source_path
933
+ durable_surfaces:
934
+ surfaces: [progress_evidence, prime_attention, diagnostics, errors]
935
+ allowed: [caveat_id, event, capability, reason, ownership_state, transition_id]
936
+ forbidden:
937
+ - personal_definition
938
+ - project_definition
939
+ - personal_evidence_anchor
940
+ - personal_profile_path
941
+ - raw_personal_glossary_section
942
+ - raw_project_glossary_section
943
+ - unrelated_entry
944
+ - provenance
945
+ - project_source_path
946
+ failure_rule: >-
947
+ Errors identify only the invalid input class and a public recovery command;
948
+ they never quote private bytes, definitions, paths, anchors, or provenance.
949
+ plan_artifacts:
950
+ surfaces:
951
+ [
952
+ scope,
953
+ requirements,
954
+ constraints,
955
+ tasks,
956
+ task_acceptance,
957
+ overall_acceptance,
958
+ diagnostics,
959
+ handoff,
960
+ ]
961
+ allowed_sources:
962
+ [user_authored_term, user_authored_clarification, derived_behavioral_requirement]
963
+ forbidden_content:
964
+ - profile_derived_definition
965
+ - personal_glossary_definition
966
+ - personal_evidence_anchor
967
+ - personal_profile_path
968
+ - raw_personal_glossary_section
969
+ - raw_project_glossary_section
970
+ - unrelated_entry
971
+ - provenance
972
+ - project_source_path
973
+ user_term_rule: >-
974
+ A term already supplied by the user may remain in the plan. Never copy or
975
+ quote a profile-derived or personal glossary definition; express only the
976
+ derived behavioral requirement needed by the plan.
977
+ autonomous_caveat:
978
+ durable_owner: build
979
+ durable_channel: progress
980
+ authority: skills/agentera/schemas/artifacts/progress.yaml#ENTITY_AUTHORITY
981
+ publication_command: npx -y agentera@next state progress append
982
+ publication_boundary: progress_cycle.glossary_caveat
983
+ publication_status: active_build
984
+ writer_runtime: packages/cli/src/state/progressEntities.ts#appendProgressEntity
985
+ writer_interface: npx -y agentera@next state progress explain --verb append --format json
986
+ envelope_validator: packages/cli/src/state/progressGlossaryCaveat.ts#validateProgressGlossaryCaveat
987
+ lifecycle_validator: packages/cli/src/state/progressGlossaryCaveat.ts#glossaryCaveatLifecycleInvalidEntities
988
+ allowed_current_pairs:
989
+ - reason: inferred_equivalence
990
+ ownership_state: review_required
991
+ - reason: inferred_equivalence
992
+ ownership_state: project_governs_exact
993
+ - reason: authority_unavailable
994
+ ownership_state: authority_unavailable
995
+ - reason: personal_input_unavailable
996
+ ownership_state: authority_unavailable
997
+ identity:
998
+ field: caveat_id
999
+ type: opaque_non_content_id
1000
+ alphabet: abcdefghijklmnopqrstuvwxyz
1001
+ length: 10
1002
+ pattern: "^[a-z]{10}$"
1003
+ rule: >-
1004
+ Assign a fresh opaque ID for a current caveat and carry it unchanged to
1005
+ its matching terminal event. The ID must not encode a term, meaning,
1006
+ anchor, path, provenance, or project identity.
1007
+ envelope:
1008
+ schema_version: agentera.glossaryConsumerCaveat.v1
1009
+ fields: [caveat_id, event, capability, reason, ownership_state, transition_id]
1010
+ additional_fields: forbidden
1011
+ max_string_utf8_bytes: 64
1012
+ events: [current, resolved, superseded]
1013
+ capabilities: [build]
1014
+ reasons: [inferred_equivalence, authority_unavailable, personal_input_unavailable]
1015
+ ownership_states: [project_governs_exact, review_required, authority_unavailable]
1016
+ transition_rule: >-
1017
+ current and resolved require null transition_id. Superseded requires one
1018
+ different opaque successor caveat_id. Every field is required; only
1019
+ transition_id may be null.
1020
+ current_append:
1021
+ caller_fields: [event, reason, ownership_state]
1022
+ caller_fixed_values:
1023
+ event: current
1024
+ writer_fields: [caveat_id, capability, transition_id]
1025
+ writer_fixed_values:
1026
+ capability: build
1027
+ transition_id: null
1028
+ rule: >-
1029
+ A current append requires the caller to submit event=current, reason,
1030
+ and ownership_state. The writer creates the opaque identity, Build
1031
+ capability, and null current-transition field; it never defaults event.
1032
+ lifecycle:
1033
+ current: >-
1034
+ Append current once when autonomous meaning-sensitive work cannot pause
1035
+ and review or authority remains unresolved.
1036
+ resolved: >-
1037
+ Append resolved with the same caveat_id after explicit clarification or
1038
+ a governed refresh proves the caveat no longer applies.
1039
+ superseded: >-
1040
+ Append superseded with the old caveat_id and the fresh successor ID as
1041
+ transition_id when a governed refresh replaces, rather than resolves,
1042
+ the caveat.
1043
+ matching_rule: >-
1044
+ The latest valid event for one caveat_id determines whether it is current.
1045
+ A terminal event affects only its matching identity. Supersession is valid
1046
+ only when a matching current successor event also exists.
1047
+ expiration: none
1048
+ expiration_rule: >-
1049
+ Time alone never resolves or hides a caveat. Only an explicit matching
1050
+ resolved or valid superseded transition makes it noncurrent.
1051
+ prime_projection:
1052
+ status: active
1053
+ runtime: packages/cli/src/state/progressGlossaryCaveat.ts#projectCurrentGlossaryCaveats
1054
+ retrieval: canonical_validated_progress_entities
1055
+ attention_text: "normal: glossary review required before meaning-sensitive work"
1056
+ max_attention_entries: 1
1057
+ source:
1058
+ artifact: progress
1059
+ boundary: progress_cycle
1060
+ capability: build
1061
+ capacity:
1062
+ public_attention_limit: 6
1063
+ reserved_glossary_slots: 1
1064
+ policy: reserve_final_slot_when_current
1065
+ unrelated_retention: first_five_in_existing_order
1066
+ insertion: reserved_final_slot_when_current
1067
+ rule: >-
1068
+ Reconstruct current caveats by opaque identity from validated canonical
1069
+ progress entities. A matching resolved event or valid superseded event
1070
+ removes only that identity. Invalid, orphan, mismatched, or duplicate
1071
+ terminal evidence is omitted and cannot suppress a valid current event.
1072
+ Emit at most the declared generic attention text when one or more current
1073
+ caveats remain; preserve the relative order of every unrelated attention
1074
+ entry and do not change next-action selection.
1075
+ expiration: none
1076
+ forbidden_sources:
1077
+ - timestamp
1078
+ - recency
1079
+ - plan_state
1080
+ - transient_plan_handoff
1081
+ - profile_presence
1082
+ - unrelated_progress
1083
+ forbidden_output:
1084
+ - caveat_id
1085
+ - transition_id
1086
+ - reason
1087
+ - ownership_state
1088
+ - definition
1089
+ - meaning
1090
+ - anchor
1091
+ - path
1092
+ - raw_section
1093
+ - provenance
1094
+ - source_bytes
1095
+ malformed_evidence:
1096
+ prime: omit
1097
+ direct_progress_retrieval: fail_closed_generic_corrupt_entity
1098
+ allowed_diagnostic: canonical progress evidence is corrupt; run state validation
1099
+ forbidden_diagnostic_content:
1100
+ [stored_filename, stored_path, parser_text, raw_value, raw_bytes, provenance]
1101
+ handoff:
1102
+ plan: >-
1103
+ Plan cannot write progress. In autonomous mode it emits at most one
1104
+ transient intent containing exactly event=current, reason, and
1105
+ ownership_state and stores no caveat or conflict in plan state. It never
1106
+ emits identity, capability, transition_id, or a purported complete or
1107
+ delivered durable envelope.
1108
+ discuss: >-
1109
+ Discuss pauses for clarification; it does not persist caveat evidence or
1110
+ turn review into decision approval.
1111
+ build: >-
1112
+ Build is the sole durable writer and may later pass all three emitted
1113
+ intent inputs to the typed progress writer. The writer preserves the
1114
+ caller-owned event, reason, and ownership_state and creates authoritative
1115
+ identity, capability, and transition_id fields. Advice never invokes
1116
+ glossary publication.
1117
+ publication_isolation:
1118
+ rule: >-
1119
+ Advice, tension, review, clarification, caveat publication, resolution, and
1120
+ supersession never invoke glossary publication, authorize a proposal, reuse
1121
+ confirmation, satisfy a decision, or approve plan state.
1122
+ project_publication_authority: ownership_contracts.project.publication
1123
+ downstream_gate:
1124
+ status: blocked_until_contract_valid
1125
+ validator: packages/cli/src/registries/glossaryEntryContract.ts#validateGlossaryEntryContract
1126
+ command: npx -y agentera@next check validate vocabularyAuthority --format json
1127
+ required_sections:
1128
+ - consumer_boundary.acquisition
1129
+ - consumer_boundary.advice_resolution
1130
+ - consumer_boundary.primary_selection
1131
+ - consumer_boundary.outcome_matrix
1132
+ - consumer_boundary.orthogonal_advisories
1133
+ - consumer_boundary.refresh_events
1134
+ - consumer_boundary.discuss_integration
1135
+ - consumer_boundary.plan_integration
1136
+ - consumer_boundary.disclosure
1137
+ - consumer_boundary.autonomous_caveat
1138
+ - consumer_boundary.publication_isolation
1139
+ failure_rule: >-
1140
+ Discuss, Plan, Build, advice, and prime integration remain blocked when
1141
+ validation reports a missing or contradictory section. Acquisition itself
1142
+ fails closed. Each issue names the invalid section and required correction.
1143
+ profile_grounding:
1144
+ implementation: active_exclusion_only
1145
+ capabilities: [discuss, plan, build]
1146
+ command: npx -y agentera@next report profile-grounding --format json
1147
+ schema_version: agentera.profileGrounding.v1
1148
+ parser: packages/cli/src/analytics/personalGlossaryProfile.ts#personalProfileGrounding
1149
+ max_profile_utf8_bytes: 65536
1150
+ validity:
1151
+ statuses: [absent, valid, repair_needed]
1152
+ classes: [absent, valid, malformed, ambiguous, unreadable, unsafe, oversized, invalid_utf8]
1153
+ freshness:
1154
+ states: [current, stale, unknown]
1155
+ rule: Freshness is computed only after one source passes validity and never changes validity.
1156
+ recovery:
1157
+ repair: >-
1158
+ Use the Profile capability to repair or regenerate PROFILE.md, then retry `npx -y agentera@next report profile-grounding --format json`; no profile bytes were changed.
1159
+ absent: >-
1160
+ Use the Profile capability to generate PROFILE.md, then retry npx -y agentera@next report profile-grounding --format json.
1161
+ raw_profile_read: forbidden
1162
+ content_rule: >-
1163
+ Return the complete profile with exactly the validated owned personal
1164
+ Glossary marker range removed. Preserve every byte outside that range.
1165
+ This is profile grounding only and performs no glossary lookup, project
1166
+ glossary read, precedence, matching, review, collision, or advisory work.
1167
+ Profile Full retains access to the complete stored profile for regeneration.
1168
+ failure_rule: >-
1169
+ Absent and repair-needed profiles return nonzero with the shared validity
1170
+ object, exact advancing recovery, unknown freshness, and no profile
1171
+ content. Oversized, unsafe, unreadable, invalid UTF-8, and malformed or
1172
+ ambiguous owned Glossary sources fail closed without path or byte leaks.
1173
+ exact_collision:
1174
+ behavior: project_precedence_at_consumption
1175
+ persistence: forbidden
1176
+ personal_entry_suppression: forbidden
1177
+ inferred_semantic_equivalence:
1178
+ behavior: user_review
1179
+ automatic_merge: forbidden
1180
+ suppression: forbidden
1181
+ precedence: forbidden
1182
+ rule: >-
1183
+ Audit remains mutation-free and Build project-glossary publication is active.
1184
+ Build, Discuss, Plan, and prime bounded glossary consumption are active, and
1185
+ Build progress caveat publication is active. Personal Profile Full rendering
1186
+ and persistence are active. Project-driven personal-profile mutation and
1187
+ docs-mapping mutation remain deferred.
1188
+
1189
+ deferred_capability_contracts:
1190
+ profile:
1191
+ capabilities: [profile]
1192
+ implementation: active_partial
1193
+ intended_behavior: personal_glossary_synthesis
1194
+ active_behavior:
1195
+ - ownership_contracts.personal.admission
1196
+ - ownership_contracts.personal.profile_output
1197
+ inactive_behavior: [lookup]
1198
+ contracts:
1199
+ admission: ownership_contracts.personal.input
1200
+ provenance: ownership_contracts.personal.allowed_provenance
1201
+ confidence: shared_primitive.fields.confidence
1202
+ retention_and_decay: ownership_contracts.personal.retention_and_decay
1203
+ forbidden_current_claims: [lookup, project_glossary_consumption]
1204
+ audit:
1205
+ capabilities: [audit]
1206
+ implementation: active_partial
1207
+ active_behavior: terminology_drift_finding_generation
1208
+ finding_family:
1209
+ status: implemented
1210
+ mutation: forbidden
1211
+ evidence: ownership_contracts.project.input
1212
+ confidence: skills/agentera/protocol.yaml#CONFIDENCE_SCALE
1213
+ filtering: skills/agentera/capabilities/audit/schemas/validation.yaml
1214
+ canonical_proposal_rule: >-
1215
+ Propose the term with the most distinct verified project-file anchors;
1216
+ break ties lexicographically. A proposal is an audit finding, never a
1217
+ decision or persisted glossary entry.
1218
+ personal_comparison_rule: >-
1219
+ A supplied personal-profile term may annotate divergence for the same
1220
+ assessed concept. Missing profile evidence adds no divergence and never
1221
+ invents a personal term.
1222
+ proposal_output:
1223
+ implementation: active
1224
+ intended_output: read_only_terminology_drift_finding
1225
+ digest: ownership_contracts.project.proposal_digest
1226
+ inputs:
1227
+ personal_history: ownership_contracts.personal.input
1228
+ project_file: ownership_contracts.project.input
1229
+ project_file_history_classification: forbidden
1230
+ forbidden_current_claims: [persistence, approval, docs_mapping_mutation, lookup]
1231
+ build_publication:
1232
+ capabilities: [build]
1233
+ implementation: active
1234
+ active_behavior: ownership_contracts.project.publication
1235
+ output: skills/agentera/schemas/artifacts/glossary.yaml
1236
+ inactive_behavior:
1237
+ [
1238
+ lookup,
1239
+ precedence,
1240
+ semantic_equivalence_review,
1241
+ personal_profile_mutation,
1242
+ docs_mapping_mutation,
1243
+ ]
1244
+ forbidden_current_claims:
1245
+ [lookup, precedence, review, personal_profile_mutation, docs_mapping_mutation]
1246
+ consumers:
1247
+ capabilities: [discuss, plan, build, prime]
1248
+ implementation:
1249
+ build: active
1250
+ discuss: active
1251
+ plan: active
1252
+ prime: active
1253
+ behavior: consumer_boundary
1254
+ forbidden_current_claims: []