agentera 0.0.0 → 3.0.0-dev.0

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 (252) 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 +233 -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 +120 -0
  23. package/bundle/references/cli/vocabulary-index.yaml +160 -0
  24. package/bundle/references/cli/vocabulary.md +562 -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 +545 -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 +49 -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 +962 -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 +1052 -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 +1269 -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 +197 -0
  227. package/dist/upgrade/channels.js.map +1 -0
  228. package/dist/upgrade/compatibility.js +197 -0
  229. package/dist/upgrade/compatibility.js.map +1 -0
  230. package/dist/upgrade/doctor.js +368 -0
  231. package/dist/upgrade/doctor.js.map +1 -0
  232. package/dist/upgrade/migrateArtifactsV2ToV3.js +412 -0
  233. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -0
  234. package/dist/upgrade/upgradeCommands.js +40 -0
  235. package/dist/upgrade/upgradeCommands.js.map +1 -0
  236. package/dist/upgrade/upgradeOrchestrator.js +280 -0
  237. package/dist/upgrade/upgradeOrchestrator.js.map +1 -0
  238. package/dist/validate/appHomeContract.js +150 -0
  239. package/dist/validate/appHomeContract.js.map +1 -0
  240. package/dist/validate/capability.js +412 -0
  241. package/dist/validate/capability.js.map +1 -0
  242. package/dist/validate/crossCapability.js +145 -0
  243. package/dist/validate/crossCapability.js.map +1 -0
  244. package/dist/validate/lifecycleAdapters.js +772 -0
  245. package/dist/validate/lifecycleAdapters.js.map +1 -0
  246. package/dist/validate/selfAudit.js +107 -0
  247. package/dist/validate/selfAudit.js.map +1 -0
  248. package/package.json +28 -8
  249. package/LICENSE +0 -201
  250. package/bin/agentera.mjs +0 -50
  251. package/lib/exec.mjs +0 -116
  252. package/lib/resolve.mjs +0 -129
@@ -0,0 +1,424 @@
1
+ contract: startup_state_access_measurement
2
+ version: startup-state-analysis-v1
3
+ status: draft
4
+ purpose: >-
5
+ Define the local-only, privacy-preserving contract for measuring Agentera
6
+ capability startup/state-gathering overhead after v2.3.0. The measured defect
7
+ is raw Agentera artifact access after Agentera CLI state calls before
8
+ implementation work begins.
9
+
10
+ boundary:
11
+ source: git tag evidence
12
+ tag: v2.3.0
13
+ commit: b18e3dc7d768d4ad2726880916e7cfe6bd8617d3
14
+ committed_at: '2026-05-12T17:50:13+02:00'
15
+ rule: include records with timestamps strictly after committed_at
16
+
17
+ section_22_compatibility:
18
+ consumes_adapter_version: agentera-v2-corpus-1
19
+ required_record_families:
20
+ - conversation_turn
21
+ - tool_call
22
+ optional_record_families:
23
+ - instruction_document
24
+ - history_prompt
25
+ - project_config_signal
26
+ base_envelope_changes: none
27
+ output_envelope: startup_state_analysis_v1
28
+ extension_rule: >-
29
+ Do not add required fields to the Section 22 corpus envelope. If startup
30
+ state analysis needs derived fields, write them under a separate versioned
31
+ startup_state_analysis_v1 output or an optional
32
+ analysis_extensions.startup_state_v1 object ignored by extract_corpus.py
33
+ and usage_stats.py.
34
+
35
+ benchmark_execution:
36
+ rule: manual_only
37
+ command_surface: mage bench:startupState
38
+ normal_ci: forbidden
39
+ live_host_checks: forbidden_by_default
40
+ runtime_path_approval: >-
41
+ Running mage bench:startupState authorizes inspection of the documented
42
+ default runtime stores for codex, claude-code, opencode, and github-copilot.
43
+ Custom runtime history sources must be supplied as exact runtime labels and
44
+ concrete filesystem paths. A generic consent flag or runtime label without
45
+ its concrete path is insufficient for custom sources.
46
+ default_run: >-
47
+ The Mage benchmark target runs without environment variables by inspecting
48
+ documented runtime-store defaults, writing aggregate history under the default
49
+ Agentera benchmark directory, and reporting missing or unavailable stores as
50
+ bounded degradation evidence.
51
+ incremental_rule: >-
52
+ Runtime-store benchmark runs use retained aggregate history as the only
53
+ durable watermark source. The first run for a runtime scope analyzes all
54
+ post-boundary records; later runs for the same runtime_scope analyze only
55
+ records with timestamps strictly after the previous successful
56
+ benchmark_watermark_at.
57
+ metric_source_of_truth: scripts/startup_analysis_contract.py
58
+ startup_state_envelope_scope: excluded
59
+
60
+ runtime_extraction_contract:
61
+ supported_runtime_order:
62
+ - codex
63
+ - claude-code
64
+ - opencode
65
+ - github-copilot
66
+ normalized_record_fields:
67
+ required:
68
+ - source_id
69
+ - timestamp
70
+ - project_id
71
+ - source_kind
72
+ - runtime
73
+ - adapter_version
74
+ - data
75
+ optional:
76
+ - project_path
77
+ - session_id
78
+ startup_required_semantics:
79
+ - runtime label
80
+ - timestamp
81
+ - conversation key from conversation_key, session_id, data.session_id, or source_id
82
+ - conversation_turn records with data.actor and data.content
83
+ - tool_call records with data.tool_name and data.arguments
84
+ runtime_status_outcomes:
85
+ schema_divergent:
86
+ status: degraded
87
+ reason: schema_divergent
88
+ rule: >-
89
+ One or more candidate runtime files or databases were found, but adapter
90
+ parsing encountered schema errors. This is extraction failure evidence,
91
+ not a successful zero-record benchmark window.
92
+ required_counts:
93
+ - candidate_count when discovery can count candidates
94
+ - record_count, which may be zero or partial
95
+ - error_count greater than zero
96
+ current_examples:
97
+ - runtime: claude-code
98
+ candidate_count: 4836
99
+ record_count: 0
100
+ error_count: 2
101
+ - runtime: github-copilot
102
+ candidate_count: 1
103
+ record_count: 0
104
+ error_count: 1
105
+ no_matching_records:
106
+ status: sparse
107
+ reason: no_matching_records
108
+ rule: >-
109
+ Candidate runtime storage was readable and matched an accepted store
110
+ shape, but no supported message or tool records were extracted. This is
111
+ sparse coverage evidence and remains distinct from schema divergence.
112
+ required_counts:
113
+ - candidate_count when discovery can count candidates
114
+ - "record_count: 0"
115
+ - no error_count greater than zero
116
+ successful_zero_record_window:
117
+ status: ok
118
+ reason: records_extracted
119
+ rule: >-
120
+ Adapter extraction succeeded for the runtime scope, but the benchmark
121
+ incremental window contains zero records after the previous successful
122
+ watermark. This is compatible successful behavior, not degradation.
123
+ required_counts:
124
+ - "record_count: 0"
125
+ - "error_count: 0"
126
+ current_examples:
127
+ - runtime: codex
128
+ record_count: 0
129
+ error_count: 0
130
+ supported_runtimes:
131
+ codex:
132
+ accepted_input_schema_classes:
133
+ - JSONL session files containing session_meta or turn_context records
134
+ - JSONL response_item or user_msg message records
135
+ - JSONL tool_call or function_call records with payload item, name, and arguments variants
136
+ normalized_record_fields:
137
+ conversation_turn: [runtime, timestamp, session_id, project_id, data.actor, data.content]
138
+ tool_call: [runtime, timestamp, session_id, project_id, data.tool_name, data.arguments]
139
+ status_mapping:
140
+ records extracted without adapter errors: ok / records_extracted
141
+ readable candidates but no supported records: sparse / no_matching_records
142
+ unreadable or locked store: degraded / store_unreadable or store_locked
143
+ parser/schema errors: degraded / schema_divergent
144
+ redaction_rules:
145
+ - Do not retain transcript content from content, text, message, prompt, input_text, or output_text.
146
+ - Do not retain cwd, project_path, store_path, file_path, raw session ids, or generated salted hashes.
147
+ - Retain only canonical runtime labels, canonical artifact labels, bounded counts, and aggregate status fields.
148
+ claude-code:
149
+ accepted_input_schema_classes:
150
+ - JSONL project session files with top-level role or type user/assistant events
151
+ - JSONL message objects with nested message.role plus content/text/message content variants
152
+ - JSONL tool_call, function_call, or tool_use records with argument/input variants
153
+ normalized_record_fields:
154
+ conversation_turn: [runtime, timestamp, session_id, project_id, data.actor, data.content]
155
+ tool_call: [runtime, timestamp, session_id, project_id, data.tool_name, data.arguments]
156
+ status_mapping:
157
+ records extracted without adapter errors: ok / records_extracted
158
+ readable candidates but no supported records: sparse / no_matching_records
159
+ unreadable or locked store: degraded / store_unreadable or store_locked
160
+ parser/schema errors: degraded / schema_divergent
161
+ redaction_rules:
162
+ - Do not retain raw project directories encoded in Claude project filenames or cwd fields.
163
+ - Do not retain transcript content, raw session ids, raw store paths, or generated salted hashes.
164
+ - Retain only canonical runtime labels, canonical artifact labels, bounded counts, and aggregate status fields.
165
+ opencode:
166
+ accepted_input_schema_classes:
167
+ - SQLite opencode.db with session, message, and part tables
168
+ - session id columns id, session_id, or sessionID
169
+ - message/part join, role, timestamp, text/content, and JSON data column variants
170
+ - tool parts encoded as part type tool or JSON data.tool with state.input arguments
171
+ normalized_record_fields:
172
+ conversation_turn: [runtime, timestamp, session_id, project_id, data.actor, data.content]
173
+ tool_call: [runtime, timestamp, session_id, project_id, data.tool_name, data.arguments]
174
+ status_mapping:
175
+ records extracted without adapter errors: ok / records_extracted
176
+ readable candidates but no supported records: sparse / no_matching_records
177
+ missing required tables or join columns: degraded / schema_divergent
178
+ unreadable or locked store: degraded / store_unreadable or store_locked
179
+ redaction_rules:
180
+ - Do not retain SQLite file paths, project paths, transcript text, raw session ids, or generated salted hashes.
181
+ - Retain only canonical runtime labels, canonical artifact labels, bounded counts, and aggregate status fields.
182
+ github-copilot:
183
+ accepted_input_schema_classes:
184
+ - SQLite session-store.db with sessions and turns tables
185
+ - session id columns id, session_id, or sessionID
186
+ - turns columns for session linkage, role, text/content/message/prompt/response, timestamp, and ordering variants
187
+ - turns JSON payload or tool columns containing tool_name/name/tool plus arguments/input/command variants
188
+ normalized_record_fields:
189
+ conversation_turn: [runtime, timestamp, session_id, project_id, data.actor, data.content]
190
+ tool_call: [runtime, timestamp, session_id, project_id, data.tool_name, data.arguments]
191
+ status_mapping:
192
+ records extracted without adapter errors: ok / records_extracted
193
+ readable candidates but no supported records: sparse / no_matching_records
194
+ missing required tables, join columns, role, or text columns: degraded / schema_divergent
195
+ unreadable or locked store: degraded / store_unreadable or store_locked
196
+ redaction_rules:
197
+ - Do not retain session-store paths, project paths, transcript text, raw session ids, or generated salted hashes.
198
+ - Retain remediation labels such as /chronicle reindex only when they are static product guidance, not local data.
199
+ - Retain only canonical runtime labels, canonical artifact labels, bounded counts, and aggregate status fields.
200
+
201
+ token_impact_contract:
202
+ estimator_version: approx_bytes_div_4_v1
203
+ estimator_rule: >-
204
+ Estimate tokens as ceil(observed UTF-8 content bytes divided by 4). The
205
+ estimate is an aggregate benchmark signal, not model-tokenizer output.
206
+ transient_inputs:
207
+ - observed transcript or tool-argument content byte counts during analysis
208
+ - canonical artifact label associated with each raw artifact access event
209
+ - sequence classification for raw-after-CLI and redundant raw access
210
+ retained_output_rule: >-
211
+ Retained reports and history may store only aggregate estimated token counts
212
+ grouped by canonical artifact label and benchmark scope. They must not store
213
+ raw paths, transcript text, raw tool arguments, salts, or generated hashes.
214
+ aggregate_fields:
215
+ latest_report:
216
+ - token_estimator_version
217
+ - estimated_raw_after_cli_tokens
218
+ - estimated_redundant_raw_tokens
219
+ - estimated_raw_after_cli_tokens_by_artifact
220
+ - estimated_redundant_raw_tokens_by_artifact
221
+ - estimated_tokens_saved_vs_previous
222
+ - estimated_tokens_saved_vs_previous_null_reason
223
+ aggregate_history:
224
+ - token_estimator_version
225
+ - estimated_raw_after_cli_tokens
226
+ - estimated_redundant_raw_tokens
227
+ - estimated_raw_after_cli_tokens_by_artifact
228
+ - estimated_redundant_raw_tokens_by_artifact
229
+ - estimated_tokens_saved_vs_previous
230
+ - estimated_tokens_saved_vs_previous_null_reason
231
+ comparable_row_rules:
232
+ comparable_when_all_match:
233
+ - contract_version
234
+ - benchmark_mode
235
+ - runtime_scope
236
+ - token_estimator_version
237
+ - token aggregate fields present in both rows
238
+ saved_value: previous estimated_redundant_raw_tokens minus current estimated_redundant_raw_tokens
239
+ null_when_not_comparable: true
240
+ null_reasons:
241
+ - previous_row_missing
242
+ - previous_missing_token_estimates
243
+ - estimator_version_mismatch
244
+ - runtime_scope_mismatch
245
+ - benchmark_mode_mismatch
246
+ - contract_version_mismatch
247
+
248
+ benchmark_storage:
249
+ default_directory: ${AGENTERA_HOME}/benchmarks/startup-state/
250
+ repository_outputs: forbidden
251
+ durable_outputs:
252
+ - runs.jsonl
253
+ - latest-report.json
254
+ - latest-report.md
255
+ retention_rule: >-
256
+ Retained benchmark history consists only of aggregate runs.jsonl plus the
257
+ fixed latest structured and human-readable report files. Runtime corpus files,
258
+ analyzer intermediates, per-run detailed reports, and any other generated
259
+ benchmark artifacts are temporary only and must not be retained in the
260
+ repository or benchmark history directory.
261
+ success_rule: >-
262
+ Successful benchmark runs append one aggregate row to runs.jsonl and replace
263
+ latest-report.json and latest-report.md after report generation succeeds.
264
+ failure_rule: >-
265
+ Failed benchmark runs do not append aggregate history and do not clobber the
266
+ previous latest report files.
267
+
268
+ aggregate_history:
269
+ file: runs.jsonl
270
+ row_shape:
271
+ - contract_version
272
+ - generated_at
273
+ - agentera_version
274
+ - git_commit
275
+ - git_dirty
276
+ - runtime_scope
277
+ - benchmark_mode
278
+ - benchmark_previous_watermark_at
279
+ - benchmark_window_started_after
280
+ - benchmark_watermark_at
281
+ - total_records
282
+ - total_state_sequences
283
+ - state_sequences_with_raw_after_cli
284
+ - state_sequences_with_redundant_raw_access
285
+ - raw_after_cli_rate
286
+ - redundant_raw_access_rate
287
+ - cli_state_command_counts
288
+ - raw_artifact_access_after_cli_counts
289
+ - redundant_raw_artifact_access_counts
290
+ - per_capability_state_counts
291
+ - degradation_reason_counts
292
+ - bounded_degradation_counts
293
+ - startup_recommendation_action
294
+ - token_estimator_version
295
+ - estimated_raw_after_cli_tokens
296
+ - estimated_redundant_raw_tokens
297
+ - estimated_raw_after_cli_tokens_by_artifact
298
+ - estimated_redundant_raw_tokens_by_artifact
299
+ - estimated_tokens_saved_vs_previous
300
+ - estimated_tokens_saved_vs_previous_null_reason
301
+ forbidden_retained_fields:
302
+ - raw_transcripts
303
+ - raw_corpus_files
304
+ - raw_intermediates
305
+ - raw_store_paths
306
+ - raw_session_ids
307
+ - private_salts
308
+ - generated_salted_hashes
309
+ - raw_tool_arguments
310
+
311
+ state_gathering_sequence:
312
+ start_anchor: first_agentera_state_call_after_capability_related_user_turn
313
+ capability_invocation_markers:
314
+ - slash route such as /agentera plan or /agentera build
315
+ - bare capability name such as planera, resonera, or orkestrera
316
+ - natural-language capability mention such as run orkestrera
317
+ - assistant capability intro marker
318
+ end_anchors:
319
+ - first_implementation_boundary
320
+ - next_user_turn
321
+ measured_defect: >-
322
+ Raw read, grep, or glob access to an Agentera artifact after a CLI state call
323
+ that already covered the same artifact family, before implementation work.
324
+
325
+ counted_event_classes:
326
+ - class: cli_state_call
327
+ description: Agentera state CLI reads such as hej, todo, docs, plan, progress, decisions, health, and query.
328
+ - class: raw_artifact_access
329
+ description: Direct read, grep, or glob access to Agentera state artifacts after CLI state access.
330
+ - class: capability_prose_read
331
+ description: Reads of capability prose, schemas, protocol, or routing entry files.
332
+ - class: implementation_boundary
333
+ description: Code edits, write/edit/apply_patch, non-state bash commands, tests, or analysis work after startup state gathering.
334
+ - class: non_state_context
335
+ description: Events outside the measured state-gathering sequence and excluded from defect totals.
336
+
337
+ degradation_reasons:
338
+ - pre_boundary_record
339
+ - missing_timestamp
340
+ - malformed_record
341
+ - missing_conversation_key
342
+ - no_agentera_state_sequence
343
+ - runtime_store_missing
344
+ - runtime_store_locked
345
+ - runtime_store_sparse
346
+ - runtime_schema_divergent
347
+ - privacy_redaction_required
348
+
349
+ privacy_boundary:
350
+ forbidden_raw_outputs:
351
+ - transcript_text
352
+ - raw_corpus_file
353
+ - raw_intermediate
354
+ - full_local_path
355
+ - raw_store_path
356
+ - unredacted_session_id
357
+ - private_salt
358
+ - generated_salted_hash
359
+ allowed_replacements:
360
+ - canonical_artifact_label
361
+ - canonical_runtime_label
362
+ - canonical_event_class
363
+ - salted_non_reconstructable_hash
364
+ canonical_artifact_labels:
365
+ TODO.md: TODO.md
366
+ CHANGELOG.md: CHANGELOG.md
367
+ DESIGN.md: DESIGN.md
368
+ PLAN.md: PLAN.md
369
+ PROGRESS.md: PROGRESS.md
370
+ DOCS.md: DOCS.md
371
+ DECISIONS.md: DECISIONS.md
372
+ HEALTH.md: HEALTH.md
373
+ VISION.md: VISION.md
374
+ OBJECTIVE.md: OBJECTIVE.md
375
+ EXPERIMENTS.md: EXPERIMENTS.md
376
+ AGENTS.md: AGENTS.md
377
+ SKILL.md: SKILL.md
378
+ AGENTERA_ARTIFACTS: AGENTERA_ARTIFACTS
379
+ stdout_rule: >-
380
+ Startup state analysis stdout may include counts, canonical labels, runtime
381
+ names, boundary metadata, degradation labels, and salted hashes only.
382
+ retained_aggregate_history_rule: >-
383
+ Retained aggregate benchmark history must exclude raw transcripts, raw corpus
384
+ files, raw intermediates, raw store paths, raw session IDs, private salts, and
385
+ generated salted hashes. Store only bounded counts, rates, canonical labels,
386
+ runtime labels, version metadata, git metadata, degradation counts, token
387
+ estimate aggregates, and the recommendation action.
388
+ fixture_rule: >-
389
+ Committed fixtures and snapshots must use synthetic text and identifiers or
390
+ already-redacted labels; never paste raw transcript excerpts, full local
391
+ paths, raw store paths, or unredacted session ids.
392
+
393
+ report_fields:
394
+ required:
395
+ - contract_version
396
+ - boundary_source
397
+ - boundary_commit
398
+ - boundary_committed_at
399
+ - generated_at
400
+ - corpus_adapter_version
401
+ - runtime_coverage
402
+ - total_state_sequences
403
+ - state_sequences_with_raw_after_cli
404
+ - state_sequences_with_redundant_raw_access
405
+ - cli_state_command_counts
406
+ - raw_artifact_access_after_cli_counts
407
+ - redundant_raw_artifact_access_counts
408
+ - per_capability_state_counts
409
+ - degradation_reason_counts
410
+ - threshold_derivation
411
+ - startup_recommendation
412
+ - privacy_redaction_summary
413
+ - compatibility_note
414
+ - token_estimator_version
415
+ - estimated_raw_after_cli_tokens
416
+ - estimated_redundant_raw_tokens
417
+ - estimated_raw_after_cli_tokens_by_artifact
418
+ - estimated_redundant_raw_tokens_by_artifact
419
+ optional:
420
+ - confidence_caveats
421
+ - insufficient_evidence_reason
422
+ - recommendation_gate_input
423
+ - estimated_tokens_saved_vs_previous
424
+ - estimated_tokens_saved_vs_previous_null_reason