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,484 @@
1
+ # Health Artifact Schema
2
+ #
3
+ # Audit log maintained by inspektera. Each audit entry records assessed
4
+ # dimensions, findings (critical/warning/info counts), overall trajectory,
5
+ # per-dimension grades (A-F), per-dimension findings with confidence, and
6
+ # trend analysis against the prior audit.
7
+ #
8
+ # Structural pattern: UPPER_CASE groups with numbered entries and stable IDs,
9
+ # following capability_schema_contract.yaml and protocol.yaml conventions.
10
+ #
11
+ # ── Field-by-field mapping: v1 HEALTH.md → v2 health.yaml ──
12
+ #
13
+ # v1 Field v2 Field v2 ID
14
+ # ─────────────────────────────────────────────────────────────────────
15
+ # ## Audit N · date AUDIT.number HA1
16
+ # (date from heading) AUDIT.date HA2
17
+ # **Dimensions assessed**: <list> AUDIT.dimensions HA3
18
+ # **Findings**: N crit, N warn, N info AUDIT.findings_summary HA4
19
+ # **Overall trajectory**: <text> AUDIT.trajectory HA5
20
+ # **Grades**: Dim [X] | Dim [Y] AUDIT.grades HA6
21
+ # ### Dimension: grade DIMENSION.name HD1
22
+ # (grade from heading) DIMENSION.grade HD2
23
+ # #### finding text FINDING.heading HF1
24
+ # - **Location**: <text> FINDING.location HF2
25
+ # - **Evidence**: <text> FINDING.evidence HF3
26
+ # - **Impact**: <text> FINDING.impact HF4
27
+ # - **Suggested action**: <text> FINDING.suggested_action HF5
28
+ # (severity glyph from prefix) FINDING.severity HF6
29
+ # (confidence from parenthetical) FINDING.confidence HF7
30
+ # ### Trends vs Audit N TRENDS.entry HT1
31
+ # - **Improved**: <text> TRENDS.improved HT2
32
+ # - **Degraded**: <text> TRENDS.degraded HT3
33
+ # - **Stable**: <text> TRENDS.stable HT4
34
+ # - **New findings**: <text> TRENDS.new_findings HT5
35
+ # - **Resolved**: <text> TRENDS.resolved HT6
36
+ # - **Carried forward**: <text> TRENDS.carried_forward HT7
37
+ # ### Patterns Observed PATTERNS.heading HP1
38
+ # - Pattern text PATTERNS.entry HP2
39
+ # ## Archived Audits (implicit section) —
40
+ # ### Audit N · date (summary) ARCHIVE.summary HR1
41
+ #
42
+ # Protocol references:
43
+ # severity: SF1-SF3 (protocol.yaml SEVERITY_FINDING)
44
+ # confidence: CS1-CS5 (protocol.yaml CONFIDENCE_SCALE)
45
+ # visual tokens: VT12-VT13 (protocol.yaml VISUAL_TOKENS, trend glyphs)
46
+ # dimension grades: A-F scale
47
+
48
+ meta:
49
+ name: health
50
+ version: "1.0.0"
51
+ description: >-
52
+ Audit log maintained by inspektera. Consumed by capabilities that need
53
+ codebase health context.
54
+ artifact_type: agent_facing
55
+ path: ".agentera/health.yaml"
56
+ producer: inspektera
57
+ consumers: [dokumentera, hej, inspektera, orkestrera, planera, realisera, visionera]
58
+ format: yaml
59
+
60
+ GROUP_PREFIXES:
61
+ BUDGET: HB
62
+ COMPACTION: HX
63
+ AUDIT: HA
64
+ DIMENSION: HD
65
+ FINDING: HF
66
+ TRENDS: HT
67
+ PATTERNS: HP
68
+ ARCHIVE: HR
69
+ VALIDATION: HV
70
+
71
+ BUDGET:
72
+ 1:
73
+ id: HB1
74
+ scope: per_dimension_assessment
75
+ max_words: 150
76
+ description: >-
77
+ Maximum words per dimension assessment. Budgets are guidelines,
78
+ not hard blockers.
79
+ 2:
80
+ id: HB2
81
+ scope: full_file
82
+ max_words: 2000
83
+ description: >-
84
+ Maximum words for the full file. If a write would exceed this
85
+ budget, compact first (see COMPACTION group).
86
+
87
+ COMPACTION:
88
+ 1:
89
+ id: HX1
90
+ rule: uniform_10_40_50
91
+ description: >-
92
+ Growing artifacts follow a uniform 10/40/50 rule: 10 full-detail
93
+ entries, 40 one-line archive entries, drop beyond 50 total.
94
+ 2:
95
+ id: HX2
96
+ full_detail:
97
+ max_entries: 10
98
+ selection: "10 most recent audits"
99
+ format: "Standard audit entry format (all fields)"
100
+ description: >-
101
+ The 10 most recent audits are kept in full detail with all fields.
102
+ 3:
103
+ id: HX3
104
+ one_line_archive:
105
+ max_entries: 40
106
+ selection: "Audits 11 through 50"
107
+ format: "Audit N (YYYY-MM-DD): [grade] — <=15-word summary"
108
+ fields: [number, date, grade, summary]
109
+ description: >-
110
+ Audits 11 through 50 are collapsed to one-line format under the
111
+ archive section. One-line summaries preserve audit number, date,
112
+ overall grade, and trajectory.
113
+ 4:
114
+ id: HX4
115
+ dropped:
116
+ threshold: 50
117
+ action: "Removed entirely"
118
+ description: >-
119
+ Audits older than 50 are dropped entirely.
120
+ 5:
121
+ id: HX5
122
+ trigger: "When inspektera writes a new audit"
123
+ description: >-
124
+ Compaction runs when the producing skill writes a new entry.
125
+ If >10 full-detail entries exist, collapse the oldest to one-line.
126
+ If >40 one-line entries exist, drop the oldest.
127
+ 6:
128
+ id: HX6
129
+ archive_section:
130
+ heading: "Archived Audits"
131
+ placement: "Below recent audits"
132
+ description: >-
133
+ Archive entries sit below the recent audits section.
134
+
135
+ AUDIT:
136
+ 1:
137
+ id: HA1
138
+ field: number
139
+ type: integer
140
+ required: true
141
+ description: >-
142
+ Monotonically increasing audit number. One greater than the
143
+ highest audit number in active and archived entries.
144
+ validation:
145
+ - "Must be a positive integer"
146
+ - "Must be unique across active and archived entries"
147
+ 2:
148
+ id: HA2
149
+ field: date
150
+ type: string
151
+ format: "YYYY-MM-DD"
152
+ required: true
153
+ description: "When the audit was performed."
154
+ validation:
155
+ - "Must match YYYY-MM-DD format"
156
+ 3:
157
+ id: HA3
158
+ field: dimensions
159
+ type: list[string]
160
+ required: true
161
+ description: >-
162
+ List of dimension names assessed in this audit. Must be drawn from
163
+ the canonical dimension set. Inspektera selects applicable dimensions
164
+ per audit.
165
+ canonical_dimensions:
166
+ - architecture_alignment
167
+ - pattern_consistency
168
+ - coupling_health
169
+ - complexity_hotspots
170
+ - test_health
171
+ - dependency_health
172
+ - version_health
173
+ - artifact_freshness
174
+ - security_hygiene
175
+ - prose_health
176
+ validation:
177
+ - "At least one dimension must be assessed"
178
+ - "Each dimension must be from the canonical set"
179
+ 4:
180
+ id: HA4
181
+ field: findings_summary
182
+ type: map
183
+ required: true
184
+ description: >-
185
+ Aggregate finding counts by severity level. Reports critical,
186
+ warning, and info counts, plus filtered count.
187
+ sub_fields:
188
+ - field: critical
189
+ type: integer
190
+ required: true
191
+ - field: warning
192
+ type: integer
193
+ required: true
194
+ - field: info
195
+ type: integer
196
+ required: true
197
+ - field: filtered_by_confidence
198
+ type: integer
199
+ required: true
200
+ 5:
201
+ id: HA5
202
+ field: trajectory
203
+ type: string
204
+ required: true
205
+ description: >-
206
+ Overall trajectory vs the prior audit. One of: improving,
207
+ stable, degrading. May include brief narrative.
208
+ protocol_ref: VISUAL_TOKENS
209
+ validation:
210
+ - "Must indicate direction vs prior audit"
211
+ 6:
212
+ id: HA6
213
+ field: grades
214
+ type: map[string, string]
215
+ required: true
216
+ description: >-
217
+ Per-dimension grade map. Each assessed dimension gets an A-F grade.
218
+ Format: { dimension_name: grade }.
219
+ validation:
220
+ - "Every assessed dimension has a grade"
221
+ - "Grades are single characters A through F"
222
+
223
+ DIMENSION:
224
+ 1:
225
+ id: HD1
226
+ field: name
227
+ type: string
228
+ required: true
229
+ description: >-
230
+ Dimension name. Must be from the canonical set defined in
231
+ AUDIT.dimensions canonical_dimensions.
232
+ validation:
233
+ - "Must match a canonical dimension name"
234
+ 2:
235
+ id: HD2
236
+ field: grade
237
+ type: string
238
+ required: true
239
+ description: >-
240
+ Letter grade for this dimension. A = excellent, B = good,
241
+ C = acceptable, D = concerning, F = failing.
242
+ validation:
243
+ - "Must be one of: A, B, C, D, F"
244
+ 3:
245
+ id: HD3
246
+ field: summary
247
+ type: string
248
+ required: true
249
+ description: >-
250
+ Prose assessment of this dimension. Explains the grade with
251
+ concrete evidence (file paths, line numbers, commit hashes).
252
+ validation:
253
+ - "Non-empty string"
254
+ - "Should contain at least one concrete anchor"
255
+
256
+ FINDING:
257
+ 1:
258
+ id: HF1
259
+ field: heading
260
+ type: string
261
+ required: true
262
+ description: >-
263
+ Finding title. One-line summary of the finding.
264
+ 2:
265
+ id: HF2
266
+ field: location
267
+ type: string
268
+ required: true
269
+ description: >-
270
+ File path(s) and line number(s) where the finding applies.
271
+ validation:
272
+ - "Must include at least one file path"
273
+ 3:
274
+ id: HF3
275
+ field: evidence
276
+ type: string
277
+ required: true
278
+ description: >-
279
+ Factual evidence supporting the finding. What was observed.
280
+ validation:
281
+ - "Non-empty string"
282
+ 4:
283
+ id: HF4
284
+ field: impact
285
+ type: string
286
+ required: true
287
+ description: >-
288
+ What happens if this finding is not addressed. Consequences
289
+ for the project.
290
+ validation:
291
+ - "Non-empty string"
292
+ 5:
293
+ id: HF5
294
+ field: suggested_action
295
+ type: string
296
+ required: true
297
+ description: >-
298
+ Recommended remediation. What should be done about this finding.
299
+ validation:
300
+ - "Non-empty string"
301
+ 6:
302
+ id: HF6
303
+ field: severity
304
+ type: string
305
+ required: true
306
+ description: >-
307
+ Finding severity level. References protocol.yaml SEVERITY_FINDING
308
+ (SF1-SF3).
309
+ protocol_ref: SEVERITY_FINDING
310
+ validation:
311
+ - "Must be one of: critical, warning, info"
312
+ 7:
313
+ id: HF7
314
+ field: confidence
315
+ type: integer
316
+ required: true
317
+ description: >-
318
+ Confidence score for this finding (0-100). References protocol.yaml
319
+ CONFIDENCE_SCALE (CS1-CS5).
320
+ protocol_ref: CONFIDENCE_SCALE
321
+ validation:
322
+ - "Must be an integer between 0 and 100"
323
+
324
+ TRENDS:
325
+ 1:
326
+ id: HT1
327
+ field: comparison_target
328
+ type: string
329
+ required: true
330
+ description: >-
331
+ Which prior audit this audit is compared against.
332
+ Format: 'Audit N' or equivalent reference.
333
+ 2:
334
+ id: HT2
335
+ field: improved
336
+ type: string
337
+ required: false
338
+ description: >-
339
+ Dimensions or aspects that improved since the prior audit.
340
+ 3:
341
+ id: HT3
342
+ field: degraded
343
+ type: string
344
+ required: false
345
+ description: >-
346
+ Dimensions or aspects that degraded since the prior audit.
347
+ 4:
348
+ id: HT4
349
+ field: stable
350
+ type: string
351
+ required: false
352
+ description: >-
353
+ Dimensions or aspects that remained stable.
354
+ 5:
355
+ id: HT5
356
+ field: new_findings
357
+ type: string
358
+ required: false
359
+ description: >-
360
+ New findings introduced by this audit.
361
+ 6:
362
+ id: HT6
363
+ field: resolved
364
+ type: string
365
+ required: false
366
+ description: >-
367
+ Prior findings that were resolved by this audit.
368
+ 7:
369
+ id: HT7
370
+ field: carried_forward
371
+ type: string
372
+ required: false
373
+ description: >-
374
+ Prior findings or caveats that remain unresolved and are
375
+ carried into future audits.
376
+
377
+ PATTERNS:
378
+ 1:
379
+ id: HP1
380
+ field: heading
381
+ type: string
382
+ required: false
383
+ description: >-
384
+ Section heading for patterns observed during the audit.
385
+ Standard label: 'Patterns Observed'.
386
+ 2:
387
+ id: HP2
388
+ field: entry
389
+ type: string
390
+ required: false
391
+ description: >-
392
+ Individual pattern observation. Each entry captures a recurring
393
+ structural, testing, release, or module pattern noticed during
394
+ the audit.
395
+
396
+ ARCHIVE:
397
+ 1:
398
+ id: HR1
399
+ field: summary
400
+ type: string
401
+ required: true
402
+ description: >-
403
+ One-line archive entry for a compacted audit. Format:
404
+ 'Audit N (YYYY-MM-DD): [grade] — <=15-word summary'.
405
+ Preserves audit number, date, overall grade, and trajectory.
406
+ validation:
407
+ - "Must include audit number"
408
+ - "Must include date in YYYY-MM-DD format"
409
+ - "Must include overall grade"
410
+ - "Summary portion must be <=15 words"
411
+
412
+ VALIDATION:
413
+ 1:
414
+ id: HV1
415
+ rule: unique_audit_numbers
416
+ severity: error
417
+ description: >-
418
+ Active audit entries must have unique numbers and remain ascending
419
+ by audit number.
420
+ checks:
421
+ - "All audit numbers are unique across active and archived entries"
422
+ - "Active entries are in ascending order by audit number"
423
+ 2:
424
+ id: HV2
425
+ rule: required_fields
426
+ severity: error
427
+ description: >-
428
+ Each full-detail audit entry must have: number, date, dimensions,
429
+ findings_summary, trajectory, and grades. Each finding must have
430
+ heading, location, evidence, impact, suggested_action, severity,
431
+ and confidence. Each dimension must have name, grade, and summary.
432
+ Trends must have comparison_target. Archive entries must have summary.
433
+ checks:
434
+ - "number is present and is a positive integer"
435
+ - "date is present and matches YYYY-MM-DD"
436
+ - "dimensions is present with at least one entry"
437
+ - "findings_summary is present with critical, warning, info counts"
438
+ - "trajectory is present and non-empty"
439
+ - "grades is present with one grade per assessed dimension"
440
+ - "each finding has heading, location, evidence, impact, suggested_action, severity, confidence"
441
+ - "each dimension has name, grade, summary"
442
+ - "trends has comparison_target"
443
+ - "archive entries have summary"
444
+ 3:
445
+ id: HV3
446
+ rule: dimension_grade_coverage
447
+ severity: error
448
+ description: >-
449
+ Every dimension listed in the dimensions field must have a
450
+ corresponding grade in the grades map and a dimension section.
451
+ checks:
452
+ - "Each dimension has a grade"
453
+ - "Each dimension has a corresponding detail section"
454
+ 4:
455
+ id: HV4
456
+ rule: finding_severity_counts
457
+ severity: warning
458
+ description: >-
459
+ The finding counts in findings_summary should match the actual
460
+ findings present in the dimension sections.
461
+ checks:
462
+ - "critical count matches actual critical findings"
463
+ - "warning count matches actual warning findings"
464
+ - "info count matches actual info findings"
465
+ 5:
466
+ id: HV5
467
+ rule: compaction_thresholds
468
+ severity: warning
469
+ description: >-
470
+ Warn if the file exceeds compaction thresholds.
471
+ checks:
472
+ - "Full-detail entries <= 10"
473
+ - "One-line archive entries <= 40"
474
+ - "Total entries <= 50"
475
+ 6:
476
+ id: HV6
477
+ rule: word_budget
478
+ severity: advisory
479
+ description: >-
480
+ Advisory check. Per-dimension assessment should be <=150 words;
481
+ full file should be <=2000 words.
482
+ checks:
483
+ - "Per-dimension word count <= 150"
484
+ - "Total file word count <= 2000"