agentera 3.0.0-dev.27 → 3.0.0-dev.29

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/README.md +7 -5
  2. package/bundle/CHANGELOG.md +17 -2
  3. package/bundle/DESIGN.md +3 -7
  4. package/bundle/README.md +8 -10
  5. package/bundle/UPGRADE.md +60 -16
  6. package/bundle/fixtures/routing/hybrid-corpus.yaml +154 -0
  7. package/bundle/references/adapters/package-registry.yaml +2 -0
  8. package/bundle/references/adapters/package-surface-characterization.md +2 -3
  9. package/bundle/references/adapters/runtime-lifecycle-authority.yaml +2 -3
  10. package/bundle/references/adapters/runtime-retired-resources.yaml +78 -14
  11. package/bundle/references/analysis/benchmark.md +2 -9
  12. package/bundle/references/artifacts/state-storage-authority.yaml +308 -14
  13. package/bundle/references/cli/audience-namespace-cli-migration.yaml +1 -1
  14. package/bundle/references/cli/bundle-skill-vocabulary.yaml +1 -1
  15. package/bundle/references/cli/capability-instruction-contract.yaml +0 -3
  16. package/bundle/references/cli/capability-instruction-structure.md +2 -2
  17. package/bundle/references/cli/hybrid-route-contract.yaml +416 -0
  18. package/bundle/references/cli/prime-consumer-compatibility.yaml +12 -11
  19. package/bundle/references/cli/routing-execution-vocabulary.yaml +0 -4
  20. package/bundle/references/cli/routing-model.md +136 -91
  21. package/bundle/references/cli/trigger-schema-enrichment.md +50 -46
  22. package/bundle/references/cli/vocabulary.md +8 -11
  23. package/bundle/references/meta/documentation-inventory.md +1 -3
  24. package/bundle/skills/agentera/SKILL.md +50 -18
  25. package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +13 -35
  26. package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +14 -36
  27. package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +5 -34
  28. package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +6 -40
  29. package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +5 -34
  30. package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +4 -35
  31. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +10 -6
  32. package/bundle/skills/agentera/capabilities/orchestrate/schemas/exit.yaml +3 -2
  33. package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +5 -37
  34. package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +6 -5
  35. package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +8 -31
  36. package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +8 -37
  37. package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +5 -29
  38. package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +7 -47
  39. package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +7 -39
  40. package/bundle/skills/agentera/capability_schema_contract.yaml +29 -29
  41. package/bundle/skills/agentera/route-phrases.yaml +81 -0
  42. package/bundle/skills/agentera/schemas/artifacts/health.yaml +25 -7
  43. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +1 -2
  44. package/dist/capabilities/discuss/instructions.js +1 -1
  45. package/dist/capabilities/discuss/instructions.js.map +1 -1
  46. package/dist/capabilities/orchestrate/instructions.js +22 -2
  47. package/dist/capabilities/orchestrate/instructions.js.map +1 -1
  48. package/dist/capabilities/plan/instructions.js +1 -1
  49. package/dist/capabilities/plan/instructions.js.map +1 -1
  50. package/dist/cli/capabilityContext/evidence.js +1 -1
  51. package/dist/cli/capabilityContext/evidence.js.map +1 -1
  52. package/dist/cli/capabilityContext/startup.js +2 -0
  53. package/dist/cli/capabilityContext/startup.js.map +1 -1
  54. package/dist/cli/commands/entityMigrate.js +7 -3
  55. package/dist/cli/commands/entityMigrate.js.map +1 -1
  56. package/dist/cli/commands/prime/briefOrientation.js +10 -3
  57. package/dist/cli/commands/prime/briefOrientation.js.map +1 -1
  58. package/dist/cli/commands/prime/collectEntityOrientation.js +64 -4
  59. package/dist/cli/commands/prime/collectEntityOrientation.js.map +1 -1
  60. package/dist/cli/commands/prime/orientationOutput.js +41 -15
  61. package/dist/cli/commands/prime/orientationOutput.js.map +1 -1
  62. package/dist/cli/commands/prime.js +4 -3
  63. package/dist/cli/commands/prime.js.map +1 -1
  64. package/dist/cli/commands/route.js +142 -0
  65. package/dist/cli/commands/route.js.map +1 -0
  66. package/dist/cli/commands/schema.js +21 -23
  67. package/dist/cli/commands/schema.js.map +1 -1
  68. package/dist/cli/commands/state/write.js +19 -0
  69. package/dist/cli/commands/state/write.js.map +1 -1
  70. package/dist/cli/commands/upgrade.js +1 -1
  71. package/dist/cli/commands/upgrade.js.map +1 -1
  72. package/dist/cli/commands/validate.js +2 -119
  73. package/dist/cli/commands/validate.js.map +1 -1
  74. package/dist/cli/commands/verify.js +17 -1
  75. package/dist/cli/commands/verify.js.map +1 -1
  76. package/dist/cli/dispatch/check.js +2 -7
  77. package/dist/cli/dispatch/check.js.map +1 -1
  78. package/dist/cli/dispatch/index.js +18 -0
  79. package/dist/cli/dispatch/index.js.map +1 -1
  80. package/dist/cli/dispatch/lifecycle.js +7 -5
  81. package/dist/cli/dispatch/lifecycle.js.map +1 -1
  82. package/dist/cli/errors.js +2 -2
  83. package/dist/cli/errors.js.map +1 -1
  84. package/dist/cli/help.js +24 -5
  85. package/dist/cli/help.js.map +1 -1
  86. package/dist/cli/migrationRequired.js +1 -1
  87. package/dist/cli/migrationRequired.js.map +1 -1
  88. package/dist/eval/hybridRouteEvaluation.js +156 -0
  89. package/dist/eval/hybridRouteEvaluation.js.map +1 -0
  90. package/dist/registries/capabilityContract.js +5 -20
  91. package/dist/registries/capabilityContract.js.map +1 -1
  92. package/dist/registries/hybridRoute.js +203 -0
  93. package/dist/registries/hybridRoute.js.map +1 -0
  94. package/dist/registries/hybridRouteReceipt.js +221 -0
  95. package/dist/registries/hybridRouteReceipt.js.map +1 -0
  96. package/dist/registries/triggerLoader.js +7 -43
  97. package/dist/registries/triggerLoader.js.map +1 -1
  98. package/dist/release/releaseMetadata.js +2 -0
  99. package/dist/release/releaseMetadata.js.map +1 -1
  100. package/dist/runtime/lifecycleAuthority.js +10 -11
  101. package/dist/runtime/lifecycleAuthority.js.map +1 -1
  102. package/dist/runtime/nativeResourceCleanup.js +317 -0
  103. package/dist/runtime/nativeResourceCleanup.js.map +1 -0
  104. package/dist/setup/codex/cli.js +9 -40
  105. package/dist/setup/codex/cli.js.map +1 -1
  106. package/dist/setup/codex/configToml.js +2 -83
  107. package/dist/setup/codex/configToml.js.map +1 -1
  108. package/dist/setup/codex/constants.js +0 -15
  109. package/dist/setup/codex/constants.js.map +1 -1
  110. package/dist/setup/codex/state.js +2 -20
  111. package/dist/setup/codex/state.js.map +1 -1
  112. package/dist/setup/codex.js +2 -4
  113. package/dist/setup/codex.js.map +1 -1
  114. package/dist/state/archiveDiscovery.js +24 -35
  115. package/dist/state/archiveDiscovery.js.map +1 -1
  116. package/dist/state/canonicalMigrationRecord.js +37 -0
  117. package/dist/state/canonicalMigrationRecord.js.map +1 -0
  118. package/dist/state/decisionEntities.js +73 -33
  119. package/dist/state/decisionEntities.js.map +1 -1
  120. package/dist/state/decisionLegacyValidation.js +31 -0
  121. package/dist/state/decisionLegacyValidation.js.map +1 -1
  122. package/dist/state/decisionMigrationProvenance.js +117 -0
  123. package/dist/state/decisionMigrationProvenance.js.map +1 -0
  124. package/dist/state/durability.js +24 -5
  125. package/dist/state/durability.js.map +1 -1
  126. package/dist/state/entityCutover.js +2 -2
  127. package/dist/state/entityCutover.js.map +1 -1
  128. package/dist/state/entityMigrationCausality.js +99 -0
  129. package/dist/state/entityMigrationCausality.js.map +1 -0
  130. package/dist/state/entityMigrationPreview.js +138 -77
  131. package/dist/state/entityMigrationPreview.js.map +1 -1
  132. package/dist/state/entityStorage.js +59 -24
  133. package/dist/state/entityStorage.js.map +1 -1
  134. package/dist/state/healthEntities.js +69 -33
  135. package/dist/state/healthEntities.js.map +1 -1
  136. package/dist/state/healthEntityValidation.js +14 -1
  137. package/dist/state/healthEntityValidation.js.map +1 -1
  138. package/dist/state/legacySummaryRecord.js +7 -0
  139. package/dist/state/legacySummaryRecord.js.map +1 -0
  140. package/dist/state/listCursor.js +43 -0
  141. package/dist/state/listCursor.js.map +1 -0
  142. package/dist/state/migrationSourceBinding.js +29 -0
  143. package/dist/state/migrationSourceBinding.js.map +1 -0
  144. package/dist/state/progressEntities.js +35 -59
  145. package/dist/state/progressEntities.js.map +1 -1
  146. package/dist/state/retrievalAuthority.js +10 -0
  147. package/dist/state/retrievalAuthority.js.map +1 -1
  148. package/dist/state/summaryEntityRead.js +26 -0
  149. package/dist/state/summaryEntityRead.js.map +1 -0
  150. package/dist/state/summaryMigrationProvenance.js +67 -0
  151. package/dist/state/summaryMigrationProvenance.js.map +1 -0
  152. package/dist/state/summarySourceRowAuthority.js +37 -0
  153. package/dist/state/summarySourceRowAuthority.js.map +1 -0
  154. package/dist/state/write/explain.js +2 -1
  155. package/dist/state/write/explain.js.map +1 -1
  156. package/dist/upgrade/lifecycleUpgrade.js +14 -14
  157. package/dist/upgrade/lifecycleUpgrade.js.map +1 -1
  158. package/dist/upgrade/upgradeOrchestrator.js +12 -12
  159. package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
  160. package/dist/validate/capability.js +11 -2
  161. package/dist/validate/capability.js.map +1 -1
  162. package/package.json +2 -2
  163. package/bundle/references/analysis/analytics-boundary-proportional-2026-07-20.yaml +0 -74
  164. package/bundle/references/analysis/evidence/analytics-boundary-proportional-2026-07-20/source-focused-1.json.gz +0 -0
  165. package/bundle/references/analysis/evidence/analytics-boundary-proportional-2026-07-20/source-focused-2.json.gz +0 -0
  166. package/bundle/references/analysis/evidence/analytics-boundary-proportional-2026-07-20/source-focused-3.json.gz +0 -0
  167. package/bundle/references/analysis/evidence/migration-pagination-proportional-2026-07-20/source-focused-1.json.gz +0 -0
  168. package/bundle/references/analysis/evidence/migration-pagination-proportional-2026-07-20/source-focused-2.json.gz +0 -0
  169. package/bundle/references/analysis/evidence/migration-pagination-proportional-2026-07-20/source-focused-3.json.gz +0 -0
  170. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/precommit-cli-route.log.gz +0 -0
  171. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/precommit-cli.log.gz +0 -0
  172. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/precommit-documentation.log.gz +0 -0
  173. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/recompute.mjs +0 -98
  174. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/source-1.json.gz +0 -0
  175. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/source-2.json.gz +0 -0
  176. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/source-3.json.gz +0 -0
  177. package/bundle/references/analysis/migration-pagination-proportional-2026-07-20.yaml +0 -64
  178. package/bundle/references/analysis/verification-baseline-2026-07-20.yaml +0 -313
  179. package/bundle/references/analysis/verification-final-proof-2026-07-21.yaml +0 -340
  180. package/bundle/references/analysis/worker-policy-2026-07-21.yaml +0 -207
  181. package/bundle/skills/agentera/agents/audit.toml +0 -6
  182. package/bundle/skills/agentera/agents/build.toml +0 -6
  183. package/bundle/skills/agentera/agents/design.toml +0 -6
  184. package/bundle/skills/agentera/agents/discuss.toml +0 -6
  185. package/bundle/skills/agentera/agents/document.toml +0 -6
  186. package/bundle/skills/agentera/agents/optimize.toml +0 -6
  187. package/bundle/skills/agentera/agents/orchestrate.toml +0 -6
  188. package/bundle/skills/agentera/agents/plan.toml +0 -6
  189. package/bundle/skills/agentera/agents/profile.toml +0 -6
  190. package/bundle/skills/agentera/agents/research.toml +0 -6
  191. package/bundle/skills/agentera/agents/status.toml +0 -6
  192. package/bundle/skills/agentera/agents/vision.toml +0 -6
  193. package/dist/runtime/retiredRuntimeCleanup.js +0 -238
  194. package/dist/runtime/retiredRuntimeCleanup.js.map +0 -1
  195. package/dist/setup/codex/agents.js +0 -96
  196. package/dist/setup/codex/agents.js.map +0 -1
@@ -187,6 +187,27 @@ entity_target:
187
187
  mutation_after_snapshot: cursor_snapshot_unavailable
188
188
  omission: whole_entries_only_with_count_reason_continuation_and_exact_get
189
189
  scalar_truncation: forbidden
190
+ - boundary: progress_summary
191
+ artifact: progress
192
+ independently_mutable: false
193
+ relationships: []
194
+ implementation: implemented
195
+ publication: immutable
196
+ mutation: forbidden
197
+ record:
198
+ required_fields: [summary, migration_provenance]
199
+ required_paths: []
200
+ forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number]
201
+ canonical_metadata:
202
+ summary_migration_provenance:
203
+ path: record.migration_provenance
204
+ required_fields: [source_path, source_record_sha256]
205
+ additional_fields: forbidden
206
+ source_path: project-relative v2 aggregate source path
207
+ sources:
208
+ - path: .agentera/progress.yaml
209
+ collections: [cycles, archive]
210
+ source_row_provenance: entity_target.declared_compacted_summary_contract.source_row_provenance
190
211
  - boundary: decision
191
212
  artifact: decisions
192
213
  independently_mutable: true
@@ -197,6 +218,20 @@ entity_target:
197
218
  required_fields: [date, question, context, alternatives, choice, reasoning, confidence]
198
219
  required_paths: []
199
220
  forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number, satisfaction]
221
+ canonical_metadata:
222
+ migration_provenance:
223
+ applicability: inherited_unsupported_confidence_only
224
+ required_fields: [kind, source, source_path, source_record_sha256, confidence]
225
+ additional_fields: forbidden
226
+ kind: inherited_decision_confidence
227
+ sources: [current_projection, verified_archive]
228
+ semantics: >-
229
+ Cutover persists this envelope-level metadata only when an authority-backed
230
+ complete-record classifier proves that high, medium, or low confidence is
231
+ the source record's sole schema violation. confidence must match the
232
+ canonical record, source_path is project-relative, and source_record_sha256
233
+ binds the complete parsed source record before canonical alias removal.
234
+ Current confidence values and ordinary decision writes omit this metadata.
200
235
  retrieval:
201
236
  exact: agentera state decisions get --id ID --format json
202
237
  list: agentera state decisions list [--limit N] [--cursor TOKEN] --format json
@@ -219,6 +254,28 @@ entity_target:
219
254
  required_fields: [decision, state]
220
255
  required_paths: []
221
256
  forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number]
257
+ - boundary: decision_summary
258
+ artifact: decisions
259
+ independently_mutable: false
260
+ relationships: []
261
+ implementation: implemented
262
+ publication: immutable
263
+ mutation: forbidden
264
+ record:
265
+ required_fields: [summary, migration_provenance]
266
+ required_paths: []
267
+ forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number]
268
+ canonical_metadata:
269
+ summary_migration_provenance:
270
+ path: record.migration_provenance
271
+ required_fields: [source_path, source_record_sha256]
272
+ additional_fields: forbidden
273
+ source_path: project-relative v2 aggregate source path
274
+ sources:
275
+ - path: .agentera/decisions.yaml
276
+ collections: [decisions, archive]
277
+ source_row_provenance: entity_target.declared_compacted_summary_contract.source_row_provenance
278
+ satisfaction: optional_inline_read_only_source_retained_field
222
279
  - boundary: decision_revision
223
280
  artifact: decisions
224
281
  independently_mutable: true
@@ -241,10 +298,19 @@ entity_target:
241
298
  required_fields: [date, dimensions, findings_summary, trajectory, grades]
242
299
  required_paths: []
243
300
  forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number]
301
+ cli_owned_append_fields: [appended_at]
302
+ legacy_optional_fields: [appended_at]
303
+ field_contract:
304
+ appended_at:
305
+ format: canonical_utc_iso8601
306
+ assignment: cli_writer_at_append
307
+ compatibility: >-
308
+ Legacy canonical health audits omit appended_at and remain valid without
309
+ reconstructed chronology.
244
310
  retrieval:
245
311
  exact: agentera state health get --id ID --format json
246
312
  list: agentera state health list [--limit N] [--cursor TOKEN] --format json
247
- ordering: date_desc_then_id_asc
313
+ ordering: appended_at_desc_then_id_asc_then_legacy_date_desc_then_id_asc
248
314
  default_limit: 20
249
315
  maximum_limit: 100
250
316
  max_utf8_bytes: 32768
@@ -254,8 +320,29 @@ entity_target:
254
320
  scalar_truncation: forbidden
255
321
  repair: >-
256
322
  Canonical health audit entities are immutable and cannot be row-deduplicated.
257
- Malformed envelopes, duplicate IDs, or conflicting ownership fail before effects
258
- and recover through agentera check validate state; no repair event is fabricated.
323
+ Malformed envelopes, duplicate IDs, or conflicting ownership fail before effects
324
+ and recover through agentera check validate state; no repair event is fabricated.
325
+ - boundary: health_summary
326
+ artifact: health
327
+ independently_mutable: false
328
+ relationships: []
329
+ implementation: implemented
330
+ publication: immutable
331
+ mutation: forbidden
332
+ record:
333
+ required_fields: [summary, migration_provenance]
334
+ required_paths: []
335
+ forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number]
336
+ canonical_metadata:
337
+ summary_migration_provenance:
338
+ path: record.migration_provenance
339
+ required_fields: [source_path, source_record_sha256]
340
+ additional_fields: forbidden
341
+ source_path: project-relative v2 aggregate source path
342
+ sources:
343
+ - path: .agentera/health.yaml
344
+ collections: [audits, archive]
345
+ source_row_provenance: entity_target.declared_compacted_summary_contract.source_row_provenance
259
346
  - boundary: plan
260
347
  artifact: plan
261
348
  independently_mutable: true
@@ -453,13 +540,195 @@ entity_target:
453
540
  - all intentional_singletons
454
541
  - immutable historical prose and evidence, except structured references explicitly declared for rewrite
455
542
  - genuinely singleton editorial artifacts added by an authority amendment
543
+ declared_compacted_summary_contract:
544
+ status: implemented
545
+ activation: >-
546
+ The three summary boundaries are active entity and migration authority in
547
+ entity_target.entities. Ordinary summary readers and startup projection
548
+ expose retained degraded history without reconstructing missing detail.
549
+ runtime_boundary_source: entity_target.entities
550
+ runtime_exclusion: >-
551
+ No experiment_summary boundary is activated. Summary boundaries are
552
+ immutable/read-only and are not ordinary write targets.
553
+ source_scope:
554
+ included_artifacts: [progress, decisions, health]
555
+ excluded_artifacts:
556
+ - objective_experiments: protected v2 family; not a compacted-summary migration input
557
+ - runtime_local_session_state: runtime-local state is outside canonical project migration
558
+ - compacted_todo_rows: already satisfy the canonical TODO shape and are not remapped as summaries
559
+ authority_rule: >-
560
+ This implemented scope does not reconstruct Git history, normalize source
561
+ summaries, retain dual authority, or provide a repair or import command.
562
+ source_row_provenance:
563
+ semantic_id: v2_compacted_summary_physical_row.v1
564
+ status: implemented
565
+ accepted_parsed_row_values: [mapping, scalar_string]
566
+ normalization: >-
567
+ Preview normalizes either accepted parsed physical row value to canonical
568
+ retained summary content for matching and publication. A mapping retains
569
+ its source fields subject to canonical alias removal and declared metadata
570
+ injection; a scalar string becomes {summary: value}.
571
+ source_record_sha256:
572
+ format: lowercase_sha256_hex
573
+ input: >-
574
+ original parsed physical source row value, which may be a mapping or a
575
+ scalar string, before summary normalization, canonical alias removal, or
576
+ metadata injection
577
+ canonicalization: >-
578
+ SHA-256 of UTF-8 canonical JSON: recursively sort mapping keys, preserve
579
+ array order, serialize scalar strings with JSON.stringify, and emit no
580
+ insignificant whitespace.
581
+ diagnostics:
582
+ status: implemented
583
+ implementation: >-
584
+ Read-only migration preview classifies independent invalid source
585
+ identities as roots, then reports generated graph dependents separately.
586
+ Ordinary summary reads and startup do not expose these migration-only
587
+ fields.
588
+ counts:
589
+ blockers: total root_blockers plus dependent_blockers
590
+ root_blockers: independently invalid, ambiguous, conflicting, or unsupported source identities
591
+ dependent_blockers: >-
592
+ Downstream diagnostics caused by a named root blocker. Each dependent names
593
+ its root source identity and does not increase root corruption.
594
+ dependent_blocker_required_fields: [root_source_identity]
595
+ corruption_count: corrupt classification counts source roots only, never generated dependents
596
+ graph: >-
597
+ A resolved relationship to a root (including a chain) is a dependent
598
+ blocker. Missing references make their owning source a root. Cycles with
599
+ no source root choose their lexicographically first source identity as a
600
+ deterministic corrupt root; preview does not attempt graph recovery.
601
+ source_outcomes:
602
+ status: implemented
603
+ valid_compacted_summary:
604
+ outcome: ready_with_degraded_provenance
605
+ rule: >-
606
+ Map each valid supported v2 summary to its declared immutable summary
607
+ boundary, retain source fields and migration provenance, and never
608
+ reconstruct missing detail.
609
+ missing_detail_not_declared_summary:
610
+ outcome: blocked
611
+ rule: retain evidence and stop before publication; never infer omitted fields
612
+ inherited_confidence_only:
613
+ outcome: ready_with_legacy_caveat
614
+ rule: >-
615
+ Preserve an inherited full-decision high, medium, or low label exactly and
616
+ report its caveat. Only new or amended labels must use the current strict
617
+ vocabulary.
618
+ boundaries:
619
+ - boundary: progress_summary
620
+ artifact: progress
621
+ independently_mutable: false
622
+ implementation: implemented
623
+ publication: immutable
624
+ mutation: forbidden
625
+ canonical_representation: one_immutable_degraded_summary_entity_per_valid_v2_summary
626
+ relationships: []
627
+ record:
628
+ required_fields: [summary, migration_provenance]
629
+ additional_fields: source_retained_fields_plus_declared_metadata
630
+ declared_metadata_fields: [migration_provenance]
631
+ source_retained_fields: >-
632
+ Preserve every source-retained field in the canonical record except
633
+ public_schema.forbidden_canonical_aliases. migration_provenance is
634
+ declared canonical metadata, not a retained source field. Missing
635
+ full-detail fields remain absent; migration does not normalize or
636
+ reconstruct them.
637
+ forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number]
638
+ migration_provenance:
639
+ path: record.migration_provenance
640
+ required_fields: [source_path, source_record_sha256]
641
+ additional_fields: forbidden
642
+ source_path: project-relative v2 aggregate source path
643
+ source_row_provenance: entity_target.declared_compacted_summary_contract.source_row_provenance
644
+ retrieval:
645
+ exact: agentera state progress get --id ID --format json
646
+ list: agentera state progress list [--limit N] [--cursor TOKEN] --format json
647
+ detail_availability: summary
648
+ compatibility: degraded
649
+ caveats: required
650
+ ordering: full_timestamp_desc_then_id_asc_then_summary_id_asc
651
+ summary_ordering: canonical_id_asc_without_chronology_claim
652
+ mutation: read_only
653
+ - boundary: decision_summary
654
+ artifact: decisions
655
+ independently_mutable: false
656
+ implementation: implemented
657
+ publication: immutable
658
+ mutation: forbidden
659
+ canonical_representation: one_immutable_degraded_summary_entity_per_valid_v2_summary
660
+ relationships: []
661
+ record:
662
+ required_fields: [summary, migration_provenance]
663
+ additional_fields: source_retained_fields_plus_declared_metadata
664
+ declared_metadata_fields: [migration_provenance]
665
+ source_retained_fields: >-
666
+ Preserve every source-retained field in the canonical record except
667
+ public_schema.forbidden_canonical_aliases. migration_provenance is
668
+ declared canonical metadata, not a retained source field. Missing
669
+ full-detail fields remain absent; migration does not normalize or
670
+ reconstruct them.
671
+ forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number]
672
+ satisfaction: optional_inline_read_only_source_retained_field
673
+ satisfaction_rule: >-
674
+ Satisfaction may be absent. When retained, it remains inline and read-only;
675
+ a decision summary never creates or targets a decision_satisfaction entity.
676
+ migration_provenance:
677
+ path: record.migration_provenance
678
+ required_fields: [source_path, source_record_sha256]
679
+ additional_fields: forbidden
680
+ source_path: project-relative v2 aggregate source path
681
+ source_row_provenance: entity_target.declared_compacted_summary_contract.source_row_provenance
682
+ retrieval:
683
+ exact: agentera state decisions get --id ID --format json
684
+ list: agentera state decisions list [--limit N] [--cursor TOKEN] --format json
685
+ detail_availability: summary
686
+ compatibility: degraded
687
+ caveats: required
688
+ ordering: full_date_desc_then_id_asc_then_summary_id_asc
689
+ summary_ordering: canonical_id_asc_without_chronology_claim
690
+ mutation: read_only
691
+ - boundary: health_summary
692
+ artifact: health
693
+ independently_mutable: false
694
+ implementation: implemented
695
+ publication: immutable
696
+ mutation: forbidden
697
+ canonical_representation: one_immutable_degraded_summary_entity_per_valid_v2_summary
698
+ relationships: []
699
+ record:
700
+ required_fields: [summary, migration_provenance]
701
+ additional_fields: source_retained_fields_plus_declared_metadata
702
+ declared_metadata_fields: [migration_provenance]
703
+ source_retained_fields: >-
704
+ Preserve every source-retained field in the canonical record except
705
+ public_schema.forbidden_canonical_aliases. migration_provenance is
706
+ declared canonical metadata, not a retained source field. Missing
707
+ full-detail fields remain absent; migration does not normalize or
708
+ reconstruct them.
709
+ forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number]
710
+ migration_provenance:
711
+ path: record.migration_provenance
712
+ required_fields: [source_path, source_record_sha256]
713
+ additional_fields: forbidden
714
+ source_path: project-relative v2 aggregate source path
715
+ source_row_provenance: entity_target.declared_compacted_summary_contract.source_row_provenance
716
+ retrieval:
717
+ exact: agentera state health get --id ID --format json
718
+ list: agentera state health list [--limit N] [--cursor TOKEN] --format json
719
+ detail_availability: summary
720
+ compatibility: degraded
721
+ caveats: required
722
+ ordering: full_date_desc_then_id_asc_then_summary_id_asc
723
+ summary_ordering: canonical_id_asc_without_chronology_claim
724
+ mutation: read_only
456
725
  measurement_contract:
457
726
  status: implemented
458
727
  environment: Linux, Node.js 22 or newer, one cold CLI process per sample
459
728
  fixtures:
460
- small: 100 valid entities distributed across every declared entity boundary
461
- large: 1000 valid entities distributed across every declared entity boundary
462
- relationship_rule: every declared relationship has at least one valid fixture edge
729
+ small: 100 valid entities distributed across every active entity_target.entities boundary
730
+ large: 1000 valid entities distributed across every active entity_target.entities boundary
731
+ relationship_rule: every active entity_target.relationships declaration has at least one valid fixture edge
463
732
  sampling:
464
733
  repetitions: 5
465
734
  pass_rule: every repetition stays within every applicable limit
@@ -594,7 +863,7 @@ entity_migration:
594
863
  .agentera/archive/recovery/projection-correlation.yaml recovery set by
595
864
  identity, archive bytes, final record SHA-256, parent/child Git proof or
596
865
  legacy converter/source proof, current projection bytes, and overlay.
597
- Missing, changed, new, replaced, or unlisted recovery evidence blocks.
866
+ Missing, changed, new, replaced, or unlisted recovery evidence blocks.
598
867
  internal_migration_diagnostic: true
599
868
  read_only_preview:
600
869
  implementation: implemented
@@ -660,6 +929,9 @@ entity_migration:
660
929
  mirrors: excess canonical-identical physical records grouped under one logical identity
661
930
  duplicates: excess divergent physical records claiming one logical identity
662
931
  conflicts: logical identities with divergent candidates plus proposed-target collisions
932
+ root_blockers: independently invalid source identities, counted once per source identity
933
+ dependent_blockers: generated relationship-to-root diagnostics, each carrying root_source_identity
934
+ blockers: root_blockers plus dependent_blockers
663
935
  zero_write: >-
664
936
  Inventory, preview, malformed-input handling, and source-binding checks
665
937
  open no writer or upgrade lock and create no directory, temporary file,
@@ -678,7 +950,10 @@ entity_migration:
678
950
  degraded_recoverable:
679
951
  outcome: ready_with_provenance
680
952
  rule: admit only independently validated full detail and record its recovery provenance
681
- summary_only_or_missing_detail:
953
+ valid_compacted_summary:
954
+ outcome: ready_with_degraded_provenance
955
+ rule: preserve retained summary fields and source-record provenance without reconstructing omitted detail
956
+ missing_detail_not_declared_summary:
682
957
  outcome: blocked
683
958
  rule: retain evidence and stop before publication; never reconstruct omitted fields
684
959
  ambiguous_or_duplicate_identity:
@@ -768,12 +1043,14 @@ retrieval:
768
1043
  plan_tasks: implemented
769
1044
  plans: implemented
770
1045
  experiments: implemented
1046
+ progress: implemented
1047
+ decisions: implemented
1048
+ health: implemented
771
1049
  authority_boundary: >-
772
1050
  This group owns public list/get envelopes, cursors, selectors, identities,
773
1051
  omissions, and structured retrieval failures. It does not replace storage
774
- ownership: numbered archives remain authoritative for progress, decisions,
775
- and health; immutable plan files remain authoritative for plan history; and
776
- objective directories remain authoritative for experiments.
1052
+ ownership: canonical entity files remain authoritative after the durable
1053
+ cutover marker; retained v2 aggregates are immutable migration evidence only.
777
1054
  envelope:
778
1055
  schema_version: agentera.stateRetrieval.v1
779
1056
  required_fields:
@@ -788,12 +1065,28 @@ retrieval:
788
1065
  - source
789
1066
  - source_contract
790
1067
  entry_required_fields:
791
- - stable_id
792
- - addressable
1068
+ - id
1069
+ - artifact
1070
+ - boundary
793
1071
  - detail_availability
794
1072
  - compatibility
795
1073
  - provenance
796
1074
  - retrieval
1075
+ summary_boundary_entries:
1076
+ visibility: >-
1077
+ Progress, decision, and health list/get reads include both the full
1078
+ boundary and its corresponding immutable summary boundary under the
1079
+ same artifact vocabulary.
1080
+ full: { detail_availability: full, compatibility: current }
1081
+ summary:
1082
+ detail_availability: summary
1083
+ compatibility: degraded
1084
+ required_fields: [boundary, caveats, record.migration_provenance]
1085
+ provenance: record_level_summary_migration_provenance
1086
+ mutation: immutable_read_only
1087
+ ordering: >-
1088
+ Summary rows without a full-record temporal sort field sort after
1089
+ timestamped or dated full rows and then by canonical ID ascending.
797
1090
  counts_required_fields: [total, returned, remaining, omitted]
798
1091
  status_values: [ok, degraded]
799
1092
  cursor:
@@ -1841,7 +2134,8 @@ budgets:
1841
2134
  # to routing-essential leaves plus named recovery pointers for omitted
1842
2135
  # rich state. Pretty UTF-8 JSON + trailing newline is measured and an
1843
2136
  # over-budget brief is rejected in favor of a bounded degraded envelope;
1844
- # diagnostics stay on stderr. prime_dashboard keeps full fidelity.
2137
+ # diagnostics stay on stderr. prime_dashboard keeps full current state
2138
+ # while omitting duplicated ordinary history entries with recovery.
1845
2139
  max_utf8_bytes: 12000
1846
2140
  prime_dashboard:
1847
2141
  manifest_id: prime-dashboard
@@ -174,7 +174,7 @@ audience_namespaces:
174
174
  validate:
175
175
  canonical_shape: agentera check validate <family> [target options]
176
176
  delegates_from: validate
177
- notes: Preserves existing validate families (capability, artifact, descriptors, etc.).
177
+ notes: Preserves current validate families including capability and artifact validation.
178
178
  verify:
179
179
  canonical_shape: agentera check verify <family> <target> [options]
180
180
  delegates_from: verify
@@ -2,7 +2,7 @@ schema_version: agentera.bundle_skill_vocabulary.v1
2
2
  status: active_authority
3
3
  purpose: >-
4
4
  Classify surviving `bundle` and `SKILL.md` terminology so docs, package
5
- metadata, runtime descriptors, tests, historical records, and compatibility
5
+ metadata, tests, historical records, and compatibility
6
6
  identifiers share one bounded vocabulary source without forcing mechanical
7
7
  renames of shipped surfaces.
8
8
  sources:
@@ -87,8 +87,6 @@ implementation_state:
87
87
  first_invocation_read_cli_metadata: true
88
88
  first_invocation_read_schema_metadata: true
89
89
  runtime_first_invocation_behavior: true
90
- descriptors_rewritten_to_prime_command: true
91
- package_metadata_rewritten_to_prime_command: true
92
90
  compatibility_preservation:
93
91
  preserve_legacy_references_only_when_classified:
94
92
  - skills/agentera/capabilities/*/instructions.md paths (historical)
@@ -111,7 +109,6 @@ surface_inventory:
111
109
  docs_vocabulary: delegates_to_this_authority
112
110
  readme: concise_user_facing_current_and_future_authoring_seam
113
111
  capability_schema_contract: current_canonical_validator_reference
114
- runtime_descriptors: current_canonical_instructions_md_pointers
115
112
  capability_instruction_files: current_canonical_instruction_files
116
113
  evaluator_handoff:
117
114
  status: implemented
@@ -111,9 +111,9 @@ against D80 plus this reference doc.
111
111
  |---|---|---|---|---|---|---|---|
112
112
  | ⌂ status | Linear | 10,389 | Yes | Yes | Yes | None | Complete (D79) |
113
113
  | ⛥ vision | Mode-split | 16,667 | Yes | Yes | Yes | Has vision.yaml shape subsection; shared pre-write self-audit hoist (DRY between Create and Refine modes) | Complete (D81) |
114
- | ❈ discuss | Loop | 12,045 | Yes | Yes | Yes | Has decisions.yaml shape subsection; Getting started folded into §6; loop shape named "The deliberation loop" (§3); fog-aware readiness check at Done; steering rules (breadth-first, ask-user-to-sketch); schema files use artifact-id labels not canonical filenames | Complete (D82) |
114
+ | ❈ discuss | Loop | 12,045 | Yes | Yes | Yes | Has decisions.yaml shape subsection; Getting started folded into §6; loop shape named "The deliberation loop" (§3); readiness check names unclear or unverified items at Done; steering rules (breadth-first, ask-user-to-sketch); schema files use artifact-id labels not canonical filenames | Complete (D82) |
115
115
  | ⬚ research | Linear | 12,484 | Yes | Yes | Yes | Has deliverable template; has transferable concepts checkpoint between source reading and target exploration; runtime-agnostic tool references | Complete (D83) |
116
- | ≡ plan | Mode-split | 14,515 | Yes | Yes | Yes | Has skip/light/full modes; `unknowns:` and `rejected:` full-plan fields; `How build reads PLAN.md` removed (artifact read contract declared in §2 only); fog-check at handoff; replan trigger qualitative (surprises on one task alter downstream acceptance); Getting started folded into §6; YAML formats reordered intent-first | Complete (D84) |
116
+ | ≡ plan | Mode-split | 14,515 | Yes | Yes | Yes | Has skip/light/full modes; `unknowns:` and `rejected:` full-plan fields; `How build reads PLAN.md` removed (artifact read contract declared in §2 only); unknowns check at handoff; replan trigger qualitative (surprises on one task alter downstream acceptance); Getting started folded into §6; YAML formats reordered intent-first | Complete (D84) |
117
117
  | ⧉ build | Cycle | 15,081 | Yes | Yes | Yes | Has Handling blocked work; vision bootstrap folded into Workflow phases; brainstorm cut to minimal fallback; subagent spawning table cut to brief pointer; self-audit folded into Log (8 steps); plan unknowns consumption; cycle boundary stated once; `/loop` replaced with explicit user request | Complete (D85) |
118
118
  | ⎘ optimize | Cycle | 20,622 | Yes | Yes | Yes | Has Handling blocked experiments; self-audit folded into Log (7 steps); subagent spawning table compressed (D85 propagation); benchmark context lean seam; experiments.yaml has context block; brainstorm stripped to 4 questions | Complete (D86) |
119
119
  | ⛶ audit | Linear | 18,401 | Yes | Yes | Yes | Has finding taxonomy plus health.yaml shape; has 3 agentera-specific dimension mechanics (Version health, Artifact freshness, Prose health); Getting started folded into §6; self-audit folded into Report (7→6 steps); subagent spawning compressed to brief pointer; evidence_context startup delegation (bespoke); decision satisfaction authority rule in Safety rails | Complete (D87) |