Imported from ruvnet/ruflo (
plugins/ruflo-metaharness/skills/harness-threat-model/SKILL.md). Install upstream withnpx skills add ruvnet/ruflo --skill harness-threat-model. Copyright stays with the author.
name: harness-threat-model
description: Enterprise-review-grade threat model from harness threat-model {path}. Categorizes MCP-surface threats; emits worst: 'clean'|'low'|'medium'|'high' + per-threat findings. Pure-read.
argument-hint: "[--path .] [--fail-on clean|low|medium|high] [--format table|json]"
allowed-tools: Bash
The companion to harness-mcp-scan for enterprise security reviews.
Where mcp-scan is a per-server static lint, threat-model produces a
categorized report suitable for sharing with an InfoSec team.
Algorithm
Implementation: scripts/threat-model.mjs.
- Invoke the pinned
harnessbinary (metaharness@~0.4.1, resolved from a local install or the one-time~/.ruflo/metaharness-cache-<pin>cache — never@latest):harness threat-model <path> --json. - Parse
{ worst, findings[] }. --fail-on <severity>: exit 1 whenworst >= fail-on. Defaulthigh.
Severity rank
| Severity | Rank |
|---|---|
| clean | 0 |
| low | 1 |
| medium | 2 |
| high | 3 |
When to use
- Pre-launch review: include the JSON output in the release-readiness packet sent to security.
- Periodic audit: schedule via the planned
oia-auditbackground worker (ADR-150 Phase 2) to detect MCP-surface drift.
Graceful degradation
Same pattern as the other skills: when harness is absent, emit
{ degraded: true } and exit 0. ADR-150 architectural constraint.
