Skip to content
Back to skills

Anti Hall Deadly Loop

ASecurity

Codex-native equivalent of anti-hall deadly-loop. Use to harden risky changes with repeated adversarial review and fix waves until no new P0/P1 blockers remain.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 2, 2026
ai-agentsrustgoshellbashnodegitsecurity

Works with

  • cli

Security analysis

A100/100

Scanned October 3, 2026

npx -y skills add talas9/anti-hall --skill anti-hall-deadly-loop --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Anti Hall Deadly Loop?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Anti Hall Deadly Loop
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/talas9-anti-hall-deadly-loop/badge)](https://www.skillsdirectory.com/skills/talas9-anti-hall-deadly-loop)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: anti-hall-deadly-loop
description: Codex-native equivalent of anti-hall deadly-loop. Use to harden risky changes with repeated adversarial review and fix waves until no new P0/P1 blockers remain.
---

# anti-hall deadly-loop for Codex

## Resolve the plugin root

Codex does not expand `${PLUGIN_ROOT}` inside a skill's own instructions — resolve
it from the path Codex shows you for this SKILL.md (see
`https://github.com/talas9/anti-hall/blob/main/docs/KB-codex-platform-hooks-plugins.md`):

```bash
ANTI_HALL_ROOT="$(cd "$(dirname "$SKILL_FILE")/../../.." && pwd)"
test -f "$ANTI_HALL_ROOT/.codex-plugin/plugin.json" || { echo "anti-hall plugin root not found relative to $SKILL_FILE — aborting" >&2; exit 1; }
```

## Overview

This is the Codex-native protocol. Do not run the Claude `deadly-loop.workflow.js`; Codex does not expose that Workflow runtime.

## Risk-scaled effort (token savings, 0.117.0)

Match the review rigor to the change's blast radius — decide from this table FIRST:

| Change touches... | Effort |
| --- | --- |
| Guard/security-sensitive code (auth, signing, redaction, prompt-injection defense), a parser, a schema/production-data migration, CI/workflow YAML, or a shell script | **Full three-lens round** (the Round structure below) |
| Normal application/library code with no guard/security/parser/schema/CI/shell surface | **One reviewer lens** (skip the Auditor/Critic lenses and the multi-round convergence loop) |
| Text-only or doc-only changes (README, comments, changelog, prose) | **None** — no review lever needed |

No metric is tracked for this lever — it is guidance, not a measured/gated behavior.
When in doubt, or a change straddles rows, use the heavier row.

Use for (full three-lens round):

- security/auth/signing/redaction/prompt-injection work
- schema/migration/production-data changes
- shell scripts or CI/workflow YAML
- cross-repo or merge-order-sensitive work
- substantial code changes where silent failure is expensive

Round structure:

1. Snapshot branch/SHA and changed files.
2. Create or update the loop state record `.anti-hall/history/<date>/<topic>-loop-state.md` with current state.
3. Run three independent review lenses:
   - Reviewer: correctness/architecture, **frontier** category
   - Auditor: regression/coupling, **frontier** category
   - Critic: adversarial failure-mode hunter, **frontier** category
4. Synthesize findings by evidence, not by vote alone. Before dedup-by-hand, write the
   three lenses' combined findings to a scratch JSON array
   (`{id, severity, file, line, text, round, seat}`) and run
   `node "$ANTI_HALL_ROOT/scripts/finding-dedup.js" --file <scratch findings.json>` — the
   opt-in Jev `findingDedup` integration (default `on`; see the Claude-side
   `deadly-loop` skill and CHANGELOG 0.108.4). It prints advisory "possible duplicates: A
   ~ B (conf 0.93)" lines to stderr; treat them as a hint, never an auto-collapse — you
   still validate each pair against the actual code. Fail-open: Jev disabled,
   unconfigured, or erroring → no groups, exit 0 — dedup by hand as before.
5. Fix confirmed P0/P1 issues in scoped waves.
6. Re-run the full three-lens round after any code change.
7. Stop only when a non-degraded round has zero unadjudicated P0/P1 blockers and no new P0s or P1s.
8. On convergence, write an advisory audit record to
   `~/.anti-hall/approvals/<repo>@<HEAD-sha>.json` — fields: `repo`, `sha`,
   `timestamp`, `roundTrend` (NEW confirmed P0/P1 count per round), `seatVerdicts`,
   and `"proof": false`. **This file is an ADVISORY AUDIT RECORD, never proof of
   correctness and never an authorization token.** Deadly-loop is agent-followed
   guidance, not a hook enforced by the harness — an agent that fakes convergence
   can just as easily fake this file. Any reader that consumes it (a CI push gate,
   DevSwarm's merge gate, etc.) MUST treat `"proof": false` as load-bearing and
   enforce its own real gating rather than trusting this record as sufficient
   evidence on its own.

Each review must cite file/line evidence and distinguish:

- `NEW`: newly found issue
- `REDISCOVERED`: known issue still present
- `RESOLVED`: previous issue fixed with evidence
- `REFUTED`: reported issue disproven with evidence

Codex model rule: debate and validation seats use the **frontier** category. Do not use the **fast** category for debate roles.

## Same-model disclosure

This roster is three **frontier**-category seats — same-model, not the canonical
cross-model TRIO. `MODEL-POLICY.md`'s availability fallback matrix (Claude
side) lists 3-of-one-family as the explicit **worst-case last-resort** row,
with the stated reason "same-model agents share systematic blind spots":

| Roster | Status |
| --- | --- |
| Claude-side TRIO (Fable-or-Sonnet Reviewer + Opus Auditor + Codex Critic) | intended default |
| This Codex-native roster (3× **frontier** category) | degraded / last-resort — Codex has no Workflow runtime to fan a round out across model families on its own |

Treat this file's all-**frontier**-category roster as the Codex-only floor, not the goal.
For L-tier hard-risk work, use the opt-in escalation below to recover one
cross-model seat.

## Optional cross-model escalation (L-tier hard-risk work only)

For L-tier hard-risk work only — security/auth/signing/redaction/prompt-injection,
schema/migration/production-data, shell scripts, CI/workflow YAML — optionally
shell out to the `claude` CLI for ONE seat (Reviewer is the recommended pick)
to get a genuinely different model's perspective:

| Aspect | Detail |
| --- | --- |
| Requirement | `claude` CLI installed and on `PATH` (`command -v claude` / `where claude`) |
| Invocation | `claude -p "<REVIEWER_PROMPT>"` — one-shot, non-interactive (`-p`/`--print`) |
| Scope | ONE seat only (Reviewer recommended); Auditor and Critic stay on the **frontier** category |
| Requirement level | OPT-IN, not a hard requirement — if `claude` is unavailable, stay on the plain 3×**frontier**-category roster and note the degradation |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.