threat-model
Build a threat model for a target codebase. Three modes: "interview" walks an application owner through the four-question…
Calibrate interview explanations from the user's stated understanding
Claude Code
$ npx -y skills add Q00/ouroboros --skill idk --agent claude-code
Codex
$ npx skills add Q00/ouroboros --skill idk -a codex -y
Cursor
$ npx skills add Q00/ouroboros --skill idk -a cursor -y
Gemini CLI
$ npx skills add Q00/ouroboros --skill idk -a gemini-cli -y
GitHub Copilot
$ npx skills add Q00/ouroboros --skill idk -a github-copilot -y
OpenCode
$ npx skills add Q00/ouroboros --skill idk -a opencode -y
Windsurf
$ npx skills add Q00/ouroboros --skill idk -a windsurf -y
name: idk description: "Calibrate interview explanations from the user's stated understanding" aliases: [dont-know, calibrate] mcp_tool: ouroboros_interview mcp_args: calibration_input: "$1"
Calibrate the language used by `ooo interview` without weakening the interview itself.
ooo idk <terms I do not know, or what I understand about them> /ouroboros:idk <terms I do not know, or what I understand about them>
Examples:
ooo idk I do not know idempotency or event sourcing. I have built REST APIs. ooo idk Kubernetes: deployed a tutorial once; networking and operators are unfamiliar. ooo idk OAuth is familiar enough to implement, but I cannot explain PKCE.
When the user invokes this skill, treat their text as evidence for a **conversation-local interview calibration**, not as a test and not as a permanent rating of the person.
Identify:
Use only what the user actually said. Do not infer low general ability from one unknown term, unfamiliar English vocabulary, a typo, or a short answer. Ask one short follow-up only when the supplied text is too ambiguous to affect interview wording safely. Otherwise continue immediately.
Assign one overall interview explanation level based on the user's evidence:
them, and give one concrete example.
new or overloaded; connect questions to practical trade-offs.
skip definitions unless requested.
When the user mentions multiple domains with mixed familiarity, select the level that ensures the least-familiar domain remains accessible (conservative default: choose the lower level). The session carries one active level and applies it to all subsequent interview questions.
Also record confidence as `low`, `medium`, or `high` based on how direct and specific the evidence is. Prefer the less aggressive inference when evidence is mixed.
Respond with this compact, visible block so the current conversation can use it:
Interview calibration - Level: <Foundational|Working|Fluent> (confidence: <level>) Evidence: <brief user-stated evidence> - Unknown terms to define before use: <terms, or none> - Adaptation: <how wording/examples will change>
Then say that the calibration applies to subsequent `ooo interview` turns in this conversation and can be revised at any time with another `ooo idk`. Do not write a profile to disk or claim that it persists across conversations. If the runtime returns `meta.interview_calibration`, relay that value into the next `ooo interview` call as the `interview_calibration` argument.
If `ooo idk` is invoked while an interview question is pending:
1. Do not treat the calibration text as the answer to the pending MCP question. 2. Update the active calibration and explain or rephrase the pending question at the calibrated level. 3. Preserve the question's decision, constraints, and acceptance meaning. 4. Ask the rephrased question again; advance the interview only after the user answers it. 5. On subsequent interview calls, pass the latest `meta.interview_calibration` value as the `interview_calibration` argument.
rigor of requirement discovery, ambiguity checks, or closure gates.
brief parenthetical definitions only where useful. At Fluent level, stay concise and technical.
product or architecture decision.
or weaker topic knowledge, and mention material changes briefly.
rephrase before asking for a decision. Do not count “I don't know that term” as an answer to the underlying interview question.
Your final response MUST end with exactly one breadcrumb footer line:
◆ <current state> → next: <recommended action>
Derive `<current state>` from live session state via `ouroboros_session_status` when that MCP projection is available; otherwise derive it from this skill's actual outcome. Never use a linear `Step N of M` footer because Ouroboros is an evolutionary loop. When the next action is genuinely a choice, list 2-3 honest options in the `next:` clause. The breadcrumb line must be the last line of the response.
Agent OS: the agent gets smarter on its own. We just hold the line: Interview-gated, staged evaluation, budgeted evolution loop. MCP server, 14 runtimes: Claude Code, Codex CLI, Gemini CLI, OpenCode, Copilot, Kiro and more.
Build a threat model for a target codebase. Three modes: "interview" walks an application owner through the four-question…
Triage a batch of raw security findings. Verify each is real,
Static source-code vulnerability scan. Reads a target directory (and THREAT_MODEL.md if present), spawns parallel review…
Use when the work spans several files or replaces a framework, language, auth, storage, or API layer (rewrites and migrations…
Scan and manage brownfield repository/worktree defaults for interviews
Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.
Drives the GUI of a visible local app window through `orca computer`: accessibility tree, clicks, typing, menus, dialogs, and…
Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…
Create a new Architecture Decision Record with sequential numbering and AgentDB registration