一键导入
odin-review-prompts
Review prompt templates, file-type classification, model selection, and reviewer launch instructions for Odin's Step 5c adversarial review.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Review prompt templates, file-type classification, model selection, and reviewer launch instructions for Odin's Step 5c adversarial review.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Session history query templates and filtering rules for Odin's Step 1d Recall phase. Advisory skill — if loading fails, proceed silently.
Evidence Bundle presentation template and confidence level definitions for Odin's Step 5e. Hard dependency — if loading fails, HALT.
Cross-cutting analysis heuristics for Mimir's Pass 2 review. Loaded before running CCA checks — provides the full heuristic library plus specification-aware and dynamic analysis.
基于 SOC 职业分类
| name | odin-review-prompts |
| description | Review prompt templates, file-type classification, model selection, and reviewer launch instructions for Odin's Step 5c adversarial review. |
This skill is a hard dependency for Odin's Step 5c adversarial review. It provides file-type classification, review prompt templates, model selection, and reviewer launch instructions.
Expected check names (must match the gate queries in odin.agent.md Step 5c):
review-mimir (Medium + Large)review-tyr (Medium + Large)review-heimdall, review-thor, review-loki (Large only)review-{name}-timeoutClassify the staged files into three categories:
.agent.md, .skill.md, and files named SKILL.md — behavioral specification files that define agent/skill instructions.md, .mdx, .txt, .yaml, .json, .xml, other config files (excluding .agent.md, .skill.md, and SKILL.md)Then select the prompt:
Use when all changed files are specification files (.agent.md, .skill.md, SKILL.md):
agent_type: "code-review"
model: "gpt-5.3-codex"
prompt: "Review the following staged changes to behavioral specification files.
Files changed: {list_of_files}.
Use the provided staged diff as the source of truth. Do not re-run git to discover changes.
<STAGED_DIFF>
{staged_diff}
</STAGED_DIFF>
These are agent/skill specification files. Evaluate:
- Cross-section logical consistency (do rules in one section contradict rules in another?)
- Template placeholder validity (are template placeholders in code blocks defined or established by convention?)
- Embedded code/SQL correctness (would the SQL, bash, or template blocks actually execute?)
- Behavioral edge cases (what happens when the spec's assumptions don't hold?)
- Gate/verification logic (are gates achievable? do they reference the right check names?)
- Contradictions with other spec files in the repo
Ignore: prose style, formatting preferences, section ordering.
For each issue: what's wrong, why it matters, and the fix.
If nothing wrong, say so."
Use when all changed files are documentation-only (.md, .mdx, .txt, .yaml, .json, .xml, config files — excluding .agent.md, .skill.md, and SKILL.md):
agent_type: "code-review"
model: "gpt-5.3-codex"
prompt: "Review the following staged changes.
Files changed: {list_of_files}.
Use the provided staged diff as the source of truth. Do not re-run git to discover changes.
<STAGED_DIFF>
{staged_diff}
</STAGED_DIFF>
This is a documentation/config change. Evaluate:
- Accuracy of technical claims (do code examples match actual APIs?)
- Missing or outdated information
- Broken links or references to nonexistent files/symbols
- Contradictions with other docs in the repo
- Clarity and completeness for the target audience
Ignore: prose style, formatting preferences.
For each issue: what's wrong, why it matters, and the fix.
If nothing wrong, say so."
Use when code files are present (with or without spec/doc files). Append spec criteria if .agent.md, .skill.md, or SKILL.md files are also in the diff:
agent_type: "code-review"
model: "gpt-5.3-codex"
prompt: "Review the following staged changes.
Files changed: {list_of_files}.
Use the provided staged diff as the source of truth. Do not re-run git to discover changes.
<STAGED_DIFF>
{staged_diff}
</STAGED_DIFF>
Find: bugs, security vulnerabilities, logic errors, race conditions,
edge cases, missing error handling, and architectural violations.
Ignore: style, formatting, naming preferences.
For each issue: what the bug is, why it matters, and the fix.
If nothing wrong, say so.
{IF_SPEC_FILES_IN_DIFF}
Additionally, for any .agent.md, .skill.md, or SKILL.md files in the diff, also evaluate:
- Cross-section logical consistency (do rules contradict across sections?)
- Template placeholder validity (are template placeholders defined or established?)
- Embedded code/SQL correctness (would the blocks actually execute?)
- Behavioral edge cases (what if the spec's assumptions don't hold?)
{/IF_SPEC_FILES_IN_DIFF}"
The {IF_SPEC_FILES_IN_DIFF}...{/IF_SPEC_FILES_IN_DIFF} block is a conditional inclusion marker for Odin to expand at runtime: include the enclosed text only when .agent.md, .skill.md, or SKILL.md files appear in the staged diff's file list. When no spec files are present, omit the block entirely.
This section governs Step 5c only. Operational skill loading for this step is direct — do not consult companion-skill or <available_skills> guidance here.
When materializing reviewer prompts, Odin expands in six phases:
{tyr_model}, {mimir_model}, and (Large) {heimdall_model}, {thor_model}, {loki_model} with concrete model strings using the model-resolution rules in Sections 4 and 5. For {mimir_model}, apply this precedence: instruction-file override from .github/copilot-instructions.md → table Primary → Fallback on model error. For all other variables, use the table Primary → Fallback on model error.{panel_list} for Medium/Large.{IF_...}...{/IF_...} blocks — include or remove the enclosed text based on whether spec files are in the diff.<STAGED_DIFF> ... </STAGED_DIFF> block in the selected review prompt with instructions telling reviewers that the inline diff was omitted for size and that they should inspect files individually using git --no-pager diff --staged -- <path> based on the provided file list.{list_of_files}, {repo_path}, {panel_list}, etc. with captured values. If the size guard did not trigger, this step also substitutes {staged_diff} inside <STAGED_DIFF> tags — the placeholder is expanded, then the resulting diff content is treated as opaque. After substitution, any brace-like text in the expanded content (e.g., {variable} appearing inside the actual diff payload) is not re-expanded. Backtick-fenced inline code (e.g., `{example}`) in the template prose is also left as-is.{...} tokens outside the expanded diff payload. If unresolved placeholders remain, HALT instead of launching a malformed reviewer prompt.agent_type: "asgard:tyr"
model: "{tyr_model}"
name: "tyr"
description: "Convention enforcement review"
prompt: "{selected_review_prompt}"
Tyr — the god of law and justice. Reviews against code quality conventions: method length, complexity, naming, nesting, duplication, error handling, async correctness, and test coverage.
INSERT verdict: phase = 'review', check_name = 'review-tyr'.
agent_type: "asgard:mimir"
model: "{mimir_model}"
name: "mimir"
description: "Heuristic pre-screening review"
prompt: "Pre-screen the following staged changes. Repo: {repo_path}. Files: {list_of_files}.
review_context=panel, panel_reviewers={panel_list}
Use the provided staged diff as the source of truth. Do not re-run git to discover changes.
<STAGED_DIFF>
{staged_diff}
</STAGED_DIFF>"
Set review context based on task size:
review_context=panel, panel_reviewers=tyr,mimirreview_context=panel, panel_reviewers=tyr,mimir,heimdall,thor,lokiSet {panel_list} based on task size (for Medium/Large prompt substitution):
tyr,mimirtyr,mimir,heimdall,thor,lokiSubstitute {panel_list} into the template above. This rewrite happens during the render-order step above, before unresolved-placeholder verification.
Mimir — guardian of the Well of Wisdom. Performs structured 3-pass review: walkthrough → file-by-file analysis → structured findings with review effort scoring.
INSERT verdict: phase = 'review', check_name = 'review-mimir'.
Tyr and Mimir are custom agents with rich behavioral instructions — their diversity comes from agent specs, not model family. Unlike Heimdall/Thor/Loki (generic code-review agents where model IS the diversity), Tyr/Mimir use a simple primary/fallback table:
| Reviewer | Primary | Fallback | Rationale |
|---|---|---|---|
| Tyr | gpt-5.3-codex | gpt-5.4-mini | Pattern matching (naming, nesting, duplication) — fast models handle this well |
| Mimir | gpt-5.4 | claude-sonnet-4.6 | Strong instruction-following for Mimir's structured 3-pass review; cross-family fallback ensures Mimir is available even during OpenAI API outages |
Instruction-file override: If the repo's .github/copilot-instructions.md specifies mimir-model: {model} (e.g., mimir-model: claude-opus-4.6), use that model instead of the table default. This lets teams opt into premium models per-project without changing the plugin.
Materialization: Before launching Tyr and Mimir, resolve {tyr_model} and {mimir_model} to concrete model strings. For Mimir: use the instruction-file override if present, otherwise the table Primary. For Tyr: use the table Primary. These are subject to the general materialization rule in Section 3.
Fallback: If the primary model is unavailable (task fails with a model error), retry with the Fallback model. Record the substitution as a ledger row: phase = 'review', check_name = 'review-{name}-model-fallback', tool = '{name}', passed = 1, and output_snippet noting the original model and the substitute. This row is bookkeeping — not a review verdict.
Large OR 🔴 files: After launching Tyr + Mimir, launch Heimdall/Thor/Loki in parallel.
Maximize model diversity across the review panel. Check Odin's exact model from <model_information>, then select from the table. The Anthropic rows use the exact model ID (not just family) so Loki avoids self-review while still adding an Anthropic perspective to the generic lane:
| Odin's model | Heimdall | Thor | Loki |
|---|---|---|---|
claude-opus-4.6 | gpt-5.3-codex | gpt-5.4 | claude-sonnet-4.6 |
| Other Anthropic (Claude) | gpt-5.3-codex | gpt-5.4 | claude-opus-4.6 |
| OpenAI (GPT) | gpt-5.3-codex | claude-sonnet-4.6 | claude-opus-4.6 |
| Google (Gemini) | gpt-5.3-codex | claude-sonnet-4.6 | gpt-5.4 |
| Unknown / other | gpt-5.3-codex | gpt-5.4 | claude-opus-4.6 |
Why Anthropic gets two rows: When Odin is claude-opus-4.6, Loki can't use the same model (self-review). claude-sonnet-4.6 gives a current-generation Anthropic perspective different from Odin. Note: if Mimir falls back from gpt-5.4 to claude-sonnet-4.6 in this scenario, Mimir and Loki share the same model — acceptable in degraded mode. Record the overlap in Mimir's review-mimir-model-fallback ledger row (forced_overlap_with=loki in output_snippet). When Odin is any other Anthropic model, Loki uses claude-opus-4.6 — the strongest available, different from both Odin and the H/T/L panel.
Fallback: If a selected model is unavailable (task fails with a model error), substitute the next model in the same family. Record the substitution as a ledger row: phase = 'review', check_name = 'review-{name}-model-fallback', tool = '{name}', passed = 1, and output_snippet noting the original model, the substitute model, and any forced overlap. This row is bookkeeping — not a review verdict. No two of the three (Heimdall/Thor/Loki) should use the same model — if forced by availability, note the overlap in output_snippet.
Google-family future-proofing: When a supported Google-family model becomes available in the runtime, slot it into the Thor column for Anthropic/OpenAI rows — giving 3-family coverage. Until then, Thor uses the cross-family selection above.
Before launching Heimdall/Thor/Loki, look up Odin's model in the table above: first try an exact match on Odin's model ID; if no exact row exists, match by model family (Anthropic/OpenAI/Google); if neither matches, use the "Unknown / other" row. Resolve {heimdall_model}, {thor_model}, {loki_model} to concrete model strings from the matching row. These are subject to the general materialization rule — substitute them into the task templates below alongside the previously materialized {list_of_files} and, when the size guard did not trigger, {staged_diff}.
agent_type: "code-review", model: "{heimdall_model}", name: "heimdall", description: "Baseline code review", prompt: "{selected_review_prompt}"
agent_type: "code-review", model: "{thor_model}", name: "thor", description: "Cross-family code review", prompt: "{selected_review_prompt}"
agent_type: "code-review", model: "{loki_model}", name: "loki", description: "Adversarial trickster review", prompt: "{selected_review_prompt}"
Heimdall (watcher), Thor (thunder), Loki (trickster) — Odin's children stand guard. Loki finds the subtle, devious problems everyone else misses.
INSERT each verdict: phase = 'review', check_name = 'review-{name}' (e.g., review-heimdall, review-thor, review-loki).