<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Micah Stubbs's Weblog: requirements-gathering</title><link href="https://micahstubbs.ai/" rel="alternate"/><link href="https://micahstubbs.ai/tags/requirements-gathering.atom" rel="self"/><id>https://micahstubbs.ai/</id><updated>2026-09-10T22:03:40.106016+00:00</updated><author><name>Micah Stubbs</name></author><entry><title>Teaching codex-cli to AskUserQuestion</title><link href="https://simonwillison.net/2026/Sep/10/teaching-codex-to-ask-one-question-at-a-time/#atom-tag" rel="alternate"/><published>2026-09-10T22:03:40.106016+00:00</published><updated>2026-09-10T22:03:40.106016+00:00</updated><id>https://simonwillison.net/2026/Sep/10/teaching-codex-to-ask-one-question-at-a-time/#atom-tag</id><summary type="html">
    &lt;!-- Draft: 2026-09-10. Pipeline stage: SWS, applied after humanizer. Final draft. --&gt;

I made [codex-ask-user-question](https://github.com/micahstubbs/codex-ask-user-question), a skill that brings the `AskUserQuestion` interview pattern from [Anthropic's Claude Code](https://claude.com/product/claude-code) to [OpenAI's Codex CLI](https://github.com/openai/codex). It tells Codex to read the project, then ask one question at a time through its native `request_user_input` tool.

You can start with:

```text
ask me to confirm the emergent architecture you see, based on what we've built so far in this project
```

then, the agent will ask you a series of questions with relevant multiple choice options to choose from. The recommended option is shown first. Each option is presented with a brief descriptions that describes the tradeoffs inherent in that choice. The instructions tell Codex to wait for your answer and stop asking once it has enough context to proceed.

My favorite detail is in the [skill instructions](https://github.com/micahstubbs/codex-ask-user-question/blob/master/skills/ask-user-question/SKILL.md): explore before asking. For a caching layer, acceptable staleness might need a conversation. The dependencies already in the project should be something the agent reads for itself.

With Codex CLI and Bash 4 or newer available:

```bash
git clone https://github.com/micahstubbs/codex-ask-user-question.git
cd codex-ask-user-question
./install.sh
```

That symlinks the skill into `~/.codex/skills/ask-user-question/`, so a `git pull` in the repository updates the installed skill too.

One setup detail: on Codex versions with the Default mode feature flag, run the [enable script](https://github.com/micahstubbs/codex-ask-user-question/blob/master/scripts/enable-request-user-input.sh), then restart Codex:

```bash
scripts/enable-request-user-input.sh
```

Plan mode exposes the tool without that flag. If the tool is absent or the runtime rejects it, the skill tells Codex to explain the limitation once and fall back to one Markdown question.

The skill supplies interview instructions; Codex supplies the question UI.

    
        &lt;p&gt;Tags: &lt;a href="https://micahstubbs.net/tags/codex-cli"&gt;codex-cli&lt;/a&gt;, &lt;a href="https://micahstubbs.net/tags/claude-code"&gt;claude-code&lt;/a&gt;, &lt;a href="https://micahstubbs.net/tags/agent-skills"&gt;agent-skills&lt;/a&gt;, &lt;a href="https://micahstubbs.net/tags/developer-tools"&gt;developer-tools&lt;/a&gt;, &lt;a href="https://micahstubbs.net/tags/requirements-gathering"&gt;requirements-gathering&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="codex-cli"/><category term="claude-code"/><category term="agent-skills"/><category term="developer-tools"/><category term="requirements-gathering"/></entry></feed>