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.
- package/README.md +6 -45
- package/bundle/.agentera-npx-bundle.json +4 -0
- package/bundle/references/adapters/cursor.md +213 -0
- package/bundle/references/adapters/opencode.md +530 -0
- package/bundle/references/adapters/package-manifest-interface-model.yaml +337 -0
- package/bundle/references/adapters/package-registry.yaml +247 -0
- package/bundle/references/adapters/package-surface-characterization.md +48 -0
- package/bundle/references/adapters/runtime-adapter-characterization.md +79 -0
- package/bundle/references/adapters/runtime-adapter-interface-model.yaml +200 -0
- package/bundle/references/adapters/runtime-adapter-registry.yaml +548 -0
- package/bundle/references/adapters/runtime-feature-parity.md +189 -0
- package/bundle/references/analysis/benchmark.md +267 -0
- package/bundle/references/analysis/startup-measurement-contract.yaml +424 -0
- package/bundle/references/artifacts/artifact-registry-interface-model.yaml +288 -0
- package/bundle/references/cli/agent-ready-state-contract.yaml +950 -0
- package/bundle/references/cli/app-lifecycle-vocabulary.yaml +233 -0
- package/bundle/references/cli/audience-namespace-cli-migration.yaml +355 -0
- package/bundle/references/cli/bundle-skill-vocabulary.yaml +278 -0
- package/bundle/references/cli/capability-instruction-contract.yaml +123 -0
- package/bundle/references/cli/capability-tool-classification.yaml +53 -0
- package/bundle/references/cli/routing-execution-vocabulary.yaml +281 -0
- package/bundle/references/cli/update-channels.yaml +120 -0
- package/bundle/references/cli/vocabulary-index.yaml +160 -0
- package/bundle/references/cli/vocabulary.md +562 -0
- package/bundle/references/meta/documentation-inventory.md +43 -0
- package/bundle/references/v1-section-mapping.md +47 -0
- package/bundle/registry.json +39 -0
- package/bundle/skills/agentera/.claude-plugin/plugin.json +27 -0
- package/bundle/skills/agentera/SKILL.md +470 -0
- package/bundle/skills/agentera/agents/dokumentera.toml +6 -0
- package/bundle/skills/agentera/agents/hej.toml +6 -0
- package/bundle/skills/agentera/agents/inspektera.toml +6 -0
- package/bundle/skills/agentera/agents/inspirera.toml +6 -0
- package/bundle/skills/agentera/agents/optimera.toml +6 -0
- package/bundle/skills/agentera/agents/orkestrera.toml +6 -0
- package/bundle/skills/agentera/agents/planera.toml +6 -0
- package/bundle/skills/agentera/agents/profilera.toml +6 -0
- package/bundle/skills/agentera/agents/realisera.toml +6 -0
- package/bundle/skills/agentera/agents/resonera.toml +6 -0
- package/bundle/skills/agentera/agents/visionera.toml +6 -0
- package/bundle/skills/agentera/agents/visualisera.toml +6 -0
- package/bundle/skills/agentera/capabilities/dokumentera/instructions.md +428 -0
- package/bundle/skills/agentera/capabilities/dokumentera/schemas/artifacts.yaml +73 -0
- package/bundle/skills/agentera/capabilities/dokumentera/schemas/exit.yaml +35 -0
- package/bundle/skills/agentera/capabilities/dokumentera/schemas/triggers.yaml +35 -0
- package/bundle/skills/agentera/capabilities/dokumentera/schemas/validation.yaml +139 -0
- package/bundle/skills/agentera/capabilities/hej/instructions.md +331 -0
- package/bundle/skills/agentera/capabilities/hej/schemas/artifacts.yaml +69 -0
- package/bundle/skills/agentera/capabilities/hej/schemas/exit.yaml +32 -0
- package/bundle/skills/agentera/capabilities/hej/schemas/triggers.yaml +58 -0
- package/bundle/skills/agentera/capabilities/hej/schemas/validation.yaml +55 -0
- package/bundle/skills/agentera/capabilities/inspektera/instructions.md +514 -0
- package/bundle/skills/agentera/capabilities/inspektera/schemas/artifacts.yaml +76 -0
- package/bundle/skills/agentera/capabilities/inspektera/schemas/exit.yaml +36 -0
- package/bundle/skills/agentera/capabilities/inspektera/schemas/triggers.yaml +38 -0
- package/bundle/skills/agentera/capabilities/inspektera/schemas/validation.yaml +113 -0
- package/bundle/skills/agentera/capabilities/inspirera/instructions.md +280 -0
- package/bundle/skills/agentera/capabilities/inspirera/schemas/artifacts.yaml +24 -0
- package/bundle/skills/agentera/capabilities/inspirera/schemas/exit.yaml +33 -0
- package/bundle/skills/agentera/capabilities/inspirera/schemas/triggers.yaml +34 -0
- package/bundle/skills/agentera/capabilities/inspirera/schemas/validation.yaml +58 -0
- package/bundle/skills/agentera/capabilities/optimera/instructions.md +437 -0
- package/bundle/skills/agentera/capabilities/optimera/schemas/artifacts.yaml +69 -0
- package/bundle/skills/agentera/capabilities/optimera/schemas/exit.yaml +35 -0
- package/bundle/skills/agentera/capabilities/optimera/schemas/triggers.yaml +39 -0
- package/bundle/skills/agentera/capabilities/optimera/schemas/validation.yaml +91 -0
- package/bundle/skills/agentera/capabilities/orkestrera/instructions.md +433 -0
- package/bundle/skills/agentera/capabilities/orkestrera/schemas/artifacts.yaml +64 -0
- package/bundle/skills/agentera/capabilities/orkestrera/schemas/exit.yaml +34 -0
- package/bundle/skills/agentera/capabilities/orkestrera/schemas/triggers.yaml +42 -0
- package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +107 -0
- package/bundle/skills/agentera/capabilities/planera/instructions.md +368 -0
- package/bundle/skills/agentera/capabilities/planera/schemas/artifacts.yaml +62 -0
- package/bundle/skills/agentera/capabilities/planera/schemas/exit.yaml +33 -0
- package/bundle/skills/agentera/capabilities/planera/schemas/triggers.yaml +34 -0
- package/bundle/skills/agentera/capabilities/planera/schemas/validation.yaml +61 -0
- package/bundle/skills/agentera/capabilities/profilera/instructions.md +419 -0
- package/bundle/skills/agentera/capabilities/profilera/schemas/artifacts.yaml +18 -0
- package/bundle/skills/agentera/capabilities/profilera/schemas/exit.yaml +34 -0
- package/bundle/skills/agentera/capabilities/profilera/schemas/triggers.yaml +45 -0
- package/bundle/skills/agentera/capabilities/profilera/schemas/validation.yaml +57 -0
- package/bundle/skills/agentera/capabilities/realisera/instructions.md +403 -0
- package/bundle/skills/agentera/capabilities/realisera/schemas/artifacts.yaml +80 -0
- package/bundle/skills/agentera/capabilities/realisera/schemas/exit.yaml +35 -0
- package/bundle/skills/agentera/capabilities/realisera/schemas/triggers.yaml +39 -0
- package/bundle/skills/agentera/capabilities/realisera/schemas/validation.yaml +110 -0
- package/bundle/skills/agentera/capabilities/resonera/instructions.md +329 -0
- package/bundle/skills/agentera/capabilities/resonera/schemas/artifacts.yaml +47 -0
- package/bundle/skills/agentera/capabilities/resonera/schemas/exit.yaml +35 -0
- package/bundle/skills/agentera/capabilities/resonera/schemas/triggers.yaml +46 -0
- package/bundle/skills/agentera/capabilities/resonera/schemas/validation.yaml +77 -0
- package/bundle/skills/agentera/capabilities/visionera/instructions.md +309 -0
- package/bundle/skills/agentera/capabilities/visionera/schemas/artifacts.yaml +57 -0
- package/bundle/skills/agentera/capabilities/visionera/schemas/exit.yaml +35 -0
- package/bundle/skills/agentera/capabilities/visionera/schemas/triggers.yaml +41 -0
- package/bundle/skills/agentera/capabilities/visionera/schemas/validation.yaml +74 -0
- package/bundle/skills/agentera/capabilities/visualisera/instructions.md +400 -0
- package/bundle/skills/agentera/capabilities/visualisera/schemas/artifacts.yaml +44 -0
- package/bundle/skills/agentera/capabilities/visualisera/schemas/exit.yaml +34 -0
- package/bundle/skills/agentera/capabilities/visualisera/schemas/triggers.yaml +33 -0
- package/bundle/skills/agentera/capabilities/visualisera/schemas/validation.yaml +80 -0
- package/bundle/skills/agentera/capability_schema_contract.yaml +385 -0
- package/bundle/skills/agentera/protocol.yaml +463 -0
- package/bundle/skills/agentera/references/contract.md +1039 -0
- package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +60 -0
- package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +461 -0
- package/bundle/skills/agentera/schemas/artifacts/design.yaml +55 -0
- package/bundle/skills/agentera/schemas/artifacts/docs.yaml +402 -0
- package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +373 -0
- package/bundle/skills/agentera/schemas/artifacts/health.yaml +484 -0
- package/bundle/skills/agentera/schemas/artifacts/objective.yaml +399 -0
- package/bundle/skills/agentera/schemas/artifacts/plan.yaml +342 -0
- package/bundle/skills/agentera/schemas/artifacts/progress.yaml +325 -0
- package/bundle/skills/agentera/schemas/artifacts/todo.yaml +110 -0
- package/bundle/skills/agentera/schemas/artifacts/vision.yaml +262 -0
- package/bundle/skills/hej/.claude-plugin/plugin.json +6 -0
- package/bundle/skills/hej/SKILL.md +69 -0
- package/bundle/skills/hej/agents/hej.toml +11 -0
- package/bundle/skills/hej/agents/openai.yaml +8 -0
- package/dist/analytics/extractCorpus.js +1791 -0
- package/dist/analytics/extractCorpus.js.map +1 -0
- package/dist/analytics/usageStats.js +487 -0
- package/dist/analytics/usageStats.js.map +1 -0
- package/dist/bin/agentera.js +4 -0
- package/dist/bin/agentera.js.map +1 -0
- package/dist/cli/appContext.js +226 -0
- package/dist/cli/appContext.js.map +1 -0
- package/dist/cli/argvalidate.js +41 -0
- package/dist/cli/argvalidate.js.map +1 -0
- package/dist/cli/capabilityContext.js +2421 -0
- package/dist/cli/capabilityContext.js.map +1 -0
- package/dist/cli/commands/backfill.js +84 -0
- package/dist/cli/commands/backfill.js.map +1 -0
- package/dist/cli/commands/capability.js +44 -0
- package/dist/cli/commands/capability.js.map +1 -0
- package/dist/cli/commands/compact.js +148 -0
- package/dist/cli/commands/compact.js.map +1 -0
- package/dist/cli/commands/doctor.js +180 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/lint.js +179 -0
- package/dist/cli/commands/lint.js.map +1 -0
- package/dist/cli/commands/prime.js +545 -0
- package/dist/cli/commands/prime.js.map +1 -0
- package/dist/cli/commands/query.js +346 -0
- package/dist/cli/commands/query.js.map +1 -0
- package/dist/cli/commands/report.js +210 -0
- package/dist/cli/commands/report.js.map +1 -0
- package/dist/cli/commands/schema.js +306 -0
- package/dist/cli/commands/schema.js.map +1 -0
- package/dist/cli/commands/state.js +1012 -0
- package/dist/cli/commands/state.js.map +1 -0
- package/dist/cli/commands/upgrade.js +49 -0
- package/dist/cli/commands/upgrade.js.map +1 -0
- package/dist/cli/commands/validate.js +519 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/commands/verify.js +204 -0
- package/dist/cli/commands/verify.js.map +1 -0
- package/dist/cli/dispatch.js +962 -0
- package/dist/cli/dispatch.js.map +1 -0
- package/dist/cli/orientation.js +595 -0
- package/dist/cli/orientation.js.map +1 -0
- package/dist/cli/prime-blob.js +3 -0
- package/dist/cli/prime-blob.js.map +1 -0
- package/dist/cli/stateQuery.js +292 -0
- package/dist/cli/stateQuery.js.map +1 -0
- package/dist/cli/structured.js +18 -0
- package/dist/cli/structured.js.map +1 -0
- package/dist/core/difflib.js +274 -0
- package/dist/core/difflib.js.map +1 -0
- package/dist/core/git.js +43 -0
- package/dist/core/git.js.map +1 -0
- package/dist/core/paths.js +50 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/pyjson.js +101 -0
- package/dist/core/pyjson.js.map +1 -0
- package/dist/core/sourceRoot.js +72 -0
- package/dist/core/sourceRoot.js.map +1 -0
- package/dist/core/toml.js +11 -0
- package/dist/core/toml.js.map +1 -0
- package/dist/core/yaml.js +25 -0
- package/dist/core/yaml.js.map +1 -0
- package/dist/eval/evalSkills.js +258 -0
- package/dist/eval/evalSkills.js.map +1 -0
- package/dist/eval/semanticEval.js +148 -0
- package/dist/eval/semanticEval.js.map +1 -0
- package/dist/eval/semanticFixtures.js +227 -0
- package/dist/eval/semanticFixtures.js.map +1 -0
- package/dist/hooks/common.js +160 -0
- package/dist/hooks/common.js.map +1 -0
- package/dist/hooks/compaction.js +935 -0
- package/dist/hooks/compaction.js.map +1 -0
- package/dist/hooks/cursorPreToolUse.js +19 -0
- package/dist/hooks/cursorPreToolUse.js.map +1 -0
- package/dist/hooks/cursorSessionStart.js +71 -0
- package/dist/hooks/cursorSessionStart.js.map +1 -0
- package/dist/hooks/sessionStart.js +209 -0
- package/dist/hooks/sessionStart.js.map +1 -0
- package/dist/hooks/sessionStop.js +212 -0
- package/dist/hooks/sessionStop.js.map +1 -0
- package/dist/hooks/validateArtifact.js +933 -0
- package/dist/hooks/validateArtifact.js.map +1 -0
- package/dist/registries/artifactRegistry.js +206 -0
- package/dist/registries/artifactRegistry.js.map +1 -0
- package/dist/registries/capabilityContract.js +310 -0
- package/dist/registries/capabilityContract.js.map +1 -0
- package/dist/registries/packageRegistry.js +641 -0
- package/dist/registries/packageRegistry.js.map +1 -0
- package/dist/registries/runtimeAdapterRegistry.js +315 -0
- package/dist/registries/runtimeAdapterRegistry.js.map +1 -0
- package/dist/setup/codex.js +1052 -0
- package/dist/setup/codex.js.map +1 -0
- package/dist/setup/copilot.js +227 -0
- package/dist/setup/copilot.js.map +1 -0
- package/dist/setup/cursor.js +127 -0
- package/dist/setup/cursor.js.map +1 -0
- package/dist/setup/doctor.js +1269 -0
- package/dist/setup/doctor.js.map +1 -0
- package/dist/state/installRoot.js +279 -0
- package/dist/state/installRoot.js.map +1 -0
- package/dist/state/progressCommit.js +289 -0
- package/dist/state/progressCommit.js.map +1 -0
- package/dist/state/startupAnalysis.js +1953 -0
- package/dist/state/startupAnalysis.js.map +1 -0
- package/dist/upgrade/appModel.js +189 -0
- package/dist/upgrade/appModel.js.map +1 -0
- package/dist/upgrade/channels.js +197 -0
- package/dist/upgrade/channels.js.map +1 -0
- package/dist/upgrade/compatibility.js +197 -0
- package/dist/upgrade/compatibility.js.map +1 -0
- package/dist/upgrade/doctor.js +368 -0
- package/dist/upgrade/doctor.js.map +1 -0
- package/dist/upgrade/migrateArtifactsV2ToV3.js +412 -0
- package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -0
- package/dist/upgrade/upgradeCommands.js +40 -0
- package/dist/upgrade/upgradeCommands.js.map +1 -0
- package/dist/upgrade/upgradeOrchestrator.js +280 -0
- package/dist/upgrade/upgradeOrchestrator.js.map +1 -0
- package/dist/validate/appHomeContract.js +150 -0
- package/dist/validate/appHomeContract.js.map +1 -0
- package/dist/validate/capability.js +412 -0
- package/dist/validate/capability.js.map +1 -0
- package/dist/validate/crossCapability.js +145 -0
- package/dist/validate/crossCapability.js.map +1 -0
- package/dist/validate/lifecycleAdapters.js +772 -0
- package/dist/validate/lifecycleAdapters.js.map +1 -0
- package/dist/validate/selfAudit.js +107 -0
- package/dist/validate/selfAudit.js.map +1 -0
- package/package.json +28 -8
- package/LICENSE +0 -201
- package/bin/agentera.mjs +0 -50
- package/lib/exec.mjs +0 -116
- 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"
|