Imported from talas9/anti-hall (
plugins/anti-hall/codex/skills/anti-hall-activate/SKILL.md). Install upstream withnpx skills add talas9/anti-hall --skill anti-hall-activate. Copyright stays with the author.
anti-hall activate for Codex
Activation for Codex installs the supported Codex hook subset and writes an advisory sentinel. It does not touch Claude Code settings.
Resolve the plugin root
Codex does not expand ${PLUGIN_ROOT} inside a skill's own instructions — that
variable is only set for plugin-bundled hook commands (see
docs/KB-codex-platform-hooks-plugins.md). Codex does show you this skill's own
file path when it selects the skill ("Codex starts with each skill's name,
description, and file path" — official Codex Skills doc). Resolve the plugin
root from that path before running anything below:
# SKILL_FILE = the absolute path Codex showed you for this SKILL.md.
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; }
- Install project-local Codex hooks:
node "$ANTI_HALL_ROOT/codex/install-codex.js"
- For global Codex hooks instead:
node "$ANTI_HALL_ROOT/codex/install-codex.js" --global
- Verify:
node "$ANTI_HALL_ROOT/hooks/doctor.js"
codex features list
test -f .codex/hooks.json && sed -n '1,220p' .codex/hooks.json
- Write sentinel:
node -e "const fs=require('fs'),os=require('os'),path=require('path');const d=path.join(os.homedir(),'.anti-hall');fs.mkdirSync(d,{recursive:true});fs.writeFileSync(path.join(d,'codex-activated.json'),JSON.stringify({activatedAt:new Date().toISOString(),scope:process.cwd()},null,2)+'\n')"
Codex limitations after activation:
- shell guards are hard hooks
- session/prompt/stop nudges are hooks
- edit-time
api-guardandship-it-guardare not hard hooks in Codex today - subagent lifecycle hooks are not available in Codex today
Use anti-hall-doctor to inspect the active state.