agentera 3.0.0-dev.23 → 3.0.0-dev.25

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 (237) hide show
  1. package/README.md +2 -2
  2. package/bundle/CHANGELOG.md +13 -5
  3. package/bundle/README.md +9 -8
  4. package/bundle/UPGRADE.md +10 -24
  5. package/bundle/agents/openai.yaml +1 -1
  6. package/bundle/references/adapters/package-manifest-interface-model.yaml +2 -0
  7. package/bundle/references/adapters/package-registry.yaml +9 -0
  8. package/bundle/references/artifacts/state-storage-authority.yaml +733 -12
  9. package/bundle/references/cli/agent-ready-state-contract.yaml +3 -3
  10. package/bundle/references/cli/prime-consumer-compatibility.yaml +2 -2
  11. package/bundle/references/cli/update-channels.yaml +4 -2
  12. package/bundle/references/cli/vocabulary.md +4 -4
  13. package/bundle/skills/agentera/SKILL.md +28 -14
  14. package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +12 -12
  15. package/bundle/skills/agentera/capabilities/audit/schemas/validation.yaml +2 -2
  16. package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +12 -12
  17. package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +8 -8
  18. package/bundle/skills/agentera/capabilities/design/schemas/artifacts.yaml +6 -6
  19. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +7 -7
  20. package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +12 -12
  21. package/bundle/skills/agentera/capabilities/optimize/schemas/artifacts.yaml +9 -9
  22. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +11 -11
  23. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +9 -9
  24. package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +2 -2
  25. package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +3 -3
  26. package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +11 -11
  27. package/bundle/skills/agentera/capabilities/vision/schemas/artifacts.yaml +8 -8
  28. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +15 -2
  29. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +4 -1
  30. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +21 -21
  31. package/bundle/skills/agentera/schemas/artifacts/health.yaml +15 -2
  32. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +36 -15
  33. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +15 -2
  34. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +4 -4
  35. package/dist/capabilities/audit/instructions.js +13 -1
  36. package/dist/capabilities/audit/instructions.js.map +1 -1
  37. package/dist/capabilities/build/instructions.js +14 -1
  38. package/dist/capabilities/build/instructions.js.map +1 -1
  39. package/dist/capabilities/discuss/instructions.js +11 -1
  40. package/dist/capabilities/discuss/instructions.js.map +1 -1
  41. package/dist/capabilities/document/instructions.js +9 -1
  42. package/dist/capabilities/document/instructions.js.map +1 -1
  43. package/dist/capabilities/index.js +7 -7
  44. package/dist/capabilities/index.js.map +1 -1
  45. package/dist/capabilities/optimize/instructions.js +10 -1
  46. package/dist/capabilities/optimize/instructions.js.map +1 -1
  47. package/dist/capabilities/orchestrate/instructions.js +13 -2
  48. package/dist/capabilities/orchestrate/instructions.js.map +1 -1
  49. package/dist/capabilities/plan/instructions.js +10 -1
  50. package/dist/capabilities/plan/instructions.js.map +1 -1
  51. package/dist/cli/capabilityContext/contract.js +10 -15
  52. package/dist/cli/capabilityContext/contract.js.map +1 -1
  53. package/dist/cli/capabilityContext/evidence.js +3 -3
  54. package/dist/cli/capabilityContext/evidence.js.map +1 -1
  55. package/dist/cli/capabilityContext/planState.js +5 -5
  56. package/dist/cli/capabilityContext/planState.js.map +1 -1
  57. package/dist/cli/capabilityContext/progress.js +1 -1
  58. package/dist/cli/capabilityContext/progress.js.map +1 -1
  59. package/dist/cli/capabilityContext/shared.js +8 -2
  60. package/dist/cli/capabilityContext/shared.js.map +1 -1
  61. package/dist/cli/capabilityContext/slim.js +2 -1
  62. package/dist/cli/capabilityContext/slim.js.map +1 -1
  63. package/dist/cli/capabilityContext/startup.js +18 -7
  64. package/dist/cli/capabilityContext/startup.js.map +1 -1
  65. package/dist/cli/capabilityContext/types.js +4 -4
  66. package/dist/cli/capabilityContext/types.js.map +1 -1
  67. package/dist/cli/commands/backfill.js +39 -2
  68. package/dist/cli/commands/backfill.js.map +1 -1
  69. package/dist/cli/commands/durability.js +34 -1
  70. package/dist/cli/commands/durability.js.map +1 -1
  71. package/dist/cli/commands/entityMigrate.js +128 -0
  72. package/dist/cli/commands/entityMigrate.js.map +1 -0
  73. package/dist/cli/commands/migrate.js +4 -0
  74. package/dist/cli/commands/migrate.js.map +1 -1
  75. package/dist/cli/commands/prime/briefOrientation.js +5 -3
  76. package/dist/cli/commands/prime/briefOrientation.js.map +1 -1
  77. package/dist/cli/commands/prime/collectEntityOrientation.js +148 -0
  78. package/dist/cli/commands/prime/collectEntityOrientation.js.map +1 -0
  79. package/dist/cli/commands/prime/collectOrientationState.js +21 -27
  80. package/dist/cli/commands/prime/collectOrientationState.js.map +1 -1
  81. package/dist/cli/commands/prime/orientationOutput.js +1 -1
  82. package/dist/cli/commands/prime/orientationOutput.js.map +1 -1
  83. package/dist/cli/commands/prime.js +2 -0
  84. package/dist/cli/commands/prime.js.map +1 -1
  85. package/dist/cli/commands/query.js +41 -15
  86. package/dist/cli/commands/query.js.map +1 -1
  87. package/dist/cli/commands/schema.js +7 -5
  88. package/dist/cli/commands/schema.js.map +1 -1
  89. package/dist/cli/commands/state/decisions.js +13 -0
  90. package/dist/cli/commands/state/decisions.js.map +1 -1
  91. package/dist/cli/commands/state/docs.js +38 -0
  92. package/dist/cli/commands/state/docs.js.map +1 -1
  93. package/dist/cli/commands/state/experimentRecords.js +82 -0
  94. package/dist/cli/commands/state/experimentRecords.js.map +1 -1
  95. package/dist/cli/commands/state/experiments.js +13 -0
  96. package/dist/cli/commands/state/experiments.js.map +1 -1
  97. package/dist/cli/commands/state/get.js +69 -2
  98. package/dist/cli/commands/state/get.js.map +1 -1
  99. package/dist/cli/commands/state/health.js +13 -0
  100. package/dist/cli/commands/state/health.js.map +1 -1
  101. package/dist/cli/commands/state/index.js +9 -0
  102. package/dist/cli/commands/state/index.js.map +1 -1
  103. package/dist/cli/commands/state/list.js +40 -7
  104. package/dist/cli/commands/state/list.js.map +1 -1
  105. package/dist/cli/commands/state/objective.js +24 -0
  106. package/dist/cli/commands/state/objective.js.map +1 -1
  107. package/dist/cli/commands/state/plan.js +14 -0
  108. package/dist/cli/commands/state/plan.js.map +1 -1
  109. package/dist/cli/commands/state/planTasks.js +38 -25
  110. package/dist/cli/commands/state/planTasks.js.map +1 -1
  111. package/dist/cli/commands/state/plans.js +32 -16
  112. package/dist/cli/commands/state/plans.js.map +1 -1
  113. package/dist/cli/commands/state/progress.js +12 -0
  114. package/dist/cli/commands/state/progress.js.map +1 -1
  115. package/dist/cli/commands/state/shared.js.map +1 -1
  116. package/dist/cli/commands/state/todo.js +30 -0
  117. package/dist/cli/commands/state/todo.js.map +1 -1
  118. package/dist/cli/commands/state/write.js +79 -4
  119. package/dist/cli/commands/state/write.js.map +1 -1
  120. package/dist/cli/commands/upgrade.js +65 -31
  121. package/dist/cli/commands/upgrade.js.map +1 -1
  122. package/dist/cli/commands/upgradeVerify.js +46 -14
  123. package/dist/cli/commands/upgradeVerify.js.map +1 -1
  124. package/dist/cli/commands/validate.js +65 -0
  125. package/dist/cli/commands/validate.js.map +1 -1
  126. package/dist/cli/dispatch/check.js +8 -1
  127. package/dist/cli/dispatch/check.js.map +1 -1
  128. package/dist/cli/dispatch/index.js +6 -0
  129. package/dist/cli/dispatch/index.js.map +1 -1
  130. package/dist/cli/dispatch/lifecycle.js +2 -5
  131. package/dist/cli/dispatch/lifecycle.js.map +1 -1
  132. package/dist/cli/dispatch/prime.js +15 -0
  133. package/dist/cli/dispatch/prime.js.map +1 -1
  134. package/dist/cli/dispatch/state.js +7 -1
  135. package/dist/cli/dispatch/state.js.map +1 -1
  136. package/dist/cli/help.js +78 -20
  137. package/dist/cli/help.js.map +1 -1
  138. package/dist/cli/migrationRequired.js +84 -0
  139. package/dist/cli/migrationRequired.js.map +1 -0
  140. package/dist/cli/orientation/attention.js +2 -2
  141. package/dist/cli/orientation/attention.js.map +1 -1
  142. package/dist/cli/orientation.js +10 -7
  143. package/dist/cli/orientation.js.map +1 -1
  144. package/dist/cli/planArtifacts.js +192 -42
  145. package/dist/cli/planArtifacts.js.map +1 -1
  146. package/dist/cli/prime-blob.js +5 -5
  147. package/dist/cli/prime-blob.js.map +1 -1
  148. package/dist/cli/stateQuery.js +5 -5
  149. package/dist/cli/stateQuery.js.map +1 -1
  150. package/dist/hooks/compaction/status.js +25 -1
  151. package/dist/hooks/compaction/status.js.map +1 -1
  152. package/dist/hooks/cursorSessionStart.js +6 -0
  153. package/dist/hooks/cursorSessionStart.js.map +1 -1
  154. package/dist/hooks/sessionStart.js +62 -0
  155. package/dist/hooks/sessionStart.js.map +1 -1
  156. package/dist/registries/artifactRegistry.js +23 -14
  157. package/dist/registries/artifactRegistry.js.map +1 -1
  158. package/dist/registries/packageRegistry.js +1 -1
  159. package/dist/registries/packageRegistry.js.map +1 -1
  160. package/dist/state/archivePublication.js +3 -2
  161. package/dist/state/archivePublication.js.map +1 -1
  162. package/dist/state/decisionEntities.js +279 -0
  163. package/dist/state/decisionEntities.js.map +1 -0
  164. package/dist/state/decisionOverlay.js +2 -2
  165. package/dist/state/decisionOverlay.js.map +1 -1
  166. package/dist/state/decisionRevision.js +44 -34
  167. package/dist/state/decisionRevision.js.map +1 -1
  168. package/dist/state/directRetrieval.js.map +1 -1
  169. package/dist/state/durability.js +92 -1
  170. package/dist/state/durability.js.map +1 -1
  171. package/dist/state/entityCutover.js +390 -0
  172. package/dist/state/entityCutover.js.map +1 -0
  173. package/dist/state/entityCutoverGit.js +128 -0
  174. package/dist/state/entityCutoverGit.js.map +1 -0
  175. package/dist/state/entityMigrationPreview.js +803 -0
  176. package/dist/state/entityMigrationPreview.js.map +1 -0
  177. package/dist/state/entityPublicationContext.js +612 -0
  178. package/dist/state/entityPublicationContext.js.map +1 -0
  179. package/dist/state/entityStorage.js +807 -0
  180. package/dist/state/entityStorage.js.map +1 -0
  181. package/dist/state/experimentIdentity.js +23 -11
  182. package/dist/state/experimentIdentity.js.map +1 -1
  183. package/dist/state/gitBackfill.js.map +1 -1
  184. package/dist/state/healthEntities.js +227 -0
  185. package/dist/state/healthEntities.js.map +1 -0
  186. package/dist/state/healthEntityValidation.js +6 -0
  187. package/dist/state/healthEntityValidation.js.map +1 -0
  188. package/dist/state/legacyEntityCutoverEvidence.js +66 -0
  189. package/dist/state/legacyEntityCutoverEvidence.js.map +1 -0
  190. package/dist/state/listRetrieval.js.map +1 -1
  191. package/dist/state/objectiveExperimentEntities.js +321 -0
  192. package/dist/state/objectiveExperimentEntities.js.map +1 -0
  193. package/dist/state/planEntities.js +358 -0
  194. package/dist/state/planEntities.js.map +1 -0
  195. package/dist/state/progressEntities.js +382 -0
  196. package/dist/state/progressEntities.js.map +1 -0
  197. package/dist/state/projectRoot.js +63 -0
  198. package/dist/state/projectRoot.js.map +1 -0
  199. package/dist/state/projectionRecovery.js +458 -0
  200. package/dist/state/projectionRecovery.js.map +1 -0
  201. package/dist/state/retrievalAuthority.js +13 -6
  202. package/dist/state/retrievalAuthority.js.map +1 -1
  203. package/dist/state/safeProjectFile.js +153 -0
  204. package/dist/state/safeProjectFile.js.map +1 -0
  205. package/dist/state/stateMode.js +76 -0
  206. package/dist/state/stateMode.js.map +1 -0
  207. package/dist/state/todoDocsEntities.js +223 -0
  208. package/dist/state/todoDocsEntities.js.map +1 -0
  209. package/dist/state/todoDocsEntityValidation.js +26 -0
  210. package/dist/state/todoDocsEntityValidation.js.map +1 -0
  211. package/dist/state/write/candidateMutation.js +5 -55
  212. package/dist/state/write/candidateMutation.js.map +1 -1
  213. package/dist/state/write/explain.js +127 -28
  214. package/dist/state/write/explain.js.map +1 -1
  215. package/dist/state/write/lock.js +794 -87
  216. package/dist/state/write/lock.js.map +1 -1
  217. package/dist/state/write/mutation.js +5 -2
  218. package/dist/state/write/mutation.js.map +1 -1
  219. package/dist/state/write/operations.js +52 -7
  220. package/dist/state/write/operations.js.map +1 -1
  221. package/dist/state/write/planEvaluation.js +107 -0
  222. package/dist/state/write/planEvaluation.js.map +1 -0
  223. package/dist/state/write/planPublication.js +11 -55
  224. package/dist/state/write/planPublication.js.map +1 -1
  225. package/dist/state/write/transaction.js +88 -1
  226. package/dist/state/write/transaction.js.map +1 -1
  227. package/dist/upgrade/compatibility.js +4 -4
  228. package/dist/upgrade/compatibility.js.map +1 -1
  229. package/dist/upgrade/migrateArtifactsV2ToV3.js +13 -14
  230. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
  231. package/dist/upgrade/upgradeOrchestrator.js +126 -23
  232. package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
  233. package/dist/validate/crossCapability.js +2 -2
  234. package/dist/validate/crossCapability.js.map +1 -1
  235. package/package.json +3 -3
  236. package/dist/upgrade/upgradeSnapshot.js +0 -93
  237. package/dist/upgrade/upgradeSnapshot.js.map +0 -1
@@ -332,7 +332,7 @@ structured_output:
332
332
  derives from the same `_decision_context_entry` and
333
333
  `_decision_satisfaction_context` semantics as bounded `agentera state
334
334
  decisions list --limit 20 --format json` plus exact `state decisions
335
- get --number N`, never infers satisfaction, never mutates `.agentera/decisions.yaml`,
335
+ get --id ID`, never infers satisfaction, never mutates decision entities,
336
336
  keeps top-level attention bounded, and must not change `next_action`
337
337
  routing priority.
338
338
  evidence_context_target_contract: evidence_context_target_contract
@@ -491,13 +491,13 @@ evidence_context_target_contract:
491
491
  fallback: none when complete_for_plan_artifact is true
492
492
  - family: progress_verification
493
493
  source: agentera state progress list --limit 20 --format json latest verification
494
- fallback: agentera state progress get --number N --format json
494
+ fallback: agentera state progress get --id ID --format json
495
495
  - family: docs_state
496
496
  source: agentera state docs --format json summary and entries
497
497
  fallback: agentera state docs --format json
498
498
  - family: health_state
499
499
  source: agentera state health list --limit 20 --format json latest audit
500
- fallback: agentera state health get --number N --format json
500
+ fallback: agentera state health get --id ID --format json
501
501
  - family: todo_state
502
502
  source: agentera state todo --format json known issues and source-contract TODOs
503
503
  fallback: agentera state todo --format json
@@ -40,7 +40,7 @@ consumers:
40
40
  - plan.first_pending.name
41
41
  - progress
42
42
  - progress.latest
43
- - progress.latest.number
43
+ - progress.latest.id
44
44
  - progress.latest.what
45
45
  - progress.latest.next
46
46
  - next_action
@@ -581,7 +581,7 @@ fixtures:
581
581
  present_when: health.exists
582
582
  - path: plan.first_pending.name
583
583
  present_when: plan.first_pending
584
- - path: progress.latest.number
584
+ - path: progress.latest.id
585
585
  present_when: progress.latest
586
586
  - path: progress.latest.what
587
587
  present_when: progress.latest
@@ -45,7 +45,8 @@ channels:
45
45
  supported 2.x line until you explicitly opt in through npm.
46
46
  guide_url: >-
47
47
  https://github.com/jgabor/agentera/blob/main/UPGRADE.md#upgrading-v2-to-v3-development-channel-irreversible
48
- preview_command: npx -y agentera@next upgrade --dry-run --channel development
48
+ preview_command: npx -y agentera@next upgrade --channel development --project "$PWD" --dry-run
49
+ apply_command: npx -y agentera@next upgrade --channel development --project "$PWD" --yes
49
50
  irreversible_advisory: >-
50
51
  Forward migration to the successor line is one-way; return to the prior
51
52
  Python support line is permanently unsupported.
@@ -75,7 +76,8 @@ channels:
75
76
  The v3 successor line is npm-only; opt in to v2→v3 migration through npx @next.
76
77
  guide_url: >-
77
78
  https://github.com/jgabor/agentera/blob/main/UPGRADE.md#upgrading-v2-to-v3-development-channel-irreversible
78
- preview_command: npx -y agentera@next upgrade --dry-run --channel development
79
+ preview_command: npx -y agentera@next upgrade --channel development --project "$PWD" --dry-run
80
+ apply_command: npx -y agentera@next upgrade --channel development --project "$PWD" --yes
79
81
  irreversible_advisory: >-
80
82
  Forward migration to the v3 line is one-way; return to the prior
81
83
  Python support line is permanently unsupported.
@@ -16,7 +16,7 @@ included when they shape cross-suite usage.
16
16
  | `skills/agentera/protocol.yaml` | Confidence, severity, decision labels, exit signals, visual tokens, glyphs, and phases. |
17
17
  | `skills/agentera/capability_schema_contract.yaml` | Capability schema structure, required groups, priorities, and primitive-reference fields. |
18
18
  | `skills/agentera/schemas/artifacts/*.yaml` | Artifact field grammar, status values, path contracts, and validation rules. |
19
- | `references/artifacts/artifact-registry-interface-model.yaml` | Artifact identity facts: `artifact_id`, display name, default path, producers, consumers, type, scope. |
19
+ | `references/artifacts/artifact-registry-interface-model.yaml` | Internal artifact registry facts. Public state envelopes use `artifact` for the family and `id` for the stable public identifier. |
20
20
  | `references/cli/app-lifecycle-vocabulary.yaml` | App lifecycle canonical statuses, deprecated aliases, operation verbs, status concepts, and consumer ownership boundaries. |
21
21
  | `references/cli/update-channels.yaml` | Stable and development update channels, dist-tag/git resolution, default channel, and override keys. |
22
22
  | `references/cli/bundle-skill-vocabulary.yaml` | Canonical concepts, compatibility boundaries, and classification rules for `bundle` and `SKILL.md` usage. |
@@ -215,11 +215,11 @@ ambiguous-term sweep remain separate follow-up work.
215
215
  | Severity band policy | TODO.md severity bands (⇶ Critical, ⇉ Degraded, → Normal, ⇢ Annoying) may be header-only when they have no open work; open items use `- [ ] [type:train]` only. Authority: `skills/agentera/schemas/artifacts/todo.yaml` CONVENTION TC5; executable rule in `packages/cli/src/hooks/validateArtifact/markdown.ts` `validateMdItems`. |
216
216
  | Agent-facing artifact | A structured YAML artifact under `.agentera/`, such as `.agentera/progress.yaml`. |
217
217
  | Global artifact | A user-level artifact outside a project, such as `PROFILE.md` or `USAGE.md`. |
218
- | Canonical artifact name | Protocol `artifact_id` such as `plan`, `progress`, or `docs`; human-facing Markdown filenames such as `TODO.md` are `display_name` values, not protocol identity. |
218
+ | Canonical artifact name | Public `artifact` value such as `plan`, `progress`, or `docs`; human-facing Markdown filenames such as `TODO.md` are display labels, not protocol identity. |
219
219
  | Resolved artifact path | The actual path after consulting `.agentera/docs.yaml` mapping or the default layout. |
220
- | Artifact mapping | `.agentera/docs.yaml` rows that map `artifact_id` values to project-local paths and producers. |
220
+ | Artifact mapping | `.agentera/docs.yaml` rows that map `artifact` values to project-local paths and producers. |
221
221
  | ArtifactRegistry | The registry interface model for artifact IDs, display names, default paths, producers, consumers, type, scope, and special cases. |
222
- | `artifact_id` | Machine identifier such as `progress`, `health`, `docs`, or `objective`. |
222
+ | `artifact` | Public artifact-family value such as `progress`, `health`, `docs`, or `objective`. Entity envelopes pair it with `id`, the stable public identifier whose grammar is owned by `references/artifacts/state-storage-authority.yaml`. |
223
223
  | `display_name` | Human-readable filename label such as `VISION.md` or `TODO.md`; registry-owned, not protocol identity. |
224
224
  | `default_path` | Registry-owned path used when no docs mapping overrides it. |
225
225
  | `local_role` | Capability relationship to an artifact: `produces`, `consumes`, or `produces_and_consumes`. |
@@ -57,6 +57,20 @@ For static routing guidance (agentera vs native tools):
57
57
  npx -y agentera prime --guidance
58
58
  ```
59
59
 
60
+ ### Upgrade from v2 to v3 development
61
+
62
+ The preview is optional. Apply is one full command:
63
+
64
+ ```bash
65
+ npx -y agentera@next upgrade --channel development --project "$PWD" --dry-run
66
+ npx -y agentera@next upgrade --channel development --project "$PWD" --yes
67
+ ```
68
+
69
+ Apply requires the complete v2 migration source to be tracked by Git and
70
+ unchanged at `HEAD`. The boundary is one-way: there is no rollback, restore,
71
+ non-Git, or partial cross-major workflow. Rerun the same apply command after an
72
+ interruption; recovery continues forward internally.
73
+
60
74
  ---
61
75
 
62
76
  ## Routing
@@ -145,11 +159,11 @@ Proceed/Cancel handoff.
145
159
 
146
160
  ## Artifact writes
147
161
 
148
- The CLI state writer is the canonical mutation path for `progress`, `decisions`,
149
- `plan`, and `health`. Do not hand-edit those artifacts during normal capability
150
- execution. The writer assigns numbers, validates schema fields, honors docs-mapped
151
- paths, serializes concurrent writes, compacts where required, and supports
152
- filesystem-safe previews.
162
+ The CLI state writer is the canonical mutation path for entity-backed state.
163
+ Every public record has `id` and `artifact`, lives in one writer-owned entity
164
+ file, and is retrieved through bounded `list` or exact `get --id` commands. Do
165
+ not edit `.agentera/entities/` directly. The writer assigns bare IDs, validates
166
+ records, publishes atomically, and supports filesystem-safe previews.
153
167
 
154
168
  Discover the live contract before constructing a write:
155
169
 
@@ -168,9 +182,10 @@ Common mutations:
168
182
 
169
183
  - `agentera state progress append ... --format json`
170
184
  - `agentera state decisions append ... --format json`
171
- - `agentera state decisions update --number N ... --format json`
185
+ - `agentera state decisions update --id ID ... --format json`
172
186
  - `agentera state plan create --input plan.yaml --format json`
173
- - `agentera state plan append|update|set-status|set-plan-status ... --format json`
187
+ - `agentera state plan update|set-status --id ID ... --format json`
188
+ - `agentera state plan set-plan-status --id ID ... --format json`
174
189
  - `agentera state plan archive --format json`
175
190
  - `agentera state health append --input audit.yaml --format json`
176
191
 
@@ -184,16 +199,15 @@ json` exposes the machine-readable writer operation matrix under
184
199
 
185
200
  ## Artifact path resolution
186
201
 
187
- The state writer resolves path mappings itself. Before directly reading or
188
- writing an artifact outside the writer contract, check if `.agentera/docs.yaml` exists.
189
- If it has an Artifact Mapping section, use the path specified for each canonical
190
- filename. If `.agentera/docs.yaml` doesn't exist or has no mapping for a given
191
- artifact, use the default layout:
202
+ The state writer resolves entity storage itself. Before directly reading or
203
+ writing an intentional singleton outside the writer contract, check whether
204
+ `.agentera/docs.yaml` maps it to another path. If no mapping exists, use the
205
+ default singleton layout:
192
206
 
193
207
  - Human-facing artifacts at the project root: `TODO.md`, `CHANGELOG.md`, `DESIGN.md`
194
- - Agent-facing artifacts in `.agentera/` as YAML: `progress.yaml`, `decisions.yaml`, `health.yaml`, `plan.yaml`, `docs.yaml`, `vision.yaml`, `objective.yaml`, `experiments.yaml`
208
+ - Agent-facing singletons: `.agentera/docs.yaml` and `.agentera/vision.yaml`
195
209
 
196
- Do not silently bypass the CLI and read raw `.agentera/*.yaml` files first. If
210
+ Do not silently bypass the CLI and read raw entity files first. If
197
211
  CLI state declares complete coverage, do not perform defensive raw artifact
198
212
  reads. Use raw artifact reads only as a last-resort fallback after CLI
199
213
  fallback commands fail or declare incomplete state.
@@ -1,7 +1,7 @@
1
1
  ARTIFACTS:
2
2
  1:
3
3
  id: A1
4
- artifact_id: health
4
+ artifact: health
5
5
  local_role: produces_and_consumes
6
6
  description: >-
7
7
  Codebase health assessment with findings, dimension grades, and trajectory.
@@ -9,11 +9,11 @@ ARTIFACTS:
9
9
  severity and confidence scores, trend comparisons, and de facto
10
10
  architecture patterns. During evaluation startup, Audit consumes health
11
11
  state through CLI `evidence_context`, then bounded `agentera state health
12
- list --limit 20 --format json` and exact `state health get --number N`.
12
+ list --limit 20 --format json` and exact `state health get --id ID`.
13
13
  Raw health reads are diagnostic-only for corruption or CLI-defect investigation.
14
14
  2:
15
15
  id: A2
16
- artifact_id: vision
16
+ artifact: vision
17
17
  local_role: consumes
18
18
  description: >-
19
19
  Audit treats vision state as protected during evidence-context startup;
@@ -21,17 +21,17 @@ ARTIFACTS:
21
21
  instead of forcing a raw vision read.
22
22
  3:
23
23
  id: A3
24
- artifact_id: decisions
24
+ artifact: decisions
25
25
  local_role: consumes
26
26
  description: >-
27
27
  Audit consumes decision caveats through CLI `evidence_context`, then
28
28
  bounded `agentera state decisions list --limit 20 --format json` discovery
29
- and exact `state decisions get --number N` retrieval. Raw decision reads
29
+ and exact `state decisions get --id ID` retrieval. Raw decision reads
30
30
  are diagnostic-only for corruption or CLI-defect investigation. Compacted
31
31
  decision caveats must be preserved rather than reconstructed.
32
32
  4:
33
33
  id: A4
34
- artifact_id: todo
34
+ artifact: todo
35
35
  local_role: produces_and_consumes
36
36
  description: >-
37
37
  Audit reads this to avoid re-reporting known issues and writes to it
@@ -41,17 +41,17 @@ ARTIFACTS:
41
41
  for corruption or CLI-defect investigation.
42
42
  5:
43
43
  id: A5
44
- artifact_id: progress
44
+ artifact: progress
45
45
  local_role: consumes
46
46
  description: >-
47
47
  Audit consumes latest progress verification and progress caveats through
48
48
  CLI `evidence_context`, then bounded `agentera state progress list --limit
49
- 20 --format json` discovery and exact `state progress get --number N`
49
+ 20 --format json` discovery and exact `state progress get --id ID`
50
50
  retrieval. Raw progress reads are diagnostic-only for corruption or
51
51
  CLI-defect investigation.
52
52
  6:
53
53
  id: A6
54
- artifact_id: plan
54
+ artifact: plan
55
55
  local_role: consumes
56
56
  description: >-
57
57
  Audit consumes evaluation target and plan criteria through CLI
@@ -59,7 +59,7 @@ ARTIFACTS:
59
59
  still provides the artifact-current-state baseline when that state is needed.
60
60
  7:
61
61
  id: A7
62
- artifact_id: design
62
+ artifact: design
63
63
  local_role: consumes
64
64
  description: >-
65
65
  Audit treats design state as optional during evidence-context startup;
@@ -67,7 +67,7 @@ ARTIFACTS:
67
67
  diagnostic-only raw design read.
68
68
  8:
69
69
  id: A8
70
- artifact_id: docs
70
+ artifact: docs
71
71
  local_role: consumes
72
72
  description: >-
73
73
  Audit reads this first to resolve project-local artifact mappings
@@ -76,7 +76,7 @@ ARTIFACTS:
76
76
  CLI `evidence_context` before any diagnostic-only raw docs read.
77
77
  9:
78
78
  id: A9
79
- artifact_id: profile
79
+ artifact: profile
80
80
  local_role: consumes
81
81
  description: >-
82
82
  Audit consumes profile status and stale-profile caveats through CLI
@@ -24,8 +24,8 @@ VALIDATION:
24
24
  id: V3
25
25
  rule: decisions_respected
26
26
  description: >-
27
- Findings that contradict deliberate decisions documented in
28
- .agentera/decisions.yaml MUST be discarded or downgraded to info
27
+ Findings that contradict deliberate decisions returned by the bounded
28
+ decisions entity view MUST be discarded or downgraded to info
29
29
  (SF3). A deliberate decision is not a finding; it is an
30
30
  implementation of that decision.
31
31
  severity: critical
@@ -1,7 +1,7 @@
1
1
  ARTIFACTS:
2
2
  1:
3
3
  id: A1
4
- artifact_id: vision
4
+ artifact: vision
5
5
  local_role: produces_and_consumes
6
6
  description: >-
7
7
  Build consumes this through CLI execution_context caveats or explicit
@@ -9,7 +9,7 @@ ARTIFACTS:
9
9
  during vision bootstrap.
10
10
  2:
11
11
  id: A2
12
- artifact_id: todo
12
+ artifact: todo
13
13
  local_role: produces_and_consumes
14
14
  description: >-
15
15
  Build consumes TODO state from execution_context and included status state
@@ -17,7 +17,7 @@ ARTIFACTS:
17
17
  entries. Severity classified per protocol SI1-SI4.
18
18
  3:
19
19
  id: A3
20
- artifact_id: changelog
20
+ artifact: changelog
21
21
  local_role: produces_and_consumes
22
22
  description: >-
23
23
  Build consumes changelog boundary from execution_context or the listed
@@ -25,27 +25,27 @@ ARTIFACTS:
25
25
  [Unreleased] based on commit type and promotes on version bumps.
26
26
  4:
27
27
  id: A4
28
- artifact_id: progress
28
+ artifact: progress
29
29
  local_role: produces_and_consumes
30
30
  description: >-
31
31
  Operational cycle log. Build consumes latest progress evidence from
32
32
  execution_context first, then bounded `agentera state progress list --limit
33
- 20 --format json` discovery or exact `state progress get --number N`
33
+ 20 --format json` discovery or exact `state progress get --id ID`
34
34
  retrieval, and appends one entry per cycle with mandatory Verified field.
35
35
  Compacted by applying schema COMPACTION rules.
36
36
  5:
37
37
  id: A5
38
- artifact_id: health
38
+ artifact: health
39
39
  local_role: consumes
40
40
  description: >-
41
41
  Build consumes health state from execution_context and included status
42
42
  state before bounded `agentera state health list --limit 20 --format json`
43
- discovery or exact `state health get --number N` retrieval, focusing on
43
+ discovery or exact `state health get --id ID` retrieval, focusing on
44
44
  critical and degraded findings for work selection. Raw reads are
45
45
  diagnostic-only for corruption or CLI-defect investigation.
46
46
  6:
47
47
  id: A6
48
- artifact_id: decisions
48
+ artifact: decisions
49
49
  local_role: consumes
50
50
  description: >-
51
51
  Build consumes decision caveats and bounded list/get fallback commands from
@@ -54,7 +54,7 @@ ARTIFACTS:
54
54
  diagnostic-only for corruption or CLI-defect investigation.
55
55
  7:
56
56
  id: A7
57
- artifact_id: plan
57
+ artifact: plan
58
58
  local_role: produces_and_consumes
59
59
  description: >-
60
60
  Build consumes selected task, acceptance criteria, dependencies,
@@ -62,7 +62,7 @@ ARTIFACTS:
62
62
  direct plan reads, then updates task status and surprises during execution.
63
63
  8:
64
64
  id: A8
65
- artifact_id: profile
65
+ artifact: profile
66
66
  local_role: consumes
67
67
  description: >-
68
68
  Build consumes status profile summary first. Missing or stale profile state
@@ -70,14 +70,14 @@ ARTIFACTS:
70
70
  during normal startup.
71
71
  9:
72
72
  id: A9
73
- artifact_id: docs
73
+ artifact: docs
74
74
  local_role: consumes
75
75
  description: >-
76
76
  Build consumes artifact mappings and docs caveats from execution_context
77
77
  and included status docs state before direct docs reads.
78
78
  10:
79
79
  id: A10
80
- artifact_id: design
80
+ artifact: design
81
81
  local_role: consumes
82
82
  description: >-
83
83
  Build treats design state missing from execution_context as a caveat or
@@ -3,7 +3,7 @@ VALIDATION:
3
3
  id: V1
4
4
  rule: verified_field_mandatory
5
5
  description: >-
6
- Every progress.yaml cycle entry MUST have a verified field. The field
6
+ Every progress entity record MUST have a verified field. The field
7
7
  carries either observed output from the primary entrypoint, an allowlisted
8
8
  N/A tag, or a free-form rationale of at least 8 words.
9
9
  severity: critical
@@ -19,7 +19,7 @@ VALIDATION:
19
19
  an explicit user request.
20
20
  severity: critical
21
21
  checks:
22
- - "Only one cycle entry appended to PROGRESS.md per invocation"
22
+ - "Only one progress entity is appended per invocation"
23
23
  3:
24
24
  id: V3
25
25
  rule: no_remote_push
@@ -43,7 +43,7 @@ VALIDATION:
43
43
  id: V5
44
44
  rule: consecutive_failure_guard
45
45
  description: >-
46
- If the last 3 progress.yaml entries all record failed cycles, build
46
+ If the last 3 bounded progress records all report failed cycles, build
47
47
  MUST stop and surface the pattern to the user. Do not attempt a 4th
48
48
  consecutive cycle on the same failing problem.
49
49
  severity: critical
@@ -53,13 +53,13 @@ VALIDATION:
53
53
  id: V6
54
54
  rule: artifact_path_resolution
55
55
  description: >-
56
- Before reading or writing any artifact, check .agentera/docs.yaml for path
57
- overrides. If absent, use the default layout (TODO.md, CHANGELOG.md,
58
- and DESIGN.md at root; canonical VISION.md at .agentera/vision.yaml;
59
- other agent-facing artifacts as YAML in .agentera/).
56
+ Entity state MUST use exact/list CLI reads and typed writers discovered by
57
+ `agentera state <artifact> explain`. Check .agentera/docs.yaml only for
58
+ intentional singleton path overrides.
60
59
  severity: warning
61
60
  checks:
62
- - "docs.yaml checked before artifact access"
61
+ - "Entity files are not read or edited directly"
62
+ - "docs.yaml checked before singleton artifact access"
63
63
  7:
64
64
  id: V7
65
65
  rule: execution_context_first
@@ -1,7 +1,7 @@
1
1
  ARTIFACTS:
2
2
  1:
3
3
  id: A1
4
- artifact_id: design
4
+ artifact: design
5
5
  local_role: produces_and_consumes
6
6
  description: >-
7
7
  Visual identity system with design tokens, typography, colors,
@@ -9,35 +9,35 @@ ARTIFACTS:
9
9
  reads agent-readable YAML token blocks with HTML comment markers.
10
10
  2:
11
11
  id: A2
12
- artifact_id: vision
12
+ artifact: vision
13
13
  local_role: consumes
14
14
  description: >-
15
15
  Design reads the Identity section to propose visual tokens
16
16
  coherent with the declared verbal personality.
17
17
  3:
18
18
  id: A3
19
- artifact_id: progress
19
+ artifact: progress
20
20
  local_role: consumes
21
21
  description: >-
22
22
  Design reads this during refine mode to identify UI work and
23
23
  inline design decisions since the design system was written.
24
24
  4:
25
25
  id: A4
26
- artifact_id: todo
26
+ artifact: todo
27
27
  local_role: produces_and_consumes
28
28
  description: >-
29
29
  Design reads this to check for design-related issues and files
30
30
  code drift findings here during audit mode.
31
31
  5:
32
32
  id: A5
33
- artifact_id: docs
33
+ artifact: docs
34
34
  local_role: consumes
35
35
  description: >-
36
36
  Design reads this first to resolve project-local artifact mappings
37
37
  before accessing other artifacts.
38
38
  6:
39
39
  id: A6
40
- artifact_id: profile
40
+ artifact: profile
41
41
  local_role: consumes
42
42
  description: >-
43
43
  Design reads aesthetic preferences from the profile as defaults
@@ -1,12 +1,12 @@
1
1
  ARTIFACTS:
2
2
  1:
3
3
  id: A1
4
- artifact_id: decisions
4
+ artifact: decisions
5
5
  local_role: produces_and_consumes
6
6
  description: >-
7
7
  Reasoning trail with confidence labels. Discuss reads existing decisions
8
8
  through bounded `agentera state decisions list --limit 20 --format json`
9
- discovery plus exact `agentera state decisions get --number N --format json`
9
+ discovery plus exact `agentera state decisions get --id ID --format json`
10
10
  retrieval and its source_contract to avoid re-deliberation, and writes new decision entries with confidence
11
11
  (DL1 firm, DL2 provisional, DL3 exploratory). Compact older entries by
12
12
  applying schema COMPACTION rules; incomplete compacted entries are
@@ -14,7 +14,7 @@ ARTIFACTS:
14
14
  normal deliberation.
15
15
  2:
16
16
  id: A2
17
- artifact_id: vision
17
+ artifact: vision
18
18
  local_role: produces_and_consumes
19
19
  description: >-
20
20
  Discuss may update project direction only with explicit user
@@ -22,28 +22,28 @@ ARTIFACTS:
22
22
  context during deliberation.
23
23
  3:
24
24
  id: A3
25
- artifact_id: todo
25
+ artifact: todo
26
26
  local_role: produces_and_consumes
27
27
  description: >-
28
28
  Discuss may add tech debt items surfaced during deliberation only with
29
29
  explicit user confirmation. Severity per protocol SI1-SI4.
30
30
  4:
31
31
  id: A4
32
- artifact_id: objective
32
+ artifact: objective
33
33
  local_role: produces_and_consumes
34
34
  description: >-
35
35
  Discuss may write optimization decisions only with explicit user
36
36
  confirmation when a decision feeds into what to optimize.
37
37
  5:
38
38
  id: A5
39
- artifact_id: profile
39
+ artifact: profile
40
40
  local_role: consumes
41
41
  description: >-
42
42
  Discuss reads this at session start to acknowledge high-confidence
43
43
  entries and avoid re-deliberating settled ground.
44
44
  6:
45
45
  id: A6
46
- artifact_id: docs
46
+ artifact: docs
47
47
  local_role: consumes
48
48
  description: >-
49
49
  Discuss reads this first to resolve project-local artifact mappings.
@@ -1,7 +1,7 @@
1
1
  ARTIFACTS:
2
2
  1:
3
3
  id: A1
4
- artifact_id: docs
4
+ artifact: docs
5
5
  local_role: produces_and_consumes
6
6
  description: >-
7
7
  Documentation contract with conventions, artifact mapping, and
@@ -12,44 +12,44 @@ ARTIFACTS:
12
12
  raw reads are diagnostic-only for corruption or CLI-defect investigation.
13
13
  2:
14
14
  id: A2
15
- artifact_id: vision
15
+ artifact: vision
16
16
  local_role: consumes
17
17
  description: >-
18
18
  Document reads this to understand who the documentation is for
19
19
  and what tone to use.
20
20
  3:
21
21
  id: A3
22
- artifact_id: progress
22
+ artifact: progress
23
23
  local_role: consumes
24
24
  description: >-
25
25
  Document reads this during explore-and-generate mode to understand
26
26
  recent project context. During closeout, latest progress evidence and
27
27
  verification pointers are consumed through CLI `closeout_context`, then
28
28
  bounded `agentera state progress list --limit 20 --format json` discovery
29
- or exact `state progress get --number N` retrieval. Raw reads are
29
+ or exact `state progress get --id ID` retrieval. Raw reads are
30
30
  diagnostic-only for corruption or CLI-defect investigation.
31
31
  4:
32
32
  id: A4
33
- artifact_id: decisions
33
+ artifact: decisions
34
34
  local_role: consumes
35
35
  description: >-
36
36
  Document reads this during explore-and-generate mode for project
37
37
  context and decision awareness through bounded `agentera state decisions
38
38
  list --limit 20 --format json` discovery or exact `state decisions get
39
- --number N` retrieval. Raw reads are diagnostic-only for corruption or
39
+ --id ID` retrieval. Raw reads are diagnostic-only for corruption or
40
40
  CLI-defect investigation.
41
41
  5:
42
42
  id: A5
43
- artifact_id: health
43
+ artifact: health
44
44
  local_role: consumes
45
45
  description: >-
46
46
  Document reads this to discover documentation gaps surfaced during health
47
47
  audits through bounded `agentera state health list --limit 20 --format
48
- json` discovery or exact `state health get --number N` retrieval. Raw reads
48
+ json` discovery or exact `state health get --id ID` retrieval. Raw reads
49
49
  are diagnostic-only for corruption or CLI-defect investigation.
50
50
  6:
51
51
  id: A6
52
- artifact_id: todo
52
+ artifact: todo
53
53
  local_role: produces_and_consumes
54
54
  description: >-
55
55
  Document writes to this when code diverges from docs (per DTC,
@@ -58,21 +58,21 @@ ARTIFACTS:
58
58
  any diagnostic-only raw TODO read.
59
59
  7:
60
60
  id: A7
61
- artifact_id: design
61
+ artifact: design
62
62
  local_role: consumes
63
63
  description: >-
64
64
  Document reads this to respect the declared aesthetic and voice
65
65
  when generating user-facing documentation.
66
66
  8:
67
67
  id: A8
68
- artifact_id: profile
68
+ artifact: profile
69
69
  local_role: consumes
70
70
  description: >-
71
71
  Document reads this to calibrate documentation style preferences:
72
72
  detail level, tone, format.
73
73
  9:
74
74
  id: A9
75
- artifact_id: changelog
75
+ artifact: changelog
76
76
  local_role: consumes
77
77
  description: >-
78
78
  Document reads this during closeout synchronization through CLI