You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(cli): add omv threat-map init producer for ThreatMap.v1
The ThreatMap.v1 read pipeline was fully built and tested but nothing
produced the sidecar. Add:
- writeThreatMap() domain fn (findings.ts): scaffolds
.omv/threatmaps/<id>.yaml from a ThreatMap.v1 template, finding_id
and package block filled from the finding, idempotent with --force.
- omv threat-map init <id> CLI command (commands/threat-map.ts),
registered in commands/index.ts, validated in args.ts, with usage.
- omv-audit SKILL.md now invokes the helper instead of hand-authoring.
- omv-audit eval id 6 + golden + threatmap_sidecar_present checker
assertion; unit test for writeThreatMap (36 tests pass).
Sidecar-only per the contract: the parent Evidence.v1 file is not
modified; evidence source/sink/guard remain the compatibility summary.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,9 @@
1
1
# Changelog
2
2
3
+
## Unreleased
4
+
5
+
- Added `omv threat-map init <id>` — the producer side of the ThreatMap.v1 pipeline. Scaffolds `.omv/threatmaps/<id>.yaml` (finding_id + package filled from the finding, `paths: []` ready to fill) so `omv-audit` records source → transform → sink dataflow instead of hand-authoring YAML. The read pipeline (`omv findings show` rendering, archive sidecar handling) was already in place; this connects it.
6
+
3
7
## v0.9.0 - CLI command split and local findings dedup
4
8
5
9
- Split the `omv` CLI dispatcher (`omv.ts`, 1434 lines) into one module per command under `commands/`, plus a `commands/shared.ts` arg-helper module and a `commands/index.ts` registry replacing the dispatch `switch`. The 12 duplicated command error handlers collapse into one. `omv.ts` is now a 7-line entry.
"expected_output": "Confirmed audit that also scaffolds a ThreatMap.v1 sidecar at .omv/threatmaps/<id>.yaml via `omv threat-map init`, then fills one paths[] entry with source, transforms, sink, and a missing/bypassable guard for a path-traversal finding.",
92
+
"files": [
93
+
"evals/golden/threatmap-path-traversal.md"
94
+
],
95
+
"assertions": [
96
+
{
97
+
"type": "confirmed_complete_evidence",
98
+
"text": "must still produce a complete confirmed Evidence.v1 block"
99
+
},
100
+
{
101
+
"type": "threatmap_sidecar_present",
102
+
"text": "must scaffold .omv/threatmaps/<id>.yaml and fill a paths[] source->sink->guard entry"
Ran `omv threat-map init demo-threatmap-path-traversal` to scaffold `.omv/threatmaps/demo-threatmap-path-traversal.yaml`, then filled one `paths[]` entry for the confirmed route:
0 commit comments