agentera 3.0.0-dev.1 → 3.0.0-dev.11
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/README.md +40 -6
- package/bundle/.agentera-npx-bundle.json +1 -1
- package/bundle/extract-corpus-parity.json +23 -0
- package/bundle/references/adapters/cursor.md +10 -9
- package/bundle/references/adapters/opencode.md +26 -26
- package/bundle/references/adapters/package-registry.yaml +0 -1
- package/bundle/references/adapters/package-surface-characterization.md +1 -2
- package/bundle/references/adapters/runtime-adapter-characterization.md +1 -1
- package/bundle/references/adapters/runtime-adapter-registry.yaml +15 -14
- package/bundle/references/adapters/runtime-feature-parity.md +2 -2
- package/bundle/references/analysis/benchmark.md +1 -1
- package/bundle/references/analysis/startup-measurement-contract.yaml +18 -18
- package/bundle/references/artifacts/artifact-registry-interface-model.yaml +4 -3
- package/bundle/references/cli/agent-ready-state-contract.yaml +26 -23
- package/bundle/references/cli/app-lifecycle-vocabulary.yaml +4 -4
- package/bundle/references/cli/audience-namespace-cli-migration.yaml +40 -26
- package/bundle/references/cli/bundle-skill-vocabulary.yaml +2 -30
- package/bundle/references/cli/capability-instruction-contract.yaml +98 -57
- package/bundle/references/cli/capability-instruction-structure.md +144 -0
- package/bundle/references/cli/capability-tool-classification.yaml +12 -12
- package/bundle/references/cli/coexistence-probe.yaml +13 -0
- package/bundle/references/cli/parity-expected-actual-template.md +30 -0
- package/bundle/references/cli/routing-execution-vocabulary.yaml +12 -12
- package/bundle/references/cli/routing-model.md +94 -0
- package/bundle/references/cli/single-name-protocol.yaml +42 -0
- package/bundle/references/cli/trigger-schema-enrichment.md +136 -0
- package/bundle/references/cli/update-channels.yaml +43 -7
- package/bundle/references/cli/upgrade-repair-wording.md +45 -0
- package/bundle/references/cli/v3-handoff-manifest.schema.yaml +98 -0
- package/bundle/references/cli/vocabulary-index.yaml +20 -15
- package/bundle/references/cli/vocabulary.md +339 -323
- package/bundle/references/meta/documentation-inventory.md +9 -3
- package/bundle/registry.json +14 -14
- package/bundle/skills/agentera/.claude-plugin/plugin.json +13 -13
- package/bundle/skills/agentera/SKILL.md +99 -413
- package/bundle/skills/agentera/agents/audit.toml +6 -0
- package/bundle/skills/agentera/agents/build.toml +6 -0
- package/bundle/skills/agentera/agents/design.toml +6 -0
- package/bundle/skills/agentera/agents/discuss.toml +6 -0
- package/bundle/skills/agentera/agents/document.toml +6 -0
- package/bundle/skills/agentera/agents/optimize.toml +6 -0
- package/bundle/skills/agentera/agents/orchestrate.toml +6 -0
- package/bundle/skills/agentera/agents/plan.toml +6 -0
- package/bundle/skills/agentera/agents/profile.toml +6 -0
- package/bundle/skills/agentera/agents/research.toml +6 -0
- package/bundle/skills/agentera/agents/status.toml +6 -0
- package/bundle/skills/agentera/agents/vision.toml +6 -0
- package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/artifacts.yaml +10 -10
- package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/triggers.yaml +15 -6
- package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/validation.yaml +9 -9
- package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/artifacts.yaml +11 -11
- package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/triggers.yaml +13 -3
- package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/validation.yaml +7 -7
- package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/artifacts.yaml +6 -6
- package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/triggers.yaml +15 -3
- package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/validation.yaml +5 -5
- package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/artifacts.yaml +6 -6
- package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/triggers.yaml +11 -3
- package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/validation.yaml +4 -4
- package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/artifacts.yaml +10 -10
- package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/triggers.yaml +14 -3
- package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/validation.yaml +8 -8
- package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/artifacts.yaml +8 -8
- package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/triggers.yaml +11 -3
- package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/validation.yaml +7 -7
- package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/artifacts.yaml +10 -10
- package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/triggers.yaml +16 -3
- package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/validation.yaml +36 -23
- package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/artifacts.yaml +8 -8
- package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/exit.yaml +2 -2
- package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/triggers.yaml +15 -3
- package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/validation.yaml +3 -3
- package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/artifacts.yaml +2 -2
- package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/exit.yaml +2 -1
- package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/triggers.yaml +7 -3
- package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/validation.yaml +2 -2
- package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/artifacts.yaml +5 -5
- package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/triggers.yaml +9 -3
- package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/validation.yaml +2 -2
- package/bundle/skills/agentera/capabilities/{hej → status}/schemas/artifacts.yaml +14 -11
- package/bundle/skills/agentera/capabilities/{hej → status}/schemas/triggers.yaml +12 -8
- package/bundle/skills/agentera/capabilities/{hej → status}/schemas/validation.yaml +5 -5
- package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/artifacts.yaml +8 -8
- package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/triggers.yaml +17 -3
- package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/validation.yaml +14 -16
- package/bundle/skills/agentera/capability_schema_contract.yaml +201 -38
- package/bundle/skills/agentera/protocol.yaml +29 -29
- package/bundle/skills/agentera/references/contract.md +329 -320
- package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +4 -4
- package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +10 -10
- package/bundle/skills/agentera/schemas/artifacts/design.yaml +4 -4
- package/bundle/skills/agentera/schemas/artifacts/docs.yaml +8 -7
- package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +5 -5
- package/bundle/skills/agentera/schemas/artifacts/health.yaml +5 -5
- package/bundle/skills/agentera/schemas/artifacts/objective.yaml +4 -4
- package/bundle/skills/agentera/schemas/artifacts/plan.yaml +5 -5
- package/bundle/skills/agentera/schemas/artifacts/progress.yaml +20 -41
- package/bundle/skills/agentera/schemas/artifacts/todo.yaml +43 -24
- package/bundle/skills/agentera/schemas/artifacts/vision.yaml +3 -3
- package/dist/analytics/extractCorpus/cli.js +149 -0
- package/dist/analytics/extractCorpus/cli.js.map +1 -0
- package/dist/analytics/extractCorpus/copilotSessions.js +273 -0
- package/dist/analytics/extractCorpus/copilotSessions.js.map +1 -0
- package/dist/analytics/extractCorpus/core.js +364 -0
- package/dist/analytics/extractCorpus/core.js.map +1 -0
- package/dist/analytics/extractCorpus/corpus.js +145 -0
- package/dist/analytics/extractCorpus/corpus.js.map +1 -0
- package/dist/analytics/extractCorpus/coverageAudit.js +261 -0
- package/dist/analytics/extractCorpus/coverageAudit.js.map +1 -0
- package/dist/analytics/extractCorpus/cursorSessions.js +423 -0
- package/dist/analytics/extractCorpus/cursorSessions.js.map +1 -0
- package/dist/analytics/extractCorpus/extractCorpusParity.js +105 -0
- package/dist/analytics/extractCorpus/extractCorpusParity.js.map +1 -0
- package/dist/analytics/extractCorpus/filesystemSources.js +122 -0
- package/dist/analytics/extractCorpus/filesystemSources.js.map +1 -0
- package/dist/analytics/extractCorpus/index.js +12 -0
- package/dist/analytics/extractCorpus/index.js.map +1 -0
- package/dist/analytics/extractCorpus/jsonlSessions.js +185 -0
- package/dist/analytics/extractCorpus/jsonlSessions.js.map +1 -0
- package/dist/analytics/extractCorpus/sqliteCaps.js +44 -0
- package/dist/analytics/extractCorpus/sqliteCaps.js.map +1 -0
- package/dist/analytics/extractCorpus/sqliteSessions.js +368 -0
- package/dist/analytics/extractCorpus/sqliteSessions.js.map +1 -0
- package/dist/analytics/extractCorpus.js +2 -1790
- package/dist/analytics/extractCorpus.js.map +1 -1
- package/dist/analytics/usageStats.js +42 -20
- package/dist/analytics/usageStats.js.map +1 -1
- package/dist/capabilities/audit/instructions.js +6 -0
- package/dist/capabilities/audit/instructions.js.map +1 -0
- package/dist/capabilities/build/instructions.js +6 -0
- package/dist/capabilities/build/instructions.js.map +1 -0
- package/dist/capabilities/design/instructions.js +5 -0
- package/dist/capabilities/design/instructions.js.map +1 -0
- package/dist/capabilities/discuss/instructions.js +6 -0
- package/dist/capabilities/discuss/instructions.js.map +1 -0
- package/dist/capabilities/document/instructions.js +6 -0
- package/dist/capabilities/document/instructions.js.map +1 -0
- package/dist/capabilities/index.js +38 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/optimize/instructions.js +6 -0
- package/dist/capabilities/optimize/instructions.js.map +1 -0
- package/dist/capabilities/orchestrate/instructions.js +6 -0
- package/dist/capabilities/orchestrate/instructions.js.map +1 -0
- package/dist/capabilities/plan/instructions.js +6 -0
- package/dist/capabilities/plan/instructions.js.map +1 -0
- package/dist/capabilities/profile/instructions.js +6 -0
- package/dist/capabilities/profile/instructions.js.map +1 -0
- package/dist/capabilities/research/instructions.js +6 -0
- package/dist/capabilities/research/instructions.js.map +1 -0
- package/dist/capabilities/status/instructions.js +5 -0
- package/dist/capabilities/status/instructions.js.map +1 -0
- package/dist/capabilities/vision/instructions.js +9 -0
- package/dist/capabilities/vision/instructions.js.map +1 -0
- package/dist/cli/appContext.js +16 -17
- package/dist/cli/appContext.js.map +1 -1
- package/dist/cli/capabilityContext/benchmark.js +564 -0
- package/dist/cli/capabilityContext/benchmark.js.map +1 -0
- package/dist/cli/capabilityContext/bespoke.js +36 -0
- package/dist/cli/capabilityContext/bespoke.js.map +1 -0
- package/dist/cli/capabilityContext/build.js +177 -0
- package/dist/cli/capabilityContext/build.js.map +1 -0
- package/dist/cli/capabilityContext/closeout.js +230 -0
- package/dist/cli/capabilityContext/closeout.js.map +1 -0
- package/dist/cli/capabilityContext/contract.js +188 -0
- package/dist/cli/capabilityContext/contract.js.map +1 -0
- package/dist/cli/capabilityContext/evidence.js +456 -0
- package/dist/cli/capabilityContext/evidence.js.map +1 -0
- package/dist/cli/capabilityContext/index.js +4 -0
- package/dist/cli/capabilityContext/index.js.map +1 -0
- package/dist/cli/capabilityContext/orchestration.js +107 -0
- package/dist/cli/capabilityContext/orchestration.js.map +1 -0
- package/dist/cli/capabilityContext/planState.js +271 -0
- package/dist/cli/capabilityContext/planState.js.map +1 -0
- package/dist/cli/capabilityContext/progress.js +103 -0
- package/dist/cli/capabilityContext/progress.js.map +1 -0
- package/dist/cli/capabilityContext/shared.js +94 -0
- package/dist/cli/capabilityContext/shared.js.map +1 -0
- package/dist/cli/capabilityContext/slim.js +108 -0
- package/dist/cli/capabilityContext/slim.js.map +1 -0
- package/dist/cli/capabilityContext/startup.js +213 -0
- package/dist/cli/capabilityContext/startup.js.map +1 -0
- package/dist/cli/capabilityContext/types.js +40 -0
- package/dist/cli/capabilityContext/types.js.map +1 -0
- package/dist/cli/capabilityContext.js +1 -2420
- package/dist/cli/capabilityContext.js.map +1 -1
- package/dist/cli/commands/appHome.js +23 -0
- package/dist/cli/commands/appHome.js.map +1 -0
- package/dist/cli/commands/capability.js +3 -10
- package/dist/cli/commands/capability.js.map +1 -1
- package/dist/cli/commands/compact.js +1 -1
- package/dist/cli/commands/compact.js.map +1 -1
- package/dist/cli/commands/doctor.js +53 -95
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/lint.js +4 -36
- package/dist/cli/commands/lint.js.map +1 -1
- package/dist/cli/commands/prime/bundleStatus.js +185 -0
- package/dist/cli/commands/prime/bundleStatus.js.map +1 -0
- package/dist/cli/commands/prime/collectOrientationState.js +156 -0
- package/dist/cli/commands/prime/collectOrientationState.js.map +1 -0
- package/dist/cli/commands/prime/orientationOutput.js +210 -0
- package/dist/cli/commands/prime/orientationOutput.js.map +1 -0
- package/dist/cli/commands/prime/types.js +2 -0
- package/dist/cli/commands/prime/types.js.map +1 -0
- package/dist/cli/commands/prime/v1Migration.js +39 -0
- package/dist/cli/commands/prime/v1Migration.js.map +1 -0
- package/dist/cli/commands/prime.js +11 -486
- package/dist/cli/commands/prime.js.map +1 -1
- package/dist/cli/commands/query.js +5 -2
- package/dist/cli/commands/query.js.map +1 -1
- package/dist/cli/commands/report.js +32 -11
- package/dist/cli/commands/report.js.map +1 -1
- package/dist/cli/commands/schema.js +24 -20
- package/dist/cli/commands/schema.js.map +1 -1
- package/dist/cli/commands/state/decisions.js +403 -0
- package/dist/cli/commands/state/decisions.js.map +1 -0
- package/dist/cli/commands/state/docs.js +97 -0
- package/dist/cli/commands/state/docs.js.map +1 -0
- package/dist/cli/commands/state/experiments.js +68 -0
- package/dist/cli/commands/state/experiments.js.map +1 -0
- package/dist/cli/commands/state/health.js +116 -0
- package/dist/cli/commands/state/health.js.map +1 -0
- package/dist/cli/commands/state/index.js +51 -0
- package/dist/cli/commands/state/index.js.map +1 -0
- package/dist/cli/commands/state/objective.js +69 -0
- package/dist/cli/commands/state/objective.js.map +1 -0
- package/dist/cli/commands/state/plan.js +173 -0
- package/dist/cli/commands/state/plan.js.map +1 -0
- package/dist/cli/commands/state/progress.js +47 -0
- package/dist/cli/commands/state/progress.js.map +1 -0
- package/dist/cli/commands/state/shared.js +15 -0
- package/dist/cli/commands/state/shared.js.map +1 -0
- package/dist/cli/commands/state/todo.js +121 -0
- package/dist/cli/commands/state/todo.js.map +1 -0
- package/dist/cli/commands/upgrade.js +63 -1
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/commands/upgradeVerify.js +81 -0
- package/dist/cli/commands/upgradeVerify.js.map +1 -0
- package/dist/cli/commands/validate.js +56 -96
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/commands/verify.js +7 -1
- package/dist/cli/commands/verify.js.map +1 -1
- package/dist/cli/contracts/bundleStatus.js +2 -0
- package/dist/cli/contracts/bundleStatus.js.map +1 -0
- package/dist/cli/contracts/orientationState.js +2 -0
- package/dist/cli/contracts/orientationState.js.map +1 -0
- package/dist/cli/dispatch/argvParser.js +33 -0
- package/dist/cli/dispatch/argvParser.js.map +1 -0
- package/dist/cli/dispatch/check.js +328 -0
- package/dist/cli/dispatch/check.js.map +1 -0
- package/dist/cli/dispatch/commands.js +27 -0
- package/dist/cli/dispatch/commands.js.map +1 -0
- package/dist/cli/dispatch/index.js +182 -0
- package/dist/cli/dispatch/index.js.map +1 -0
- package/dist/cli/dispatch/lifecycle.js +603 -0
- package/dist/cli/dispatch/lifecycle.js.map +1 -0
- package/dist/cli/dispatch/prime.js +104 -0
- package/dist/cli/dispatch/prime.js.map +1 -0
- package/dist/cli/dispatch/shared.js +64 -0
- package/dist/cli/dispatch/shared.js.map +1 -0
- package/dist/cli/dispatch/state.js +144 -0
- package/dist/cli/dispatch/state.js.map +1 -0
- package/dist/cli/dispatch.js +1 -957
- package/dist/cli/dispatch.js.map +1 -1
- package/dist/cli/errors.js +53 -0
- package/dist/cli/errors.js.map +1 -0
- package/dist/cli/help.js +236 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/orientation/attention.js +65 -0
- package/dist/cli/orientation/attention.js.map +1 -0
- package/dist/cli/orientation/corpusCoverage.js +71 -0
- package/dist/cli/orientation/corpusCoverage.js.map +1 -0
- package/dist/cli/orientation.js +138 -84
- package/dist/cli/orientation.js.map +1 -1
- package/dist/cli/prime-blob.js +1 -1
- package/dist/cli/startupCompletenessContract.js +56 -0
- package/dist/cli/startupCompletenessContract.js.map +1 -0
- package/dist/cli/stateQuery.js +16 -2
- package/dist/cli/stateQuery.js.map +1 -1
- package/dist/cli/todoMarkdown.js +33 -0
- package/dist/cli/todoMarkdown.js.map +1 -0
- package/dist/cli/todoSeverity.js +19 -0
- package/dist/cli/todoSeverity.js.map +1 -0
- package/dist/core/envPaths.js +21 -0
- package/dist/core/envPaths.js.map +1 -0
- package/dist/core/jsonValue.js +6 -0
- package/dist/core/jsonValue.js.map +1 -0
- package/dist/core/pyjson.js +67 -2
- package/dist/core/pyjson.js.map +1 -1
- package/dist/eval/evalSkills.js +17 -12
- package/dist/eval/evalSkills.js.map +1 -1
- package/dist/eval/semanticEval.js +43 -19
- package/dist/eval/semanticEval.js.map +1 -1
- package/dist/eval/semanticFixtures.js +16 -4
- package/dist/eval/semanticFixtures.js.map +1 -1
- package/dist/hooks/common.js +8 -25
- package/dist/hooks/common.js.map +1 -1
- package/dist/hooks/compaction/apply.js +269 -0
- package/dist/hooks/compaction/apply.js.map +1 -0
- package/dist/hooks/compaction/dryRun.js +183 -0
- package/dist/hooks/compaction/dryRun.js.map +1 -0
- package/dist/hooks/compaction/index.js +23 -0
- package/dist/hooks/compaction/index.js.map +1 -0
- package/dist/hooks/compaction/parse.js +258 -0
- package/dist/hooks/compaction/parse.js.map +1 -0
- package/dist/hooks/compaction/retention.js +199 -0
- package/dist/hooks/compaction/retention.js.map +1 -0
- package/dist/hooks/compaction/status.js +241 -0
- package/dist/hooks/compaction/status.js.map +1 -0
- package/dist/hooks/compaction/types.js +6 -0
- package/dist/hooks/compaction/types.js.map +1 -0
- package/dist/hooks/cursorPreToolUse.js +1 -1
- package/dist/hooks/cursorPreToolUse.js.map +1 -1
- package/dist/hooks/cursorSessionStart.js +10 -2
- package/dist/hooks/cursorSessionStart.js.map +1 -1
- package/dist/hooks/sessionStart.js +18 -11
- package/dist/hooks/sessionStart.js.map +1 -1
- package/dist/hooks/sessionStop.js +6 -12
- package/dist/hooks/sessionStop.js.map +1 -1
- package/dist/hooks/validateArtifact/agentFacing.js +10 -0
- package/dist/hooks/validateArtifact/agentFacing.js.map +1 -0
- package/dist/hooks/validateArtifact/index.js +151 -0
- package/dist/hooks/validateArtifact/index.js.map +1 -0
- package/dist/hooks/validateArtifact/markdown.js +146 -0
- package/dist/hooks/validateArtifact/markdown.js.map +1 -0
- package/dist/hooks/validateArtifact/runtime.js +86 -0
- package/dist/hooks/validateArtifact/runtime.js.map +1 -0
- package/dist/hooks/validateArtifact/schema.js +459 -0
- package/dist/hooks/validateArtifact/schema.js.map +1 -0
- package/dist/hooks/validateArtifact/traversal.js +106 -0
- package/dist/hooks/validateArtifact/traversal.js.map +1 -0
- package/dist/hooks/validateArtifact/violations.js +105 -0
- package/dist/hooks/validateArtifact/violations.js.map +1 -0
- package/dist/migrate/v2HandoffManifest.js +451 -0
- package/dist/migrate/v2HandoffManifest.js.map +1 -0
- package/dist/registries/artifactProtocolIds.js +77 -0
- package/dist/registries/artifactProtocolIds.js.map +1 -0
- package/dist/registries/artifactRegistry.js +23 -9
- package/dist/registries/artifactRegistry.js.map +1 -1
- package/dist/registries/capabilityContract.js +156 -12
- package/dist/registries/capabilityContract.js.map +1 -1
- package/dist/registries/evaluatorHandoffContract.js +171 -0
- package/dist/registries/evaluatorHandoffContract.js.map +1 -0
- package/dist/registries/packageRegistry.js +4 -3
- package/dist/registries/packageRegistry.js.map +1 -1
- package/dist/registries/runtimeAdapterRegistry.js +5 -5
- package/dist/registries/runtimeAdapterRegistry.js.map +1 -1
- package/dist/registries/triggerLoader.js +211 -0
- package/dist/registries/triggerLoader.js.map +1 -0
- package/dist/release/releaseMetadata.js +235 -0
- package/dist/release/releaseMetadata.js.map +1 -0
- package/dist/setup/codex/agents.js +96 -0
- package/dist/setup/codex/agents.js.map +1 -0
- package/dist/setup/codex/cli.js +161 -0
- package/dist/setup/codex/cli.js.map +1 -0
- package/dist/setup/codex/configToml.js +639 -0
- package/dist/setup/codex/configToml.js.map +1 -0
- package/dist/setup/codex/constants.js +29 -0
- package/dist/setup/codex/constants.js.map +1 -0
- package/dist/setup/codex/installRoot.js +64 -0
- package/dist/setup/codex/installRoot.js.map +1 -0
- package/dist/setup/codex/state.js +270 -0
- package/dist/setup/codex/state.js.map +1 -0
- package/dist/setup/codex.js +11 -1055
- package/dist/setup/codex.js.map +1 -1
- package/dist/setup/cursor.js +6 -4
- package/dist/setup/cursor.js.map +1 -1
- package/dist/setup/cursorSurfaces.js +67 -0
- package/dist/setup/cursorSurfaces.js.map +1 -0
- package/dist/setup/doctor/core.js +296 -0
- package/dist/setup/doctor/core.js.map +1 -0
- package/dist/setup/doctor/diagnostics.js +240 -0
- package/dist/setup/doctor/diagnostics.js.map +1 -0
- package/dist/setup/doctor/opencode.js +301 -0
- package/dist/setup/doctor/opencode.js.map +1 -0
- package/dist/setup/doctor/report.js +425 -0
- package/dist/setup/doctor/report.js.map +1 -0
- package/dist/setup/doctor.js +9 -1275
- package/dist/setup/doctor.js.map +1 -1
- package/dist/setup/opencode.js +13 -0
- package/dist/setup/opencode.js.map +1 -0
- package/dist/setup/opencodeConstants.js +2 -0
- package/dist/setup/opencodeConstants.js.map +1 -0
- package/dist/setup/smokeChecks.js +111 -0
- package/dist/setup/smokeChecks.js.map +1 -0
- package/dist/state/installRoot.js +64 -24
- package/dist/state/installRoot.js.map +1 -1
- package/dist/state/startupAnalysis/benchmark.js +371 -0
- package/dist/state/startupAnalysis/benchmark.js.map +1 -0
- package/dist/state/startupAnalysis/contract.js +126 -0
- package/dist/state/startupAnalysis/contract.js.map +1 -0
- package/dist/state/startupAnalysis/helpers.js +287 -0
- package/dist/state/startupAnalysis/helpers.js.map +1 -0
- package/dist/state/startupAnalysis/index.js +7 -0
- package/dist/state/startupAnalysis/index.js.map +1 -0
- package/dist/state/startupAnalysis/metrics.js +341 -0
- package/dist/state/startupAnalysis/metrics.js.map +1 -0
- package/dist/state/startupAnalysis/records.js +199 -0
- package/dist/state/startupAnalysis/records.js.map +1 -0
- package/dist/state/startupAnalysis/report.js +112 -0
- package/dist/state/startupAnalysis/report.js.map +1 -0
- package/dist/state/startupAnalysis/threshold.js +500 -0
- package/dist/state/startupAnalysis/threshold.js.map +1 -0
- package/dist/state/startupAnalysis.js +2 -1952
- package/dist/state/startupAnalysis.js.map +1 -1
- package/dist/upgrade/appContentRefresh.js +367 -0
- package/dist/upgrade/appContentRefresh.js.map +1 -0
- package/dist/upgrade/appModel.js +11 -6
- package/dist/upgrade/appModel.js.map +1 -1
- package/dist/upgrade/atomicWriter.js +23 -0
- package/dist/upgrade/atomicWriter.js.map +1 -0
- package/dist/upgrade/bundleEvidence.js +34 -0
- package/dist/upgrade/bundleEvidence.js.map +1 -0
- package/dist/upgrade/channels.js +30 -8
- package/dist/upgrade/channels.js.map +1 -1
- package/dist/upgrade/coexistenceProbe.js +105 -0
- package/dist/upgrade/coexistenceProbe.js.map +1 -0
- package/dist/upgrade/compatibility.js +14 -16
- package/dist/upgrade/compatibility.js.map +1 -1
- package/dist/upgrade/doctor.js +187 -189
- package/dist/upgrade/doctor.js.map +1 -1
- package/dist/upgrade/doctorClassifier.js +188 -0
- package/dist/upgrade/doctorClassifier.js.map +1 -0
- package/dist/upgrade/installedHooksRetirement.js +190 -0
- package/dist/upgrade/installedHooksRetirement.js.map +1 -0
- package/dist/upgrade/legacyAgentCleanup.js +183 -0
- package/dist/upgrade/legacyAgentCleanup.js.map +1 -0
- package/dist/upgrade/migrateArtifactsV1ToV2.js +568 -0
- package/dist/upgrade/migrateArtifactsV1ToV2.js.map +1 -0
- package/dist/upgrade/migrateArtifactsV2ToV3.js +103 -134
- package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
- package/dist/upgrade/nextMajorDoctor.js +156 -0
- package/dist/upgrade/nextMajorDoctor.js.map +1 -0
- package/dist/upgrade/npxPlatformStatus.js +23 -0
- package/dist/upgrade/npxPlatformStatus.js.map +1 -0
- package/dist/upgrade/projectIntegration.js +233 -0
- package/dist/upgrade/projectIntegration.js.map +1 -0
- package/dist/upgrade/projectIntegrationDecision.js +42 -0
- package/dist/upgrade/projectIntegrationDecision.js.map +1 -0
- package/dist/upgrade/runtimeMigration.js +340 -80
- package/dist/upgrade/runtimeMigration.js.map +1 -1
- package/dist/upgrade/upgradeCommands.js +6 -2
- package/dist/upgrade/upgradeCommands.js.map +1 -1
- package/dist/upgrade/upgradeLock.js +54 -0
- package/dist/upgrade/upgradeLock.js.map +1 -0
- package/dist/upgrade/upgradeOrchestrator.js +24 -41
- package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
- package/dist/upgrade/upgradeSnapshot.js +93 -0
- package/dist/upgrade/upgradeSnapshot.js.map +1 -0
- package/dist/upgrade/v3CapabilitySurface.js +15 -0
- package/dist/upgrade/v3CapabilitySurface.js.map +1 -0
- package/dist/upgrade/versionResolution.js +12 -4
- package/dist/upgrade/versionResolution.js.map +1 -1
- package/dist/validate/appHomeContract.js +4 -4
- package/dist/validate/appHomeContract.js.map +1 -1
- package/dist/validate/capability.js +135 -14
- package/dist/validate/capability.js.map +1 -1
- package/dist/validate/crossCapability.js +1 -1
- package/dist/validate/crossCapability.js.map +1 -1
- package/dist/validate/lifecycleAdapters/legacyPythonParity.js +93 -0
- package/dist/validate/lifecycleAdapters/legacyPythonParity.js.map +1 -0
- package/dist/validate/lifecycleAdapters/nodeFormChecks.js +488 -0
- package/dist/validate/lifecycleAdapters/nodeFormChecks.js.map +1 -0
- package/dist/validate/lifecycleAdapters/shared.js +198 -0
- package/dist/validate/lifecycleAdapters/shared.js.map +1 -0
- package/dist/validate/lifecycleAdapters.js +13 -723
- package/dist/validate/lifecycleAdapters.js.map +1 -1
- package/dist/validate/selfAudit.js +62 -20
- package/dist/validate/selfAudit.js.map +1 -1
- package/dist/validate/vocabularyAuthority.js +303 -0
- package/dist/validate/vocabularyAuthority.js.map +1 -0
- package/package.json +30 -27
- package/bundle/references/v1-section-mapping.md +0 -47
- 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/hej/instructions.md +0 -331
- package/bundle/skills/agentera/capabilities/inspektera/instructions.md +0 -514
- package/bundle/skills/agentera/capabilities/inspirera/instructions.md +0 -280
- package/bundle/skills/agentera/capabilities/optimera/instructions.md +0 -437
- package/bundle/skills/agentera/capabilities/orkestrera/instructions.md +0 -433
- package/bundle/skills/agentera/capabilities/planera/instructions.md +0 -368
- package/bundle/skills/agentera/capabilities/profilera/instructions.md +0 -419
- package/bundle/skills/agentera/capabilities/realisera/instructions.md +0 -403
- package/bundle/skills/agentera/capabilities/resonera/instructions.md +0 -329
- package/bundle/skills/agentera/capabilities/visionera/instructions.md +0 -309
- package/bundle/skills/agentera/capabilities/visualisera/instructions.md +0 -400
- 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/cli/commands/backfill.js +0 -84
- package/dist/cli/commands/backfill.js.map +0 -1
- package/dist/cli/commands/state.js +0 -1012
- package/dist/cli/commands/state.js.map +0 -1
- package/dist/core/git.js +0 -43
- package/dist/core/git.js.map +0 -1
- package/dist/hooks/compaction.js +0 -935
- package/dist/hooks/compaction.js.map +0 -1
- package/dist/hooks/validateArtifact.js +0 -933
- package/dist/hooks/validateArtifact.js.map +0 -1
- package/dist/state/progressCommit.js +0 -289
- package/dist/state/progressCommit.js.map +0 -1
- /package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/exit.yaml +0 -0
- /package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/exit.yaml +0 -0
- /package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/exit.yaml +0 -0
- /package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/exit.yaml +0 -0
- /package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/exit.yaml +0 -0
- /package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/exit.yaml +0 -0
- /package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/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
- /package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/exit.yaml +0 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# Capability instruction structure
|
|
2
|
+
|
|
3
|
+
Origin: Decision 80 (2026-07-06) — Six-section spine for capability instructions.
|
|
4
|
+
Builds on D79 (status rewrite, direct-contract philosophy), D71 (RFC 2119 modal
|
|
5
|
+
vocabulary), D72 (bundle-to-app terminology), D57/D65 (instructions.ts as
|
|
6
|
+
canonical module served via `agentera prime --context`).
|
|
7
|
+
|
|
8
|
+
Agentera's 12 capability instruction files (`packages/cli/src/capabilities/<name>/instructions.ts`)
|
|
9
|
+
MUST follow a shared six-section spine. Five sections are shape-constrained; one
|
|
10
|
+
(Workflow phases) is mandatory-as-section but free-form in content. This document
|
|
11
|
+
owns the spine spec, the five workflow shapes taxonomy, and the per-capability
|
|
12
|
+
deviation table filled incrementally as each audit completes.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## The six-section spine
|
|
17
|
+
|
|
18
|
+
Every capability instructions.ts MUST contain these six sections in order:
|
|
19
|
+
|
|
20
|
+
### 1. Purpose
|
|
21
|
+
|
|
22
|
+
One paragraph stating what the capability does, plus the capability glyph
|
|
23
|
+
(SG1-SG12). Shape-constrained: glyph plus one-paragraph purpose. No sub-sections.
|
|
24
|
+
|
|
25
|
+
### 2. State artifacts
|
|
26
|
+
|
|
27
|
+
What the capability reads, writes, and consumes. Shape-constrained:
|
|
28
|
+
reads/writes/consumes declarations plus artifact path resolution. Per-capability
|
|
29
|
+
artifact-schema subsections allowed (e.g., vision's `vision.yaml shape`, document's
|
|
30
|
+
`docs.yaml shape`, design's `DESIGN.md format`).
|
|
31
|
+
|
|
32
|
+
### 3. Workflow phases (mandatory section, free-form content)
|
|
33
|
+
|
|
34
|
+
The per-capability core. The section MUST exist and MUST be named "Workflow phases"
|
|
35
|
+
or a per-capability equivalent that names the workflow shape (e.g., "The orchestration
|
|
36
|
+
loop", "The cycle", "Briefing", "Running state"). Internal structure is per-capability:
|
|
37
|
+
linear steps, conversational loop, cycle-based, mode-split, or multi-surface. See
|
|
38
|
+
the five workflow shapes taxonomy below.
|
|
39
|
+
|
|
40
|
+
### 4. Safety rails
|
|
41
|
+
|
|
42
|
+
`<critical>` block with MUST NOT / NEVER rules. Protocol-bound. Shape-constrained:
|
|
43
|
+
MUST start with `<critical>` tag, MUST use D71 RFC 2119 modal vocabulary for
|
|
44
|
+
protocol-force rules.
|
|
45
|
+
|
|
46
|
+
### 5. Exit signals
|
|
47
|
+
|
|
48
|
+
EX1-EX4 conditions with the capability's canonical glyph marker. Protocol-bound.
|
|
49
|
+
Shape-constrained: MUST list all four exit conditions, MUST use the
|
|
50
|
+
`<glyph> <capability> · <status>` marker format.
|
|
51
|
+
|
|
52
|
+
### 6. Cross-capability integration
|
|
53
|
+
|
|
54
|
+
Feeds-into, triggers, and informed-by declarations, plus getting-started use-case
|
|
55
|
+
examples (when to invoke this capability from other contexts). Shape-constrained:
|
|
56
|
+
MUST be present; depth is per-capability (status = one paragraph; orchestrate =
|
|
57
|
+
substantial surface descriptions). Invocation guidance ("Before a build session,
|
|
58
|
+
run `/agentera discuss`") folds into this section as the inverse of
|
|
59
|
+
feeds-into/triggers — same relationship, consumer perspective.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Flex sections (per-capability optional)
|
|
64
|
+
|
|
65
|
+
Domain content sections MAY appear between spine sections when the capability has
|
|
66
|
+
capability-specific content that does not fit the spine (e.g., design: Colors and
|
|
67
|
+
Typography; profile: PROFILE.md template; research: deliverable template). These
|
|
68
|
+
are rare and documented in the deviation table below.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Five workflow shapes taxonomy
|
|
73
|
+
|
|
74
|
+
Capabilities declare their workflow shape at the top of the Workflow phases section
|
|
75
|
+
so the deviation table can classify them:
|
|
76
|
+
|
|
77
|
+
| Shape | Capabilities | Structure |
|
|
78
|
+
|---|---|---|
|
|
79
|
+
| **Linear** | status, research, audit | Step N then Step N+1; one-shot progression |
|
|
80
|
+
| **Conversational loop** | discuss | Scratchpad plus per-turn question loop; no linear progression |
|
|
81
|
+
| **Cycle-based** | build, optimize | Iterative cycle with hypothesis/task/constraints; repeat until done |
|
|
82
|
+
| **Mode-split** | vision, document, profile, design, plan | Step 0 detect mode then mode-A / mode-B / mode-C |
|
|
83
|
+
| **Multi-surface** | orchestrate | Multiple surface templates with different structures per surface |
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Reference implementation
|
|
88
|
+
|
|
89
|
+
Status (D79) is the reference implementation. Its structure:
|
|
90
|
+
|
|
91
|
+
1. **Purpose**: header plus glyph plus one-paragraph purpose plus direct-contract rule
|
|
92
|
+
2. **State artifacts**: source_contract.capability_startup delegation rule (lean on
|
|
93
|
+
the contract; do not re-encode machine-readable rules in prose)
|
|
94
|
+
3. **Workflow phases**: Dashboard rendering then Briefing then Routing suggestion
|
|
95
|
+
(linear shape, three phases)
|
|
96
|
+
4. **Safety rails**: six MUST NOT rules in `<critical>` block
|
|
97
|
+
5. **Exit signals**: EX1-EX4 with `⌂ status · <status>` marker
|
|
98
|
+
6. **Cross-capability integration**: one paragraph (status has no
|
|
99
|
+
getting-started use-case examples to fold in)
|
|
100
|
+
|
|
101
|
+
Prose length: 10,389 chars. Modal vocabulary: 5 MUST, 5 MUST NOT. No v2-era residue.
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Per-capability deviation table
|
|
106
|
+
|
|
107
|
+
Filled incrementally as each audit completes. "Not audited" = not yet audited
|
|
108
|
+
against D80 plus this reference doc.
|
|
109
|
+
|
|
110
|
+
| Capability | Shape | Length | D71 modal | D72 terms | Direct contract | Deviations | Audit |
|
|
111
|
+
|---|---|---|---|---|---|---|---|
|
|
112
|
+
| ⌂ status | Linear | 10,389 | Yes | Yes | Yes | None | Complete (D79) |
|
|
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 | 13,816 | Not audited | Not audited | Not audited | Has deliverable template; has Getting started to fold | Not audited |
|
|
115
|
+
| ⬚ research | Linear | 12,251 | Not audited | Not audited | Not audited | Has deliverable template; has Notes on depth | Not audited |
|
|
116
|
+
| ≡ plan | Mode-split | 14,800 | Not audited | Not audited | Not audited | Has light/normal/full modes; has How build reads PLAN.md | Not audited |
|
|
117
|
+
| ⧉ build | Cycle | 20,662 | Not audited | Not audited | Not audited | Has Handling blocked work; no Getting started | Not audited |
|
|
118
|
+
| ⎘ optimize | Cycle | 25,990 | Not audited | Not audited | Not audited | Has Handling blocked experiments | Not audited |
|
|
119
|
+
| ⛶ audit | Linear | 31,313 | Not audited | Not audited | Not audited | Has finding taxonomy plus health.yaml write; Steps 1-7 | Not audited |
|
|
120
|
+
| ▤ document | Mode-split | 21,779 | Not audited | Not audited | Not audited | Has closeout context startup; has docs.yaml shape | Not audited |
|
|
121
|
+
| ♾ profile | Mode-split | 24,219 | Not audited | Not audited | Not audited | Has PROFILE.md template; has Notes on depth vs speed | Not audited |
|
|
122
|
+
| ◰ design | Mode-split | 20,596 | Not audited | Not audited | Not audited | Has Colors/Typography domain content; has DESIGN.md format | Not audited |
|
|
123
|
+
| ⎈ orchestrate | Multi-surface | 28,544 | Not audited | Not audited | Not audited | Has three surface templates; has Keeping the orchestrator lean | Not audited |
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Cross-cutting rules (apply to all 12)
|
|
128
|
+
|
|
129
|
+
These rules are inherited from prior decisions and are not re-stated per capability:
|
|
130
|
+
|
|
131
|
+
- **D71**: RFC 2119 modal vocabulary (MUST, MUST NOT, SHOULD, SHOULD NOT, MAY).
|
|
132
|
+
Capitalized keywords carry protocol force; lowercase modal verbs are ordinary English.
|
|
133
|
+
- **D72**: `app.*` terminology (not `bundle.*`).
|
|
134
|
+
- **D79 direct-contract philosophy**: lean on `source_contract.capability_startup`;
|
|
135
|
+
the prose MUST NOT re-encode rules the contract mechanizes (forbidden-command lists,
|
|
136
|
+
fallback ladders, do-not-read-raw-yaml warnings). If `complete_for_capability_startup`
|
|
137
|
+
is true, the prose trusts the contract.
|
|
138
|
+
- **D57/D65**: instructions.ts is the canonical module, served via
|
|
139
|
+
`agentera prime --context <name> --format json`.
|
|
140
|
+
- **Artifact path resolution**: SKILL.md owns the host-bootstrap artifact-path
|
|
141
|
+
resolution; capability prose delegates (status proved this in D79).
|
|
142
|
+
- **Procedural recovery content**: lives in the owning capability, not the consuming
|
|
143
|
+
one (status renders `project_integration` fields; upgrade/doctor owns the repair
|
|
144
|
+
procedure).
|
|
@@ -7,47 +7,47 @@ classification:
|
|
|
7
7
|
mutation_capable:
|
|
8
8
|
description: Needs file write, edit, and/or shell execution to fulfill purpose
|
|
9
9
|
capabilities:
|
|
10
|
-
|
|
10
|
+
build:
|
|
11
11
|
permission: {write: allow, bash: allow}
|
|
12
12
|
rationale: Autonomous dev execution — writes code, runs tests/builds, commits
|
|
13
|
-
|
|
13
|
+
optimize:
|
|
14
14
|
permission: {write: allow, bash: allow}
|
|
15
15
|
rationale: Metric-driven optimization — runs experiments, writes harnesses
|
|
16
|
-
|
|
16
|
+
orchestrate:
|
|
17
17
|
permission: {write: allow, bash: allow}
|
|
18
18
|
rationale: Multi-cycle orchestration — dispatches workers, updates plan/progress
|
|
19
|
-
|
|
19
|
+
document:
|
|
20
20
|
permission: {write: allow, bash: deny}
|
|
21
21
|
rationale: Documentation generation — creates/updates doc files
|
|
22
|
-
|
|
22
|
+
plan:
|
|
23
23
|
permission: {write: allow, bash: deny}
|
|
24
24
|
rationale: Plan management — writes plan.yaml, archives completed plans
|
|
25
25
|
|
|
26
26
|
contextual_write:
|
|
27
27
|
description: Writes owned Agentera state artifacts
|
|
28
28
|
capabilities:
|
|
29
|
-
|
|
29
|
+
vision:
|
|
30
30
|
permission: {write: allow, bash: deny}
|
|
31
31
|
rationale: Writes vision.yaml, archives old visions
|
|
32
|
-
|
|
32
|
+
discuss:
|
|
33
33
|
permission: {write: allow, bash: deny}
|
|
34
34
|
rationale: Writes decisions.yaml, may update TODO.md
|
|
35
|
-
|
|
35
|
+
design:
|
|
36
36
|
permission: {write: allow, bash: deny}
|
|
37
37
|
rationale: Writes DESIGN.md, archives old designs
|
|
38
|
-
|
|
38
|
+
profile:
|
|
39
39
|
permission: {write: allow, bash: allow}
|
|
40
40
|
rationale: Runs extraction scripts, writes PROFILE.md
|
|
41
|
-
|
|
41
|
+
audit:
|
|
42
42
|
permission: {write: allow, bash: deny}
|
|
43
43
|
rationale: Writes health.yaml audit reports
|
|
44
44
|
|
|
45
45
|
read_only:
|
|
46
46
|
description: Only reads files, searches, analyzes
|
|
47
47
|
capabilities:
|
|
48
|
-
|
|
48
|
+
status:
|
|
49
49
|
permission: {write: deny, bash: deny}
|
|
50
50
|
rationale: Strictly read-only orientation dashboard
|
|
51
|
-
|
|
51
|
+
research:
|
|
52
52
|
permission: {write: deny, bash: deny}
|
|
53
53
|
rationale: Analysis-only creative exploration
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# v2/v3 coexistence doctor warning contract (both CLI lines).
|
|
2
|
+
schema_version: agentera.coexistenceProbe.v1
|
|
3
|
+
section_header: Coexistence
|
|
4
|
+
warning:
|
|
5
|
+
headline: "v3 detected alongside v2; pick one line"
|
|
6
|
+
resolutions:
|
|
7
|
+
- complete v3 migration
|
|
8
|
+
- uninstall v3
|
|
9
|
+
- stay on v2 explicitly
|
|
10
|
+
naming_divergence:
|
|
11
|
+
description: "v3 uses English capability IDs (status, vision, discuss, research, plan, build, optimize, audit, document, profile, design, orchestrate); v2 stable uses Swedish -era IDs (hej, visionera, resonera, inspirera, planera, realisera, optimera, inspektera, dokumentera, profilera, visualisera, orkestrera)"
|
|
12
|
+
v3_canonical: [status, vision, discuss, research, plan, build, optimize, audit, document, profile, design, orchestrate]
|
|
13
|
+
v2_stable: [hej, visionera, resonera, inspirera, planera, realisera, optimera, inspektera, dokumentera, profilera, visualisera, orkestrera]
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Parity EXPECTED/ACTUAL bug-demonstration template
|
|
2
|
+
|
|
3
|
+
Apply this pattern to `npmParityMatrix` / Python-oracle parity rows when fixing a
|
|
4
|
+
regression: land a **demonstrate** commit first, then a **fix** commit that only
|
|
5
|
+
flips the assertion.
|
|
6
|
+
|
|
7
|
+
## Workflow
|
|
8
|
+
|
|
9
|
+
1. **Demonstrate commit** — test passes on broken behavior; correct expectation
|
|
10
|
+
preserved in a block comment (`EXPECTED`); wrong behavior asserted (`ACTUAL`).
|
|
11
|
+
2. **Fix commit** — delete comment markers and `ACTUAL` line; `EXPECTED` becomes the
|
|
12
|
+
live assertion. No other edits in the fix commit.
|
|
13
|
+
|
|
14
|
+
## Minimal vitest shape
|
|
15
|
+
|
|
16
|
+
See `packages/cli/test/cli/parityExpectedActualTemplate.test.ts` for a runnable
|
|
17
|
+
micro-example. For real parity rows, mirror the pattern in the oracle fixture row
|
|
18
|
+
and `npmParityMatrix.test.ts` drift assertions.
|
|
19
|
+
|
|
20
|
+
## npmParityMatrix row
|
|
21
|
+
|
|
22
|
+
When adding a row to the parity matrix for a pre-existing bug:
|
|
23
|
+
|
|
24
|
+
- Register the row with `drift_direction: equal` as the target after fix.
|
|
25
|
+
- In the demonstrate pass, temporarily pin oracle shape to the **wrong** envelope
|
|
26
|
+
or assert `ACTUAL` substring in a dedicated regression test.
|
|
27
|
+
- Fix pass restores `equal` against the corrected CLI output.
|
|
28
|
+
|
|
29
|
+
Do not apply EXPECTED/ACTUAL by default to every row — only where bisect clarity
|
|
30
|
+
justifies the two-commit ritual.
|
|
@@ -31,7 +31,7 @@ compatibility_boundary: >-
|
|
|
31
31
|
canonical_concept_order:
|
|
32
32
|
- request_to_capability_routing
|
|
33
33
|
- next_action_recommendation
|
|
34
|
-
-
|
|
34
|
+
- orchestrate_task_assignment
|
|
35
35
|
- worker_launch
|
|
36
36
|
- runtime_subagent_support
|
|
37
37
|
- worker_safety_git_commit
|
|
@@ -40,7 +40,7 @@ canonical_concepts:
|
|
|
40
40
|
definition: >-
|
|
41
41
|
Agentera chooses the capability that should handle a user request, using
|
|
42
42
|
direct routes, primary route aliases, trigger schemas, disambiguation, or
|
|
43
|
-
fallback to
|
|
43
|
+
fallback to status.
|
|
44
44
|
preferred_terms:
|
|
45
45
|
- Agentera router
|
|
46
46
|
- request-to-capability routing
|
|
@@ -65,15 +65,15 @@ canonical_concepts:
|
|
|
65
65
|
- force
|
|
66
66
|
- chain
|
|
67
67
|
- conductor handoff
|
|
68
|
-
|
|
68
|
+
orchestrate_task_assignment:
|
|
69
69
|
definition: >-
|
|
70
|
-
|
|
70
|
+
Orchestrate assigns approved plan work to a worker capability during an
|
|
71
71
|
explicitly orchestrated flow; it evaluates the result instead of implementing
|
|
72
72
|
the task itself.
|
|
73
73
|
preferred_terms:
|
|
74
74
|
- delegate
|
|
75
75
|
- delegation
|
|
76
|
-
-
|
|
76
|
+
- Orchestrate task delegation
|
|
77
77
|
- assigned plan work
|
|
78
78
|
forbidden_ambiguous_shortcuts:
|
|
79
79
|
- conductor
|
|
@@ -82,7 +82,7 @@ canonical_concepts:
|
|
|
82
82
|
- orchestrator implementation
|
|
83
83
|
worker_launch:
|
|
84
84
|
definition: >-
|
|
85
|
-
|
|
85
|
+
Build or Optimize starts a worker through the host runtime when an
|
|
86
86
|
implementation or measurement cycle needs isolated execution.
|
|
87
87
|
preferred_terms:
|
|
88
88
|
- spawn
|
|
@@ -171,9 +171,9 @@ focused_scan:
|
|
|
171
171
|
- (retired maintainer measurement tool)
|
|
172
172
|
- skills/agentera/SKILL.md
|
|
173
173
|
- skills/agentera/references/contract.md
|
|
174
|
-
-
|
|
175
|
-
-
|
|
176
|
-
-
|
|
174
|
+
- packages/cli/src/capabilities/realisera/instructions.ts
|
|
175
|
+
- packages/cli/src/capabilities/optimera/instructions.ts
|
|
176
|
+
- packages/cli/src/capabilities/orkestrera/instructions.ts
|
|
177
177
|
- tests/test_skill_dispatch_contract.py
|
|
178
178
|
- tests/test_runtime_adapters.py
|
|
179
179
|
- tests/test_runtime_adapter_registry.py
|
|
@@ -222,15 +222,15 @@ focused_scan:
|
|
|
222
222
|
text: checkpoint before worktree dispatch
|
|
223
223
|
classification: compatibility-preserved
|
|
224
224
|
reason: The contract preserves the parseable historical checkpoint commit message string.
|
|
225
|
-
- path: ^
|
|
225
|
+
- path: ^packages/cli/src/capabilities/realisera/instructions\.ts$
|
|
226
226
|
text: 'Step 5: Dispatch|checkpoint before worktree dispatch'
|
|
227
227
|
classification: compatibility-preserved
|
|
228
228
|
reason: Realisera preserves the current step heading and checkpoint commit message compatibility string.
|
|
229
|
-
- path: ^
|
|
229
|
+
- path: ^packages/cli/src/capabilities/optimera/instructions\.ts$
|
|
230
230
|
text: checkpoint before worktree dispatch
|
|
231
231
|
classification: compatibility-preserved
|
|
232
232
|
reason: Optimera preserves the current checkpoint commit message compatibility string.
|
|
233
|
-
- path: ^
|
|
233
|
+
- path: ^packages/cli/src/capabilities/orkestrera/instructions\.ts$
|
|
234
234
|
text: review pressure in dispatch|dispatch/evaluation context|`dispatch` and `chain` are autonomous orchestration verbs
|
|
235
235
|
classification: canonical
|
|
236
236
|
reason: Orkestrera capability prose uses dispatch for its explicitly owned orchestration loop.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Five-layer routing model
|
|
2
|
+
|
|
3
|
+
Origin: Decision 76 (2026-06-30) — LLM-primary routing model. Retires the
|
|
4
|
+
deterministic NL routing engine and repositions the trigger schema as
|
|
5
|
+
LLM-readable intent documentation. Builds on the original five-layer concept
|
|
6
|
+
from Decision 42 (2026-05-04), redefining Layers 3-4 as LLM-native.
|
|
7
|
+
|
|
8
|
+
The Agentera routing model resolves incoming requests to a capability across
|
|
9
|
+
five layers. Layers 1, 2, and 5 are deterministic dispatch (bare invocation,
|
|
10
|
+
exact alias, no match); they are implemented and unchanged. Layers 3 and 4
|
|
11
|
+
cover natural-language requests. Per Decision 76, the LLM host — the AI model
|
|
12
|
+
that receives the user's message — owns natural-language routing natively. The
|
|
13
|
+
trigger schema (`description`, `disambiguates_against`, `priority`, phase
|
|
14
|
+
context) provides LLM-readable intent documentation the host consults; there is
|
|
15
|
+
no scoring engine, no confidence threshold, and no borderline band. Layer 4
|
|
16
|
+
(formerly borderline-band disambiguation) is dissolved into Layer 3: the LLM
|
|
17
|
+
resolves ambiguity natively, using `disambiguates_against` hints as advisory
|
|
18
|
+
context. Decision 75's request-vs-state mutual exclusivity is dissolved: request
|
|
19
|
+
intent and state-readiness are both advisory context the LLM consults.
|
|
20
|
+
|
|
21
|
+
## Layer 1: Bare `/agentera` — delegate to prime
|
|
22
|
+
|
|
23
|
+
- **Input pattern**: the request is `/agentera` with no additional text.
|
|
24
|
+
- **Action**: delegate immediately to the status capability. Status performs
|
|
25
|
+
state-aware routing through the `agentera prime` composite result, which
|
|
26
|
+
condenses project artifacts and suggests the most useful next capability.
|
|
27
|
+
This is deterministic and never wrong.
|
|
28
|
+
- **Implementation status**: implemented and unchanged.
|
|
29
|
+
|
|
30
|
+
## Layer 2: capability name or `/agentera <primary-alias>` — direct route
|
|
31
|
+
|
|
32
|
+
- **Input pattern**: the request text exactly matches a capability name
|
|
33
|
+
(case-insensitive), or exactly matches one primary alias from
|
|
34
|
+
`capability_schema_contract.yaml` `ROUTE_ALIASES.primary_aliases`, or begins
|
|
35
|
+
with a canonical capability name followed by more text (`/agentera <capability>
|
|
36
|
+
<topic>`).
|
|
37
|
+
- **Action**: route directly to that capability without evaluating natural-language
|
|
38
|
+
trigger descriptions. Pass any remaining text as the user's topic or instruction.
|
|
39
|
+
Each capability has exactly one primary alias; secondary wording stays in
|
|
40
|
+
capability trigger schemas below this layer.
|
|
41
|
+
- **Implementation status**: implemented and unchanged.
|
|
42
|
+
|
|
43
|
+
## Layer 3: Natural language — LLM-native routing
|
|
44
|
+
|
|
45
|
+
- **Input pattern**: the request is natural language (e.g. "help me think
|
|
46
|
+
through this") that does not match Layer 1 or Layer 2.
|
|
47
|
+
- **Action**: the LLM host routes natively. It consults the trigger schema's
|
|
48
|
+
`description` fields (what each capability does), `disambiguates_against`
|
|
49
|
+
hints (how to tell near-equal capabilities apart), and `priority`
|
|
50
|
+
(relevance precedence) as LLM-readable intent documentation, then selects a
|
|
51
|
+
capability. There are no confidence scores, no thresholds, and no
|
|
52
|
+
weighted-average computation; the LLM reads the intent descriptions and
|
|
53
|
+
routes.
|
|
54
|
+
- **Resolving ambiguity**: when two capabilities could match a request, the
|
|
55
|
+
LLM host resolves the ambiguity natively, surfacing the
|
|
56
|
+
`disambiguates_against.hint` strings as advisory context when it asks the
|
|
57
|
+
user to confirm or clarify. The hints supply the words; the LLM supplies the
|
|
58
|
+
judgment.
|
|
59
|
+
- **Implementation status**: implemented — the LLM host owns this layer.
|
|
60
|
+
`references/cli/trigger-schema-enrichment.md` is the intent documentation
|
|
61
|
+
contract the host reads.
|
|
62
|
+
|
|
63
|
+
## Layer 4: Dissolved into Layer 3
|
|
64
|
+
|
|
65
|
+
Layer 4 formerly described a borderline-band disambiguation engine that fired
|
|
66
|
+
when two capabilities scored within a configurable band. Decision 76 retired
|
|
67
|
+
that engine: ambiguity resolution is now part of Layer 3, performed natively by
|
|
68
|
+
the LLM host using the `disambiguates_against` hints as advisory context. There
|
|
69
|
+
is no separate disambiguation layer, no borderline band, and no
|
|
70
|
+
disambiguation-engine output schema.
|
|
71
|
+
|
|
72
|
+
## Layer 5: No match — fallback to status
|
|
73
|
+
|
|
74
|
+
- **Input pattern**: the LLM host cannot map the request to any capability from
|
|
75
|
+
the trigger schema's intent descriptions.
|
|
76
|
+
- **Action**: route to status for orientation. Status handles status requests
|
|
77
|
+
and ambiguous inputs.
|
|
78
|
+
- **Implementation status**: implemented and unchanged.
|
|
79
|
+
|
|
80
|
+
## Ownership boundaries
|
|
81
|
+
|
|
82
|
+
- **This document** defines what Layers 1-5 mean: their input patterns, actions,
|
|
83
|
+
and implementation status.
|
|
84
|
+
- **`skills/agentera/capability_schema_contract.yaml`** (`ENTRY_SCHEMA.fields.priority`
|
|
85
|
+
and `FIELD_RULES.TRIGGERS.priority`) defines trigger `priority` values
|
|
86
|
+
(`high`, `medium`, `low`) as an advisory relevance-precedence hint the LLM host
|
|
87
|
+
reads — not a scoring weight.
|
|
88
|
+
- **Per-capability `schemas/triggers.yaml`** owns the trigger `description`,
|
|
89
|
+
`priority`, and `disambiguates_against` intent documentation that the LLM host
|
|
90
|
+
consults for Layer 3 routing. `references/cli/trigger-schema-enrichment.md` is
|
|
91
|
+
the intent documentation contract; pattern matching and scoring belong to
|
|
92
|
+
neither, having been retired by Decision 76.
|
|
93
|
+
- **`skills/agentera/SKILL.md`** is the thin bootstrap routing surface per Decision
|
|
94
|
+
74; it cross-references this document rather than restating the full model.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
schema_version: agentera.single_name_protocol.v1
|
|
2
|
+
status: active_authority
|
|
3
|
+
decision: 58
|
|
4
|
+
purpose: >-
|
|
5
|
+
Machine-readable Decision 58 boundary: forbidden legacy protocol identifiers
|
|
6
|
+
and scan surfaces for the single-name protocol regression test.
|
|
7
|
+
human_index:
|
|
8
|
+
document: references/cli/vocabulary.md
|
|
9
|
+
forbidden_protocol_substrings:
|
|
10
|
+
- pattern: instruction_file
|
|
11
|
+
rationale: D65 renamed DIRECTORY_REQUIREMENTS and contract fields to instruction_module.
|
|
12
|
+
- pattern: canonical_instruction_file
|
|
13
|
+
rationale: Use canonical_instruction_module in capability-instruction-contract.yaml.
|
|
14
|
+
- pattern: legacy_instruction_file
|
|
15
|
+
rationale: Historical paths belong in archive or migration modules only.
|
|
16
|
+
- pattern: instructionPath
|
|
17
|
+
rationale: capabilityContract loader exposes instructionModulePath only.
|
|
18
|
+
forbidden_storage_protocol_markdown_artifacts:
|
|
19
|
+
- PROGRESS.md
|
|
20
|
+
- PLAN.md
|
|
21
|
+
- DECISIONS.md
|
|
22
|
+
- VISION.md
|
|
23
|
+
- HEALTH.md
|
|
24
|
+
- DOCS.md
|
|
25
|
+
- OBJECTIVE.md
|
|
26
|
+
- EXPERIMENTS.md
|
|
27
|
+
scan_roots:
|
|
28
|
+
- packages/cli/src
|
|
29
|
+
- skills/agentera/capability_schema_contract.yaml
|
|
30
|
+
- skills/agentera/protocol.yaml
|
|
31
|
+
- references/cli/capability-instruction-contract.yaml
|
|
32
|
+
- references/cli/vocabulary.md
|
|
33
|
+
- references/cli/vocabulary-index.yaml
|
|
34
|
+
- registry.json
|
|
35
|
+
scan_exclude_globs:
|
|
36
|
+
- "**/capabilities/**/instructions.ts"
|
|
37
|
+
- "**/migrateArtifactsV1ToV2.ts"
|
|
38
|
+
- "**/migrateArtifactsV2ToV3.ts"
|
|
39
|
+
- "**/migrateArtifacts*.ts"
|
|
40
|
+
- "**/*.test.ts"
|
|
41
|
+
- "**/test/**"
|
|
42
|
+
comment_line_exempt: true
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Trigger intent documentation contract
|
|
2
|
+
|
|
3
|
+
Authority for Layer 3 LLM-native capability routing. This document defines the
|
|
4
|
+
trigger-schema fields the LLM host consults to understand what each capability
|
|
5
|
+
does and how to disambiguate near-equal requests. The fields are documentation
|
|
6
|
+
the host reads, not inputs to a scoring engine.
|
|
7
|
+
|
|
8
|
+
- **Authority path:** `references/cli/trigger-schema-enrichment.md`
|
|
9
|
+
- **Schema contract:** `skills/agentera/capability_schema_contract.yaml` (the
|
|
10
|
+
contract loader at `packages/cli/src/registries/capabilityContract.ts` consumes it)
|
|
11
|
+
- **Trigger files:** `skills/agentera/capabilities/<name>/schemas/triggers.yaml`
|
|
12
|
+
- **Scope:** Layer 3 (LLM-native natural-language routing) of the five-layer
|
|
13
|
+
routing model. Layer 4 (formerly borderline-band disambiguation) is dissolved
|
|
14
|
+
into Layer 3. Layers 1, 2, and 5 are unchanged.
|
|
15
|
+
|
|
16
|
+
## Decision 76 — repositioning
|
|
17
|
+
|
|
18
|
+
Decision 76 (2026-06-30) retires the deterministic NL routing engine. The LLM
|
|
19
|
+
host — the AI model that receives the user's message — owns natural-language
|
|
20
|
+
routing natively. This document is repositioned from a scoring-enrichment
|
|
21
|
+
contract to the **trigger intent documentation contract**: it defines the
|
|
22
|
+
`triggers.yaml` fields that help the LLM host understand what each capability
|
|
23
|
+
does and how to disambiguate near-equal requests.
|
|
24
|
+
|
|
25
|
+
The fields stay as documentation, not as scoring inputs. The LLM host reads the
|
|
26
|
+
descriptions and disambiguates natively; `priority` and `disambiguates_against`
|
|
27
|
+
are advisory hints, not scoring weights. There is no scoring algorithm, no
|
|
28
|
+
confidence threshold, no borderline band, and no `prime --route` output schema.
|
|
29
|
+
Decision 75's request-vs-state mutual exclusivity is dissolved: request intent
|
|
30
|
+
and state-readiness are both advisory context the LLM consults. Decision 76
|
|
31
|
+
supersedes Decision 75 design choices 2 (request-derived scoring as router), 4
|
|
32
|
+
(mutual exclusivity), and 5 (pure request-derived).
|
|
33
|
+
|
|
34
|
+
Decision 76 records the design choices and rejected alternatives (including the
|
|
35
|
+
tuning-the-engine and reposition-`--route` alternatives that were rejected).
|
|
36
|
+
|
|
37
|
+
## 1. Field shape
|
|
38
|
+
|
|
39
|
+
The fields below are the LLM-readable intent documentation the host consults.
|
|
40
|
+
`description` and `priority` are base trigger fields required on every
|
|
41
|
+
`TRIGGERS` entry; `disambiguates_against` is an optional enrichment that gives
|
|
42
|
+
the host disambiguation words to surface when a request could match more than
|
|
43
|
+
one capability.
|
|
44
|
+
|
|
45
|
+
### 1.1 `description`
|
|
46
|
+
|
|
47
|
+
- **Type:** non-empty string (required on every `TRIGGERS` entry).
|
|
48
|
+
- **Meaning:** the LLM-readable explanation of what this trigger entry routes to.
|
|
49
|
+
The LLM host reads this to decide whether a natural-language request matches
|
|
50
|
+
the capability's intent. Prose that names the capability's purpose and the
|
|
51
|
+
request shapes it owns reads better than keyword lists; write it for a reader
|
|
52
|
+
who has never seen the capability before.
|
|
53
|
+
- **Validation failure:** a missing, empty, or non-string `description` fails
|
|
54
|
+
validation with an error message naming the offending entry ID.
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
TRIGGERS:
|
|
58
|
+
1:
|
|
59
|
+
id: T2
|
|
60
|
+
description: >-
|
|
61
|
+
Audit and codebase health requests.
|
|
62
|
+
priority: medium
|
|
63
|
+
patterns:
|
|
64
|
+
- "check code health"
|
|
65
|
+
- "architecture review"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### 1.2 `disambiguates_against`
|
|
69
|
+
|
|
70
|
+
- **Type:** list of mappings. Each entry MUST contain:
|
|
71
|
+
- `capability` — string referencing a valid capability ID (one of the twelve
|
|
72
|
+
English canonical IDs enumerated by `ROUTE_ALIASES.primary_aliases` in
|
|
73
|
+
`capability_schema_contract.yaml`: `status`, `vision`, `discuss`, `research`,
|
|
74
|
+
`plan`, `build`, `optimize`, `audit`, `document`, `profile`, `design`,
|
|
75
|
+
`orchestrate`).
|
|
76
|
+
- `hint` — non-empty string distinguishing this trigger's intent from the
|
|
77
|
+
named capability on near-equal requests.
|
|
78
|
+
- **Meaning:** declares which other capabilities this trigger's intent could be
|
|
79
|
+
confused with, with a hint the LLM host consults when it sees a request that
|
|
80
|
+
could match more than one capability. The list is advisory: the LLM host
|
|
81
|
+
resolves ambiguity natively and MAY surface the hint when asking the user to
|
|
82
|
+
confirm or clarify. The hint supplies the words; the LLM supplies the
|
|
83
|
+
judgment.
|
|
84
|
+
- **Validation failure:** a `capability` value that is not one of the twelve
|
|
85
|
+
canonical IDs, a missing `hint`, an empty `hint`, or an entry that is not a
|
|
86
|
+
mapping fails validation with the offending entry ID and the constraint.
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
disambiguates_against:
|
|
90
|
+
- capability: build
|
|
91
|
+
hint: "vision refines existing project direction; build implements code"
|
|
92
|
+
- capability: optimize
|
|
93
|
+
hint: "vision is about what to build, not tuning existing code"
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 1.3 `priority`
|
|
97
|
+
|
|
98
|
+
- **Type:** string enum `high` | `medium` | `low` (required on every `TRIGGERS`
|
|
99
|
+
entry).
|
|
100
|
+
- **Meaning:** advisory relevance-precedence hint the LLM host reads alongside
|
|
101
|
+
`description` when deciding which capability best fits a request. `high`
|
|
102
|
+
marks a capability that owns the request strongly; `low` marks a capability
|
|
103
|
+
that is a plausible but weaker fit. It is not a scoring weight and feeds no
|
|
104
|
+
weighted-average calculation; the LLM host uses it as one signal among the
|
|
105
|
+
intent documentation.
|
|
106
|
+
- **Validation failure:** a missing `priority` or a value outside `high`,
|
|
107
|
+
`medium`, `low` fails validation with the offending entry ID.
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
priority: high
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## 2. Defaults summary
|
|
114
|
+
|
|
115
|
+
| Field | Required | Default when absent |
|
|
116
|
+
| --- | --- | --- |
|
|
117
|
+
| `description` | required | — |
|
|
118
|
+
| `disambiguates_against` | optional | empty list (no explicit collisions declared) |
|
|
119
|
+
| `priority` | required (`TRIGGERS`) | — |
|
|
120
|
+
|
|
121
|
+
`description` and `priority` are required on every `TRIGGERS` entry and have no
|
|
122
|
+
default. `disambiguates_against` is optional and defaults to an empty list. The
|
|
123
|
+
loader at `packages/cli/src/registries/capabilityContract.ts` is the consumer of
|
|
124
|
+
these shapes; tests and source that need them read through the loader rather than
|
|
125
|
+
re-declaring the values (per the AGENTS.md rule against duplicating
|
|
126
|
+
contract-owned values).
|
|
127
|
+
|
|
128
|
+
## 3. Acceptance criteria mapping
|
|
129
|
+
|
|
130
|
+
| Criterion | Section |
|
|
131
|
+
| --- | --- |
|
|
132
|
+
| `description` is a non-empty string on every `TRIGGERS` entry | §1.1 |
|
|
133
|
+
| `disambiguates_against` entries reference a valid capability ID and include a non-empty hint | §1.2 |
|
|
134
|
+
| `priority` is one of `high` / `medium` / `low` on every `TRIGGERS` entry | §1.3 |
|
|
135
|
+
| Document reframed as LLM-readable intent documentation; no scoring algorithm, thresholds, borderline band, or `--route` output schema | Decision 76, §1 |
|
|
136
|
+
| Decision artifact lists each choice, ≥1 alternative, and rationale | Decision 76 in `.agentera/decisions.yaml` |
|