brainstorming
Refine feature and sprint intent into a useful specification. Capture scope, observable criteria and material choices without…
Threat-model a sensitive design with STRIDE on request. Read-only analysis of threats, controls, and implementation constraints.
Claude Code
$ npx -y skills add arbiterForge/codeArbiter --skill ca-threat-model --agent claude-code
Codex
$ npx skills add arbiterForge/codeArbiter --skill ca-threat-model -a codex -y
Cursor
$ npx skills add arbiterForge/codeArbiter --skill ca-threat-model -a cursor -y
Gemini CLI
$ npx skills add arbiterForge/codeArbiter --skill ca-threat-model -a gemini-cli -y
GitHub Copilot
$ npx skills add arbiterForge/codeArbiter --skill ca-threat-model -a github-copilot -y
OpenCode
$ npx skills add arbiterForge/codeArbiter --skill ca-threat-model -a opencode -y
Windsurf
$ npx skills add arbiterForge/codeArbiter --skill ca-threat-model -a windsurf -y
name: ca-threat-model description: "Threat-model a sensitive design with STRIDE on request. Read-only analysis of threats, controls, and implementation constraints." argument-hint: "<scope description>"
For every security policy reference below, follow [includes/knowledge.md](../../includes/knowledge.md) ("Read security policy before a security decision"): select the repository's context format, read the complete policy from exact `CTX-SECURITY-CONTROLS` records in HTML mode or the full Markdown controls in Markdown mode, and read operative scope blocks when applicable. Required policy that is missing or unreadable blocks a security decision; scope blocks alone are not full policy.
Optional, lightweight threat-modeling pass over a design before it is built. Selected when the user deliberately requests threat modeling of a sensitive design, with or without `$ca-threat-model`. Never forced on an ordinary change. Reviews architectural intent before code exists; for code already written, dispatch `security-reviewer` instead.
Read-only: modify no project file, decision record, control or implementation. Optional reviewers inherit this read-only analysis scope. An explanation-only security question does not start the pass; mentioning authentication in an ordinary change does not opt in. The user need not repeat a slash command to request it. Missing required security-controls input is a prerequisite failure, separate from the severity of a finding. A lesser gap is a constraint, not blanket denied clearance.
Map what the change exposes. Name, for the scope:
A boundary crossing not described in `security-controls.md` is a finding, not a silent pass. A finding outside this scope gets one line with an inline `[NEEDS-TRIAGE]` marker.
Gate: the attack surface and every boundary crossing in scope are enumerated.
Walk the surface from Phase 1 through STRIDE. For each relevant category, name the concrete threat and the control expected to mitigate it:
Mark each threat's mitigation `PRESENT`, `PLANNED`, or `GAP`. Skip a category only with a one-line reason it does not apply.
If the threat depends on auth, crypto, key handling, or secrets, MAY dispatch [agents/auth-crypto-reviewer.md](../../agents/auth-crypto-reviewer.md). For broader boundary or surface concerns, MAY dispatch [agents/security-reviewer.md](../../agents/security-reviewer.md). Both govern by `security-controls.md`.
Gate: STOP only on a genuinely critical unmitigated threat — a `GAP` that is exploitable now with high impact. Lesser gaps are surfaced as constraints, not stops.
Produce a terse report:
A decision-worthy gap is escalated to the user or to `<project-root>/.codearbiter/decisions/` via `/adr` — never authored as an ADR by this skill.
Gate: report delivered with a stated verdict; every STOP-level threat from Phase 2 is reflected in it.
Open-source governance and hard gates for AI coding agents across Claude Code, Codex CLI, and Pi.
Refine feature and sprint intent into a useful specification. Capture scope, observable criteria and material choices without…
Create a verified local Git commit when committing changes is requested. Not for explaining commit history, drafting a message…
Inspect context drift and refresh selected source-backed documents under existing authorization.
Build source-backed project context through bounded inspection, optional agents, and record-level knowledge writes.
The banned-primitive gate. Routed to when changed code hashes, signs, encrypts, derives keys, generates security-relevant…
Investigate an unexplained defect or unexpected behavior without changing application code. Use for root-cause diagnosis and an…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.