agentera 3.0.0-dev.27 → 3.0.0-dev.28

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 (133) hide show
  1. package/bundle/CHANGELOG.md +10 -0
  2. package/bundle/DESIGN.md +3 -7
  3. package/bundle/README.md +1 -4
  4. package/bundle/UPGRADE.md +33 -0
  5. package/bundle/fixtures/routing/hybrid-corpus.yaml +154 -0
  6. package/bundle/references/adapters/package-registry.yaml +2 -0
  7. package/bundle/references/adapters/package-surface-characterization.md +2 -2
  8. package/bundle/references/analysis/benchmark.md +2 -9
  9. package/bundle/references/artifacts/state-storage-authority.yaml +298 -13
  10. package/bundle/references/cli/capability-instruction-structure.md +2 -2
  11. package/bundle/references/cli/hybrid-route-contract.yaml +416 -0
  12. package/bundle/references/cli/prime-consumer-compatibility.yaml +12 -11
  13. package/bundle/references/cli/routing-model.md +136 -91
  14. package/bundle/references/cli/trigger-schema-enrichment.md +50 -46
  15. package/bundle/references/cli/vocabulary.md +7 -9
  16. package/bundle/references/meta/documentation-inventory.md +1 -3
  17. package/bundle/skills/agentera/SKILL.md +50 -18
  18. package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +13 -35
  19. package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +14 -36
  20. package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +5 -34
  21. package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +6 -40
  22. package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +5 -34
  23. package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +4 -35
  24. package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +5 -37
  25. package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +8 -31
  26. package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +8 -37
  27. package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +5 -29
  28. package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +7 -47
  29. package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +7 -39
  30. package/bundle/skills/agentera/capability_schema_contract.yaml +29 -29
  31. package/bundle/skills/agentera/route-phrases.yaml +81 -0
  32. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +1 -1
  33. package/dist/capabilities/discuss/instructions.js +1 -1
  34. package/dist/capabilities/discuss/instructions.js.map +1 -1
  35. package/dist/capabilities/plan/instructions.js +1 -1
  36. package/dist/capabilities/plan/instructions.js.map +1 -1
  37. package/dist/cli/capabilityContext/evidence.js +1 -1
  38. package/dist/cli/capabilityContext/evidence.js.map +1 -1
  39. package/dist/cli/commands/entityMigrate.js +7 -3
  40. package/dist/cli/commands/entityMigrate.js.map +1 -1
  41. package/dist/cli/commands/prime/briefOrientation.js +10 -3
  42. package/dist/cli/commands/prime/briefOrientation.js.map +1 -1
  43. package/dist/cli/commands/prime/collectEntityOrientation.js +64 -4
  44. package/dist/cli/commands/prime/collectEntityOrientation.js.map +1 -1
  45. package/dist/cli/commands/prime/orientationOutput.js +41 -15
  46. package/dist/cli/commands/prime/orientationOutput.js.map +1 -1
  47. package/dist/cli/commands/prime.js +4 -3
  48. package/dist/cli/commands/prime.js.map +1 -1
  49. package/dist/cli/commands/route.js +142 -0
  50. package/dist/cli/commands/route.js.map +1 -0
  51. package/dist/cli/commands/state/write.js +19 -0
  52. package/dist/cli/commands/state/write.js.map +1 -1
  53. package/dist/cli/commands/verify.js +17 -1
  54. package/dist/cli/commands/verify.js.map +1 -1
  55. package/dist/cli/dispatch/index.js +18 -0
  56. package/dist/cli/dispatch/index.js.map +1 -1
  57. package/dist/cli/errors.js +2 -2
  58. package/dist/cli/errors.js.map +1 -1
  59. package/dist/cli/help.js +20 -1
  60. package/dist/cli/help.js.map +1 -1
  61. package/dist/cli/migrationRequired.js +1 -1
  62. package/dist/cli/migrationRequired.js.map +1 -1
  63. package/dist/eval/hybridRouteEvaluation.js +156 -0
  64. package/dist/eval/hybridRouteEvaluation.js.map +1 -0
  65. package/dist/registries/capabilityContract.js +5 -20
  66. package/dist/registries/capabilityContract.js.map +1 -1
  67. package/dist/registries/hybridRoute.js +203 -0
  68. package/dist/registries/hybridRoute.js.map +1 -0
  69. package/dist/registries/hybridRouteReceipt.js +221 -0
  70. package/dist/registries/hybridRouteReceipt.js.map +1 -0
  71. package/dist/registries/triggerLoader.js +7 -43
  72. package/dist/registries/triggerLoader.js.map +1 -1
  73. package/dist/release/releaseMetadata.js +2 -0
  74. package/dist/release/releaseMetadata.js.map +1 -1
  75. package/dist/state/archiveDiscovery.js +24 -35
  76. package/dist/state/archiveDiscovery.js.map +1 -1
  77. package/dist/state/canonicalMigrationRecord.js +37 -0
  78. package/dist/state/canonicalMigrationRecord.js.map +1 -0
  79. package/dist/state/decisionEntities.js +73 -33
  80. package/dist/state/decisionEntities.js.map +1 -1
  81. package/dist/state/decisionLegacyValidation.js +31 -0
  82. package/dist/state/decisionLegacyValidation.js.map +1 -1
  83. package/dist/state/decisionMigrationProvenance.js +117 -0
  84. package/dist/state/decisionMigrationProvenance.js.map +1 -0
  85. package/dist/state/durability.js +24 -5
  86. package/dist/state/durability.js.map +1 -1
  87. package/dist/state/entityCutover.js +2 -2
  88. package/dist/state/entityCutover.js.map +1 -1
  89. package/dist/state/entityMigrationCausality.js +99 -0
  90. package/dist/state/entityMigrationCausality.js.map +1 -0
  91. package/dist/state/entityMigrationPreview.js +138 -77
  92. package/dist/state/entityMigrationPreview.js.map +1 -1
  93. package/dist/state/entityStorage.js +59 -24
  94. package/dist/state/entityStorage.js.map +1 -1
  95. package/dist/state/healthEntities.js +28 -31
  96. package/dist/state/healthEntities.js.map +1 -1
  97. package/dist/state/legacySummaryRecord.js +7 -0
  98. package/dist/state/legacySummaryRecord.js.map +1 -0
  99. package/dist/state/listCursor.js +43 -0
  100. package/dist/state/listCursor.js.map +1 -0
  101. package/dist/state/migrationSourceBinding.js +29 -0
  102. package/dist/state/migrationSourceBinding.js.map +1 -0
  103. package/dist/state/progressEntities.js +35 -59
  104. package/dist/state/progressEntities.js.map +1 -1
  105. package/dist/state/retrievalAuthority.js +10 -0
  106. package/dist/state/retrievalAuthority.js.map +1 -1
  107. package/dist/state/summaryEntityRead.js +26 -0
  108. package/dist/state/summaryEntityRead.js.map +1 -0
  109. package/dist/state/summaryMigrationProvenance.js +67 -0
  110. package/dist/state/summaryMigrationProvenance.js.map +1 -0
  111. package/dist/state/summarySourceRowAuthority.js +37 -0
  112. package/dist/state/summarySourceRowAuthority.js.map +1 -0
  113. package/dist/validate/capability.js +11 -2
  114. package/dist/validate/capability.js.map +1 -1
  115. package/package.json +2 -2
  116. package/bundle/references/analysis/analytics-boundary-proportional-2026-07-20.yaml +0 -74
  117. package/bundle/references/analysis/evidence/analytics-boundary-proportional-2026-07-20/source-focused-1.json.gz +0 -0
  118. package/bundle/references/analysis/evidence/analytics-boundary-proportional-2026-07-20/source-focused-2.json.gz +0 -0
  119. package/bundle/references/analysis/evidence/analytics-boundary-proportional-2026-07-20/source-focused-3.json.gz +0 -0
  120. package/bundle/references/analysis/evidence/migration-pagination-proportional-2026-07-20/source-focused-1.json.gz +0 -0
  121. package/bundle/references/analysis/evidence/migration-pagination-proportional-2026-07-20/source-focused-2.json.gz +0 -0
  122. package/bundle/references/analysis/evidence/migration-pagination-proportional-2026-07-20/source-focused-3.json.gz +0 -0
  123. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/precommit-cli-route.log.gz +0 -0
  124. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/precommit-cli.log.gz +0 -0
  125. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/precommit-documentation.log.gz +0 -0
  126. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/recompute.mjs +0 -98
  127. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/source-1.json.gz +0 -0
  128. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/source-2.json.gz +0 -0
  129. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/source-3.json.gz +0 -0
  130. package/bundle/references/analysis/migration-pagination-proportional-2026-07-20.yaml +0 -64
  131. package/bundle/references/analysis/verification-baseline-2026-07-20.yaml +0 -313
  132. package/bundle/references/analysis/verification-final-proof-2026-07-21.yaml +0 -340
  133. package/bundle/references/analysis/worker-policy-2026-07-21.yaml +0 -207
@@ -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
@@ -254,8 +311,29 @@ entity_target:
254
311
  scalar_truncation: forbidden
255
312
  repair: >-
256
313
  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.
314
+ Malformed envelopes, duplicate IDs, or conflicting ownership fail before effects
315
+ and recover through agentera check validate state; no repair event is fabricated.
316
+ - boundary: health_summary
317
+ artifact: health
318
+ independently_mutable: false
319
+ relationships: []
320
+ implementation: implemented
321
+ publication: immutable
322
+ mutation: forbidden
323
+ record:
324
+ required_fields: [summary, migration_provenance]
325
+ required_paths: []
326
+ forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number]
327
+ canonical_metadata:
328
+ summary_migration_provenance:
329
+ path: record.migration_provenance
330
+ required_fields: [source_path, source_record_sha256]
331
+ additional_fields: forbidden
332
+ source_path: project-relative v2 aggregate source path
333
+ sources:
334
+ - path: .agentera/health.yaml
335
+ collections: [audits, archive]
336
+ source_row_provenance: entity_target.declared_compacted_summary_contract.source_row_provenance
259
337
  - boundary: plan
260
338
  artifact: plan
261
339
  independently_mutable: true
@@ -453,13 +531,195 @@ entity_target:
453
531
  - all intentional_singletons
454
532
  - immutable historical prose and evidence, except structured references explicitly declared for rewrite
455
533
  - genuinely singleton editorial artifacts added by an authority amendment
534
+ declared_compacted_summary_contract:
535
+ status: implemented
536
+ activation: >-
537
+ The three summary boundaries are active entity and migration authority in
538
+ entity_target.entities. Ordinary summary readers and startup projection
539
+ expose retained degraded history without reconstructing missing detail.
540
+ runtime_boundary_source: entity_target.entities
541
+ runtime_exclusion: >-
542
+ No experiment_summary boundary is activated. Summary boundaries are
543
+ immutable/read-only and are not ordinary write targets.
544
+ source_scope:
545
+ included_artifacts: [progress, decisions, health]
546
+ excluded_artifacts:
547
+ - objective_experiments: protected v2 family; not a compacted-summary migration input
548
+ - runtime_local_session_state: runtime-local state is outside canonical project migration
549
+ - compacted_todo_rows: already satisfy the canonical TODO shape and are not remapped as summaries
550
+ authority_rule: >-
551
+ This implemented scope does not reconstruct Git history, normalize source
552
+ summaries, retain dual authority, or provide a repair or import command.
553
+ source_row_provenance:
554
+ semantic_id: v2_compacted_summary_physical_row.v1
555
+ status: implemented
556
+ accepted_parsed_row_values: [mapping, scalar_string]
557
+ normalization: >-
558
+ Preview normalizes either accepted parsed physical row value to canonical
559
+ retained summary content for matching and publication. A mapping retains
560
+ its source fields subject to canonical alias removal and declared metadata
561
+ injection; a scalar string becomes {summary: value}.
562
+ source_record_sha256:
563
+ format: lowercase_sha256_hex
564
+ input: >-
565
+ original parsed physical source row value, which may be a mapping or a
566
+ scalar string, before summary normalization, canonical alias removal, or
567
+ metadata injection
568
+ canonicalization: >-
569
+ SHA-256 of UTF-8 canonical JSON: recursively sort mapping keys, preserve
570
+ array order, serialize scalar strings with JSON.stringify, and emit no
571
+ insignificant whitespace.
572
+ diagnostics:
573
+ status: implemented
574
+ implementation: >-
575
+ Read-only migration preview classifies independent invalid source
576
+ identities as roots, then reports generated graph dependents separately.
577
+ Ordinary summary reads and startup do not expose these migration-only
578
+ fields.
579
+ counts:
580
+ blockers: total root_blockers plus dependent_blockers
581
+ root_blockers: independently invalid, ambiguous, conflicting, or unsupported source identities
582
+ dependent_blockers: >-
583
+ Downstream diagnostics caused by a named root blocker. Each dependent names
584
+ its root source identity and does not increase root corruption.
585
+ dependent_blocker_required_fields: [root_source_identity]
586
+ corruption_count: corrupt classification counts source roots only, never generated dependents
587
+ graph: >-
588
+ A resolved relationship to a root (including a chain) is a dependent
589
+ blocker. Missing references make their owning source a root. Cycles with
590
+ no source root choose their lexicographically first source identity as a
591
+ deterministic corrupt root; preview does not attempt graph recovery.
592
+ source_outcomes:
593
+ status: implemented
594
+ valid_compacted_summary:
595
+ outcome: ready_with_degraded_provenance
596
+ rule: >-
597
+ Map each valid supported v2 summary to its declared immutable summary
598
+ boundary, retain source fields and migration provenance, and never
599
+ reconstruct missing detail.
600
+ missing_detail_not_declared_summary:
601
+ outcome: blocked
602
+ rule: retain evidence and stop before publication; never infer omitted fields
603
+ inherited_confidence_only:
604
+ outcome: ready_with_legacy_caveat
605
+ rule: >-
606
+ Preserve an inherited full-decision high, medium, or low label exactly and
607
+ report its caveat. Only new or amended labels must use the current strict
608
+ vocabulary.
609
+ boundaries:
610
+ - boundary: progress_summary
611
+ artifact: progress
612
+ independently_mutable: false
613
+ implementation: implemented
614
+ publication: immutable
615
+ mutation: forbidden
616
+ canonical_representation: one_immutable_degraded_summary_entity_per_valid_v2_summary
617
+ relationships: []
618
+ record:
619
+ required_fields: [summary, migration_provenance]
620
+ additional_fields: source_retained_fields_plus_declared_metadata
621
+ declared_metadata_fields: [migration_provenance]
622
+ source_retained_fields: >-
623
+ Preserve every source-retained field in the canonical record except
624
+ public_schema.forbidden_canonical_aliases. migration_provenance is
625
+ declared canonical metadata, not a retained source field. Missing
626
+ full-detail fields remain absent; migration does not normalize or
627
+ reconstruct them.
628
+ forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number]
629
+ migration_provenance:
630
+ path: record.migration_provenance
631
+ required_fields: [source_path, source_record_sha256]
632
+ additional_fields: forbidden
633
+ source_path: project-relative v2 aggregate source path
634
+ source_row_provenance: entity_target.declared_compacted_summary_contract.source_row_provenance
635
+ retrieval:
636
+ exact: agentera state progress get --id ID --format json
637
+ list: agentera state progress list [--limit N] [--cursor TOKEN] --format json
638
+ detail_availability: summary
639
+ compatibility: degraded
640
+ caveats: required
641
+ ordering: full_timestamp_desc_then_id_asc_then_summary_id_asc
642
+ summary_ordering: canonical_id_asc_without_chronology_claim
643
+ mutation: read_only
644
+ - boundary: decision_summary
645
+ artifact: decisions
646
+ independently_mutable: false
647
+ implementation: implemented
648
+ publication: immutable
649
+ mutation: forbidden
650
+ canonical_representation: one_immutable_degraded_summary_entity_per_valid_v2_summary
651
+ relationships: []
652
+ record:
653
+ required_fields: [summary, migration_provenance]
654
+ additional_fields: source_retained_fields_plus_declared_metadata
655
+ declared_metadata_fields: [migration_provenance]
656
+ source_retained_fields: >-
657
+ Preserve every source-retained field in the canonical record except
658
+ public_schema.forbidden_canonical_aliases. migration_provenance is
659
+ declared canonical metadata, not a retained source field. Missing
660
+ full-detail fields remain absent; migration does not normalize or
661
+ reconstruct them.
662
+ forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number]
663
+ satisfaction: optional_inline_read_only_source_retained_field
664
+ satisfaction_rule: >-
665
+ Satisfaction may be absent. When retained, it remains inline and read-only;
666
+ a decision summary never creates or targets a decision_satisfaction entity.
667
+ migration_provenance:
668
+ path: record.migration_provenance
669
+ required_fields: [source_path, source_record_sha256]
670
+ additional_fields: forbidden
671
+ source_path: project-relative v2 aggregate source path
672
+ source_row_provenance: entity_target.declared_compacted_summary_contract.source_row_provenance
673
+ retrieval:
674
+ exact: agentera state decisions get --id ID --format json
675
+ list: agentera state decisions list [--limit N] [--cursor TOKEN] --format json
676
+ detail_availability: summary
677
+ compatibility: degraded
678
+ caveats: required
679
+ ordering: full_date_desc_then_id_asc_then_summary_id_asc
680
+ summary_ordering: canonical_id_asc_without_chronology_claim
681
+ mutation: read_only
682
+ - boundary: health_summary
683
+ artifact: health
684
+ independently_mutable: false
685
+ implementation: implemented
686
+ publication: immutable
687
+ mutation: forbidden
688
+ canonical_representation: one_immutable_degraded_summary_entity_per_valid_v2_summary
689
+ relationships: []
690
+ record:
691
+ required_fields: [summary, migration_provenance]
692
+ additional_fields: source_retained_fields_plus_declared_metadata
693
+ declared_metadata_fields: [migration_provenance]
694
+ source_retained_fields: >-
695
+ Preserve every source-retained field in the canonical record except
696
+ public_schema.forbidden_canonical_aliases. migration_provenance is
697
+ declared canonical metadata, not a retained source field. Missing
698
+ full-detail fields remain absent; migration does not normalize or
699
+ reconstruct them.
700
+ forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number]
701
+ migration_provenance:
702
+ path: record.migration_provenance
703
+ required_fields: [source_path, source_record_sha256]
704
+ additional_fields: forbidden
705
+ source_path: project-relative v2 aggregate source path
706
+ source_row_provenance: entity_target.declared_compacted_summary_contract.source_row_provenance
707
+ retrieval:
708
+ exact: agentera state health get --id ID --format json
709
+ list: agentera state health list [--limit N] [--cursor TOKEN] --format json
710
+ detail_availability: summary
711
+ compatibility: degraded
712
+ caveats: required
713
+ ordering: full_date_desc_then_id_asc_then_summary_id_asc
714
+ summary_ordering: canonical_id_asc_without_chronology_claim
715
+ mutation: read_only
456
716
  measurement_contract:
457
717
  status: implemented
458
718
  environment: Linux, Node.js 22 or newer, one cold CLI process per sample
459
719
  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
720
+ small: 100 valid entities distributed across every active entity_target.entities boundary
721
+ large: 1000 valid entities distributed across every active entity_target.entities boundary
722
+ relationship_rule: every active entity_target.relationships declaration has at least one valid fixture edge
463
723
  sampling:
464
724
  repetitions: 5
465
725
  pass_rule: every repetition stays within every applicable limit
@@ -594,7 +854,7 @@ entity_migration:
594
854
  .agentera/archive/recovery/projection-correlation.yaml recovery set by
595
855
  identity, archive bytes, final record SHA-256, parent/child Git proof or
596
856
  legacy converter/source proof, current projection bytes, and overlay.
597
- Missing, changed, new, replaced, or unlisted recovery evidence blocks.
857
+ Missing, changed, new, replaced, or unlisted recovery evidence blocks.
598
858
  internal_migration_diagnostic: true
599
859
  read_only_preview:
600
860
  implementation: implemented
@@ -660,6 +920,9 @@ entity_migration:
660
920
  mirrors: excess canonical-identical physical records grouped under one logical identity
661
921
  duplicates: excess divergent physical records claiming one logical identity
662
922
  conflicts: logical identities with divergent candidates plus proposed-target collisions
923
+ root_blockers: independently invalid source identities, counted once per source identity
924
+ dependent_blockers: generated relationship-to-root diagnostics, each carrying root_source_identity
925
+ blockers: root_blockers plus dependent_blockers
663
926
  zero_write: >-
664
927
  Inventory, preview, malformed-input handling, and source-binding checks
665
928
  open no writer or upgrade lock and create no directory, temporary file,
@@ -678,7 +941,10 @@ entity_migration:
678
941
  degraded_recoverable:
679
942
  outcome: ready_with_provenance
680
943
  rule: admit only independently validated full detail and record its recovery provenance
681
- summary_only_or_missing_detail:
944
+ valid_compacted_summary:
945
+ outcome: ready_with_degraded_provenance
946
+ rule: preserve retained summary fields and source-record provenance without reconstructing omitted detail
947
+ missing_detail_not_declared_summary:
682
948
  outcome: blocked
683
949
  rule: retain evidence and stop before publication; never reconstruct omitted fields
684
950
  ambiguous_or_duplicate_identity:
@@ -768,12 +1034,14 @@ retrieval:
768
1034
  plan_tasks: implemented
769
1035
  plans: implemented
770
1036
  experiments: implemented
1037
+ progress: implemented
1038
+ decisions: implemented
1039
+ health: implemented
771
1040
  authority_boundary: >-
772
1041
  This group owns public list/get envelopes, cursors, selectors, identities,
773
1042
  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.
1043
+ ownership: canonical entity files remain authoritative after the durable
1044
+ cutover marker; retained v2 aggregates are immutable migration evidence only.
777
1045
  envelope:
778
1046
  schema_version: agentera.stateRetrieval.v1
779
1047
  required_fields:
@@ -788,12 +1056,28 @@ retrieval:
788
1056
  - source
789
1057
  - source_contract
790
1058
  entry_required_fields:
791
- - stable_id
792
- - addressable
1059
+ - id
1060
+ - artifact
1061
+ - boundary
793
1062
  - detail_availability
794
1063
  - compatibility
795
1064
  - provenance
796
1065
  - retrieval
1066
+ summary_boundary_entries:
1067
+ visibility: >-
1068
+ Progress, decision, and health list/get reads include both the full
1069
+ boundary and its corresponding immutable summary boundary under the
1070
+ same artifact vocabulary.
1071
+ full: { detail_availability: full, compatibility: current }
1072
+ summary:
1073
+ detail_availability: summary
1074
+ compatibility: degraded
1075
+ required_fields: [boundary, caveats, record.migration_provenance]
1076
+ provenance: record_level_summary_migration_provenance
1077
+ mutation: immutable_read_only
1078
+ ordering: >-
1079
+ Summary rows without a full-record temporal sort field sort after
1080
+ timestamped or dated full rows and then by canonical ID ascending.
797
1081
  counts_required_fields: [total, returned, remaining, omitted]
798
1082
  status_values: [ok, degraded]
799
1083
  cursor:
@@ -1841,7 +2125,8 @@ budgets:
1841
2125
  # to routing-essential leaves plus named recovery pointers for omitted
1842
2126
  # rich state. Pretty UTF-8 JSON + trailing newline is measured and an
1843
2127
  # over-budget brief is rejected in favor of a bounded degraded envelope;
1844
- # diagnostics stay on stderr. prime_dashboard keeps full fidelity.
2128
+ # diagnostics stay on stderr. prime_dashboard keeps full current state
2129
+ # while omitting duplicated ordinary history entries with recovery.
1845
2130
  max_utf8_bytes: 12000
1846
2131
  prime_dashboard:
1847
2132
  manifest_id: prime-dashboard
@@ -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) |