agentera 3.0.0-dev.32 → 3.0.0-dev.39

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 (196) hide show
  1. package/bundle/CHANGELOG.md +75 -5
  2. package/bundle/references/adapters/package-publication.json +43 -0
  3. package/bundle/references/adapters/package-surface-characterization.md +12 -0
  4. package/bundle/references/analysis/evidence-tier-authority.yaml +23 -21
  5. package/bundle/references/analysis/verification-policy.yaml +1 -0
  6. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +11 -2
  7. package/bundle/references/artifacts/glossary-entry-contract.yaml +1241 -0
  8. package/bundle/references/artifacts/state-storage-authority.yaml +149 -80
  9. package/bundle/references/cli/agent-ready-state-contract.yaml +84 -2
  10. package/bundle/references/cli/audience-namespace-cli-migration.yaml +12 -1
  11. package/bundle/references/cli/prime-consumer-compatibility.yaml +7 -1
  12. package/bundle/skills/agentera/SKILL.md +26 -26
  13. package/bundle/skills/agentera/capabilities/audit/schemas/validation.yaml +26 -8
  14. package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +21 -4
  15. package/bundle/skills/agentera/capabilities/build/schemas/exit.yaml +5 -4
  16. package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +67 -3
  17. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +3 -2
  18. package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +64 -0
  19. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +4 -1
  20. package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +30 -0
  21. package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +5 -2
  22. package/bundle/skills/agentera/capabilities/profile/schemas/exit.yaml +3 -2
  23. package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +30 -0
  24. package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +82 -0
  25. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +19 -4
  26. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +92 -0
  27. package/dist/analytics/extractCorpus/evidenceTiers.js +46 -3
  28. package/dist/analytics/extractCorpus/evidenceTiers.js.map +1 -1
  29. package/dist/analytics/extractCorpus/tierReader.js +1 -1
  30. package/dist/analytics/extractCorpus/tierReader.js.map +1 -1
  31. package/dist/analytics/glossaryAdviceResolution.js +167 -0
  32. package/dist/analytics/glossaryAdviceResolution.js.map +1 -0
  33. package/dist/analytics/glossaryInputAcquisition.js +320 -0
  34. package/dist/analytics/glossaryInputAcquisition.js.map +1 -0
  35. package/dist/analytics/personalGlossaryAdmission.js +134 -0
  36. package/dist/analytics/personalGlossaryAdmission.js.map +1 -0
  37. package/dist/analytics/personalGlossaryProfile.js +219 -0
  38. package/dist/analytics/personalGlossaryProfile.js.map +1 -0
  39. package/dist/audit/terminologyDrift.js +282 -0
  40. package/dist/audit/terminologyDrift.js.map +1 -0
  41. package/dist/capabilities/audit/instructions.js +2 -1
  42. package/dist/capabilities/audit/instructions.js.map +1 -1
  43. package/dist/capabilities/build/instructions.js +41 -2
  44. package/dist/capabilities/build/instructions.js.map +1 -1
  45. package/dist/capabilities/discuss/instructions.js +14 -1
  46. package/dist/capabilities/discuss/instructions.js.map +1 -1
  47. package/dist/capabilities/index.js +1 -1
  48. package/dist/capabilities/index.js.map +1 -1
  49. package/dist/capabilities/orchestrate/instructions.js +2 -2
  50. package/dist/capabilities/plan/instructions.js +19 -2
  51. package/dist/capabilities/plan/instructions.js.map +1 -1
  52. package/dist/capabilities/profile/instructions.js +67 -1
  53. package/dist/capabilities/profile/instructions.js.map +1 -1
  54. package/dist/cli/capabilityContext/bespoke.js +4 -3
  55. package/dist/cli/capabilityContext/bespoke.js.map +1 -1
  56. package/dist/cli/capabilityContext/build.js +77 -24
  57. package/dist/cli/capabilityContext/build.js.map +1 -1
  58. package/dist/cli/capabilityContext/closeout.js +2 -2
  59. package/dist/cli/capabilityContext/closeout.js.map +1 -1
  60. package/dist/cli/capabilityContext/evidence.js +2 -6
  61. package/dist/cli/capabilityContext/evidence.js.map +1 -1
  62. package/dist/cli/capabilityContext/planState.js +59 -78
  63. package/dist/cli/capabilityContext/planState.js.map +1 -1
  64. package/dist/cli/capabilityContext/projectVerification.js +410 -0
  65. package/dist/cli/capabilityContext/projectVerification.js.map +1 -0
  66. package/dist/cli/capabilityContext/startup.js +21 -4
  67. package/dist/cli/capabilityContext/startup.js.map +1 -1
  68. package/dist/cli/commands/glossaryAdvice.js +139 -0
  69. package/dist/cli/commands/glossaryAdvice.js.map +1 -0
  70. package/dist/cli/commands/personalGlossary.js +177 -0
  71. package/dist/cli/commands/personalGlossary.js.map +1 -0
  72. package/dist/cli/commands/prime/buildExecutionRequest.js +165 -0
  73. package/dist/cli/commands/prime/buildExecutionRequest.js.map +1 -0
  74. package/dist/cli/commands/prime/collectEntityOrientation.js +18 -2
  75. package/dist/cli/commands/prime/collectEntityOrientation.js.map +1 -1
  76. package/dist/cli/commands/prime/collectOrientationState.js +7 -1
  77. package/dist/cli/commands/prime/collectOrientationState.js.map +1 -1
  78. package/dist/cli/commands/prime/orientationOutput.js +12 -2
  79. package/dist/cli/commands/prime/orientationOutput.js.map +1 -1
  80. package/dist/cli/commands/prime.js +37 -2
  81. package/dist/cli/commands/prime.js.map +1 -1
  82. package/dist/cli/commands/profileGrounding.js +77 -0
  83. package/dist/cli/commands/profileGrounding.js.map +1 -0
  84. package/dist/cli/commands/query.js +14 -4
  85. package/dist/cli/commands/query.js.map +1 -1
  86. package/dist/cli/commands/schema.js +10 -0
  87. package/dist/cli/commands/schema.js.map +1 -1
  88. package/dist/cli/commands/state/write.js +4 -1
  89. package/dist/cli/commands/state/write.js.map +1 -1
  90. package/dist/cli/dispatch/lifecycle.js +45 -0
  91. package/dist/cli/dispatch/lifecycle.js.map +1 -1
  92. package/dist/cli/dispatch/prime.js +22 -1
  93. package/dist/cli/dispatch/prime.js.map +1 -1
  94. package/dist/cli/dispatch/shared.js +1 -1
  95. package/dist/cli/dispatch/shared.js.map +1 -1
  96. package/dist/cli/help.js +23 -1
  97. package/dist/cli/help.js.map +1 -1
  98. package/dist/cli/migrationRequired.js +2 -0
  99. package/dist/cli/migrationRequired.js.map +1 -1
  100. package/dist/cli/orientation/attention.js +3 -1
  101. package/dist/cli/orientation/attention.js.map +1 -1
  102. package/dist/cli/orientation.js +2 -2
  103. package/dist/cli/orientation.js.map +1 -1
  104. package/dist/registries/artifactProtocolIds.js +2 -0
  105. package/dist/registries/artifactProtocolIds.js.map +1 -1
  106. package/dist/registries/artifactRegistry.js +2 -0
  107. package/dist/registries/artifactRegistry.js.map +1 -1
  108. package/dist/registries/evidenceTierContract.js +26 -16
  109. package/dist/registries/evidenceTierContract.js.map +1 -1
  110. package/dist/registries/glossaryAdviceContract.js +79 -0
  111. package/dist/registries/glossaryAdviceContract.js.map +1 -0
  112. package/dist/registries/glossaryCaveatContract.js +68 -0
  113. package/dist/registries/glossaryCaveatContract.js.map +1 -0
  114. package/dist/registries/glossaryConsumerContractValidation.js +792 -0
  115. package/dist/registries/glossaryConsumerContractValidation.js.map +1 -0
  116. package/dist/registries/glossaryEntryContract.js +747 -0
  117. package/dist/registries/glossaryEntryContract.js.map +1 -0
  118. package/dist/registries/glossaryTermIdentity.js +18 -0
  119. package/dist/registries/glossaryTermIdentity.js.map +1 -0
  120. package/dist/registries/glossaryTermOccurrence.js +21 -0
  121. package/dist/registries/glossaryTermOccurrence.js.map +1 -0
  122. package/dist/state/changelog.js +222 -0
  123. package/dist/state/changelog.js.map +1 -0
  124. package/dist/state/decisionEntities.js +18 -11
  125. package/dist/state/decisionEntities.js.map +1 -1
  126. package/dist/state/decisionMigrationProvenance.js +84 -1
  127. package/dist/state/decisionMigrationProvenance.js.map +1 -1
  128. package/dist/state/decisionOverlay.js +9 -32
  129. package/dist/state/decisionOverlay.js.map +1 -1
  130. package/dist/state/decisionRevision.js +69 -444
  131. package/dist/state/decisionRevision.js.map +1 -1
  132. package/dist/state/decisionRevisionMigration.js +90 -0
  133. package/dist/state/decisionRevisionMigration.js.map +1 -0
  134. package/dist/state/directRetrieval.js +3 -52
  135. package/dist/state/directRetrieval.js.map +1 -1
  136. package/dist/state/entityCutover.js +6 -6
  137. package/dist/state/entityCutover.js.map +1 -1
  138. package/dist/state/entityGlossaryAuthority.js +14 -0
  139. package/dist/state/entityGlossaryAuthority.js.map +1 -0
  140. package/dist/state/entityMigrationIdentity.js +6 -0
  141. package/dist/state/entityMigrationIdentity.js.map +1 -0
  142. package/dist/state/entityMigrationPreview.js +14 -23
  143. package/dist/state/entityMigrationPreview.js.map +1 -1
  144. package/dist/state/entityPublicationContext.js +374 -71
  145. package/dist/state/entityPublicationContext.js.map +1 -1
  146. package/dist/state/entityStorage.js +45 -29
  147. package/dist/state/entityStorage.js.map +1 -1
  148. package/dist/state/healthEntities.js +2 -4
  149. package/dist/state/healthEntities.js.map +1 -1
  150. package/dist/state/listRetrieval.js +7 -38
  151. package/dist/state/listRetrieval.js.map +1 -1
  152. package/dist/state/migrationSourceBinding.js +1 -1
  153. package/dist/state/migrationSourceBinding.js.map +1 -1
  154. package/dist/state/objectiveExperimentEntities.js +9 -9
  155. package/dist/state/objectiveExperimentEntities.js.map +1 -1
  156. package/dist/state/planEntities.js +57 -16
  157. package/dist/state/planEntities.js.map +1 -1
  158. package/dist/state/progressEntities.js +177 -39
  159. package/dist/state/progressEntities.js.map +1 -1
  160. package/dist/state/progressGlossaryCaveat.js +169 -0
  161. package/dist/state/progressGlossaryCaveat.js.map +1 -0
  162. package/dist/state/progressPublicationOrder.js +20 -0
  163. package/dist/state/progressPublicationOrder.js.map +1 -0
  164. package/dist/state/safeProjectFile.js +4 -1
  165. package/dist/state/safeProjectFile.js.map +1 -1
  166. package/dist/state/startupProjection.js +2 -70
  167. package/dist/state/startupProjection.js.map +1 -1
  168. package/dist/state/stateStorageAuthority.js +48 -0
  169. package/dist/state/stateStorageAuthority.js.map +1 -0
  170. package/dist/state/summarySourceRowAuthority.js +1 -1
  171. package/dist/state/summarySourceRowAuthority.js.map +1 -1
  172. package/dist/state/todoDocsEntities.js +8 -9
  173. package/dist/state/todoDocsEntities.js.map +1 -1
  174. package/dist/state/write/explain.js +101 -92
  175. package/dist/state/write/explain.js.map +1 -1
  176. package/dist/state/write/glossaryPublication.js +264 -0
  177. package/dist/state/write/glossaryPublication.js.map +1 -0
  178. package/dist/state/write/index.js +1 -0
  179. package/dist/state/write/index.js.map +1 -1
  180. package/dist/state/write/operations.js +25 -27
  181. package/dist/state/write/operations.js.map +1 -1
  182. package/dist/state/write/planEvaluation.js +6 -2
  183. package/dist/state/write/planEvaluation.js.map +1 -1
  184. package/dist/state/write/transaction.js +7 -4
  185. package/dist/state/write/transaction.js.map +1 -1
  186. package/dist/upgrade/upgradeOrchestrator.js +15 -10
  187. package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
  188. package/dist/validate/crossCapability.js +3 -0
  189. package/dist/validate/crossCapability.js.map +1 -1
  190. package/dist/validate/v1LegacyCruft.js +141 -0
  191. package/dist/validate/v1LegacyCruft.js.map +1 -0
  192. package/dist/validate/vocabularyAuthority.js +2 -0
  193. package/dist/validate/vocabularyAuthority.js.map +1 -1
  194. package/package.json +4 -3
  195. package/dist/state/decisionRevisionPublication.js +0 -532
  196. package/dist/state/decisionRevisionPublication.js.map +0 -1
@@ -3,9 +3,9 @@ name: agentera
3
3
  description: >
4
4
  One agent, one CLI, many capabilities. Per-capability instructions live in
5
5
  `packages/cli/src/capabilities/<name>/instructions.ts` and the runtime serves
6
- it through `agentera prime --context <name> --format json`. Use this skill
6
+ it through `npx -y agentera@next prime --context <name> --format json`. Use this skill
7
7
  for /agentera and Agentera capability requests; bare `/agentera` runs the
8
- agentera prime orientation dashboard path instead of a generic greeting.
8
+ prime orientation dashboard path instead of a generic greeting.
9
9
  version: "3.0.0"
10
10
  spec_sections: [1, 2, 3, 4, 5, 6, 11, 13, 18, 19, 20, 22, 23]
11
11
  capabilities:
@@ -34,18 +34,18 @@ documentation after deterministic abstention; it learns that contract from the C
34
34
 
35
35
  ## Bootstrap
36
36
 
37
- Run `agentera prime` for orientation. The JSON it returns is the complete
37
+ Run `npx -y agentera@next prime` for orientation. The JSON it returns is the complete
38
38
  contract — app status, state slices, attention items, next action, and the
39
39
  source contract that declares what's complete and what requires fallback.
40
40
 
41
41
  ```bash
42
- npx -y agentera prime
42
+ npx -y agentera@next prime
43
43
  ```
44
44
 
45
45
  For capability-specific startup context:
46
46
 
47
47
  ```bash
48
- npx -y agentera prime --context <capability> --format json
48
+ npx -y agentera@next prime --context <capability> --format json
49
49
  ```
50
50
 
51
51
  This returns the capability's instructions, declared read/write needs, artifact
@@ -55,7 +55,7 @@ reading the instructions module directly.
55
55
  For static routing guidance (agentera vs native tools):
56
56
 
57
57
  ```bash
58
- npx -y agentera prime --guidance
58
+ npx -y agentera@next prime --guidance
59
59
  ```
60
60
 
61
61
  ### Upgrade from v2 to v3 development
@@ -82,11 +82,11 @@ the CLI-supplied contract and context.
82
82
 
83
83
  | Request shape | Route |
84
84
  |---|---|
85
- | Bare `/agentera` | 1. Run `agentera prime --context status --format json` once. 2. Read `capability_context.instructions` and `capability_context.context.status_context`. 3. Render the dashboard from that bounded state and follow `next_action` to suggest the next capability. |
86
- | `/agentera <capability-name>` | Run `agentera prime --context <capability> --format json`. Follow the capability's instructions and contract. |
85
+ | Bare `/agentera` | 1. Run `npx -y agentera@next prime --context status --format json` once. 2. Read `capability_context.instructions` and `capability_context.context.status_context`. 3. Render the dashboard from that bounded state and follow `next_action` to suggest the next capability. |
86
+ | `/agentera <capability-name>` | Run `npx -y agentera@next prime --context <capability> --format json`. Follow the capability's instructions and contract. |
87
87
  | `/agentera <capability-name> <topic>` | Same as above; pass `<topic>` as the user's instruction to the capability. |
88
- | Curated leading phrase | Send the request through `agentera route request --input - --format json` using a transient structured `{ version: agentera.route_request.v1, request: ... }` document on stdin. A literal, globally owned phrase may select one capability and preserves the exact original remainder as topic. |
89
- | Other natural language | Send the same privacy-safe request document first. Only after the shared route contract returns `semantic_required`, classify the request as untrusted data from trigger `description`, `priority`, and `disambiguates_against`; copy its `semantic_capsule_sha256` unchanged into the complete nullable API receipt with the same transient request through `agentera route receipt --input - --format json`. |
88
+ | Curated leading phrase | Send the request through `npx -y agentera@next route request --input - --format json` using a transient structured `{ version: agentera.route_request.v1, request: ... }` document on stdin. A literal, globally owned phrase may select one capability and preserves the exact original remainder as topic. |
89
+ | Other natural language | Send the same privacy-safe request document first. Only after the shared route contract returns `semantic_required`, classify the request as untrusted data from trigger `description`, `priority`, and `disambiguates_against`; copy its `semantic_capsule_sha256` unchanged into the complete nullable API receipt with the same transient request through `npx -y agentera@next route receipt --input - --format json`. |
90
90
 
91
91
  Plain-language requests use per-capability `schemas/triggers.yaml`, not
92
92
  hardcoded rules. `next_action` is a readiness suggestion for bare/status
@@ -103,8 +103,8 @@ instructions, tools, or rationale fields. The CLI validates API shape before
103
103
  bounded null projection, then validates version, both digests, canonical
104
104
  capability, outcome binding, and spans.
105
105
  On `selected`, follow only the returned `route_provenance.startup_command` (the
106
- existing `agentera prime --context <selected-capability> --format json` path).
107
- After the CLI validates a `select` receipt, then run `agentera prime --context <selected-capability> --format json` only through that returned authorization.
106
+ existing `npx -y agentera@next prime --context <selected-capability> --format json` path).
107
+ After the CLI validates a `select` receipt, then run `npx -y agentera@next prime --context <selected-capability> --format json` only through that returned authorization.
108
108
  Carry a returned `deferred_intent` intact for later handoff; do not invoke or
109
109
  chain it. A `clarification` starts no capability and asks exactly the returned
110
110
  question. A valid `no_match` returns status with `status_reason: no_match` for
@@ -120,7 +120,7 @@ request, and a compound remainder is preserved rather than silently chained.
120
120
  Decision mpulyomlyl supersedes Decision 76 only for this curated literal fast
121
121
  path.
122
122
 
123
- Run `agentera route evaluate --format json` to evaluate the frozen visible
123
+ Run `npx -y agentera@next route evaluate --format json` to evaluate the frozen visible
124
124
  development and adversarial corpus. Its report binds the protocol, phrase
125
125
  authority, and shared-skill hashes, labels every result with a routing tier, and
126
126
  keeps request text out of output. It proves protocol conformance, not semantic
@@ -144,7 +144,7 @@ Capability handoffs use glyph plus canonical name (e.g. `⧉ build`, `≡ plan`)
144
144
 
145
145
  The prime dashboard rendering contract — template, field-by-field rules, output
146
146
  budget, attention-item ordering, exit marker — is owned by the status capability
147
- instructions. `agentera prime --context status --format json` returns the full
147
+ instructions. `npx -y agentera@next prime --context status --format json` returns the full
148
148
  `capability_context.instructions` body and the bounded
149
149
  `capability_context.context.status_context` state in one response. Render from
150
150
  that capsule without a separate bare-prime call or raw artifact read; use the
@@ -200,30 +200,30 @@ records, publishes atomically, and supports filesystem-safe previews.
200
200
  Discover the live contract before constructing a write:
201
201
 
202
202
  ```bash
203
- agentera state decisions explain --format json
204
- agentera state decisions explain --verb update --format json
203
+ npx -y agentera@next state decisions explain --format json
204
+ npx -y agentera@next state decisions explain --verb update --format json
205
205
  ```
206
206
 
207
207
  The same pattern applies to every writable artifact:
208
208
 
209
209
  ```bash
210
- agentera state <progress|decisions|plan|health> explain --verb <verb> --format json
210
+ npx -y agentera@next state <progress|decisions|plan|health> explain --verb <verb> --format json
211
211
  ```
212
212
 
213
213
  Common mutations:
214
214
 
215
- - `agentera state progress append ... --format json`
216
- - `agentera state decisions append ... --format json`
217
- - `agentera state decisions update --id ID ... --format json`
218
- - `agentera state plan create --input plan.yaml --format json`
219
- - `agentera state plan update|set-status --id ID ... --format json`
220
- - `agentera state plan set-plan-status --id ID ... --format json`
221
- - `agentera state plan archive --format json`
222
- - `agentera state health append --input audit.yaml --format json`
215
+ - `npx -y agentera@next state progress append ... --format json`
216
+ - `npx -y agentera@next state decisions append ... --format json`
217
+ - `npx -y agentera@next state decisions update --id ID ... --format json`
218
+ - `npx -y agentera@next state plan create --input plan.yaml --format json`
219
+ - `npx -y agentera@next state plan update|set-status --id ID ... --format json`
220
+ - `npx -y agentera@next state plan set-plan-status --status complete --format json`
221
+ - `npx -y agentera@next state plan archive --format json`
222
+ - `npx -y agentera@next state health append --input audit.yaml --format json`
223
223
 
224
224
  Add `--dry-run` to preview any mutation without publishing it. Artifacts not
225
225
  listed above are outside the typed writer contract and remain governed by their
226
- owning capability's instructions and safety rails. `agentera schema --format
226
+ owning capability's instructions and safety rails. `npx -y agentera@next schema --format
227
227
  json` exposes the machine-readable writer operation matrix under
228
228
  `state_writer` and on each writable `artifact_schemas[*].write_interface`.
229
229
 
@@ -66,13 +66,13 @@ VALIDATION:
66
66
  id: V7
67
67
  rule: evidence_context_first
68
68
  description: >-
69
- Audit evaluation startup MUST begin with `agentera prime --context
70
- audit --format json` and use complete CLI `evidence_context` before
71
- bounded state list/get contracts for plan, progress, docs, health, TODO,
72
- or decisions. Raw artifact access is diagnostic-only.
69
+ Audit evaluation startup MUST begin with `agentera prime --context
70
+ audit --format json` and use complete CLI `evidence_context` before
71
+ bounded state list/get contracts for plan, progress, docs, health, TODO,
72
+ or decisions. Raw artifact access is diagnostic-only.
73
73
  severity: critical
74
74
  checks:
75
- - "Evidence context is requested through prime --context before bounded state list/get"
75
+ - "Evidence context is requested through prime --context before bounded state list/get"
76
76
  8:
77
77
  id: V8
78
78
  rule: evidence_context_fallback_before_raw
@@ -82,9 +82,9 @@ VALIDATION:
82
82
  diagnostic-only raw artifact read.
83
83
  severity: critical
84
84
  checks:
85
- - "evidence_context.fallback_commands are attempted before diagnostic-only raw reads"
86
- - "capability_context.state.fallback_commands is used when evidence_context is unavailable"
87
- - "Raw artifact reads are diagnostic-only, not normal evaluation startup"
85
+ - "evidence_context.fallback_commands are attempted before diagnostic-only raw reads"
86
+ - "capability_context.state.fallback_commands is used when evidence_context is unavailable"
87
+ - "Raw artifact reads are diagnostic-only, not normal evaluation startup"
88
88
  9:
89
89
  id: V9
90
90
  rule: evidence_context_caveats_preserved
@@ -112,3 +112,21 @@ VALIDATION:
112
112
  - "Provisional satisfaction requires evidence"
113
113
  - "Only the user confirms final satisfaction"
114
114
  - "Missing or compacted satisfaction caveats are preserved"
115
+ 11:
116
+ id: V11
117
+ rule: terminology_drift_read_only
118
+ description: >-
119
+ Terminology-drift findings MUST cite every variant with verified
120
+ project-relative file and line evidence. Canonical terms are proposals,
121
+ never decisions or writes. Optional personal-profile divergence is
122
+ comparison evidence only; missing profile evidence produces no claim.
123
+ Audit remains mutation-free and read-only. Build project-glossary
124
+ publication is active. Audit performs no consumer lookup; Discuss, Plan,
125
+ and Build use the separate active read-only advice path. Personal-profile
126
+ mutation and docs-mapping mutation remain outside both paths.
127
+ severity: critical
128
+ checks:
129
+ - "Every reported drift variant has project-file evidence"
130
+ - "Weak, deliberate, tracked, and no-drift candidates produce no finding"
131
+ - "Audit mutates no glossary, profile, docs mapping, code, or project file"
132
+ - "Build publication and read-only glossary consumers are active under separate mutation boundaries"
@@ -28,7 +28,8 @@ ARTIFACTS:
28
28
  artifact: progress
29
29
  local_role: produces_and_consumes
30
30
  description: >-
31
- Operational cycle log. Build consumes latest progress evidence from
31
+ Operational cycle log and the sole durable channel for bounded autonomous
32
+ glossary caveat lifecycle evidence. Build consumes latest progress evidence from
32
33
  execution_context first, then bounded `agentera state progress list --limit
33
34
  20 --format json` discovery or exact `state progress get --id ID`
34
35
  retrieval, and appends one entry per cycle with mandatory Verified field.
@@ -65,9 +66,10 @@ ARTIFACTS:
65
66
  artifact: profile
66
67
  local_role: consumes
67
68
  description: >-
68
- Build consumes status profile summary first. Missing or stale profile state
69
- is a caveat and does not authorize profile refresh or direct profile reads
70
- during normal startup.
69
+ Build consumes status profile summary first and reads profile grounding
70
+ only from `agentera report profile-grounding --format json`. Missing,
71
+ stale, or malformed state is a caveat and does not authorize refresh or
72
+ direct profile reads during normal startup.
71
73
  9:
72
74
  id: A9
73
75
  artifact: docs
@@ -83,3 +85,18 @@ ARTIFACTS:
83
85
  Build treats design state missing from execution_context as a caveat or
84
86
  fallback-only need, and reads it only when building user-facing features
85
87
  after listed CLI fallbacks are exhausted.
88
+ 11:
89
+ id: A11
90
+ artifact: glossary
91
+ local_role: produces_and_consumes
92
+ description: >-
93
+ Build alone publishes one explicitly user-confirmed terminology proposal
94
+ through `agentera state glossary publish --input REQUEST`. The typed writer
95
+ revalidates audit source evidence and atomically records the immutable
96
+ approval beside the shared-only project entry. Build does not consume the
97
+ glossary only to validate replay and preserve unrelated publication state.
98
+ Separately, at governed meaning-sensitive Build events it requests bounded
99
+ read-only advice through `agentera report glossary-advice --input REQUEST
100
+ --format json`. Advice and progress caveats never publish terminology,
101
+ approve a proposal, reuse confirmation, mutate personal profiles or docs
102
+ mappings, or grant publication authority to another capability.
@@ -3,9 +3,10 @@ EXIT_CONDITIONS:
3
3
  id: E1
4
4
  condition: complete
5
5
  description: >-
6
- One full cycle completed. Work was selected, implemented, verified
7
- against the project's test/build suite, committed with a conventional
8
- message, and progress.yaml and TODO.md were updated.
6
+ One full cycle completed. Work was selected, implemented, and verified
7
+ against the project's test/build suite. Required TODO, progress,
8
+ changelog, and plan closeout updates preceded the cycle's single
9
+ conventional commit.
9
10
  exit_signal: complete
10
11
  2:
11
12
  id: E2
@@ -14,7 +15,7 @@ EXIT_CONDITIONS:
14
15
  The cycle completed but with notable issues. Possible causes:
15
16
  verification passed but with warnings, the committed work is narrower
16
17
  than intended due to scope reduction, or discoveries logged in
17
- progress.yaml suggest the next cycle may face blockers.
18
+ progress state suggests the next cycle may face blockers.
18
19
  exit_signal: flagged
19
20
  3:
20
21
  id: E3
@@ -14,9 +14,9 @@ VALIDATION:
14
14
  id: V2
15
15
  rule: one_cycle_per_invocation
16
16
  description: >-
17
- Build executes exactly one cycle per invocation. After logging (Step 8),
18
- the capability MUST stop. Multiple cycles require separate invocations or
19
- an explicit user request.
17
+ Build executes exactly one cycle per invocation. After logging required
18
+ artifacts (Step 7) and committing once (Step 8), the capability MUST stop.
19
+ Multiple cycles require separate invocations or an explicit user request.
20
20
  severity: critical
21
21
  checks:
22
22
  - "Only one progress entity is appended per invocation"
@@ -108,3 +108,67 @@ VALIDATION:
108
108
  - "Provisional satisfaction requires evidence"
109
109
  - "Only the user confirms final satisfaction"
110
110
  - "Missing or compacted satisfaction caveats are preserved"
111
+ 11:
112
+ id: V11
113
+ rule: sanitized_profile_grounding
114
+ description: >-
115
+ Build MUST ground only from the `content` returned by `agentera report
116
+ profile-grounding --format json`; it MUST NOT direct-read PROFILE.md.
117
+ severity: critical
118
+ checks:
119
+ - "Sanitized grounding command used after prime startup"
120
+ - "Raw profile path not read"
121
+ 12:
122
+ id: V12
123
+ rule: governed_glossary_advice
124
+ description: >-
125
+ At initial meaning-sensitive cycle intent and later user-authored changes
126
+ or clarification answers that can alter intent, Build MUST request bounded
127
+ advice through `agentera report glossary-advice --input REQUEST --format
128
+ json`. Unchanged replay, unrelated turns, rendering, and tool output MUST
129
+ NOT refresh advice.
130
+ severity: critical
131
+ checks:
132
+ - "Exact project authority or proven-gap personal fallback grounds intent"
133
+ - "Governed changes refresh only the affected meaning"
134
+ - "Incidental turns and unchanged replay do not refresh"
135
+ 13:
136
+ id: V13
137
+ rule: glossary_review_and_autonomy
138
+ description: >-
139
+ Interactive Build MUST ask one focused clarification before disputed
140
+ meaning-sensitive reliance whenever review is required. If autonomous Build
141
+ cannot pause, it MUST avoid the disputed meaning, proceed conservatively
142
+ only where safe, and append one idempotent privacy-safe glossary_caveat
143
+ lifecycle envelope through the typed progress writer.
144
+ severity: critical
145
+ checks:
146
+ - "Clarification precedes meaning-sensitive execution and re-evaluates only the affected meaning"
147
+ - "Autonomous work does not assume disputed meaning"
148
+ - "Current, resolved, and superseded caveat events obey opaque identity lifecycle"
149
+ 14:
150
+ id: V14
151
+ rule: glossary_publication_isolation
152
+ description: >-
153
+ Advice, tension, clarification, and progress caveat lifecycle MUST NOT call
154
+ `agentera state glossary publish`, create or reuse approval, substitute for
155
+ digest-bound user confirmation, satisfy decisions or plan state, or grant
156
+ Discuss or Audit publication authority.
157
+ severity: critical
158
+ checks:
159
+ - "Advice and caveat paths perform zero glossary publication writes"
160
+ - "Only separately supplied digest-confirmed publication retains Build authority"
161
+ 15:
162
+ id: V15
163
+ rule: transient_no_plan_execution_input
164
+ description: >-
165
+ When no current executable plan owns startup, Build MAY accept one bounded
166
+ `agentera.buildExecutionRequest.v1` through `prime --context build --input
167
+ <file|-> --format json`. The request supplies explicit scope and acceptance
168
+ transiently; it MUST NOT persist, create, or mutate plan state. Current
169
+ plan-owned execution conflicts instead of silently ignoring the request.
170
+ severity: critical
171
+ checks:
172
+ - "Transient input is used only when no current executable plan owns startup"
173
+ - "No request content is placed in argv or persisted"
174
+ - "No-plan execution requires explicit scope and acceptance"
@@ -39,8 +39,9 @@ ARTIFACTS:
39
39
  artifact: profile
40
40
  local_role: consumes
41
41
  description: >-
42
- Discuss reads this at session start to acknowledge high-confidence
43
- entries and avoid re-deliberating settled ground.
42
+ Discuss reads only sanitized non-glossary content from `agentera report
43
+ profile-grounding --format json` at session start. It never direct-reads
44
+ the profile path; malformed owned Glossary boundaries fail closed.
44
45
  6:
45
46
  id: A6
46
47
  artifact: docs
@@ -76,3 +76,67 @@ VALIDATION:
76
76
  - "Provisional satisfaction requires evidence"
77
77
  - "Only the user confirms final satisfaction"
78
78
  - "Missing or compacted satisfaction caveats are preserved"
79
+ 8:
80
+ id: V8
81
+ rule: sanitized_profile_grounding
82
+ description: >-
83
+ Discuss MUST ground only from the `content` returned by `agentera report
84
+ profile-grounding --format json`; it MUST NOT direct-read PROFILE.md.
85
+ severity: critical
86
+ checks:
87
+ - "Sanitized grounding command used at session start"
88
+ - "Raw profile path not read"
89
+ 9:
90
+ id: V9
91
+ rule: governed_glossary_advice_events
92
+ description: >-
93
+ Discuss MUST invoke `agentera report glossary-advice --input <file|->
94
+ --format json` for initial meaning-sensitive user input and later
95
+ user-authored premise changes or affected clarification answers that can
96
+ change meaning. It MUST NOT invoke advice for unchanged replay, rendering,
97
+ unrelated turns, tool output, background rereads, or Done-only control,
98
+ and MUST NOT use an unbounded or persistent transcript scan.
99
+ severity: critical
100
+ checks:
101
+ - "Initial and changed meaning-sensitive user events refresh advice"
102
+ - "Incidental, unchanged, and Done-only events do not refresh advice"
103
+ - "Only current user-authored meaning-sensitive input is inspected"
104
+ 10:
105
+ id: V10
106
+ rule: glossary_review_before_reliance
107
+ description: >-
108
+ When advice requires inferred-equivalence review, Discuss MUST ask one
109
+ focused clarification with Done before meaning-sensitive reasoning or
110
+ decision framing relies on either meaning. It MUST NOT silently infer
111
+ equivalence, and the clarification MUST NOT count as decision confirmation.
112
+ severity: critical
113
+ checks:
114
+ - "Focused review question precedes reliance"
115
+ - "One-question-per-turn and Done behavior are preserved"
116
+ - "Clarification is not decision confirmation"
117
+ 11:
118
+ id: V11
119
+ rule: glossary_authority_and_disclosure
120
+ description: >-
121
+ Discuss MUST use only the transient applicable meaning and owner. Project
122
+ meaning governs a divergent exact collision and the divergence appears as
123
+ a concise scratchpad tension or Crux; Discuss MUST NOT ask the user to
124
+ choose project versus personal authority or quote unrelated entries.
125
+ severity: critical
126
+ checks:
127
+ - "Applicable project or proven personal fallback meaning is used"
128
+ - "Divergence appears as tension or Crux without an authority-choice question"
129
+ - "Unrelated glossary content is not disclosed"
130
+ 12:
131
+ id: V12
132
+ rule: glossary_consumer_mutation_isolation
133
+ description: >-
134
+ Advice, divergence, and consumer clarification are transient. Discuss MUST
135
+ NOT write glossary, approval, publication consent, progress caveat, plan
136
+ conflict, or decision conflict state, and MUST NOT call glossary publish.
137
+ Unavailable or no-applicable advice adds no glossary facts.
138
+ severity: critical
139
+ checks:
140
+ - "No glossary or consumer-caveat mutation occurs"
141
+ - "No approval, consent, or conflict bookkeeping occurs"
142
+ - "Unavailable advice does not fabricate glossary grounding"
@@ -53,7 +53,10 @@ ARTIFACTS:
53
53
  artifact: profile
54
54
  local_role: consumes
55
55
  description: >-
56
- Plan reads this to calibrate planning depth and pattern preferences.
56
+ Plan reads only sanitized non-glossary content from `agentera report
57
+ profile-grounding --format json` to calibrate planning depth and pattern
58
+ preferences. It never direct-reads the profile path; malformed owned
59
+ Glossary boundaries fail closed.
57
60
  9:
58
61
  id: A9
59
62
  artifact: docs
@@ -87,3 +87,33 @@ VALIDATION:
87
87
  checks:
88
88
  - "Full plans with dismissed critic findings have `rejected:` entries"
89
89
  - "Each rejection has issue and rationale fields"
90
+ 9:
91
+ id: V9
92
+ rule: sanitized_profile_grounding
93
+ description: >-
94
+ Plan MUST ground only from the `content` returned by `agentera report
95
+ profile-grounding --format json`; it MUST NOT direct-read PROFILE.md.
96
+ severity: critical
97
+ checks:
98
+ - "Sanitized grounding command used during Orient"
99
+ - "Raw profile path not read"
100
+ 10:
101
+ id: V10
102
+ rule: governed_terminology_advice
103
+ description: >-
104
+ Plan MUST consume terminology advice through the shared glossary consumer
105
+ authority at governed meaning-sensitive user events. Interactive review
106
+ MUST precede fixing affected requirements. Autonomous unresolved review
107
+ MUST abstain, defer the affected requirements, and emit at most one bounded
108
+ current writer intent without delivering or storing it or writing plan
109
+ conflict or progress state.
110
+ severity: critical
111
+ checks:
112
+ - "Advice refreshes only for authority-declared Plan events"
113
+ - "Mode follows explicit authority precedence and unknown mode waits"
114
+ - "Interactive review precedes affected requirements and acceptance"
115
+ - "Autonomous unresolved meaning remains deferred without a Plan write"
116
+ - "Emitted-only handoff intent contains exactly event=current, reason, and ownership state"
117
+ - "Writer owns caveat identity, Build capability, and transition fields"
118
+ - "Exact project authority suppresses personal-unavailable durable handoff"
119
+ - "Plan artifacts exclude private glossary content"
@@ -5,8 +5,11 @@ ARTIFACTS:
5
5
  local_role: produces_and_consumes
6
6
  description: >-
7
7
  Decision profile with per-entry confidence scoring, permanence
8
- classification, and temporal metadata. Profile writes this in both Full
9
- and Validate modes, then reads it for validation and update context.
8
+ classification, and temporal metadata. Profile Full also owns one
9
+ deterministic personal Glossary section containing shared glossary entries
10
+ and lifecycle metadata; rendering and persistence are active while lookup
11
+ remains deferred. Profile writes this in both Full and Validate modes,
12
+ then reads it for validation and update context.
10
13
  2:
11
14
  id: A2
12
15
  artifact: decisions
@@ -4,8 +4,9 @@ EXIT_CONDITIONS:
4
4
  condition: complete
5
5
  description: >-
6
6
  PROFILE.md was written (Full mode) or updated (Validate mode).
7
- Metadata changes were applied, prediction accuracy was assessed
8
- (Full mode), and changes were summarized.
7
+ In Full mode its owned personal Glossary section was rendered and persisted,
8
+ metadata changes were applied, prediction accuracy was assessed, and
9
+ changes were summarized.
9
10
  exit_signal: complete
10
11
  2:
11
12
  id: E2
@@ -83,3 +83,33 @@ VALIDATION:
83
83
  - "Signal tier state, count, and sufficiency are read before synthesizing"
84
84
  - "Underrepresented families are surfaced with retained and intended counts"
85
85
  - "No high-confidence claims are fabricated from sparse or missing evidence"
86
+ 7:
87
+ id: V7
88
+ rule: personal_glossary_output
89
+ description: >-
90
+ Profile Full MUST render and persist exactly one owned Glossary section
91
+ through `agentera report profile-glossary`. Entries use only the shared
92
+ primitive and personal provenance variants. Replacement preserves every
93
+ non-glossary byte, malformed or ambiguous boundaries fail before effects,
94
+ and personal production never reads a project glossary.
95
+ severity: critical
96
+ checks:
97
+ - "Explicit entries retain exactly one evidence anchor"
98
+ - "Inferred entries retain exactly two pairwise-distinct evidence anchors"
99
+ - "Non-glossary PROFILE.md bytes and decision-pattern confidence are unchanged"
100
+ - "No project glossary identity, path, parameter, import, or read is used"
101
+ 8:
102
+ id: V8
103
+ rule: personal_glossary_lifecycle
104
+ description: >-
105
+ Established entries MUST survive regeneration without fresh evidence.
106
+ Confidence is deterministically derived from the retained confidence basis,
107
+ unchanged permanence class, injected date, existing Profile decay formula,
108
+ and floor; permanence and observed_at remain unchanged. Matching fresh
109
+ evidence follows the shared authority refresh rule. Lookup remains deferred.
110
+ severity: critical
111
+ checks:
112
+ - "Same-date replay is idempotent and decay never compounds from rendered confidence"
113
+ - "Stable, durable, and situational classes use their existing lambdas and floor"
114
+ - "Fresh evidence refreshes only matching meaning and provenance kind"
115
+ - "Glossary confidence never mutates decision-pattern confidence"
@@ -0,0 +1,82 @@
1
+ # Project Glossary Artifact Schema
2
+
3
+ meta:
4
+ name: glossary
5
+ version: "1.0.0"
6
+ description: >-
7
+ Repository-scoped canonical terminology governed by the shared glossary
8
+ entry and project publication contracts. Build atomically publishes an
9
+ explicitly confirmed audit proposal; audit and discuss remain read-only.
10
+ artifact_type: agent_facing
11
+ path: ".agentera/glossary.yaml"
12
+ producer: build
13
+ consumers: [build]
14
+ format: yaml
15
+ implementation_status: active
16
+
17
+ CONFORMANCE:
18
+ authority: references/artifacts/glossary-entry-contract.yaml
19
+ ownership_contract: project
20
+ provenance_variant: project_file
21
+ term_identity_runtime: packages/cli/src/registries/glossaryTermIdentity.ts#unicodeCaselessExact
22
+ term_occurrence_runtime: packages/cli/src/registries/glossaryTermOccurrence.ts#containsGlossaryTerm
23
+
24
+ DOCUMENT:
25
+ schema_version: agentera.projectGlossary.v1
26
+ required_fields: [schema_version, approvals, entries]
27
+ additional_fields: forbidden
28
+ approvals:
29
+ type: list
30
+ immutable: true
31
+ record_fields: [proposal_digest, proposal, confirmation]
32
+ additional_record_fields: forbidden
33
+ entries:
34
+ type: list
35
+ item: shared_primitive
36
+ approval_fields: forbidden
37
+ terminology_set_identity:
38
+ normalization: unicode_caseless_exact_no_normalization
39
+ members: [paired_entry.term, paired_approval.proposal.variants.term]
40
+ uniqueness: global_across_complete_document
41
+
42
+ PUBLICATION:
43
+ implementation: active
44
+ owner: build
45
+ command: agentera state glossary publish --input REQUEST --format json
46
+ request_schema_version: agentera.glossaryPublicationRequest.v1
47
+ atomic_unit: complete_document
48
+ lock: established_project_writer_lock
49
+ exact_replay: no_op
50
+ term_identity: unicode_caseless_exact_no_normalization_global_canonical_and_variant_set
51
+ source_revalidation: safe_real_path_line_identity_and_sha256
52
+ docs_mapping_mutation: forbidden
53
+ excluded_behavior: [consumer_lookup, consumer_precedence, consumer_semantic_review, personal_profile_mutation]
54
+
55
+ CONSUMER_ACQUISITION:
56
+ implementation: active
57
+ authority: references/artifacts/glossary-entry-contract.yaml#consumer_boundary.acquisition
58
+ runtime: packages/cli/src/analytics/glossaryInputAcquisition.ts#acquireGlossaryInputs
59
+ availability: [absent, valid_empty, valid_present, malformed, unreadable, ambiguous, over_bound]
60
+ output_entry_fields: [term, meaning, owner]
61
+ source_output_fields: [owner, availability, entries, gap_proving, diagnostic]
62
+ raw_byte_bound: 65536
63
+ entry_bound: 100
64
+ utf8_decoding: fatal
65
+ project_read: descriptor_bound_no_follow_with_parent_identity_checks
66
+ mutation: forbidden
67
+ consumer_semantics: [project_precedence, proven_gap_personal_fallback, divergent_tension, host_review]
68
+
69
+ ADVICE_RESOLUTION:
70
+ implementation: active
71
+ authority: references/artifacts/glossary-entry-contract.yaml#consumer_boundary.advice_resolution
72
+ runtime: packages/cli/src/analytics/glossaryAdviceResolution.ts#resolveGlossaryAdvice
73
+ input: [requested_term, acquired, host_review]
74
+ output_schema_version: agentera.glossaryAdvice.v1
75
+ mutation: forbidden
76
+ capability_integrations: [discuss, plan, build, prime]
77
+
78
+ CONFIRMED_VARIANT_GUARD:
79
+ authority: references/artifacts/glossary-entry-contract.yaml#ownership_contracts.project.confirmed_variant_guard
80
+ implementation: active
81
+ validation_surface: packages/cli/test/cli/v1LegacyCruft.test.ts
82
+ consumer_lookup: forbidden