Status: deferred (info-only tracking)
ArmorCodex intentionally has NO native /armor slash command today. Policy commands are typed as plain prompts with no leading slash (armor policy list), intercepted by the UserPromptSubmit hook, plus the policy_command MCP tool. This shipped in #41 / PR #42.
Why no slash today
Codex custom-prompts (~/.codex/prompts/*.md) are the only mechanism that expands to literal submitted text the hook can see, but they are:
Skills cannot do literal-text expansion, so they cannot deterministically produce the armor ... text the UserPromptSubmit hook matches on. Building a product slash command on a deprecated and regressed mechanism is not worth it.
This is the planned fallback, not a failure: Step 0 of the parity plan gated the trigger token on how Codex routes slash text; the finding was "no stable slash surface," so the non-slash + MCP path was taken. Everything else in the parity plan shipped as designed.
Revisit trigger
Reopen this work when EITHER:
What to do when revisiting
Ship a first-class slash alias in the plugin + installer whose body expands to armor $ARGUMENTS, so it flows straight into the existing hook path with zero parser changes. Verify the exact invocation token on the then-current Codex version before wiring the installer.
Refs
Status: deferred (info-only tracking)
ArmorCodex intentionally has NO native
/armorslash command today. Policy commands are typed as plain prompts with no leading slash (armor policy list), intercepted by the UserPromptSubmit hook, plus thepolicy_commandMCP tool. This shipped in #41 / PR #42.Why no slash today
Codex custom-prompts (
~/.codex/prompts/*.md) are the only mechanism that expands to literal submitted text the hook can see, but they are:/prompts:armor, never a bare/armor.Skills cannot do literal-text expansion, so they cannot deterministically produce the
armor ...text the UserPromptSubmit hook matches on. Building a product slash command on a deprecated and regressed mechanism is not worth it.This is the planned fallback, not a failure: Step 0 of the parity plan gated the trigger token on how Codex routes slash text; the finding was "no stable slash surface," so the non-slash + MCP path was taken. Everything else in the parity plan shipped as designed.
Revisit trigger
Reopen this work when EITHER:
What to do when revisiting
Ship a first-class slash alias in the plugin + installer whose body expands to
armor $ARGUMENTS, so it flows straight into the existing hook path with zero parser changes. Verify the exact invocation token on the then-current Codex version before wiring the installer.Refs