Episode 8 of 11

Context, Reasoning & TODO's

Understand how Codex gathers context, plans with chain-of-thought reasoning, creates implementation plans, and tracks progress through task checklists.

How Codex Thinks

Codex doesn't just blindly generate code. Before writing a single line, it follows a systematic reasoning process that mirrors how experienced developers work. Understanding this process helps you give better prompts and get better results.

Phase 1 — Context Gathering

Before generating code, Codex acts like a real developer joining a new project. It uses terminal tools to understand your codebase:

# What Codex does behind the scenes:
grep -r "import" src/         # Trace dependencies
find . -name "*.ts" -type f   # Discover project structure
cat package.json              # Read dependencies
cat tsconfig.json             # Understand build config

It builds a mental map of your component tree, understanding how files relate to each other, which modules depend on which, and where the relevant code lives.

Phase 2 — Chain-of-Thought Reasoning

Codex writes out hidden <thought> blocks to plan its approach before acting. This is similar to how a developer sketches out an approach on a whiteboard:

<thought>
The user wants to add pagination to the API.
Let me break this down:
1. The current API returns all results in one query
2. I need to add page/limit query parameters
3. The SQL query needs LIMIT and OFFSET
4. The response needs total count for the frontend
5. The frontend list component needs a "Load More" button
</thought>

This prevents the agent from rushing into incorrect implementations. It considers edge cases, dependencies, and the full impact of changes.

Phase 3 — Implementation Plans

For large features, the agent first generates an implementation plan before writing any code:

# Implementation Plan: Add Pagination

## Proposed Changes

### Backend API
- Modify GET /api/users to accept ?page=1&limit=20
- Add COUNT query for total results
- Return pagination metadata in response

### Frontend
- Add usePagination hook
- Update UserList component with Load More button
- Handle loading and error states

### Database
- Add index on users.created_at for efficient sorting

Codex will ask you to review and approve the plan before it writes any real code. This ensures you're aligned on the approach.

Phase 4 — Checklist Execution

After planning, Codex creates a task.md checklist and works through it systematically:

# Task: Add Pagination

- [x] Add page/limit params to API route
- [x] Add COUNT query for total
- [x] Update response format with metadata
- [/] Create usePagination hook        ← Currently working
- [ ] Update UserList component
- [ ] Add loading states
- [ ] Write unit tests

You can track progress live as the agent checks off items. The markers mean:

  • [x] — Completed
  • [/] — In progress
  • [ ] — Not started

Giving Better Prompts

Understanding how Codex reasons helps you write more effective prompts:

  • Be specific about scope"Add pagination to the /api/users endpoint" is better than "Add pagination"
  • Mention constraints"Use cursor-based pagination, not offset-based"
  • Reference existing patterns"Follow the same pattern as /api/products"
  • State what NOT to do"Don't modify the database schema"

What's Next

In the next episode, we'll explore MCP Servers — the Model Context Protocol that lets Codex securely interact with GitHub, databases, and external APIs.