/harness-threat-model
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.
Claude Code
$ npx -y skills add ruvnet/ruflo --skill harness-threat-model --agent claude-code
Codex
$ npx skills add ruvnet/ruflo --skill harness-threat-model -a codex -y
Cursor
$ npx skills add ruvnet/ruflo --skill harness-threat-model -a cursor -y
Gemini CLI
$ npx skills add ruvnet/ruflo --skill harness-threat-model -a gemini-cli -y
GitHub Copilot
$ npx skills add ruvnet/ruflo --skill harness-threat-model -a github-copilot -y
OpenCode
$ npx skills add ruvnet/ruflo --skill harness-threat-model -a opencode -y
Windsurf
$ npx skills add ruvnet/ruflo --skill harness-threat-model -a windsurf -y
SKILL.md
harness-threat-model.SKILL.mdname: 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: BashThe 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`](../../scripts/threat-model.mjs).
1. Invoke the pinned `harness` binary (`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`. 2. Parse `{ worst, findings[] }`. 3. `--fail-on <severity>`: exit 1 when `worst >= fail-on`. Default `high`.
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-audit` background
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.
Read more
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: BashThe 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`](../../scripts/threat-model.mjs).
1. Invoke the pinned `harness` binary (`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`. 2. Parse `{ worst, findings[] }`. 3. `--fail-on <severity>`: exit 1 when `worst >= fail-on`. Default `high`.
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-audit` background
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.
📖 RuFlo Explained — Build an AI Team That Plans, Remembers, Tests, and Improves A 14-chapter guide: from the basic idea to a first useful task, then memory, agent teams, plugins, cost and verification. Agent = Model + Harness.
Other skills on ruflo.
More skills from other plugins.
agentmail
Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…
bmad
Answers BMad questions and recommends the next skill from what is installed. Use when the user asks bmad for help, what to do…
Questions about harness-threat-model.
- Which coding agents can use harness-threat-model?
- harness-threat-model installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

