# Ask Codex User Command

audience: AI coding agents first.

status: ACTIVE
task IDs: #5
source request: On 2026-08-13 owner directed: move `/ask-codex` from agent-invocable skill registry to slash-command surface so only owner invokes it. Preserve command behavior. Agents MUST NOT trigger it from natural-language matching or Skill calls. On 2026-08-14 owner reported reviewer subagents immediately delegating through Ask Codex and required the remaining Codex skill description to read exactly: `NEVER USE IT UNLESS EXPLICITLY ASKED! IT IS FOR HUMAN INVOKATION ONLY`, then push and deploy before another deployment overwrites the live correction.

## Outcome

Install `/ask-codex` as user-invoked command. Remove `ask-codex` skill. Preserve model parsing, prompt construction, direct `cdx exec`, logging, result handling, and safety constraints when command tag is loaded by owner invocation.

## Acceptance criteria

1. Canonical source exists at `modules/workstation/claude/commands/ask-codex.md`.
2. `modules/workstation/claude/skills/ask-codex/SKILL.md` no longer exists.
3. Command has no skill frontmatter or natural-language triggers.
4. Command states owner invocation is authorization for one direct Codex call; agent MUST NOT recursively invoke slash command, Skill, agent, or another coding agent.
5. Deployment installs command under Claude command directory and removes stale installed skill.
6. Existing model/effort parsing, default account, direct synchronous `cdx exec`, logfile reading, and result reporting remain intact.
7. Tests prove source ownership, installed link/bytes, stale skill absence, and command contract.
8. Real installed `/ask-codex` is visible after deployment without spending model quota for verification.

## Preserved WIP

- Original skill behavior preserved from `modules/workstation/claude/skills/ask-codex/SKILL.md` before deletion.
- Unrelated shared-checkout and worktree changes untouched.

## Constraints

- User-only surface means no natural-language trigger registration. It does not claim a model can never type command text; system command dispatch and instructions MUST keep invocation owner-originated.
- NEVER run Codex as verification; deterministic source/install checks suffice.
- Local Claude configuration follows install-before-land.

## Execution steps

1. Trace command deployment and tests.
2. Convert skill document to command document; remove skill source and stale references that authorize agent invocation.
3. Add focused contract/deployment tests.
4. Install canonical command and remove installed skill; verify exact bytes and discovery.
5. Commit, guarded land, canonical deploy, reverify installed state.

## Current receipt

- 2026-08-13: Isolated worktree `wt/ask-codex-command` created from current `origin/main`.
- 2026-08-14: Claude command source is present and explicitly owner-only; Claude skill source is absent. Remaining Codex skill description now reads exactly `NEVER USE IT UNLESS EXPLICITLY ASKED! IT IS FOR HUMAN INVOKATION ONLY`; deterministic assertion and diff check pass.

## Next executable action

Replace remaining Codex skill description exactly as owner directed; run focused deterministic checks; commit, push, deploy, and verify installed text. Then resume multilingual Slice 1 without subagents; main agent performs review directly.