agentera 0.0.0 → 3.0.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/README.md +6 -45
  2. package/bundle/.agentera-npx-bundle.json +4 -0
  3. package/bundle/references/adapters/cursor.md +213 -0
  4. package/bundle/references/adapters/opencode.md +530 -0
  5. package/bundle/references/adapters/package-manifest-interface-model.yaml +337 -0
  6. package/bundle/references/adapters/package-registry.yaml +247 -0
  7. package/bundle/references/adapters/package-surface-characterization.md +48 -0
  8. package/bundle/references/adapters/runtime-adapter-characterization.md +79 -0
  9. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +200 -0
  10. package/bundle/references/adapters/runtime-adapter-registry.yaml +548 -0
  11. package/bundle/references/adapters/runtime-feature-parity.md +189 -0
  12. package/bundle/references/analysis/benchmark.md +267 -0
  13. package/bundle/references/analysis/startup-measurement-contract.yaml +424 -0
  14. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +288 -0
  15. package/bundle/references/cli/agent-ready-state-contract.yaml +950 -0
  16. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +241 -0
  17. package/bundle/references/cli/audience-namespace-cli-migration.yaml +355 -0
  18. package/bundle/references/cli/bundle-skill-vocabulary.yaml +278 -0
  19. package/bundle/references/cli/capability-instruction-contract.yaml +123 -0
  20. package/bundle/references/cli/capability-tool-classification.yaml +53 -0
  21. package/bundle/references/cli/routing-execution-vocabulary.yaml +281 -0
  22. package/bundle/references/cli/update-channels.yaml +147 -0
  23. package/bundle/references/cli/vocabulary-index.yaml +160 -0
  24. package/bundle/references/cli/vocabulary.md +566 -0
  25. package/bundle/references/meta/documentation-inventory.md +43 -0
  26. package/bundle/references/v1-section-mapping.md +47 -0
  27. package/bundle/registry.json +39 -0
  28. package/bundle/skills/agentera/.claude-plugin/plugin.json +27 -0
  29. package/bundle/skills/agentera/SKILL.md +470 -0
  30. package/bundle/skills/agentera/agents/dokumentera.toml +6 -0
  31. package/bundle/skills/agentera/agents/hej.toml +6 -0
  32. package/bundle/skills/agentera/agents/inspektera.toml +6 -0
  33. package/bundle/skills/agentera/agents/inspirera.toml +6 -0
  34. package/bundle/skills/agentera/agents/optimera.toml +6 -0
  35. package/bundle/skills/agentera/agents/orkestrera.toml +6 -0
  36. package/bundle/skills/agentera/agents/planera.toml +6 -0
  37. package/bundle/skills/agentera/agents/profilera.toml +6 -0
  38. package/bundle/skills/agentera/agents/realisera.toml +6 -0
  39. package/bundle/skills/agentera/agents/resonera.toml +6 -0
  40. package/bundle/skills/agentera/agents/visionera.toml +6 -0
  41. package/bundle/skills/agentera/agents/visualisera.toml +6 -0
  42. package/bundle/skills/agentera/capabilities/dokumentera/instructions.md +428 -0
  43. package/bundle/skills/agentera/capabilities/dokumentera/schemas/artifacts.yaml +73 -0
  44. package/bundle/skills/agentera/capabilities/dokumentera/schemas/exit.yaml +35 -0
  45. package/bundle/skills/agentera/capabilities/dokumentera/schemas/triggers.yaml +35 -0
  46. package/bundle/skills/agentera/capabilities/dokumentera/schemas/validation.yaml +139 -0
  47. package/bundle/skills/agentera/capabilities/hej/instructions.md +331 -0
  48. package/bundle/skills/agentera/capabilities/hej/schemas/artifacts.yaml +69 -0
  49. package/bundle/skills/agentera/capabilities/hej/schemas/exit.yaml +32 -0
  50. package/bundle/skills/agentera/capabilities/hej/schemas/triggers.yaml +58 -0
  51. package/bundle/skills/agentera/capabilities/hej/schemas/validation.yaml +55 -0
  52. package/bundle/skills/agentera/capabilities/inspektera/instructions.md +514 -0
  53. package/bundle/skills/agentera/capabilities/inspektera/schemas/artifacts.yaml +76 -0
  54. package/bundle/skills/agentera/capabilities/inspektera/schemas/exit.yaml +36 -0
  55. package/bundle/skills/agentera/capabilities/inspektera/schemas/triggers.yaml +38 -0
  56. package/bundle/skills/agentera/capabilities/inspektera/schemas/validation.yaml +113 -0
  57. package/bundle/skills/agentera/capabilities/inspirera/instructions.md +280 -0
  58. package/bundle/skills/agentera/capabilities/inspirera/schemas/artifacts.yaml +24 -0
  59. package/bundle/skills/agentera/capabilities/inspirera/schemas/exit.yaml +33 -0
  60. package/bundle/skills/agentera/capabilities/inspirera/schemas/triggers.yaml +34 -0
  61. package/bundle/skills/agentera/capabilities/inspirera/schemas/validation.yaml +58 -0
  62. package/bundle/skills/agentera/capabilities/optimera/instructions.md +437 -0
  63. package/bundle/skills/agentera/capabilities/optimera/schemas/artifacts.yaml +69 -0
  64. package/bundle/skills/agentera/capabilities/optimera/schemas/exit.yaml +35 -0
  65. package/bundle/skills/agentera/capabilities/optimera/schemas/triggers.yaml +39 -0
  66. package/bundle/skills/agentera/capabilities/optimera/schemas/validation.yaml +91 -0
  67. package/bundle/skills/agentera/capabilities/orkestrera/instructions.md +433 -0
  68. package/bundle/skills/agentera/capabilities/orkestrera/schemas/artifacts.yaml +64 -0
  69. package/bundle/skills/agentera/capabilities/orkestrera/schemas/exit.yaml +34 -0
  70. package/bundle/skills/agentera/capabilities/orkestrera/schemas/triggers.yaml +42 -0
  71. package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +107 -0
  72. package/bundle/skills/agentera/capabilities/planera/instructions.md +368 -0
  73. package/bundle/skills/agentera/capabilities/planera/schemas/artifacts.yaml +62 -0
  74. package/bundle/skills/agentera/capabilities/planera/schemas/exit.yaml +33 -0
  75. package/bundle/skills/agentera/capabilities/planera/schemas/triggers.yaml +34 -0
  76. package/bundle/skills/agentera/capabilities/planera/schemas/validation.yaml +61 -0
  77. package/bundle/skills/agentera/capabilities/profilera/instructions.md +419 -0
  78. package/bundle/skills/agentera/capabilities/profilera/schemas/artifacts.yaml +18 -0
  79. package/bundle/skills/agentera/capabilities/profilera/schemas/exit.yaml +34 -0
  80. package/bundle/skills/agentera/capabilities/profilera/schemas/triggers.yaml +45 -0
  81. package/bundle/skills/agentera/capabilities/profilera/schemas/validation.yaml +57 -0
  82. package/bundle/skills/agentera/capabilities/realisera/instructions.md +403 -0
  83. package/bundle/skills/agentera/capabilities/realisera/schemas/artifacts.yaml +80 -0
  84. package/bundle/skills/agentera/capabilities/realisera/schemas/exit.yaml +35 -0
  85. package/bundle/skills/agentera/capabilities/realisera/schemas/triggers.yaml +39 -0
  86. package/bundle/skills/agentera/capabilities/realisera/schemas/validation.yaml +110 -0
  87. package/bundle/skills/agentera/capabilities/resonera/instructions.md +329 -0
  88. package/bundle/skills/agentera/capabilities/resonera/schemas/artifacts.yaml +47 -0
  89. package/bundle/skills/agentera/capabilities/resonera/schemas/exit.yaml +35 -0
  90. package/bundle/skills/agentera/capabilities/resonera/schemas/triggers.yaml +46 -0
  91. package/bundle/skills/agentera/capabilities/resonera/schemas/validation.yaml +77 -0
  92. package/bundle/skills/agentera/capabilities/visionera/instructions.md +309 -0
  93. package/bundle/skills/agentera/capabilities/visionera/schemas/artifacts.yaml +57 -0
  94. package/bundle/skills/agentera/capabilities/visionera/schemas/exit.yaml +35 -0
  95. package/bundle/skills/agentera/capabilities/visionera/schemas/triggers.yaml +41 -0
  96. package/bundle/skills/agentera/capabilities/visionera/schemas/validation.yaml +74 -0
  97. package/bundle/skills/agentera/capabilities/visualisera/instructions.md +400 -0
  98. package/bundle/skills/agentera/capabilities/visualisera/schemas/artifacts.yaml +44 -0
  99. package/bundle/skills/agentera/capabilities/visualisera/schemas/exit.yaml +34 -0
  100. package/bundle/skills/agentera/capabilities/visualisera/schemas/triggers.yaml +33 -0
  101. package/bundle/skills/agentera/capabilities/visualisera/schemas/validation.yaml +80 -0
  102. package/bundle/skills/agentera/capability_schema_contract.yaml +385 -0
  103. package/bundle/skills/agentera/protocol.yaml +463 -0
  104. package/bundle/skills/agentera/references/contract.md +1039 -0
  105. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +60 -0
  106. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +461 -0
  107. package/bundle/skills/agentera/schemas/artifacts/design.yaml +55 -0
  108. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +402 -0
  109. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +373 -0
  110. package/bundle/skills/agentera/schemas/artifacts/health.yaml +484 -0
  111. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +399 -0
  112. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +342 -0
  113. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +325 -0
  114. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +110 -0
  115. package/bundle/skills/agentera/schemas/artifacts/vision.yaml +262 -0
  116. package/bundle/skills/hej/.claude-plugin/plugin.json +6 -0
  117. package/bundle/skills/hej/SKILL.md +69 -0
  118. package/bundle/skills/hej/agents/hej.toml +11 -0
  119. package/bundle/skills/hej/agents/openai.yaml +8 -0
  120. package/dist/analytics/extractCorpus.js +1791 -0
  121. package/dist/analytics/extractCorpus.js.map +1 -0
  122. package/dist/analytics/usageStats.js +487 -0
  123. package/dist/analytics/usageStats.js.map +1 -0
  124. package/dist/bin/agentera.js +4 -0
  125. package/dist/bin/agentera.js.map +1 -0
  126. package/dist/cli/appContext.js +226 -0
  127. package/dist/cli/appContext.js.map +1 -0
  128. package/dist/cli/argvalidate.js +41 -0
  129. package/dist/cli/argvalidate.js.map +1 -0
  130. package/dist/cli/capabilityContext.js +2421 -0
  131. package/dist/cli/capabilityContext.js.map +1 -0
  132. package/dist/cli/commands/backfill.js +84 -0
  133. package/dist/cli/commands/backfill.js.map +1 -0
  134. package/dist/cli/commands/capability.js +44 -0
  135. package/dist/cli/commands/capability.js.map +1 -0
  136. package/dist/cli/commands/compact.js +148 -0
  137. package/dist/cli/commands/compact.js.map +1 -0
  138. package/dist/cli/commands/doctor.js +180 -0
  139. package/dist/cli/commands/doctor.js.map +1 -0
  140. package/dist/cli/commands/lint.js +179 -0
  141. package/dist/cli/commands/lint.js.map +1 -0
  142. package/dist/cli/commands/prime.js +544 -0
  143. package/dist/cli/commands/prime.js.map +1 -0
  144. package/dist/cli/commands/query.js +346 -0
  145. package/dist/cli/commands/query.js.map +1 -0
  146. package/dist/cli/commands/report.js +210 -0
  147. package/dist/cli/commands/report.js.map +1 -0
  148. package/dist/cli/commands/schema.js +306 -0
  149. package/dist/cli/commands/schema.js.map +1 -0
  150. package/dist/cli/commands/state.js +1012 -0
  151. package/dist/cli/commands/state.js.map +1 -0
  152. package/dist/cli/commands/upgrade.js +48 -0
  153. package/dist/cli/commands/upgrade.js.map +1 -0
  154. package/dist/cli/commands/validate.js +519 -0
  155. package/dist/cli/commands/validate.js.map +1 -0
  156. package/dist/cli/commands/verify.js +204 -0
  157. package/dist/cli/commands/verify.js.map +1 -0
  158. package/dist/cli/dispatch.js +958 -0
  159. package/dist/cli/dispatch.js.map +1 -0
  160. package/dist/cli/orientation.js +595 -0
  161. package/dist/cli/orientation.js.map +1 -0
  162. package/dist/cli/prime-blob.js +3 -0
  163. package/dist/cli/prime-blob.js.map +1 -0
  164. package/dist/cli/stateQuery.js +292 -0
  165. package/dist/cli/stateQuery.js.map +1 -0
  166. package/dist/cli/structured.js +18 -0
  167. package/dist/cli/structured.js.map +1 -0
  168. package/dist/core/difflib.js +274 -0
  169. package/dist/core/difflib.js.map +1 -0
  170. package/dist/core/git.js +43 -0
  171. package/dist/core/git.js.map +1 -0
  172. package/dist/core/paths.js +50 -0
  173. package/dist/core/paths.js.map +1 -0
  174. package/dist/core/pyjson.js +101 -0
  175. package/dist/core/pyjson.js.map +1 -0
  176. package/dist/core/sourceRoot.js +72 -0
  177. package/dist/core/sourceRoot.js.map +1 -0
  178. package/dist/core/toml.js +11 -0
  179. package/dist/core/toml.js.map +1 -0
  180. package/dist/core/yaml.js +25 -0
  181. package/dist/core/yaml.js.map +1 -0
  182. package/dist/eval/evalSkills.js +258 -0
  183. package/dist/eval/evalSkills.js.map +1 -0
  184. package/dist/eval/semanticEval.js +148 -0
  185. package/dist/eval/semanticEval.js.map +1 -0
  186. package/dist/eval/semanticFixtures.js +227 -0
  187. package/dist/eval/semanticFixtures.js.map +1 -0
  188. package/dist/hooks/common.js +160 -0
  189. package/dist/hooks/common.js.map +1 -0
  190. package/dist/hooks/compaction.js +935 -0
  191. package/dist/hooks/compaction.js.map +1 -0
  192. package/dist/hooks/cursorPreToolUse.js +19 -0
  193. package/dist/hooks/cursorPreToolUse.js.map +1 -0
  194. package/dist/hooks/cursorSessionStart.js +71 -0
  195. package/dist/hooks/cursorSessionStart.js.map +1 -0
  196. package/dist/hooks/sessionStart.js +209 -0
  197. package/dist/hooks/sessionStart.js.map +1 -0
  198. package/dist/hooks/sessionStop.js +212 -0
  199. package/dist/hooks/sessionStop.js.map +1 -0
  200. package/dist/hooks/validateArtifact.js +933 -0
  201. package/dist/hooks/validateArtifact.js.map +1 -0
  202. package/dist/registries/artifactRegistry.js +206 -0
  203. package/dist/registries/artifactRegistry.js.map +1 -0
  204. package/dist/registries/capabilityContract.js +310 -0
  205. package/dist/registries/capabilityContract.js.map +1 -0
  206. package/dist/registries/packageRegistry.js +641 -0
  207. package/dist/registries/packageRegistry.js.map +1 -0
  208. package/dist/registries/runtimeAdapterRegistry.js +315 -0
  209. package/dist/registries/runtimeAdapterRegistry.js.map +1 -0
  210. package/dist/setup/codex.js +1056 -0
  211. package/dist/setup/codex.js.map +1 -0
  212. package/dist/setup/copilot.js +227 -0
  213. package/dist/setup/copilot.js.map +1 -0
  214. package/dist/setup/cursor.js +127 -0
  215. package/dist/setup/cursor.js.map +1 -0
  216. package/dist/setup/doctor.js +1276 -0
  217. package/dist/setup/doctor.js.map +1 -0
  218. package/dist/state/installRoot.js +279 -0
  219. package/dist/state/installRoot.js.map +1 -0
  220. package/dist/state/progressCommit.js +289 -0
  221. package/dist/state/progressCommit.js.map +1 -0
  222. package/dist/state/startupAnalysis.js +1953 -0
  223. package/dist/state/startupAnalysis.js.map +1 -0
  224. package/dist/upgrade/appModel.js +189 -0
  225. package/dist/upgrade/appModel.js.map +1 -0
  226. package/dist/upgrade/channels.js +208 -0
  227. package/dist/upgrade/channels.js.map +1 -0
  228. package/dist/upgrade/compatibility.js +201 -0
  229. package/dist/upgrade/compatibility.js.map +1 -0
  230. package/dist/upgrade/doctor.js +373 -0
  231. package/dist/upgrade/doctor.js.map +1 -0
  232. package/dist/upgrade/migrateArtifactsV2ToV3.js +332 -0
  233. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -0
  234. package/dist/upgrade/runtimeMigration.js +484 -0
  235. package/dist/upgrade/runtimeMigration.js.map +1 -0
  236. package/dist/upgrade/upgradeCommands.js +36 -0
  237. package/dist/upgrade/upgradeCommands.js.map +1 -0
  238. package/dist/upgrade/upgradeOrchestrator.js +299 -0
  239. package/dist/upgrade/upgradeOrchestrator.js.map +1 -0
  240. package/dist/upgrade/versionResolution.js +179 -0
  241. package/dist/upgrade/versionResolution.js.map +1 -0
  242. package/dist/validate/appHomeContract.js +150 -0
  243. package/dist/validate/appHomeContract.js.map +1 -0
  244. package/dist/validate/capability.js +412 -0
  245. package/dist/validate/capability.js.map +1 -0
  246. package/dist/validate/crossCapability.js +145 -0
  247. package/dist/validate/crossCapability.js.map +1 -0
  248. package/dist/validate/lifecycleAdapters.js +772 -0
  249. package/dist/validate/lifecycleAdapters.js.map +1 -0
  250. package/dist/validate/selfAudit.js +107 -0
  251. package/dist/validate/selfAudit.js.map +1 -0
  252. package/package.json +28 -8
  253. package/LICENSE +0 -201
  254. package/bin/agentera.mjs +0 -50
  255. package/lib/exec.mjs +0 -116
  256. package/lib/resolve.mjs +0 -129
@@ -0,0 +1,950 @@
1
+ interface: AgentReadyStateCli
2
+ status: design_contract
3
+ decision: 45
4
+ purpose: >-
5
+ Define the Agentera state CLI command vocabulary and agent-ready interface
6
+ boundaries before executable Decision 45 tasks implement doctor, structured
7
+ output, field selection, describe, and input hardening behavior.
8
+ sources:
9
+ decisions:
10
+ - .agentera/decisions.yaml#Decision-45
11
+ - .agentera/decisions.yaml#Decision-43
12
+ - .agentera/decisions.yaml#Decision-59
13
+ playbook: /home/jgabor/docs/agent-ready-interface-playbook.md
14
+ active_plan: .agentera/plan.yaml
15
+ linked_addenda:
16
+ audience_namespace_cli_migration:
17
+ path: references/cli/audience-namespace-cli-migration.yaml
18
+ status: target_design_contract
19
+ purpose: >-
20
+ Target CLI command tree, audience namespaces (`state`, `report`, `check`),
21
+ prime/hej and schema/describe migration boundaries, Decision 45 routine-state
22
+ alias policy, and `/agentera plan` versus `state plan` versus `planera` routing
23
+ distinction. Parser implementation is deferred to plan tasks 2–4.
24
+ principles:
25
+ - Keep the CLI state-oriented; capability routing remains a slash-command surface.
26
+ - Preserve stable routine state command names unless a task records an explicit migration.
27
+ - Prefer runtime structured output and introspection over static prompt stuffing.
28
+ - Validate agent-facing inputs at the CLI boundary before resolving paths or emitting partial output.
29
+ routine_state_commands:
30
+ status: stable
31
+ commands:
32
+ - hej
33
+ - plan
34
+ - progress
35
+ - health
36
+ - todo
37
+ - decisions
38
+ - docs
39
+ - objective
40
+ - experiments
41
+ - query
42
+ rationale: >-
43
+ Decision 45 explicitly preserves routine state command names. These commands
44
+ are the top-level state seam used by agents and docs; changing them would
45
+ break Decision 44's stable labels and Decision 39's query-CLI direction.
46
+ slash_route_aliases:
47
+ status: excluded_from_cli_commands
48
+ aliases:
49
+ status: hej
50
+ vision: visionera
51
+ discuss: resonera
52
+ research: inspirera
53
+ plan: planera
54
+ build: realisera
55
+ optimize: optimera
56
+ audit: inspektera
57
+ document: dokumentera
58
+ profile: profilera
59
+ design: visualisera
60
+ orchestrate: orkestrera
61
+ rationale: >-
62
+ Decision 43 aliases are exact `/agentera <alias>` routes, not CLI state
63
+ commands. Teaching `status`, `build`, `audit`, or `document` as CLI commands
64
+ would blur route vocabulary with state access; the shared word `plan` keeps
65
+ separate meanings as `/agentera plan` routing and `agentera plan` state.
66
+ doctor:
67
+ status: implemented_hard_rename
68
+ command: doctor
69
+ removed_command: bundle-status
70
+ compatibility_alias: forbidden
71
+ owns:
72
+ - Agentera CLI self-check status
73
+ - installed bundle status
74
+ - install-root status
75
+ - runtime adapter availability and configuration diagnostics
76
+ - hook, package, and schema availability checks when implemented
77
+ excludes:
78
+ - project artifact health
79
+ - codebase quality audit findings
80
+ - inspektera architecture, test, dependency, or documentation audit output
81
+ adjacent_surfaces:
82
+ project_artifact_health: agentera health
83
+ codebase_audit: /agentera audit routes to inspektera
84
+ setup_specific_diagnostics: packages/cli/src/setup/doctor.ts
85
+ rationale: >-
86
+ Decision 45 rejects `bundle-status` as too narrow and rejects an alias for
87
+ release-clean vocabulary. `doctor` is Agentera CLI/install/runtime
88
+ self-check vocabulary only; artifact health and codebase audits remain owned
89
+ by `agentera health` and inspektera.
90
+ schema:
91
+ status: implemented_runtime_introspection
92
+ command: schema
93
+ migration_alias:
94
+ command: describe
95
+ stderr: one-line deprecation naming schema
96
+ owns:
97
+ - command discovery
98
+ - filters and output format discovery
99
+ - structured output shapes
100
+ - field selection metadata
101
+ - Decision 43 slash-route alias descriptions
102
+ - artifact schema discovery
103
+ - doctor self-check categories
104
+ does_not_own:
105
+ - adding CLI commands for slash aliases
106
+ - replacing routine state commands
107
+ - claiming unavailable schema facts as implemented
108
+ rationale: >-
109
+ The playbook prioritizes runtime schema introspection so agents can discover
110
+ the current interface on demand. `schema` owns public discovery; `describe`
111
+ remains a stderr-deprecation alias during migration.
112
+ describe:
113
+ status: deprecated_alias_for_schema
114
+ command: describe
115
+ canonical_replacement: schema
116
+ rationale: >-
117
+ Deprecated alias retained for one minor release; agents and docs should use
118
+ `agentera schema`.
119
+ structured_output:
120
+ status: implemented_for_routine_state_commands
121
+ formats:
122
+ - json
123
+ - yaml
124
+ applies_to:
125
+ - hej
126
+ - plan
127
+ - progress
128
+ - health
129
+ - todo
130
+ - decisions
131
+ - docs
132
+ - objective
133
+ - experiments
134
+ excludes:
135
+ - adding new route-alias commands
136
+ - replacing human text output
137
+ - changing persisted artifact shapes
138
+ - selecting undocumented raw artifact fields
139
+ envelope:
140
+ routine_state_commands:
141
+ fields:
142
+ - command
143
+ - status
144
+ - entries
145
+ - counts
146
+ - source
147
+ - filters
148
+ - summary
149
+ - source_contract
150
+ status_values:
151
+ - ok
152
+ - empty
153
+ source_metadata:
154
+ - artifact
155
+ - path
156
+ - exists
157
+ - kind
158
+ source_contract:
159
+ plan:
160
+ status: implemented_complete_plan_artifact_envelope
161
+ fields:
162
+ - complete_for_plan_artifact
163
+ - complete_for_normal_startup_evaluation
164
+ - raw_artifact_reads_required
165
+ - raw_artifact_read_policy
166
+ - included_state
167
+ - complete_state
168
+ - raw_artifact_access_boundary
169
+ - missing_state
170
+ - fallback
171
+ - fallback_policy
172
+ - summary_fields
173
+ - entry_fields
174
+ complete_semantics: >-
175
+ When `complete_for_plan_artifact` is true, `agentera plan --format
176
+ json` includes plan summary metadata, tasks, dependencies, acceptance
177
+ criteria, evidence, overall acceptance, surprises, and previous-plan
178
+ archive references needed for normal read-only startup/evaluation
179
+ context; agents should skip defensive `.agentera/plan.yaml` reads.
180
+ Raw mapped plan artifact access remains valid for writes, archival,
181
+ validation, corruption diagnostics, or unavailable/incomplete CLI state
182
+ after CLI fallbacks. Legacy `entries`-shaped plan artifacts must not
183
+ report this complete state because they do not expose the current plan
184
+ summary/task/evidence envelope.
185
+ decisions:
186
+ status: implemented_normal_deliberation_envelope
187
+ fields:
188
+ - complete_for_returned_decisions
189
+ - complete_for_decision_context
190
+ - complete_for_returned_full_detail
191
+ - complete_for_normal_deliberation_context
192
+ - normal_deliberation_context
193
+ - decision_context_truth_table
194
+ - missing_full_detail_boundary
195
+ - missing_artifact_boundary
196
+ - filtered_result_boundary
197
+ - satisfaction_review_boundary
198
+ - compacted_history_boundary
199
+ - raw_artifact_access_boundary
200
+ - raw_artifact_reads_required
201
+ - raw_artifact_read_policy
202
+ - fallback_policy
203
+ complete_semantics: >-
204
+ `complete_for_decision_context` and
205
+ `complete_for_returned_full_detail` are full-detail signals and may be
206
+ false for compacted history, missing full-detail fields, or satisfaction
207
+ review pressure. Normal deliberation should key off
208
+ `complete_for_normal_deliberation_context`; when it is true, agents use
209
+ returned entries plus `missing_fields`, `compacted`, `caveats`, and
210
+ satisfaction review state without raw `.agentera/decisions.yaml` reads
211
+ or inference. Empty filtered results mean no returned decisions matched
212
+ the filter, not missing decision state. Missing artifacts make normal
213
+ deliberation context unavailable and enter CLI fallback/diagnostic
214
+ boundaries before any raw artifact repair.
215
+ raw_access_semantics: >-
216
+ Raw decision artifact access is reserved for Resonera-owned decision
217
+ writes/repairs, artifact corruption diagnostics, or CLI defect
218
+ investigation. It is not required merely because returned decisions are
219
+ compacted, incomplete, filtered, or require satisfaction review.
220
+ empty_state: >-
221
+ Missing or empty artifacts emit status=empty, entries=[], counts.entries=0,
222
+ and source.exists=false when the source file is absent.
223
+ hej:
224
+ fields:
225
+ - command
226
+ - status
227
+ - bundle
228
+ - mode
229
+ - profile
230
+ - v1_migration
231
+ - health
232
+ - issues
233
+ - plan
234
+ - docs
235
+ - progress
236
+ - objective
237
+ - state_presence
238
+ - attention
239
+ - decision_attention
240
+ - next_action
241
+ - orchestration_context
242
+ - closeout_context
243
+ - evidence_context
244
+ - benchmark_context
245
+ - execution_context
246
+ - source
247
+ - source_contract
248
+ source_contract:
249
+ capability_startup:
250
+ status: implemented_complete_startup_envelope
251
+ fields:
252
+ - complete_for_capability_startup
253
+ - raw_artifact_reads_required
254
+ - raw_artifact_read_policy
255
+ - available_state
256
+ - missing_state
257
+ - confidence_caveats
258
+ - cli_fallback
259
+ complete_semantics: >-
260
+ When complete_for_capability_startup is true, raw_artifact_reads_required
261
+ must be false and agents should not perform defensive raw artifact reads
262
+ for normal capability startup.
263
+ incomplete_semantics: >-
264
+ When startup state is incomplete, missing_state, confidence_caveats,
265
+ and cli_fallback must be explicit. Agents should try the named CLI
266
+ fallback commands before any last-resort raw artifact read.
267
+ capability_context_semantics: >-
268
+ Agentera 3.0 capability startup uses
269
+ `agentera prime --context <capability> --format json` as the sole
270
+ supported seam. The response emits only `command`, `status`, and
271
+ top-level `capability_context` as a startup capsule; its `state` block
272
+ owns declared read needs, included and missing state families, artifact
273
+ inventory, and `fallback_commands`, while its `context` block owns
274
+ capability-specific startup payloads and `first_invocation_read`.
275
+ Historical v2 paths `agentera hej --format json --capability-context`,
276
+ `--context-profile full`, and `--context-profile slim` are removed and
277
+ must not be taught as supported behavior.
278
+ planera_startup_context_semantics: >-
279
+ `agentera prime --context planera --format json` may include a bounded
280
+ `startup_contract` for normal Planera execution startup at
281
+ `capability_context.context.planning_context.startup_contract`. The
282
+ contract can summarize planning levels, step markers, CLI-first
283
+ orientation, raw plan artifact boundaries, full-plan review/self-audit
284
+ requirements, handoff expectations, and the Planera prose authority
285
+ boundary without reading `planera/instructions.md` at runtime. It must
286
+ not introduce `agentera planera`, new top-level commands, or hidden
287
+ capability-name aliases; `agentera schema` owns runtime/schema
288
+ introspection rather than a capability workflow payload.
289
+ orchestration_context_semantics: >-
290
+ `agentera prime --context orkestrera --format json` may include
291
+ orchestration_context with dependency-ready tasks, blocked task reasons,
292
+ selected next task, task acceptance/evidence summaries, caveats, fallback
293
+ commands, and a source contract. It must not introduce `agentera
294
+ orkestrera` or other capability-name CLI commands.
295
+ closeout_context_semantics: >-
296
+ `agentera prime --context dokumentera --format json` may include
297
+ closeout_context with artifact mappings, version policy, TODO blockers,
298
+ changelog boundary, progress evidence, benchmark evidence or an unavailable
299
+ caveat, local metadata/tag versus publication boundary state, fallback
300
+ commands, caveats, provenance pointers, non-empty evidence flags, and a
301
+ raw-read-last-resort source contract. It must not introduce `agentera
302
+ dokumentera`, new top-level commands, or new subcommands.
303
+ evidence_context_semantics: >-
304
+ `agentera prime --context inspektera --format json` may include
305
+ evidence_context with an evaluation target, plan criteria, progress
306
+ verification, docs state, health state, TODO state, protected-state and
307
+ version boundary status values, decision-context caveats, attributed
308
+ residual risks, fallback commands, caveats, provenance pointers, non-empty
309
+ evidence flags, and a raw-read-last-resort source contract. It must not
310
+ introduce `agentera inspektera`, new top-level commands, or new subcommands.
311
+ benchmark_context_semantics: >-
312
+ `agentera prime --context optimera --format json` may include
313
+ benchmark_context with retained startup benchmark source status, latest
314
+ report summary, aggregate history summary, runtime coverage caveats,
315
+ state-access rates, token-impact estimates, comparison null reasons,
316
+ recommendation action, manual-refresh guidance, privacy boundary,
317
+ fallback commands, and a raw-read-last-resort source contract. It must
318
+ not introduce `agentera optimera`, new top-level commands, or new subcommands.
319
+ execution_context_semantics: >-
320
+ `agentera prime --context realisera --format json` may include
321
+ execution_context with selected work, task details, acceptance criteria,
322
+ constraints, verification expectations, artifact update requirements,
323
+ progress logging requirements, changelog boundary, scope boundary,
324
+ fallback commands, caveats, read-only plan-completion sweep metadata,
325
+ and a raw-read-last-resort source contract. It must not introduce
326
+ `agentera realisera`, `agentera build`, new top-level commands, or new subcommands.
327
+ decision_attention_semantics: >-
328
+ `agentera prime --format json` may include one bounded `decision_attention`
329
+ payload when returned decisions require satisfaction review. The payload
330
+ derives from the same `_decision_context_entry` and
331
+ `_decision_satisfaction_context` semantics as `agentera decisions --format
332
+ json`, never infers satisfaction, never mutates `.agentera/decisions.yaml`,
333
+ keeps top-level attention bounded, and must not change `next_action`
334
+ routing priority.
335
+ evidence_context_target_contract: evidence_context_target_contract
336
+ current_status: complete
337
+ current_missing_state: []
338
+ empty_state: >-
339
+ Fresh projects emit mode=fresh with explicit plan/docs/progress absence
340
+ reasons, zero issue counts, source.artifacts_present=false, state_presence
341
+ absence metadata, and a caller-owned dashboard source_contract.
342
+ rationale: >-
343
+ The playbook calls for machine-readable output as a first-class path. Task 3
344
+ should add parseable routine output while keeping current command names and
345
+ useful human text output stable.
346
+ startup_completeness:
347
+ status: implemented_complete_startup_envelope
348
+ owning_command: prime
349
+ preserves_routine_state_commands: true
350
+ slash_route_alias_cli_commands_added: false
351
+ complete_output_requires:
352
+ complete_for_capability_startup: true
353
+ raw_artifact_reads_required: false
354
+ incomplete_output_requires:
355
+ - missing_state
356
+ - confidence_caveats
357
+ - cli_fallback
358
+ fallback_policy: >-
359
+ Incomplete startup state must point agents to existing routine state commands
360
+ before any raw artifact read. Complete startup state must never require raw
361
+ artifact reads for normal capability startup.
362
+ current_cli_fallback:
363
+ - agentera plan --format json
364
+ - agentera docs --format json
365
+ - agentera progress --format json
366
+ state_families_added:
367
+ - plan task details, dependencies, acceptance criteria, and evidence summaries
368
+ - docs artifact mapping and source-contract completeness metadata
369
+ - latest progress verification metadata needed for Orkestrera evaluation
370
+ - Optimera benchmark_context metadata for retained startup benchmark summaries
371
+ - Realisera execution_context metadata for plan-driven implementation startup
372
+ empty_state_behavior: >-
373
+ agentera prime reports absent plan, docs, and progress state explicitly through
374
+ structured summaries and state_presence absence metadata instead of forcing
375
+ artifact discovery. Top-level `agentera hej` remains a migration alias.
376
+ repair_guidance_behavior: >-
377
+ agentera prime carries stale app repair commands through bundle/app_home output and
378
+ v1 migration preview/apply commands through v1_migration output.
379
+ non_goals:
380
+ - Do not add Decision 43 slash-route aliases to the CLI command surface.
381
+ - Do not remove or rename routine state commands.
382
+ - Do not add a separate benchmark command; Optimera benchmark comparison stays inside benchmark_context.
383
+ evidence_context_target_contract:
384
+ status: task_1_design_contract
385
+ planned_context_name: evidence_context
386
+ planned_invocation: agentera prime --context inspektera --format json
387
+ implementation_status: implemented_provenance_and_boundary_contract
388
+ status_vocabulary:
389
+ protected_and_version_boundaries:
390
+ - verified_local
391
+ - not_checked_by_design
392
+ - requires_manual_check
393
+ - unavailable
394
+ inventory:
395
+ cli_first_sources:
396
+ - command: agentera prime --context orkestrera --format json
397
+ included_state:
398
+ - plan
399
+ - progress
400
+ - health
401
+ - todo
402
+ - docs
403
+ missing_state:
404
+ - decisions
405
+ - vision
406
+ - profile
407
+ fallback_commands:
408
+ - agentera decisions --format json
409
+ caveats:
410
+ - profile-derived state is stale and must not trigger profile refresh
411
+ - orchestration_context is incomplete for missing decisions, vision, and profile state
412
+ - command: agentera plan --format json
413
+ included_state:
414
+ - active plan header and summary
415
+ - task dependencies
416
+ - task statuses
417
+ - task acceptance criteria
418
+ - task evidence summaries
419
+ - previous_plan_archived pointer
420
+ missing_state: []
421
+ raw_artifact_reads_required: false
422
+ - command: agentera progress --format json
423
+ included_state:
424
+ - latest progress cycles
425
+ - latest verification text
426
+ - cycle provenance
427
+ missing_state:
428
+ - explicit retry-attempt count
429
+ raw_artifact_reads_required: false
430
+ - command: agentera docs --format json
431
+ included_state:
432
+ - artifact mapping
433
+ - version files
434
+ - semver policy
435
+ - indexed document freshness
436
+ missing_state: []
437
+ raw_artifact_reads_required: false
438
+ - command: agentera health --format json
439
+ included_state:
440
+ - latest audit
441
+ - dimension grades
442
+ - findings
443
+ - trajectory
444
+ missing_state: []
445
+ raw_artifact_reads_required: false
446
+ - command: agentera todo --format json
447
+ included_state:
448
+ - open 2.3.10 evidence-context TODO
449
+ - deferred 2.3.11 and 2.3.12 source-contract TODOs
450
+ - known open issues
451
+ missing_state: []
452
+ raw_artifact_reads_required: false
453
+ - command: agentera decisions --format json
454
+ included_state:
455
+ - decisions 51 and 52 with complete context
456
+ - compacted historical decision summaries
457
+ missing_state:
458
+ - full context for 40 compacted historical entries
459
+ raw_artifact_reads_required: false
460
+ caveats:
461
+ - compacted decisions expose missing_fields and caveats instead of reconstructed history
462
+ last_resort_raw_fallbacks:
463
+ - reason: archived previous-plan status is not exposed by routine CLI state
464
+ path: .agentera/archive/PLAN-2026-05-15-2-3-9-dokumentera-closeout-context-source-contract.yaml
465
+ verified_field: header.status=complete
466
+ - reason: Inspektera prose and schemas are validated directly; complete evidence_context covers normal evaluation startup without raw plan/progress/docs/health/TODO/decisions reads.
467
+ paths:
468
+ - skills/agentera/capabilities/inspektera/instructions.md
469
+ - skills/agentera/capabilities/inspektera/schemas/artifacts.yaml
470
+ - skills/agentera/capabilities/inspektera/schemas/validation.yaml
471
+ raw_artifact_reads_required_for_startup: false
472
+ stale_state_caveats:
473
+ - profile-derived state is stale; record as caveat and do not refresh profile
474
+ - installed app state, when stale or update-needed, is a caveat and not approval to run upgrade, repair, or refresh
475
+ archive_boundary:
476
+ previous_plan: .agentera/archive/PLAN-2026-05-15-2-3-9-dokumentera-closeout-context-source-contract.yaml
477
+ verified_header_status: complete
478
+ scope_decision: previous-plan archival is already handled by Planera activation and is not implementation scope for 2.3.10 Task 1
479
+ target_selection:
480
+ source: CLI state only during normal startup
481
+ no_raw_plan_or_progress_reads_required: true
482
+ selection_order:
483
+ - order: 1
484
+ selector: current in-progress plan task
485
+ selection_reason: in_progress_task
486
+ - order: 2
487
+ selector: first dependency-ready pending plan task from orchestration_context.selected_next_task or plan entries
488
+ selection_reason: first_dependency_ready_pending_task
489
+ - order: 3
490
+ selector: most recent completed plan task with non-empty evidence summary
491
+ selection_reason: latest_completed_task_with_evidence
492
+ - order: 4
493
+ selector: repository-level evidence context with no task target
494
+ selection_reason: no_plan_task_target
495
+ no_target_behavior:
496
+ status: no_target
497
+ complete_for_evidence_context: false
498
+ caveat: No plan task target was selected; evaluate repository-level evidence only and keep fallback commands visible.
499
+ raw_artifact_reads_required: false
500
+ required_target_fields:
501
+ - target_type
502
+ - target_number
503
+ - target_name
504
+ - target_status
505
+ - selection_reason
506
+ - source_provenance
507
+ - caveats
508
+ evidence_matrix:
509
+ required_for_normal_task_evaluation:
510
+ - family: evaluation_target
511
+ source: plan/orchestration CLI state
512
+ fallback: agentera plan --format json
513
+ - family: plan_criteria
514
+ source: agentera plan --format json entries.acceptance
515
+ fallback: none when complete_for_plan_artifact is true
516
+ - family: progress_verification
517
+ source: agentera progress --format json latest verification
518
+ fallback: agentera progress --format json
519
+ - family: docs_state
520
+ source: agentera docs --format json summary and entries
521
+ fallback: agentera docs --format json
522
+ - family: health_state
523
+ source: agentera health --format json latest audit
524
+ fallback: agentera health --format json
525
+ - family: todo_state
526
+ source: agentera todo --format json known issues and source-contract TODOs
527
+ fallback: agentera todo --format json
528
+ - family: source_contract
529
+ source: evidence_context.source_contract
530
+ fallback: listed existing CLI commands before raw reads
531
+ optional_or_caveated_for_normal_task_evaluation:
532
+ - family: decisions_context
533
+ source: agentera decisions --format json
534
+ caveat: compacted historical entries remain incomplete and must not be reconstructed from raw artifacts
535
+ - family: vision_context
536
+ source: hej startup only when included by capability context
537
+ caveat: missing vision is a caveat, not a raw-read requirement for normal evaluation startup
538
+ - family: profile_context
539
+ source: hej profile summary
540
+ caveat: stale or missing profile is a caveat, not approval to refresh or read profile directly during normal startup
541
+ - family: protected_state_checks
542
+ source: local CLI-visible evidence only
543
+ caveat: use statuses verified_local, not_checked_by_design, requires_manual_check, or unavailable
544
+ - family: version_checks
545
+ source: local docs/version state only
546
+ caveat: do not contact remotes, registries, installed apps, or profile generation
547
+ - family: publication_or_remote_state
548
+ source: none during normal evidence context
549
+ caveat: not_recorded_in_cli_state unless a supported local command explicitly exposes it
550
+ prohibited_actions:
551
+ - agentera inspektera
552
+ - adding new top-level CLI commands for this contract
553
+ - adding new subcommands for this contract
554
+ - refreshing installed app state
555
+ - refreshing profile state
556
+ - editing .agentera/vision.yaml
557
+ - editing objective state
558
+ field_selection:
559
+ status: implemented_sparse_response_layer
560
+ applies_after: structured_output
561
+ syntax: --fields FIELD[,FIELD...]
562
+ applies_to:
563
+ - hej
564
+ - plan
565
+ - progress
566
+ - health
567
+ - todo
568
+ - decisions
569
+ - docs
570
+ - objective
571
+ - experiments
572
+ fields_by_command:
573
+ routine_state_commands:
574
+ fields:
575
+ - command
576
+ - status
577
+ - entries
578
+ - counts
579
+ - source
580
+ - filters
581
+ - summary
582
+ - source_contract
583
+ hej:
584
+ fields:
585
+ - command
586
+ - status
587
+ - bundle
588
+ - mode
589
+ - profile
590
+ - v1_migration
591
+ - health
592
+ - issues
593
+ - plan
594
+ - docs
595
+ - progress
596
+ - objective
597
+ - state_presence
598
+ - attention
599
+ - decision_attention
600
+ - next_action
601
+ - orchestration_context
602
+ - closeout_context
603
+ - evidence_context
604
+ - benchmark_context
605
+ - execution_context
606
+ - source
607
+ - source_contract
608
+ retained_context:
609
+ - command
610
+ - status
611
+ owns:
612
+ - sparse selection over documented structured output fields
613
+ - clear unsupported-field errors with available fields
614
+ - required identity or status context retained in sparse responses
615
+ does_not_own:
616
+ - selecting arbitrary raw YAML artifact paths
617
+ - silently dropping unsupported fields
618
+ - changing default human text behavior
619
+ rationale: >-
620
+ The playbook treats context as currency. Field selection belongs on the
621
+ structured output contract from Task 3, not on raw artifact internals.
622
+ input_hardening:
623
+ status: implemented_boundary_validation
624
+ applies_to:
625
+ - artifact names
626
+ - field names
627
+ - output formats
628
+ - path-like values
629
+ - doctor roots
630
+ - upgrade roots
631
+ required_boundaries:
632
+ - reject unsupported identifiers with clear errors
633
+ - reject traversal and encoded traversal in path-like inputs
634
+ - reject control characters in agent-facing strings
635
+ - sandbox project artifact paths to project-owned or documented global roots
636
+ - preserve explicit approval flows before writes
637
+ does_not_own:
638
+ - mutating install roots without approval
639
+ - expanding artifact identity beyond the artifact registry and docs.yaml mapping rules
640
+ - response sanitization for externally ingested untrusted content
641
+ - typed protocol surfaces such as MCP or JSON-RPC
642
+ rationale: >-
643
+ The playbook warns that agents hallucinate structurally unsafe inputs. Task 6
644
+ should validate these boundaries without broadening the CLI command surface.
645
+ validate_namespace:
646
+ status: implemented
647
+ command: validate
648
+ purpose: >-
649
+ Define the supported `agentera validate` namespace so agents can use one
650
+ discoverable validation surface without guessing unsupported capability-name
651
+ CLI commands.
652
+ supported_target_families:
653
+ capability:
654
+ command_shape: agentera validate capability <capability-or-path> [--format text|json]
655
+ required_inputs:
656
+ - capability-or-path: canonical capability name or capability directory path
657
+ valid_capability_names:
658
+ - hej
659
+ - visionera
660
+ - resonera
661
+ - inspirera
662
+ - planera
663
+ - realisera
664
+ - optimera
665
+ - inspektera
666
+ - dokumentera
667
+ - profilera
668
+ - visualisera
669
+ - orkestrera
670
+ output_formats:
671
+ - text
672
+ - json
673
+ expected_examples:
674
+ - agentera validate capability hej
675
+ - agentera validate capability skills/agentera/capabilities/hej --format json
676
+ validation_engine: agentera check validate capability
677
+ compatibility_constraint: >-
678
+ `agentera check validate capability skills/agentera/capabilities/<name>` and
679
+ `agentera check validate capability --self-validate` remain supported direct
680
+ validator commands with their existing observable behavior.
681
+ artifact:
682
+ command_shape: agentera validate artifact --artifact <ARTIFACT> [--file <PATH>] [--cwd <PROJECT>] [--format text|json]
683
+ required_inputs:
684
+ - artifact: canonical artifact label
685
+ optional_inputs:
686
+ - file: artifact file path; defaults through docs.yaml mapping when omitted
687
+ - cwd: project directory for relative paths and docs.yaml mapping
688
+ valid_artifacts:
689
+ - CHANGELOG.md
690
+ - DECISIONS.md
691
+ - DESIGN.md
692
+ - DOCS.md
693
+ - HEALTH.md
694
+ - PLAN.md
695
+ - PROGRESS.md
696
+ - TODO.md
697
+ - VISION.md
698
+ output_formats:
699
+ - text
700
+ - json
701
+ expected_examples:
702
+ - agentera validate artifact --artifact PLAN.md --file .agentera/plan.yaml --format json
703
+ - agentera validate artifact --artifact PROGRESS.md --format text
704
+ validation_engine: hooks/validate_artifact.py
705
+ compatibility_constraint: >-
706
+ `hooks/validate_artifact.py --artifact <ARTIFACT> --file <PATH> --format
707
+ text|json` remains a supported direct validator command with existing
708
+ docs.yaml mapping, JSON envelope, violation wording, and hook behavior.
709
+ invalid_input_behavior:
710
+ family_error: >-
711
+ Unsupported validate target families must name the valid families
712
+ `capability` and `artifact`, show the correct syntax, and include one
713
+ concrete capability example plus one concrete artifact example.
714
+ capability_error: >-
715
+ Unsupported capability targets must list valid capability names, show
716
+ `agentera validate capability <capability-or-path> [--format text|json]`,
717
+ and include `agentera validate capability hej` as an example.
718
+ artifact_error: >-
719
+ Unsupported artifact labels must list canonical artifact labels, show
720
+ `agentera validate artifact --artifact <ARTIFACT> [--file <PATH>] [--format text|json]`,
721
+ and include `agentera validate artifact --artifact PLAN.md --file .agentera/plan.yaml --format json`
722
+ as an example.
723
+ format_error: >-
724
+ Unsupported formats must list valid values `text` and `json` and must not
725
+ fall back silently to a different format.
726
+ output_contract:
727
+ text: >-
728
+ Human-readable output may mirror the existing validator text, including
729
+ PASS/FAILED summaries and violation lines.
730
+ json: >-
731
+ JSON output must use a stable validation result envelope with command,
732
+ status, target_family, target, file or path metadata when applicable, and
733
+ violations or errors. Artifact JSON should preserve the existing
734
+ `validate-artifact` semantics unless a compatibility-preserving wrapper
735
+ field is explicitly added in the implementation task.
736
+ status_values:
737
+ - pass
738
+ - fail
739
+ non_goals:
740
+ - Do not implement `agentera validate` behavior in Task 1.
741
+ - Do not add capability-name CLI commands such as `agentera realisera`.
742
+ - Do not replace or remove `agentera check validate capability`.
743
+ - Do not replace or remove `hooks/validate_artifact.py`.
744
+ - Do not rename artifact labels, capability names, or schema contract groups.
745
+ - Do not implement D48 smoke, verify, corpus, or usage namespaces.
746
+ - Do not redesign validation semantics or persisted artifact shapes.
747
+ evidence_sources:
748
+ - agentera --help exposes the validate namespace for capability and artifact validation.
749
+ - agentera check validate capability --help defines capability_dir, --self-validate, --validate-protocol, and --check-primitives.
750
+ - hooks/validate_artifact.py --help defines --artifact, --file, --cwd, and --format text|json.
751
+ - hooks/validate_artifact.py invalid artifact JSON lists valid canonical artifact labels.
752
+ verify_namespace:
753
+ status: implemented_with_task_3_coverage
754
+ command: verify
755
+ rejected_umbrella_command: smoke
756
+ purpose: >-
757
+ Define the supported `agentera verify` namespace so agents can run or inspect
758
+ smoke and eval gates through one discoverable verification surface without
759
+ guessing direct script names or unsupported capability-name CLI commands.
760
+ namespace_rationale: >-
761
+ `agentera verify` is the public command for the evaluation gates (skills and
762
+ semantic). The smoke-check family was retired in the self-contained package.
763
+ command_shape: agentera verify <family> <target> [--format text|json] [target options]
764
+ supported_gate_families:
765
+ eval:
766
+ command_shape: agentera verify eval <target> [--format text|json] [target options]
767
+ valid_targets:
768
+ skills:
769
+ direct_entrypoint: in-process eval engine (packages/cli/src/eval/evalSkills.ts)
770
+ expected_default_behavior: >-
771
+ Skill eval verification runs the in-process eval-skills engine. Any
772
+ runtime-backed eval work is host-dependent and must be
773
+ explicitly opted in or bounded through existing dry-run, runtime, timeout,
774
+ skill, and parallel controls.
775
+ safety_requirements:
776
+ - Default verify behavior must not start long-running runtime-backed evals without explicit opt-in or a documented bounded mode.
777
+ - Runtime-backed runs must retain per-skill timeout and concurrency bounds.
778
+ - Dry-run listing remains available for safe discovery.
779
+ semantic:
780
+ direct_entrypoint: in-process semantic engine (packages/cli/src/eval/semanticEval.ts)
781
+ expected_default_behavior: >-
782
+ Offline semantic fixture evaluation remains the direct compatibility
783
+ surface. Verify must require explicit fixture paths or a documented bounded
784
+ fixture selection; it must not scan broad corpora by default.
785
+ safety_requirements:
786
+ - Offline fixture evaluation only by default.
787
+ - Missing or broad fixture input fails with bounded guidance instead of starting an unbounded search.
788
+ output_formats:
789
+ - text
790
+ - json
791
+ expected_examples:
792
+ - agentera verify eval skills --format json
793
+ - agentera verify eval skills --dry-run --format json
794
+ - agentera verify eval semantic fixtures/semantic/hej-bare-message.md
795
+ - agentera verify eval semantic fixtures/semantic/hej-bare-message.md --format json
796
+ output_contract:
797
+ text: >-
798
+ Human-readable output must identify the verify family, target, status, direct
799
+ engine used, and bounded diagnostics. It may mirror existing direct script PASS
800
+ or FAIL wording when that preserves compatibility.
801
+ json: >-
802
+ JSON output must use a stable verification result envelope with command,
803
+ status, family, target, format, engine command, exit_code, diagnostics, and
804
+ safety/opt-in metadata when applicable. Raw runtime transcripts, credentials,
805
+ private paths beyond explicit command inputs, and unbounded logs are excluded.
806
+ status_values:
807
+ - pass
808
+ - fail
809
+ - invalid
810
+ - skipped
811
+ invalid_input_behavior:
812
+ family_error: >-
813
+ Unknown verify families must exit nonzero, list valid families `smoke` and
814
+ `eval`, show `agentera verify <family> <target> [--format text|json]`, and
815
+ include concrete examples for one smoke target and one eval target.
816
+ target_error: >-
817
+ Unknown targets must exit nonzero, list valid targets for the selected family,
818
+ show the correct family syntax, and include one concrete example for that family.
819
+ format_error: >-
820
+ Unknown formats must exit nonzero, list valid values `text` and `json`, show
821
+ syntax using `--format text|json`, and must not silently fall back to another format.
822
+ unsafe_live_default_error: >-
823
+ Requests that would run live, host-dependent, mutating, or long-running gates
824
+ without required opt-in must exit nonzero with bounded diagnostics explaining
825
+ the missing opt-in, the safe default, valid opt-in flags or environment contract,
826
+ correct syntax, and a concrete explicitly bounded example.
827
+ compatibility_constraints:
828
+ - >-
829
+ `agentera verify eval skills` remains callable directly with existing `--skill`,
830
+ `--dry-run`, `--parallel`, `--timeout`, and `--runtime` behavior.
831
+ - >-
832
+ `agentera verify eval semantic` remains callable directly with fixture path arguments
833
+ and existing offline semantic fixture behavior.
834
+ offline default behavior plus the explicit `--real-npx` opt-in path.
835
+ default behavior and explicit `--live`/`--yes` live-host opt-in behavior.
836
+ observable smoke-check behavior, including current non-argparse `--help` behavior.
837
+ observable local bootstrap diagnostics and failure behavior.
838
+ non_goals:
839
+ - Do not add unsupported capability-name CLI commands such as `agentera realisera` or `agentera orkestrera`.
840
+ - Do not reintroduce the retired smoke gate-family.
841
+ - Do not implement D48 `validate`, `corpus`, or `usage` work.
842
+ - Do not run live network, installed-app mutation, profile refresh, publication, push, tag, or package-update flows as part of this contract definition.
843
+ evidence_sources:
844
+ - agentera --help exposes the `verify` namespace and safe smoke/eval examples.
845
+ - the verify vitest tests (packages/cli/test/cli/verify.test.ts) covers smoke success, eval success, text output, JSON output, invalid input feedback, safety boundaries, and preserved direct-script compatibility.
846
+ - agentera verify eval skills --help defines `--skill`, `--dry-run`, `--parallel`, `--timeout`, and `--runtime`.
847
+ - agentera verify eval semantic --help defines fixture path inputs for offline semantic evaluation.
848
+ usage_namespace:
849
+ status: implemented
850
+ command: usage
851
+ rejected_namespace_command: corpus
852
+ purpose: >-
853
+ Define the supported `agentera usage` namespace so agents can run suite usage
854
+ analytics through one discoverable CLI surface without guessing the direct
855
+ analytics script or conflating reporting with corpus extraction.
856
+ namespace_rationale: >-
857
+ `agentera usage` is the selected public command because the existing product is
858
+ usage analytics and USAGE.md reporting. `agentera corpus` is rejected for this
859
+ plan because it implies corpus extraction or lifecycle management, which belongs
860
+ to profilera/Section 22 tooling rather than usage reporting.
861
+ command_shape: agentera usage [--format text|json] [--corpus PATH] [--project VALUE]
862
+ direct_entrypoint: agentera usage
863
+ supported_options:
864
+ format:
865
+ values:
866
+ - text
867
+ - json
868
+ default: text
869
+ text_behavior: >-
870
+ Delegates to `agentera usage`, writes USAGE.md to the existing report
871
+ destination, and prints the existing bounded stdout summary.
872
+ json_behavior: >-
873
+ Delegates to `agentera usage --json`, preserves the existing top-level
874
+ analytics payload, and does not write USAGE.md.
875
+ corpus:
876
+ syntax: --corpus PATH
877
+ behavior: >-
878
+ Uses the supplied Section 22 corpus.json envelope. When omitted, default
879
+ corpus lookup remains owned by `agentera usage` and follows
880
+ `PROFILERA_PROFILE_DIR/intermediate/corpus.json` before platform data-home
881
+ defaults.
882
+ project:
883
+ syntax: --project VALUE
884
+ behavior: >-
885
+ Scopes analytics using the direct script's project matching behavior.
886
+ Unmatched values are valid and produce an empty scoped report rather than a
887
+ nonzero invalid-input error.
888
+ output_contract:
889
+ text: >-
890
+ Human-readable output preserves the direct script's summary lines, including
891
+ scope, skill count, invocation totals, report path, run timestamp, and corpus
892
+ extraction timestamp.
893
+ json: >-
894
+ JSON output preserves the direct script analytics payload with top-level
895
+ `generated_at`, `extracted_at`, `project_filter`, `skills`, `per_project`, and
896
+ `invocations` fields. It is intentionally not wrapped in a facade envelope.
897
+ path_contract:
898
+ report_precedence:
899
+ - AGENTERA_USAGE_DIR/USAGE.md
900
+ - PROFILERA_PROFILE_DIR/USAGE.md
901
+ - platform data home agentera/USAGE.md
902
+ corpus_precedence:
903
+ - PROFILERA_PROFILE_DIR/intermediate/corpus.json
904
+ - platform data home agentera/intermediate/corpus.json
905
+ test_isolation: >-
906
+ Facade tests that exercise default text writes must set temporary
907
+ `AGENTERA_USAGE_DIR` and `PROFILERA_PROFILE_DIR` values and must not write the
908
+ real user data home.
909
+ invalid_input_behavior:
910
+ format_error: >-
911
+ Unknown formats must exit nonzero, list valid values `text` and `json`, show
912
+ `agentera usage [--format text|json] [--corpus PATH] [--project VALUE]`, and
913
+ include one concrete example.
914
+ missing_corpus: >-
915
+ Missing or unusable corpus data preserves `agentera usage` actionable
916
+ guidance and must not auto-build corpus data, refresh profiles, scan home
917
+ directories, or run live host extraction.
918
+ project_filter: >-
919
+ Unmatched `--project` values are valid empty reports. Diagnostics must not list
920
+ private corpus-derived project IDs as valid values.
921
+ compatibility_constraints:
922
+ - >-
923
+ `agentera usage` remains callable directly with existing `--json`,
924
+ `--corpus`, and `--project` behavior.
925
+ - >-
926
+ JSON consumers continue to receive the existing direct analytics payload shape
927
+ without a namespace wrapper envelope.
928
+ - >-
929
+ Default text behavior continues to write USAGE.md only through the existing
930
+ usage report destination rules.
931
+ non_goals:
932
+ - Do not add `agentera corpus` in this plan.
933
+ - Do not build or refresh corpus data.
934
+ - Do not refresh PROFILE.md or run profilera.
935
+ - Do not run live host scans or mine home directories beyond direct script path lookup.
936
+ - Do not remove, rename, or redesign `agentera usage`.
937
+ - Do not add unsupported capability-name CLI commands.
938
+ - Do not implement additional D48 validate, verify, or corpus namespace work.
939
+ evidence_sources:
940
+ - agentera --help exposes the `usage` namespace and a JSON example.
941
+ - the usage/report vitest tests covers text output, JSON output, corpus/project flags, missing-corpus guidance, invalid format, help discovery, test path isolation, and direct-script compatibility.
942
+ - the usageStats vitest tests remains the direct analytics engine coverage.
943
+ non_goals_for_task_1:
944
+ - Do not rename bundle-status to doctor.
945
+ - Do not add doctor behavior.
946
+ - Do not add describe behavior.
947
+ - Do not add structured output behavior.
948
+ - Do not add field selection behavior.
949
+ - Do not harden executable inputs.
950
+ - Do not mark Task 1 complete in .agentera/plan.yaml.