agentera 3.0.0-dev.4 → 3.0.0-dev.46
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.
- package/LICENSE +201 -0
- package/README.md +108 -22
- package/bundle/.agentera-npx-bundle.json +1 -1
- package/bundle/CHANGELOG.md +1351 -0
- package/bundle/DESIGN.md +229 -0
- package/bundle/LICENSE +201 -0
- package/bundle/README.md +143 -0
- package/bundle/UPGRADE.md +236 -0
- package/bundle/extract-corpus-parity.json +21 -0
- package/bundle/fixtures/routing/hybrid-corpus.yaml +154 -0
- package/bundle/references/adapters/package-publication.json +437 -0
- package/bundle/references/adapters/package-registry.yaml +434 -189
- package/bundle/references/adapters/package-surface-characterization.md +66 -35
- package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +74 -0
- package/bundle/references/adapters/runtime-lifecycle-authority.yaml +62 -0
- package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +84 -0
- package/bundle/references/adapters/runtime-retired-resources.yaml +333 -0
- package/bundle/references/analysis/evidence-tier-authority.yaml +518 -0
- package/bundle/references/analysis/verification-policy.yaml +191 -0
- package/bundle/references/artifacts/artifact-registry-interface-model.yaml +20 -10
- package/bundle/references/artifacts/glossary-entry-contract.yaml +1254 -0
- package/bundle/references/artifacts/state-storage-authority.yaml +2982 -0
- package/bundle/references/artifacts/verbosity-budget-authority.yaml +42 -0
- package/bundle/references/cli/app-lifecycle-vocabulary.yaml +7 -8
- package/bundle/references/cli/capability-instruction-contract.yaml +97 -59
- package/bundle/references/cli/hybrid-route-contract.yaml +438 -0
- package/bundle/references/cli/routing-model.md +155 -0
- package/bundle/references/cli/trigger-schema-enrichment.md +147 -0
- package/bundle/references/cli/update-channels.yaml +35 -2
- package/bundle/references/cli/vocabulary-index.yaml +23 -20
- package/bundle/references/cli/vocabulary.md +337 -366
- package/bundle/references/meta/retained-reference-authority.yaml +151 -0
- package/bundle/registry.json +14 -14
- package/bundle/skills/agentera/SKILL.md +218 -408
- package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +84 -0
- package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/exit.yaml +2 -2
- package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +25 -0
- package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/validation.yaml +37 -18
- package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +102 -0
- package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/exit.yaml +6 -5
- package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +27 -0
- package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +176 -0
- package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/artifacts.yaml +12 -12
- package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/exit.yaml +5 -5
- package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +16 -0
- package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/validation.yaml +7 -7
- package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +51 -0
- package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/exit.yaml +2 -2
- package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +20 -0
- package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +144 -0
- package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +80 -0
- package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +16 -0
- package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/validation.yaml +18 -18
- package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/artifacts.yaml +18 -18
- package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/exit.yaml +2 -2
- package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +16 -0
- package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/validation.yaml +9 -9
- package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +76 -0
- package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/exit.yaml +9 -7
- package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +23 -0
- package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +121 -0
- package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +66 -0
- package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/exit.yaml +2 -2
- package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +23 -0
- package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +121 -0
- package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +23 -0
- package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/exit.yaml +6 -5
- package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +20 -0
- package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +115 -0
- package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +24 -0
- package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +16 -0
- package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/validation.yaml +2 -2
- package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +73 -0
- package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +22 -0
- package/bundle/skills/agentera/capabilities/{hej → status}/schemas/validation.yaml +5 -5
- package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/artifacts.yaml +16 -16
- package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/exit.yaml +7 -6
- package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +23 -0
- package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/validation.yaml +18 -20
- package/bundle/skills/agentera/capability_schema_contract.yaml +200 -37
- package/bundle/skills/agentera/protocol.yaml +31 -31
- package/bundle/skills/agentera/route-phrases.yaml +81 -0
- package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +5 -4
- package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +40 -22
- package/bundle/skills/agentera/schemas/artifacts/design.yaml +5 -4
- package/bundle/skills/agentera/schemas/artifacts/docs.yaml +15 -19
- package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +145 -14
- package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +82 -0
- package/bundle/skills/agentera/schemas/artifacts/health.yaml +58 -21
- package/bundle/skills/agentera/schemas/artifacts/objective.yaml +22 -8
- package/bundle/skills/agentera/schemas/artifacts/plan.yaml +421 -33
- package/bundle/skills/agentera/schemas/artifacts/progress.yaml +143 -53
- package/bundle/skills/agentera/schemas/artifacts/todo.yaml +345 -31
- package/bundle/skills/agentera/schemas/artifacts/vision.yaml +3 -3
- package/dist/analytics/extractCorpus/cli.js +190 -0
- package/dist/analytics/extractCorpus/copilotSessions.js +275 -0
- package/dist/analytics/extractCorpus/core.js +392 -0
- package/dist/analytics/extractCorpus/corpus.js +167 -0
- package/dist/analytics/extractCorpus/coverageAudit.js +260 -0
- package/dist/analytics/extractCorpus/cursorSessions.js +425 -0
- package/dist/analytics/extractCorpus/evidenceTiers.js +603 -0
- package/dist/analytics/extractCorpus/extractCorpusParity.js +105 -0
- package/dist/analytics/extractCorpus/filesystemSources.js +118 -0
- package/dist/analytics/extractCorpus/index.js +14 -0
- package/dist/analytics/extractCorpus/jsonlSessions.js +204 -0
- package/dist/analytics/extractCorpus/sqliteCaps.js +43 -0
- package/dist/analytics/extractCorpus/sqliteSessions.js +367 -0
- package/dist/analytics/extractCorpus/tierReader.js +108 -0
- package/dist/analytics/extractCorpus.js +2 -1791
- package/dist/analytics/glossaryAdviceResolution.js +166 -0
- package/dist/analytics/glossaryInputAcquisition.js +319 -0
- package/dist/analytics/personalGlossaryAdmission.js +133 -0
- package/dist/analytics/personalGlossaryProfile.js +219 -0
- package/dist/analytics/profileSignals.js +211 -0
- package/dist/analytics/usageStats.js +169 -42
- package/dist/audit/terminologyDrift.js +281 -0
- package/dist/bin/agentera.js +3 -2
- package/dist/capabilities/audit/instructions.js +16 -0
- package/dist/capabilities/build/instructions.js +56 -0
- package/dist/capabilities/design/instructions.js +4 -0
- package/dist/capabilities/discuss/instructions.js +29 -0
- package/dist/capabilities/document/instructions.js +11 -0
- package/dist/capabilities/index.js +40 -0
- package/dist/capabilities/optimize/instructions.js +14 -0
- package/dist/capabilities/orchestrate/instructions.js +40 -0
- package/dist/capabilities/plan/instructions.js +32 -0
- package/dist/capabilities/profile/instructions.js +70 -0
- package/dist/capabilities/research/instructions.js +5 -0
- package/dist/capabilities/status/instructions.js +11 -0
- package/dist/capabilities/status/startupInstructions.js +34 -0
- package/dist/capabilities/vision/instructions.js +4 -0
- package/dist/cli/appContext.js +30 -24
- package/dist/cli/argvalidate.js +0 -1
- package/dist/cli/capabilityContext/benchmark.js +565 -0
- package/dist/cli/capabilityContext/bespoke.js +44 -0
- package/dist/cli/capabilityContext/build.js +242 -0
- package/dist/cli/capabilityContext/closeout.js +233 -0
- package/dist/cli/capabilityContext/contract.js +179 -0
- package/dist/cli/capabilityContext/evidence.js +463 -0
- package/dist/cli/capabilityContext/index.js +3 -0
- package/dist/cli/capabilityContext/orchestration.js +131 -0
- package/dist/cli/capabilityContext/planState.js +260 -0
- package/dist/cli/capabilityContext/progress.js +142 -0
- package/dist/cli/capabilityContext/projectVerification.js +409 -0
- package/dist/cli/capabilityContext/shared.js +83 -0
- package/dist/cli/capabilityContext/slim.js +152 -0
- package/dist/cli/capabilityContext/startup.js +150 -0
- package/dist/cli/capabilityContext/startupAggregation.js +68 -0
- package/dist/cli/capabilityContext/types.js +56 -0
- package/dist/cli/capabilityContext.js +1 -2421
- package/dist/cli/commands/appHome.js +22 -0
- package/dist/cli/commands/capability.js +5 -12
- package/dist/cli/commands/compact.js +41 -13
- package/dist/cli/commands/doctor.js +127 -97
- package/dist/cli/commands/durability.js +81 -0
- package/dist/cli/commands/glossaryAdvice.js +138 -0
- package/dist/cli/commands/lint.js +26 -44
- package/dist/cli/commands/personalGlossary.js +176 -0
- package/dist/cli/commands/prime/briefOrientation.js +747 -0
- package/dist/cli/commands/prime/buildExecutionRequest.js +165 -0
- package/dist/cli/commands/prime/bundleStatus.js +190 -0
- package/dist/cli/commands/prime/collectEntityOrientation.js +311 -0
- package/dist/cli/commands/prime/collectOrientationState.js +212 -0
- package/dist/cli/commands/prime/orientationOutput.js +397 -0
- package/dist/cli/commands/prime/types.js +1 -0
- package/dist/cli/commands/prime/v1Migration.js +38 -0
- package/dist/cli/commands/prime.js +80 -558
- package/dist/cli/commands/profileGrounding.js +55 -0
- package/dist/cli/commands/query.js +78 -53
- package/dist/cli/commands/report.js +96 -25
- package/dist/cli/commands/route.js +142 -0
- package/dist/cli/commands/schema.js +266 -143
- package/dist/cli/commands/state/decisions.js +387 -0
- package/dist/cli/commands/state/docs.js +70 -0
- package/dist/cli/commands/state/experimentRecords.js +151 -0
- package/dist/cli/commands/state/experiments.js +14 -0
- package/dist/cli/commands/state/get.js +129 -0
- package/dist/cli/commands/state/health.js +14 -0
- package/dist/cli/commands/state/index.js +16 -0
- package/dist/cli/commands/state/list.js +194 -0
- package/dist/cli/commands/state/objective.js +25 -0
- package/dist/cli/commands/state/plan.js +14 -0
- package/dist/cli/commands/state/planTasks.js +154 -0
- package/dist/cli/commands/state/plans.js +154 -0
- package/dist/cli/commands/state/progress.js +13 -0
- package/dist/cli/commands/state/shared.js +14 -0
- package/dist/cli/commands/state/todo.js +42 -0
- package/dist/cli/commands/state/write.js +434 -0
- package/dist/cli/commands/upgrade.js +146 -5
- package/dist/cli/commands/upgradeVerify.js +118 -0
- package/dist/cli/commands/validate.js +272 -213
- package/dist/cli/commands/verify.js +24 -9
- package/dist/cli/contracts/bundleStatus.js +1 -0
- package/dist/cli/contracts/orientationState.js +1 -0
- package/dist/cli/dispatch/argvParser.js +32 -0
- package/dist/cli/dispatch/check.js +372 -0
- package/dist/cli/dispatch/commands.js +27 -0
- package/dist/cli/dispatch/index.js +207 -0
- package/dist/cli/dispatch/lifecycle.js +652 -0
- package/dist/cli/dispatch/prime.js +139 -0
- package/dist/cli/dispatch/projections.js +17 -0
- package/dist/cli/dispatch/shared.js +63 -0
- package/dist/cli/dispatch/state.js +140 -0
- package/dist/cli/dispatch.js +1 -996
- package/dist/cli/errors.js +52 -0
- package/dist/cli/help.js +390 -43
- package/dist/cli/migrationRequired.js +87 -0
- package/dist/cli/orientation/attention.js +59 -0
- package/dist/cli/orientation/corpusCoverage.js +102 -0
- package/dist/cli/orientation.js +444 -173
- package/dist/cli/planArtifacts.js +350 -0
- package/dist/cli/planEvidence.js +157 -0
- package/dist/cli/planLifecycleState.js +36 -0
- package/dist/cli/planTaskIndex.js +11 -0
- package/dist/cli/preCutoverCommand.js +32 -0
- package/dist/cli/prime-blob.js +71 -3
- package/dist/cli/profileAcquisition.js +167 -0
- package/dist/cli/startupCompletenessContract.js +59 -0
- package/dist/cli/stateQuery.js +63 -14
- package/dist/cli/structured.js +0 -1
- package/dist/cli/todoMarkdown.js +46 -0
- package/dist/cli/todoReadinessSelection.js +192 -0
- package/dist/cli/todoSeverity.js +18 -0
- package/dist/core/atomicWriter.js +20 -0
- package/dist/core/developmentChannel.js +1 -0
- package/dist/core/developmentInvocation.js +374 -0
- package/dist/core/difflib.js +0 -1
- package/dist/core/envPaths.js +20 -0
- package/dist/core/jsonValue.js +5 -0
- package/dist/core/paths.js +0 -1
- package/dist/core/pyjson.js +67 -3
- package/dist/core/shell.js +4 -0
- package/dist/core/skillIdentity.js +23 -0
- package/dist/core/sourceRoot.js +9 -12
- package/dist/core/text.js +10 -0
- package/dist/core/toml.js +0 -1
- package/dist/core/yaml.js +8 -1
- package/dist/eval/evalSkills.js +30 -26
- package/dist/eval/hybridRouteEvaluation.js +155 -0
- package/dist/eval/semanticEval.js +43 -20
- package/dist/eval/semanticFixtures.js +16 -5
- package/dist/hooks/common.js +11 -81
- package/dist/hooks/compaction/apply.js +446 -0
- package/dist/hooks/compaction/dryRun.js +184 -0
- package/dist/hooks/compaction/index.js +22 -0
- package/dist/hooks/compaction/parse.js +325 -0
- package/dist/hooks/compaction/retention.js +202 -0
- package/dist/hooks/compaction/status.js +360 -0
- package/dist/hooks/compaction/types.js +5 -0
- package/dist/hooks/validateArtifact/agentFacing.js +9 -0
- package/dist/hooks/validateArtifact/index.js +92 -0
- package/dist/hooks/validateArtifact/markdown.js +145 -0
- package/dist/hooks/validateArtifact/schema.js +546 -0
- package/dist/hooks/validateArtifact/traversal.js +107 -0
- package/dist/hooks/validateArtifact/violations.js +107 -0
- package/dist/migrate/v2HandoffManifest.js +452 -0
- package/dist/registries/activationContract.js +2 -0
- package/dist/registries/activationTuples.js +106 -0
- package/dist/registries/artifactProtocolIds.js +78 -0
- package/dist/registries/artifactRegistry.js +224 -63
- package/dist/registries/artifactSchemaProjection.js +45 -0
- package/dist/registries/capabilityContract.js +141 -13
- package/dist/registries/evaluatorHandoffContract.js +170 -0
- package/dist/registries/evidenceTierContract.js +371 -0
- package/dist/registries/glossaryAdviceContract.js +79 -0
- package/dist/registries/glossaryCaveatContract.js +67 -0
- package/dist/registries/glossaryConsumerContractValidation.js +787 -0
- package/dist/registries/glossaryEntryContract.js +757 -0
- package/dist/registries/glossaryTermIdentity.js +17 -0
- package/dist/registries/glossaryTermOccurrence.js +20 -0
- package/dist/registries/hybridRoute.js +274 -0
- package/dist/registries/hybridRouteReceipt.js +221 -0
- package/dist/registries/packagePublication.js +229 -0
- package/dist/registries/packageRegistry.js +187 -211
- package/dist/registries/todoReadinessContract.js +448 -0
- package/dist/registries/triggerLoader.js +174 -0
- package/dist/registries/verbosityBudgetContract.js +205 -0
- package/dist/release/releaseMetadata.js +385 -0
- package/dist/runtime/lifecycleAdapterContract.js +457 -0
- package/dist/runtime/lifecycleAdapters.js +777 -0
- package/dist/runtime/lifecycleAuthority.js +453 -0
- package/dist/runtime/lifecycleOperationContract.js +123 -0
- package/dist/runtime/lifecycleOperations.js +634 -0
- package/dist/runtime/lifecycleOwnershipJournal.js +622 -0
- package/dist/runtime/lifecyclePublication.js +415 -0
- package/dist/runtime/lifecycleSnapshot.js +438 -0
- package/dist/runtime/nativeResourceCleanup.js +502 -0
- package/dist/setup/opencode.js +20 -0
- package/dist/setup/opencodeConstants.js +1 -0
- package/dist/setup/sharedSkill.js +45 -0
- package/dist/setup/smokeChecks.js +21 -82
- package/dist/state/archiveDiscovery.js +580 -0
- package/dist/state/archivePublication.js +225 -0
- package/dist/state/archiveRecovery.js +237 -0
- package/dist/state/archiveReplay.js +53 -0
- package/dist/state/canonicalMigrationRecord.js +36 -0
- package/dist/state/changelog.js +221 -0
- package/dist/state/decisionEntities.js +367 -0
- package/dist/state/decisionLegacyValidation.js +215 -0
- package/dist/state/decisionMigrationProvenance.js +199 -0
- package/dist/state/decisionOverlay.js +254 -0
- package/dist/state/decisionRevision.js +256 -0
- package/dist/state/decisionRevisionMigration.js +89 -0
- package/dist/state/directRetrieval.js +323 -0
- package/dist/state/durability.js +324 -0
- package/dist/state/entityCutover.js +459 -0
- package/dist/state/entityCutoverGit.js +127 -0
- package/dist/state/entityGlossaryAuthority.js +13 -0
- package/dist/state/entityListProjection.js +187 -0
- package/dist/state/entityListRuntimeRegistry.js +85 -0
- package/dist/state/entityMigrationCausality.js +97 -0
- package/dist/state/entityMigrationIdentity.js +5 -0
- package/dist/state/entityMigrationPreview.js +846 -0
- package/dist/state/entityMigrationTodo.js +133 -0
- package/dist/state/entityPublicationContext.js +806 -0
- package/dist/state/entityRetrievalHelp.js +506 -0
- package/dist/state/entityStorage.js +896 -0
- package/dist/state/exactReplacementRecovery.js +18 -0
- package/dist/state/experimentArchive.js +63 -0
- package/dist/state/experimentIdentity.js +202 -0
- package/dist/state/healthEntities.js +262 -0
- package/dist/state/healthEntityValidation.js +18 -0
- package/dist/state/healthRepair.js +69 -0
- package/dist/state/installRoot.js +64 -25
- package/dist/state/legacyEntityCutoverEvidence.js +65 -0
- package/dist/state/legacyIdentity.js +47 -0
- package/dist/state/legacySummaryRecord.js +6 -0
- package/dist/state/listAccounting.js +54 -0
- package/dist/state/listClassification.js +17 -0
- package/dist/state/listCursor.js +42 -0
- package/dist/state/listRetrieval.js +781 -0
- package/dist/state/migrationSourceBinding.js +30 -0
- package/dist/state/objectiveExperimentEntities.js +322 -0
- package/dist/state/planEntities.js +530 -0
- package/dist/state/planIdentity.js +47 -0
- package/dist/state/planRetrieval.js +313 -0
- package/dist/state/planTaskRetrieval.js +294 -0
- package/dist/state/progressEntities.js +512 -0
- package/dist/state/progressGlossaryCaveat.js +168 -0
- package/dist/state/progressPublicationOrder.js +19 -0
- package/dist/state/projectRoot.js +62 -0
- package/dist/state/projectionPolicy.js +190 -0
- package/dist/state/retrievalAuthority.js +156 -0
- package/dist/state/safeProjectFile.js +155 -0
- package/dist/state/startupAnalysis/benchmark.js +432 -0
- package/dist/state/startupAnalysis/contract.js +160 -0
- package/dist/state/startupAnalysis/helpers.js +286 -0
- package/dist/state/startupAnalysis/index.js +6 -0
- package/dist/state/startupAnalysis/metrics.js +340 -0
- package/dist/state/startupAnalysis/records.js +198 -0
- package/dist/state/startupAnalysis/report.js +111 -0
- package/dist/state/startupAnalysis/threshold.js +512 -0
- package/dist/state/startupAnalysis.js +2 -1953
- package/dist/state/startupProjection.js +499 -0
- package/dist/state/stateMode.js +85 -0
- package/dist/state/stateStorageAuthority.js +47 -0
- package/dist/state/summaryEntityRead.js +25 -0
- package/dist/state/summaryMigrationProvenance.js +66 -0
- package/dist/state/summarySourceRowAuthority.js +36 -0
- package/dist/state/todoDocsEntities.js +1064 -0
- package/dist/state/todoDocsEntityValidation.js +158 -0
- package/dist/state/todoMarkdownProjection.js +51 -0
- package/dist/state/todoReconciliationActivation.js +132 -0
- package/dist/state/todoReconciliationInspection.js +173 -0
- package/dist/state/todoReconciliationRepair.js +170 -0
- package/dist/state/todoReconciliationTransaction.js +582 -0
- package/dist/state/write/assign.js +20 -0
- package/dist/state/write/candidateMutation.js +269 -0
- package/dist/state/write/errors.js +11 -0
- package/dist/state/write/experimentPublication.js +192 -0
- package/dist/state/write/explain.js +332 -0
- package/dist/state/write/fields.js +61 -0
- package/dist/state/write/glossaryPublication.js +263 -0
- package/dist/state/write/grammar.js +280 -0
- package/dist/state/write/helpers.js +29 -0
- package/dist/state/write/index.js +12 -0
- package/dist/state/write/input.js +367 -0
- package/dist/state/write/lock.js +837 -0
- package/dist/state/write/mutation.js +234 -0
- package/dist/state/write/operations.js +169 -0
- package/dist/state/write/planEvaluation.js +128 -0
- package/dist/state/write/planPublication.js +179 -0
- package/dist/state/write/runtimeOperations.js +142 -0
- package/dist/state/write/serialize.js +1 -0
- package/dist/state/write/transaction.js +52 -0
- package/dist/state/write/validate.js +7 -0
- package/dist/upgrade/appContentRefresh.js +383 -0
- package/dist/upgrade/appModel.js +8 -7
- package/dist/upgrade/atomicWriter.js +1 -0
- package/dist/upgrade/bundleEvidence.js +33 -0
- package/dist/upgrade/channels.js +12 -8
- package/dist/upgrade/compatibility.js +56 -21
- package/dist/upgrade/doctor.js +197 -192
- package/dist/upgrade/doctorClassifier.js +187 -0
- package/dist/upgrade/installedHooksRetirement.js +196 -0
- package/dist/upgrade/legacyAgentCleanup.js +282 -0
- package/dist/upgrade/lifecycleUpgrade.js +113 -0
- package/dist/upgrade/migrateArtifactsV2ToV3.js +367 -149
- package/dist/upgrade/migrationPublication.js +122 -0
- package/dist/upgrade/nextMajorDoctor.js +155 -0
- package/dist/upgrade/npxPlatformStatus.js +22 -0
- package/dist/upgrade/projectIntegration.js +145 -187
- package/dist/upgrade/projectIntegrationDecision.js +50 -0
- package/dist/upgrade/retiredResourceDiagnostics.js +117 -0
- package/dist/upgrade/runtimeMigration.js +278 -352
- package/dist/upgrade/upgradeCommands.js +14 -1
- package/dist/upgrade/upgradeLock.js +85 -0
- package/dist/upgrade/upgradeOrchestrator.js +263 -59
- package/dist/upgrade/v3CapabilitySurface.js +14 -0
- package/dist/upgrade/versionResolution.js +12 -5
- package/dist/validate/activationArtifactEvidence.js +844 -0
- package/dist/validate/activationConjunction.js +816 -0
- package/dist/validate/activationEvidenceManifest.js +515 -0
- package/dist/validate/activationPackageSemantics.js +29 -0
- package/dist/validate/appHomeContract.js +5 -11
- package/dist/validate/bootstrapAuthority.js +44 -0
- package/dist/validate/capability.js +144 -15
- package/dist/validate/crossCapability.js +15 -10
- package/dist/validate/retainedReferenceAuthority.js +879 -0
- package/dist/validate/selfAudit.js +73 -37
- package/dist/validate/v1LegacyCruft.js +131 -0
- package/dist/validate/vocabularyAuthority.js +303 -0
- package/package.json +53 -27
- package/bundle/references/adapters/cursor.md +0 -213
- package/bundle/references/adapters/opencode.md +0 -530
- package/bundle/references/adapters/package-manifest-interface-model.yaml +0 -337
- package/bundle/references/adapters/runtime-adapter-characterization.md +0 -79
- package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
- package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -548
- package/bundle/references/adapters/runtime-feature-parity.md +0 -189
- package/bundle/references/analysis/benchmark.md +0 -267
- package/bundle/references/analysis/startup-measurement-contract.yaml +0 -424
- package/bundle/references/cli/agent-ready-state-contract.yaml +0 -953
- package/bundle/references/cli/audience-namespace-cli-migration.yaml +0 -355
- package/bundle/references/cli/bundle-skill-vocabulary.yaml +0 -278
- package/bundle/references/cli/capability-tool-classification.yaml +0 -53
- package/bundle/references/cli/routing-execution-vocabulary.yaml +0 -281
- package/bundle/references/meta/documentation-inventory.md +0 -43
- package/bundle/references/v1-section-mapping.md +0 -47
- package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
- package/bundle/skills/agentera/agents/dokumentera.toml +0 -6
- package/bundle/skills/agentera/agents/hej.toml +0 -6
- package/bundle/skills/agentera/agents/inspektera.toml +0 -6
- package/bundle/skills/agentera/agents/inspirera.toml +0 -6
- package/bundle/skills/agentera/agents/optimera.toml +0 -6
- package/bundle/skills/agentera/agents/orkestrera.toml +0 -6
- package/bundle/skills/agentera/agents/planera.toml +0 -6
- package/bundle/skills/agentera/agents/profilera.toml +0 -6
- package/bundle/skills/agentera/agents/realisera.toml +0 -6
- package/bundle/skills/agentera/agents/resonera.toml +0 -6
- package/bundle/skills/agentera/agents/visionera.toml +0 -6
- package/bundle/skills/agentera/agents/visualisera.toml +0 -6
- package/bundle/skills/agentera/capabilities/dokumentera/instructions.md +0 -428
- package/bundle/skills/agentera/capabilities/dokumentera/schemas/artifacts.yaml +0 -73
- package/bundle/skills/agentera/capabilities/dokumentera/schemas/triggers.yaml +0 -35
- package/bundle/skills/agentera/capabilities/hej/instructions.md +0 -331
- package/bundle/skills/agentera/capabilities/hej/schemas/artifacts.yaml +0 -69
- package/bundle/skills/agentera/capabilities/hej/schemas/triggers.yaml +0 -58
- package/bundle/skills/agentera/capabilities/inspektera/instructions.md +0 -514
- package/bundle/skills/agentera/capabilities/inspektera/schemas/artifacts.yaml +0 -76
- package/bundle/skills/agentera/capabilities/inspektera/schemas/triggers.yaml +0 -38
- package/bundle/skills/agentera/capabilities/inspirera/instructions.md +0 -280
- package/bundle/skills/agentera/capabilities/inspirera/schemas/artifacts.yaml +0 -24
- package/bundle/skills/agentera/capabilities/inspirera/schemas/triggers.yaml +0 -34
- package/bundle/skills/agentera/capabilities/optimera/instructions.md +0 -437
- package/bundle/skills/agentera/capabilities/optimera/schemas/triggers.yaml +0 -39
- package/bundle/skills/agentera/capabilities/orkestrera/instructions.md +0 -433
- package/bundle/skills/agentera/capabilities/orkestrera/schemas/artifacts.yaml +0 -64
- package/bundle/skills/agentera/capabilities/orkestrera/schemas/triggers.yaml +0 -42
- package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +0 -107
- package/bundle/skills/agentera/capabilities/planera/instructions.md +0 -368
- package/bundle/skills/agentera/capabilities/planera/schemas/artifacts.yaml +0 -62
- package/bundle/skills/agentera/capabilities/planera/schemas/triggers.yaml +0 -34
- package/bundle/skills/agentera/capabilities/planera/schemas/validation.yaml +0 -61
- package/bundle/skills/agentera/capabilities/profilera/instructions.md +0 -419
- package/bundle/skills/agentera/capabilities/profilera/schemas/artifacts.yaml +0 -18
- package/bundle/skills/agentera/capabilities/profilera/schemas/triggers.yaml +0 -45
- package/bundle/skills/agentera/capabilities/profilera/schemas/validation.yaml +0 -57
- package/bundle/skills/agentera/capabilities/realisera/instructions.md +0 -403
- package/bundle/skills/agentera/capabilities/realisera/schemas/artifacts.yaml +0 -80
- package/bundle/skills/agentera/capabilities/realisera/schemas/triggers.yaml +0 -39
- package/bundle/skills/agentera/capabilities/realisera/schemas/validation.yaml +0 -110
- package/bundle/skills/agentera/capabilities/resonera/instructions.md +0 -329
- package/bundle/skills/agentera/capabilities/resonera/schemas/artifacts.yaml +0 -47
- package/bundle/skills/agentera/capabilities/resonera/schemas/triggers.yaml +0 -46
- package/bundle/skills/agentera/capabilities/resonera/schemas/validation.yaml +0 -77
- package/bundle/skills/agentera/capabilities/visionera/instructions.md +0 -309
- package/bundle/skills/agentera/capabilities/visionera/schemas/triggers.yaml +0 -41
- package/bundle/skills/agentera/capabilities/visualisera/instructions.md +0 -400
- package/bundle/skills/agentera/capabilities/visualisera/schemas/triggers.yaml +0 -33
- package/bundle/skills/agentera/references/contract.md +0 -1039
- package/bundle/skills/hej/.claude-plugin/plugin.json +0 -6
- package/bundle/skills/hej/SKILL.md +0 -69
- package/bundle/skills/hej/agents/hej.toml +0 -11
- package/bundle/skills/hej/agents/openai.yaml +0 -8
- package/dist/analytics/extractCorpus.js.map +0 -1
- package/dist/analytics/usageStats.js.map +0 -1
- package/dist/bin/agentera.js.map +0 -1
- package/dist/cli/appContext.js.map +0 -1
- package/dist/cli/argvalidate.js.map +0 -1
- package/dist/cli/capabilityContext.js.map +0 -1
- package/dist/cli/commands/backfill.js +0 -84
- package/dist/cli/commands/backfill.js.map +0 -1
- package/dist/cli/commands/capability.js.map +0 -1
- package/dist/cli/commands/compact.js.map +0 -1
- package/dist/cli/commands/doctor.js.map +0 -1
- package/dist/cli/commands/lint.js.map +0 -1
- package/dist/cli/commands/prime.js.map +0 -1
- package/dist/cli/commands/query.js.map +0 -1
- package/dist/cli/commands/report.js.map +0 -1
- package/dist/cli/commands/schema.js.map +0 -1
- package/dist/cli/commands/state.js +0 -1012
- package/dist/cli/commands/state.js.map +0 -1
- package/dist/cli/commands/upgrade.js.map +0 -1
- package/dist/cli/commands/validate.js.map +0 -1
- package/dist/cli/commands/verify.js.map +0 -1
- package/dist/cli/dispatch.js.map +0 -1
- package/dist/cli/help.js.map +0 -1
- package/dist/cli/orientation.js.map +0 -1
- package/dist/cli/prime-blob.js.map +0 -1
- package/dist/cli/stateQuery.js.map +0 -1
- package/dist/cli/structured.js.map +0 -1
- package/dist/core/difflib.js.map +0 -1
- package/dist/core/git.js +0 -43
- package/dist/core/git.js.map +0 -1
- package/dist/core/paths.js.map +0 -1
- package/dist/core/pyjson.js.map +0 -1
- package/dist/core/sourceRoot.js.map +0 -1
- package/dist/core/toml.js.map +0 -1
- package/dist/core/yaml.js.map +0 -1
- package/dist/eval/evalSkills.js.map +0 -1
- package/dist/eval/semanticEval.js.map +0 -1
- package/dist/eval/semanticFixtures.js.map +0 -1
- package/dist/hooks/common.js.map +0 -1
- package/dist/hooks/compaction.js +0 -935
- package/dist/hooks/compaction.js.map +0 -1
- package/dist/hooks/cursorPreToolUse.js +0 -19
- package/dist/hooks/cursorPreToolUse.js.map +0 -1
- package/dist/hooks/cursorSessionStart.js +0 -71
- package/dist/hooks/cursorSessionStart.js.map +0 -1
- package/dist/hooks/sessionStart.js +0 -209
- package/dist/hooks/sessionStart.js.map +0 -1
- package/dist/hooks/sessionStop.js +0 -212
- package/dist/hooks/sessionStop.js.map +0 -1
- package/dist/hooks/validateArtifact.js +0 -933
- package/dist/hooks/validateArtifact.js.map +0 -1
- package/dist/registries/artifactRegistry.js.map +0 -1
- package/dist/registries/capabilityContract.js.map +0 -1
- package/dist/registries/packageRegistry.js.map +0 -1
- package/dist/registries/runtimeAdapterRegistry.js +0 -315
- package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
- package/dist/setup/codex.js +0 -1056
- package/dist/setup/codex.js.map +0 -1
- package/dist/setup/copilot.js +0 -227
- package/dist/setup/copilot.js.map +0 -1
- package/dist/setup/cursor.js +0 -127
- package/dist/setup/cursor.js.map +0 -1
- package/dist/setup/doctor.js +0 -1297
- package/dist/setup/doctor.js.map +0 -1
- package/dist/setup/smokeChecks.js.map +0 -1
- package/dist/state/installRoot.js.map +0 -1
- package/dist/state/progressCommit.js +0 -289
- package/dist/state/progressCommit.js.map +0 -1
- package/dist/state/startupAnalysis.js.map +0 -1
- package/dist/upgrade/appModel.js.map +0 -1
- package/dist/upgrade/channels.js.map +0 -1
- package/dist/upgrade/compatibility.js.map +0 -1
- package/dist/upgrade/doctor.js.map +0 -1
- package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -571
- package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
- package/dist/upgrade/migrateArtifactsV2ToV3.js.map +0 -1
- package/dist/upgrade/projectIntegration.js.map +0 -1
- package/dist/upgrade/runtimeMigration.js.map +0 -1
- package/dist/upgrade/upgradeCommands.js.map +0 -1
- package/dist/upgrade/upgradeOrchestrator.js.map +0 -1
- package/dist/upgrade/versionResolution.js.map +0 -1
- package/dist/validate/appHomeContract.js.map +0 -1
- package/dist/validate/capability.js.map +0 -1
- package/dist/validate/crossCapability.js.map +0 -1
- package/dist/validate/lifecycleAdapters.js +0 -772
- package/dist/validate/lifecycleAdapters.js.map +0 -1
- package/dist/validate/selfAudit.js.map +0 -1
- /package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/exit.yaml +0 -0
- /package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/exit.yaml +0 -0
- /package/bundle/skills/agentera/capabilities/{hej → status}/schemas/exit.yaml +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
# Decisions Artifact Schema
|
|
2
2
|
#
|
|
3
|
-
# Reasoning trail maintained by
|
|
4
|
-
# one entry. Decisions are referenced by
|
|
3
|
+
# Reasoning trail maintained by discuss. Each deliberation session appends
|
|
4
|
+
# one entry. Decisions are referenced by build, optimize, and profile
|
|
5
5
|
# for context on why choices were made.
|
|
6
6
|
#
|
|
7
|
-
#
|
|
8
|
-
#
|
|
7
|
+
# The active authority uses writer-owned decision, revision, and satisfaction
|
|
8
|
+
# entity files. The numbered projection model below is retained only as an exact
|
|
9
|
+
# legacy migration input schema; it is not an ordinary post-cutover contract.
|
|
9
10
|
#
|
|
10
11
|
# ── Field-by-field mapping: v1 DECISIONS.md → v2 decisions.yaml ──
|
|
11
12
|
#
|
|
@@ -32,16 +33,28 @@ meta:
|
|
|
32
33
|
name: decisions
|
|
33
34
|
version: "1.0.0"
|
|
34
35
|
description: >-
|
|
35
|
-
Reasoning trail maintained by
|
|
36
|
-
appends one entry. Decisions are referenced by
|
|
37
|
-
|
|
38
|
-
and
|
|
36
|
+
Reasoning trail maintained by discuss. Each deliberation session
|
|
37
|
+
appends one entry. Decisions are referenced by build, optimize,
|
|
38
|
+
profile, plan, audit, status, document, vision, discuss,
|
|
39
|
+
and orchestrate for context on why choices were made.
|
|
39
40
|
artifact_type: agent_facing
|
|
40
41
|
path: ".agentera/decisions.yaml"
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
authority: legacy_migration_input_only
|
|
43
|
+
producer: discuss
|
|
44
|
+
consumers: [document, status, audit, optimize, orchestrate, plan, profile, build, discuss, vision]
|
|
43
45
|
format: yaml
|
|
44
46
|
|
|
47
|
+
ENTITY_AUTHORITY:
|
|
48
|
+
identity_fields: [id, artifact]
|
|
49
|
+
artifact: decisions
|
|
50
|
+
boundaries: [decision, decision_revision, decision_satisfaction]
|
|
51
|
+
retrieval:
|
|
52
|
+
list: npx -y agentera@next state decisions list --format json
|
|
53
|
+
get: npx -y agentera@next state decisions get --id ID --format json
|
|
54
|
+
mutation: npx -y agentera@next state decisions explain --format json
|
|
55
|
+
direct_file_edits: forbidden
|
|
56
|
+
legacy_schema_below: migration_input_only
|
|
57
|
+
|
|
45
58
|
GROUP_PREFIXES:
|
|
46
59
|
BUDGET: DB
|
|
47
60
|
COMPACTION: DX
|
|
@@ -55,7 +68,7 @@ BUDGET:
|
|
|
55
68
|
1:
|
|
56
69
|
id: DB1
|
|
57
70
|
scope: per_decision_entry
|
|
58
|
-
max_words:
|
|
71
|
+
max_words: 1000
|
|
59
72
|
description: >-
|
|
60
73
|
Maximum words per decision entry. Budgets are guidelines, not hard
|
|
61
74
|
blockers.
|
|
@@ -69,10 +82,10 @@ BUDGET:
|
|
|
69
82
|
COMPACTION:
|
|
70
83
|
1:
|
|
71
84
|
id: DX1
|
|
72
|
-
rule:
|
|
85
|
+
rule: lossless_projection
|
|
73
86
|
description: >-
|
|
74
|
-
|
|
75
|
-
|
|
87
|
+
The 10/40/50 values are current projection defaults, not deletion limits.
|
|
88
|
+
Numbered archive records remain complete and unlimited.
|
|
76
89
|
2:
|
|
77
90
|
id: DX2
|
|
78
91
|
full_detail:
|
|
@@ -93,21 +106,26 @@ COMPACTION:
|
|
|
93
106
|
the archive section. Compact summaries preserve decision number, date,
|
|
94
107
|
and chosen alternative; structured compact fields preserve outcome and
|
|
95
108
|
explicit feeds_into references when present so CLI downstream references
|
|
96
|
-
remain non-inferential.
|
|
109
|
+
remain non-inferential. Entries beyond the summary default are represented
|
|
110
|
+
by omission metadata while their numbered archive records remain available.
|
|
97
111
|
4:
|
|
98
112
|
id: DX4
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
113
|
+
omission:
|
|
114
|
+
fields: [omitted, omitted_count, omission_reason, retrieval]
|
|
115
|
+
reason: projection_capacity_or_byte_budget
|
|
102
116
|
description: >-
|
|
103
|
-
|
|
117
|
+
Omitted projection detail is never silently deleted or truncated. The
|
|
118
|
+
numbered archive is the complete historical source and retrieval points
|
|
119
|
+
use the direct state get contract.
|
|
104
120
|
5:
|
|
105
121
|
id: DX5
|
|
106
|
-
trigger: "When
|
|
122
|
+
trigger: "When discuss writes a new decision"
|
|
107
123
|
description: >-
|
|
108
124
|
Compaction runs when the producing skill writes a new entry.
|
|
109
|
-
If >10 full-detail entries exist
|
|
110
|
-
|
|
125
|
+
If >10 full-detail entries exist and their numbered archives verify,
|
|
126
|
+
collapse the oldest to one-line. If >40 summary entries exist, omit the
|
|
127
|
+
oldest from this bounded projection with metadata; never delete its
|
|
128
|
+
numbered archive record. Unresolved review entries do not block storage.
|
|
111
129
|
6:
|
|
112
130
|
id: DX6
|
|
113
131
|
archive_section:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Design Artifact Schema
|
|
2
2
|
#
|
|
3
|
-
# Visual identity system maintained by
|
|
3
|
+
# Visual identity system maintained by design. Defines design tokens,
|
|
4
4
|
# palette, typography, spacing, and component styling rules.
|
|
5
5
|
#
|
|
6
6
|
# Note: DESIGN.md is a human-facing Markdown artifact. It remains at the
|
|
@@ -11,12 +11,12 @@ meta:
|
|
|
11
11
|
name: design
|
|
12
12
|
version: "1.0.0"
|
|
13
13
|
description: >-
|
|
14
|
-
Visual identity system. Produced by
|
|
14
|
+
Visual identity system. Produced by design. Consumed by capabilities
|
|
15
15
|
that need visual identity context. Human-facing: remains Markdown at root.
|
|
16
16
|
artifact_type: human_facing
|
|
17
17
|
path: "DESIGN.md"
|
|
18
|
-
producer:
|
|
19
|
-
consumers: [
|
|
18
|
+
producer: design
|
|
19
|
+
consumers: [document, status, audit, build, vision, design]
|
|
20
20
|
format: markdown
|
|
21
21
|
|
|
22
22
|
GROUP_PREFIXES:
|
|
@@ -27,6 +27,7 @@ GROUP_PREFIXES:
|
|
|
27
27
|
BUDGET:
|
|
28
28
|
1:
|
|
29
29
|
id: DB1
|
|
30
|
+
scope: full_file
|
|
30
31
|
token_budget: 2000
|
|
31
32
|
description: >-
|
|
32
33
|
Maximum tokens for DESIGN.md content. Exceeding triggers compaction.
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
# Docs Artifact Schema
|
|
2
2
|
#
|
|
3
|
-
# Documentation contract maintained by
|
|
3
|
+
# Documentation contract maintained by document. Tracks project doc
|
|
4
4
|
# conventions, artifact path overrides, document index with status, coverage
|
|
5
|
-
# metrics, and timestamped audit findings.
|
|
5
|
+
# metrics, and timestamped audit findings. After durable entity cutover only
|
|
6
|
+
# index entries become independent entities; mappings, conventions, coverage,
|
|
7
|
+
# audit/editorial configuration, and other singleton sections retain
|
|
8
|
+
# intentional whole-document authority in docs.yaml.
|
|
6
9
|
#
|
|
7
10
|
# Structural pattern: UPPER_CASE groups with numbered entries and stable IDs,
|
|
8
11
|
# following capability_schema_contract.yaml and protocol.yaml conventions.
|
|
@@ -47,11 +50,11 @@ meta:
|
|
|
47
50
|
name: docs
|
|
48
51
|
version: "1.0.0"
|
|
49
52
|
description: >-
|
|
50
|
-
Documentation contract. Produced by
|
|
53
|
+
Documentation contract. Produced by document. Consumed by all skills
|
|
51
54
|
for artifact path resolution and doc status tracking.
|
|
52
55
|
artifact_type: agent_facing
|
|
53
56
|
path: ".agentera/docs.yaml"
|
|
54
|
-
producer:
|
|
57
|
+
producer: document
|
|
55
58
|
consumers: [all_skills]
|
|
56
59
|
format: yaml
|
|
57
60
|
|
|
@@ -70,10 +73,10 @@ BUDGET:
|
|
|
70
73
|
1:
|
|
71
74
|
id: DB1
|
|
72
75
|
scope: full_file
|
|
73
|
-
max_words:
|
|
76
|
+
max_words: null
|
|
74
77
|
description: >-
|
|
75
|
-
|
|
76
|
-
|
|
78
|
+
No full-file word budget. Historical audit_log entries are immutable;
|
|
79
|
+
keep the active inventory and coverage sections concise.
|
|
77
80
|
|
|
78
81
|
HEADER:
|
|
79
82
|
1:
|
|
@@ -123,7 +126,7 @@ CONVENTIONS:
|
|
|
123
126
|
required: true
|
|
124
127
|
description: >-
|
|
125
128
|
Files whose content changes indicate a version bump is needed.
|
|
126
|
-
Tracked by
|
|
129
|
+
Tracked by plan, audit, and build for bump discipline.
|
|
127
130
|
validation:
|
|
128
131
|
- "At least one entry required"
|
|
129
132
|
5:
|
|
@@ -177,8 +180,9 @@ MAPPING:
|
|
|
177
180
|
required: true
|
|
178
181
|
description: >-
|
|
179
182
|
File path for this artifact. May be absolute or relative.
|
|
180
|
-
Environment variable references (e.g., $
|
|
181
|
-
are resolved at read
|
|
183
|
+
Environment variable references (e.g., $AGENTERA_PROFILE_DIR or
|
|
184
|
+
the deprecated $PROFILERA_PROFILE_DIR alias) are resolved at read
|
|
185
|
+
time with AGENTERA_PROFILE_DIR taking precedence.
|
|
182
186
|
validation:
|
|
183
187
|
- "Non-empty string"
|
|
184
188
|
4:
|
|
@@ -288,7 +292,7 @@ AUDIT_LOG:
|
|
|
288
292
|
type: map
|
|
289
293
|
required: false
|
|
290
294
|
description: >-
|
|
291
|
-
Each audit log entry. Timestamped findings from
|
|
295
|
+
Each audit log entry. Timestamped findings from document audits.
|
|
292
296
|
Appended when an audit is performed.
|
|
293
297
|
2:
|
|
294
298
|
id: DA2
|
|
@@ -392,11 +396,3 @@ VALIDATION:
|
|
|
392
396
|
Index status values should be from the allowed set.
|
|
393
397
|
checks:
|
|
394
398
|
- "Each status is one of: current, stale, missing, intent, generated"
|
|
395
|
-
4:
|
|
396
|
-
id: DVL4
|
|
397
|
-
rule: word_budget
|
|
398
|
-
severity: advisory
|
|
399
|
-
description: >-
|
|
400
|
-
Advisory check. Full file should be <=2000 words.
|
|
401
|
-
checks:
|
|
402
|
-
- "Total file word count <= 2000"
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Experiments Artifact Schema
|
|
2
2
|
#
|
|
3
|
-
# Experiment log maintained by
|
|
3
|
+
# Experiment log maintained by optimize. Each experiment records hypothesis,
|
|
4
4
|
# method, metric results, kept/discarded status, and conclusions. Lives
|
|
5
|
-
# alongside OBJECTIVE.md in .agentera/
|
|
5
|
+
# alongside OBJECTIVE.md in .agentera/optimize/<name>/.
|
|
6
6
|
#
|
|
7
7
|
# Structural pattern: UPPER_CASE groups with numbered entries and stable IDs,
|
|
8
8
|
# following capability_schema_contract.yaml and protocol.yaml conventions.
|
|
@@ -40,12 +40,12 @@ meta:
|
|
|
40
40
|
name: experiments
|
|
41
41
|
version: "1.0.0"
|
|
42
42
|
description: >-
|
|
43
|
-
Experiment log for
|
|
44
|
-
Lives in .agentera/
|
|
43
|
+
Experiment log for optimize objectives. Produced and consumed by optimize.
|
|
44
|
+
Lives in .agentera/optimize/<name>/ alongside the objective.
|
|
45
45
|
artifact_type: agent_facing
|
|
46
|
-
path: ".agentera/
|
|
47
|
-
producer:
|
|
48
|
-
consumers: [
|
|
46
|
+
path: ".agentera/optimize/<name>/experiments.yaml"
|
|
47
|
+
producer: optimize
|
|
48
|
+
consumers: [status, optimize]
|
|
49
49
|
format: yaml
|
|
50
50
|
|
|
51
51
|
GROUP_PREFIXES:
|
|
@@ -54,6 +54,8 @@ GROUP_PREFIXES:
|
|
|
54
54
|
EXPERIMENT: EX
|
|
55
55
|
CLOSURE: EC
|
|
56
56
|
ARCHIVE: EA
|
|
57
|
+
PUBLICATION: EP
|
|
58
|
+
RETRIEVAL: ER
|
|
57
59
|
VALIDATION: EV
|
|
58
60
|
|
|
59
61
|
BUDGET:
|
|
@@ -108,7 +110,7 @@ COMPACTION:
|
|
|
108
110
|
Experiments older than 50 are dropped entirely.
|
|
109
111
|
5:
|
|
110
112
|
id: EX_CMP5
|
|
111
|
-
trigger: "When
|
|
113
|
+
trigger: "When optimize writes a new experiment"
|
|
112
114
|
description: >-
|
|
113
115
|
Compaction runs when the producing skill writes a new entry.
|
|
114
116
|
If >10 full-detail entries exist, collapse the oldest to one-line.
|
|
@@ -133,6 +135,7 @@ EXPERIMENT:
|
|
|
133
135
|
validation:
|
|
134
136
|
- "Must be a non-negative integer"
|
|
135
137
|
- "Must be unique across active and archived entries"
|
|
138
|
+
- "Identity is <objective-id>/experiment:<number>"
|
|
136
139
|
2:
|
|
137
140
|
id: EX2
|
|
138
141
|
field: date
|
|
@@ -267,6 +270,94 @@ EXPERIMENT:
|
|
|
267
270
|
Harness refinement log for baseline experiments. Each entry
|
|
268
271
|
records a run number, issue encountered, and fix applied.
|
|
269
272
|
|
|
273
|
+
PUBLICATION:
|
|
274
|
+
1:
|
|
275
|
+
id: EP1
|
|
276
|
+
operation: publish
|
|
277
|
+
command: >-
|
|
278
|
+
npx -y agentera@next state experiments publish --objective ID [--id ID]
|
|
279
|
+
--input EXPERIMENT.yaml --format json
|
|
280
|
+
description: >-
|
|
281
|
+
The typed state writer is the mutation authority. It validates the
|
|
282
|
+
objective, identity, caller entry, and canonical entity state before
|
|
283
|
+
atomically publishing one experiment entity.
|
|
284
|
+
2:
|
|
285
|
+
id: EP2
|
|
286
|
+
identity: bare_ten_letter_id
|
|
287
|
+
classification: experiments
|
|
288
|
+
cli_owned_fields: [id, artifact, objective]
|
|
289
|
+
retry: byte_equivalent_identity_is_idempotent
|
|
290
|
+
collision: same_identity_with_different_content_fails
|
|
291
|
+
description: >-
|
|
292
|
+
Retry never duplicates an experiment. Invalid identity, collisions, and
|
|
293
|
+
pre-publication failures preserve active and archive projection bytes.
|
|
294
|
+
3:
|
|
295
|
+
id: EP3
|
|
296
|
+
projection: bounded_entity_list
|
|
297
|
+
durable_archive: not_applicable
|
|
298
|
+
description: >-
|
|
299
|
+
Publication validates and durably publishes one immutable canonical
|
|
300
|
+
experiment entity. Bounded list output never compacts entity records.
|
|
301
|
+
4:
|
|
302
|
+
id: EP4
|
|
303
|
+
classification: legacy_migration_source_provenance
|
|
304
|
+
archive_path: '.agentera/<objective-root>/<objective>/archive/experiments/<experiment-number>.yaml'
|
|
305
|
+
canonical_objective_root: optimize
|
|
306
|
+
readable_legacy_objective_roots: [optimera]
|
|
307
|
+
envelope_schema: agentera.experimentArchive.v1
|
|
308
|
+
required_fields:
|
|
309
|
+
- schemaVersion
|
|
310
|
+
- stable_id
|
|
311
|
+
- objective_id
|
|
312
|
+
- experiment_number
|
|
313
|
+
- record
|
|
314
|
+
- record_sha256
|
|
315
|
+
- provenance
|
|
316
|
+
provenance_fields: [authority, objective_id, experiment_id, storage_scope, publication_order]
|
|
317
|
+
retry: byte_equivalent_envelope_is_idempotent
|
|
318
|
+
collision: same_identity_with_different_bytes_fails
|
|
319
|
+
description: >-
|
|
320
|
+
Archive identity binds stable objective and experiment identity to the
|
|
321
|
+
immutable full record. Legacy projection entries remain readable without
|
|
322
|
+
fabricating archive history that predates this publication contract.
|
|
323
|
+
5:
|
|
324
|
+
id: EP5
|
|
325
|
+
directory_durability: fsync_each_new_child_parent_before_advancing
|
|
326
|
+
exact_full_replay: reconstruct_missing_archive_before_success
|
|
327
|
+
summary_only_replay: never_reconstruct_without_full_detail
|
|
328
|
+
description: >-
|
|
329
|
+
First publication durably records every new archive directory entry.
|
|
330
|
+
Replay may recover only the exact full record still present in the
|
|
331
|
+
projection; compacted summaries and dropped rows are not fabricated.
|
|
332
|
+
|
|
333
|
+
RETRIEVAL:
|
|
334
|
+
1:
|
|
335
|
+
id: ER1
|
|
336
|
+
list: >-
|
|
337
|
+
npx -y agentera@next state experiments list --objective ID [--limit N]
|
|
338
|
+
[--cursor TOKEN] --format json
|
|
339
|
+
get: >-
|
|
340
|
+
npx -y agentera@next state experiments get --id ID --format json
|
|
341
|
+
description: >-
|
|
342
|
+
List returns newest-first objective-scoped canonical entities. Get returns
|
|
343
|
+
one exact entity by bare ID.
|
|
344
|
+
2:
|
|
345
|
+
id: ER2
|
|
346
|
+
cursor: opaque_snapshot_cursor
|
|
347
|
+
cursor_binding: [collection, objective, order, snapshot]
|
|
348
|
+
detail_availability: [full, summary, unavailable]
|
|
349
|
+
description: >-
|
|
350
|
+
Cursor tokens are copied, never parsed or constructed. List and get retain
|
|
351
|
+
compatibility and provenance when legacy detail is summary-only or absent.
|
|
352
|
+
3:
|
|
353
|
+
id: ER3
|
|
354
|
+
maximum_limit: 100
|
|
355
|
+
max_serialized_utf8_bytes: 32768
|
|
356
|
+
omission_fields: [omitted, omitted_count, omission_reason, retrieval]
|
|
357
|
+
description: >-
|
|
358
|
+
Structured pages omit whole entries rather than truncating scalar values;
|
|
359
|
+
every addressable omission has continuation or exact-get recovery.
|
|
360
|
+
|
|
270
361
|
CLOSURE:
|
|
271
362
|
1:
|
|
272
363
|
id: EC1
|
|
@@ -317,22 +408,22 @@ ARCHIVE:
|
|
|
317
408
|
VALIDATION:
|
|
318
409
|
1:
|
|
319
410
|
id: EV1
|
|
320
|
-
rule:
|
|
411
|
+
rule: unique_entity_ids
|
|
321
412
|
severity: error
|
|
322
413
|
description: >-
|
|
323
|
-
Experiment
|
|
414
|
+
Experiment IDs must be unique project-wide and match the canonical pattern.
|
|
324
415
|
checks:
|
|
325
|
-
- "All experiment
|
|
326
|
-
- "
|
|
416
|
+
- "All experiment IDs are unique across canonical entities"
|
|
417
|
+
- "Every ID is ten lowercase letters"
|
|
327
418
|
2:
|
|
328
419
|
id: EV2
|
|
329
420
|
rule: required_fields
|
|
330
421
|
severity: error
|
|
331
422
|
description: >-
|
|
332
|
-
Each full-detail experiment
|
|
423
|
+
Each full-detail experiment entity record must have: date, label,
|
|
333
424
|
hypothesis, method, change, metric, status, and conclusion.
|
|
334
425
|
checks:
|
|
335
|
-
- "
|
|
426
|
+
- "the envelope has id and artifact fields"
|
|
336
427
|
- "date is present and matches YYYY-MM-DD HH:MM"
|
|
337
428
|
- "label is present and non-empty"
|
|
338
429
|
- "hypothesis is present and non-empty"
|
|
@@ -371,3 +462,43 @@ VALIDATION:
|
|
|
371
462
|
and serve as the reference measurement.
|
|
372
463
|
checks:
|
|
373
464
|
- "Experiment 0 has status 'baseline'"
|
|
465
|
+
6:
|
|
466
|
+
id: EV6
|
|
467
|
+
rule: identity_compatibility
|
|
468
|
+
severity: error
|
|
469
|
+
description: >-
|
|
470
|
+
Experiment identity is objective-scoped. Reads retain legacy entries with
|
|
471
|
+
missing or duplicate numbers as unaddressable data with explicit caveats;
|
|
472
|
+
a new publication must reject ambiguous objective or experiment identity
|
|
473
|
+
before changing objective, experiment, or archive bytes.
|
|
474
|
+
checks:
|
|
475
|
+
- "Objective identity is stable across title and directory rename"
|
|
476
|
+
- "Experiment 0 and later non-negative numbers are addressable"
|
|
477
|
+
- "Duplicate or missing experiment numbers remain visible but unaddressable"
|
|
478
|
+
- "Publication rejects ambiguity before effects"
|
|
479
|
+
7:
|
|
480
|
+
id: EV7
|
|
481
|
+
rule: validated_publication
|
|
482
|
+
severity: error
|
|
483
|
+
description: >-
|
|
484
|
+
New experiments are published only through the typed writer after pure
|
|
485
|
+
identity and schema preflight, with atomic replacement and idempotent retry.
|
|
486
|
+
checks:
|
|
487
|
+
- "Caller input omits the CLI-owned number field"
|
|
488
|
+
- "Objective and experiment identity validate before staging"
|
|
489
|
+
- "Final experiments.yaml bytes validate before atomic replacement"
|
|
490
|
+
- "A byte-equivalent retry returns the existing experiment without duplication"
|
|
491
|
+
8:
|
|
492
|
+
id: EV8
|
|
493
|
+
rule: durable_archive_before_projection
|
|
494
|
+
severity: error
|
|
495
|
+
description: >-
|
|
496
|
+
Newly published full detail must be validated, immutably archived, and
|
|
497
|
+
directory-synced before the compacted projection is replaced.
|
|
498
|
+
checks:
|
|
499
|
+
- "Archive envelope identity and provenance validate before publication"
|
|
500
|
+
- "Every newly created archive directory entry is parent-synced in order"
|
|
501
|
+
- "Archive publication succeeds before projection replacement"
|
|
502
|
+
- "Exact full replay reconstructs a missing archive before success"
|
|
503
|
+
- "Conflicting immutable archive bytes preserve archive and projection"
|
|
504
|
+
- "Retry after archive or projection interruption does not duplicate detail"
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Project Glossary Artifact Schema
|
|
2
|
+
|
|
3
|
+
meta:
|
|
4
|
+
name: glossary
|
|
5
|
+
version: "1.0.0"
|
|
6
|
+
description: >-
|
|
7
|
+
Repository-scoped canonical terminology governed by the shared glossary
|
|
8
|
+
entry and project publication contracts. Build atomically publishes an
|
|
9
|
+
explicitly confirmed audit proposal; audit and discuss remain read-only.
|
|
10
|
+
artifact_type: agent_facing
|
|
11
|
+
path: ".agentera/glossary.yaml"
|
|
12
|
+
producer: build
|
|
13
|
+
consumers: [build]
|
|
14
|
+
format: yaml
|
|
15
|
+
implementation_status: active
|
|
16
|
+
|
|
17
|
+
CONFORMANCE:
|
|
18
|
+
authority: references/artifacts/glossary-entry-contract.yaml
|
|
19
|
+
ownership_contract: project
|
|
20
|
+
provenance_variant: project_file
|
|
21
|
+
term_identity_runtime: packages/cli/src/registries/glossaryTermIdentity.ts#unicodeCaselessExact
|
|
22
|
+
term_occurrence_runtime: packages/cli/src/registries/glossaryTermOccurrence.ts#containsGlossaryTerm
|
|
23
|
+
|
|
24
|
+
DOCUMENT:
|
|
25
|
+
schema_version: agentera.projectGlossary.v1
|
|
26
|
+
required_fields: [schema_version, approvals, entries]
|
|
27
|
+
additional_fields: forbidden
|
|
28
|
+
approvals:
|
|
29
|
+
type: list
|
|
30
|
+
immutable: true
|
|
31
|
+
record_fields: [proposal_digest, proposal, confirmation]
|
|
32
|
+
additional_record_fields: forbidden
|
|
33
|
+
entries:
|
|
34
|
+
type: list
|
|
35
|
+
item: shared_primitive
|
|
36
|
+
approval_fields: forbidden
|
|
37
|
+
terminology_set_identity:
|
|
38
|
+
normalization: unicode_caseless_exact_no_normalization
|
|
39
|
+
members: [paired_entry.term, paired_approval.proposal.variants.term]
|
|
40
|
+
uniqueness: global_across_complete_document
|
|
41
|
+
|
|
42
|
+
PUBLICATION:
|
|
43
|
+
implementation: active
|
|
44
|
+
owner: build
|
|
45
|
+
command: npx -y agentera@next state glossary publish --input REQUEST --format json
|
|
46
|
+
request_schema_version: agentera.glossaryPublicationRequest.v1
|
|
47
|
+
atomic_unit: complete_document
|
|
48
|
+
lock: established_project_writer_lock
|
|
49
|
+
exact_replay: no_op
|
|
50
|
+
term_identity: unicode_caseless_exact_no_normalization_global_canonical_and_variant_set
|
|
51
|
+
source_revalidation: safe_real_path_line_identity_and_sha256
|
|
52
|
+
docs_mapping_mutation: forbidden
|
|
53
|
+
excluded_behavior: [consumer_lookup, consumer_precedence, consumer_semantic_review, personal_profile_mutation]
|
|
54
|
+
|
|
55
|
+
CONSUMER_ACQUISITION:
|
|
56
|
+
implementation: active
|
|
57
|
+
authority: references/artifacts/glossary-entry-contract.yaml#consumer_boundary.acquisition
|
|
58
|
+
runtime: packages/cli/src/analytics/glossaryInputAcquisition.ts#acquireGlossaryInputs
|
|
59
|
+
availability: [absent, valid_empty, valid_present, malformed, unreadable, ambiguous, over_bound]
|
|
60
|
+
output_entry_fields: [term, meaning, owner]
|
|
61
|
+
source_output_fields: [owner, availability, entries, gap_proving, diagnostic]
|
|
62
|
+
raw_byte_bound: 65536
|
|
63
|
+
entry_bound: 100
|
|
64
|
+
utf8_decoding: fatal
|
|
65
|
+
project_read: descriptor_bound_no_follow_with_parent_identity_checks
|
|
66
|
+
mutation: forbidden
|
|
67
|
+
consumer_semantics: [project_precedence, proven_gap_personal_fallback, divergent_tension, host_review]
|
|
68
|
+
|
|
69
|
+
ADVICE_RESOLUTION:
|
|
70
|
+
implementation: active
|
|
71
|
+
authority: references/artifacts/glossary-entry-contract.yaml#consumer_boundary.advice_resolution
|
|
72
|
+
runtime: packages/cli/src/analytics/glossaryAdviceResolution.ts#resolveGlossaryAdvice
|
|
73
|
+
input: [requested_term, acquired, host_review]
|
|
74
|
+
output_schema_version: agentera.glossaryAdvice.v1
|
|
75
|
+
mutation: forbidden
|
|
76
|
+
capability_integrations: [discuss, plan, build, prime]
|
|
77
|
+
|
|
78
|
+
CONFIRMED_VARIANT_GUARD:
|
|
79
|
+
authority: references/artifacts/glossary-entry-contract.yaml#ownership_contracts.project.confirmed_variant_guard
|
|
80
|
+
implementation: active
|
|
81
|
+
validation_surface: packages/cli/test/cli/v1LegacyCruft.test.ts
|
|
82
|
+
consumer_lookup: forbidden
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
# Health Artifact Schema
|
|
2
2
|
#
|
|
3
|
-
# Audit
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
3
|
+
# Audit normally owns health records. Orchestrate may append only the limited
|
|
4
|
+
# artifact_freshness record for terminal-plan closure after Audit passes. Each
|
|
5
|
+
# audit entry records assessed dimensions, findings (critical/warning/info
|
|
6
|
+
# counts), overall trajectory, per-dimension grades (A-F), per-dimension
|
|
7
|
+
# findings with confidence, and trend analysis against the prior audit.
|
|
7
8
|
#
|
|
8
|
-
#
|
|
9
|
-
#
|
|
9
|
+
# The active authority is one health_audit entity per writer-owned file. The
|
|
10
|
+
# numbered projection model below is retained only as an exact legacy migration
|
|
11
|
+
# input schema; it is not an ordinary read or write contract after cutover.
|
|
10
12
|
#
|
|
11
13
|
# ── Field-by-field mapping: v1 HEALTH.md → v2 health.yaml ──
|
|
12
14
|
#
|
|
@@ -14,6 +16,7 @@
|
|
|
14
16
|
# ─────────────────────────────────────────────────────────────────────
|
|
15
17
|
# ## Audit N · date AUDIT.number HA1
|
|
16
18
|
# (date from heading) AUDIT.date HA2
|
|
19
|
+
# (CLI append time) AUDIT.appended_at HA7
|
|
17
20
|
# **Dimensions assessed**: <list> AUDIT.dimensions HA3
|
|
18
21
|
# **Findings**: N crit, N warn, N info AUDIT.findings_summary HA4
|
|
19
22
|
# **Overall trajectory**: <text> AUDIT.trajectory HA5
|
|
@@ -49,14 +52,27 @@ meta:
|
|
|
49
52
|
name: health
|
|
50
53
|
version: "1.0.0"
|
|
51
54
|
description: >-
|
|
52
|
-
Audit
|
|
53
|
-
|
|
55
|
+
Audit normally owns health records. Orchestrate may append only the
|
|
56
|
+
limited artifact_freshness record for terminal-plan closure after Audit
|
|
57
|
+
passes. Consumed by capabilities that need codebase health context.
|
|
54
58
|
artifact_type: agent_facing
|
|
55
59
|
path: ".agentera/health.yaml"
|
|
56
|
-
|
|
57
|
-
|
|
60
|
+
authority: legacy_migration_input_only
|
|
61
|
+
producer: [audit, orchestrate]
|
|
62
|
+
consumers: [document, status, audit, orchestrate, plan, build, vision]
|
|
58
63
|
format: yaml
|
|
59
64
|
|
|
65
|
+
ENTITY_AUTHORITY:
|
|
66
|
+
identity_fields: [id, artifact]
|
|
67
|
+
artifact: health
|
|
68
|
+
boundary: health_audit
|
|
69
|
+
retrieval:
|
|
70
|
+
list: npx -y agentera@next state health list --format json
|
|
71
|
+
get: npx -y agentera@next state health get --id ID --format json
|
|
72
|
+
mutation: npx -y agentera@next state health explain --verb append --format json
|
|
73
|
+
direct_file_edits: forbidden
|
|
74
|
+
legacy_schema_below: migration_input_only
|
|
75
|
+
|
|
60
76
|
GROUP_PREFIXES:
|
|
61
77
|
BUDGET: HB
|
|
62
78
|
COMPACTION: HX
|
|
@@ -87,10 +103,10 @@ BUDGET:
|
|
|
87
103
|
COMPACTION:
|
|
88
104
|
1:
|
|
89
105
|
id: HX1
|
|
90
|
-
rule:
|
|
106
|
+
rule: lossless_projection
|
|
91
107
|
description: >-
|
|
92
|
-
|
|
93
|
-
|
|
108
|
+
The 10/40/50 values are current projection defaults, not deletion limits.
|
|
109
|
+
Numbered archive records remain complete and unlimited.
|
|
94
110
|
2:
|
|
95
111
|
id: HX2
|
|
96
112
|
full_detail:
|
|
@@ -109,21 +125,27 @@ COMPACTION:
|
|
|
109
125
|
description: >-
|
|
110
126
|
Audits 11 through 50 are collapsed to one-line format under the
|
|
111
127
|
archive section. One-line summaries preserve audit number, date,
|
|
112
|
-
overall grade, and trajectory.
|
|
128
|
+
overall grade, and trajectory. Entries beyond the summary default are
|
|
129
|
+
represented by omission metadata while their numbered archive records
|
|
130
|
+
remain available.
|
|
113
131
|
4:
|
|
114
132
|
id: HX4
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
133
|
+
omission:
|
|
134
|
+
fields: [omitted, omitted_count, omission_reason, retrieval]
|
|
135
|
+
reason: projection_capacity_or_byte_budget
|
|
118
136
|
description: >-
|
|
119
|
-
|
|
137
|
+
Omitted projection detail is never silently deleted or truncated. The
|
|
138
|
+
numbered archive is the complete historical source and retrieval points
|
|
139
|
+
use the direct state get contract.
|
|
120
140
|
5:
|
|
121
141
|
id: HX5
|
|
122
|
-
trigger: "When
|
|
142
|
+
trigger: "When audit writes a new audit"
|
|
123
143
|
description: >-
|
|
124
144
|
Compaction runs when the producing skill writes a new entry.
|
|
125
|
-
If >10 full-detail entries exist
|
|
126
|
-
|
|
145
|
+
If >10 full-detail entries exist and their numbered archives verify,
|
|
146
|
+
collapse the oldest to one-line. If >40 summary entries exist, omit the
|
|
147
|
+
oldest from this bounded projection with metadata; never delete its
|
|
148
|
+
numbered archive record. Unverified entries remain full for recovery.
|
|
127
149
|
6:
|
|
128
150
|
id: HX6
|
|
129
151
|
archive_section:
|
|
@@ -219,6 +241,21 @@ AUDIT:
|
|
|
219
241
|
validation:
|
|
220
242
|
- "Every assessed dimension has a grade"
|
|
221
243
|
- "Grades are single characters A through F"
|
|
244
|
+
7:
|
|
245
|
+
id: HA7
|
|
246
|
+
field: appended_at
|
|
247
|
+
type: string
|
|
248
|
+
format: "YYYY-MM-DDTHH:mm:ss.sssZ"
|
|
249
|
+
required: false
|
|
250
|
+
cli_owned: true
|
|
251
|
+
description: >-
|
|
252
|
+
Canonical UTC timestamp assigned by the health append writer. Full records
|
|
253
|
+
with this field sort newest-first by append time, then stable ID. Legacy
|
|
254
|
+
records without it retain date-then-ID ordering; migration never fabricates
|
|
255
|
+
append chronology.
|
|
256
|
+
validation:
|
|
257
|
+
- "When present, must be canonical UTC ISO-8601 with millisecond precision"
|
|
258
|
+
- "Must be omitted from caller input and assigned by the CLI writer"
|
|
222
259
|
|
|
223
260
|
DIMENSION:
|
|
224
261
|
1:
|