I have been thinking about the usefulness of Plan Mode and Pursue Goal as a workflow for building software with ChatGPT Projects and Codex.
The idea is simple: separate design thinking from execution, but keep both visible, traceable, and connected.
In this workflow, Plan Mode becomes the living design space for a project. This is where I would work with ChatGPT to define the product direction, tech stack, frontend design, database schema, API contracts, sprint scope, tradeoffs, rejected ideas, and implementation constraints.
For example, if I have an app idea, I could use Plan Mode inside ChatGPT Projects to create and maintain documents such as:
docs/product-plan.md
docs/architecture.md
docs/api-contract.md
docs/database-schema.md
docs/frontend-design.md
docs/sprints/sprint-3-api-auth.md
These documents would become the design and planning source of truth.
Then, once a design or sprint is approved, I would switch to Pursue Goal.
Pursue Goal would turn the planning context into executable engineering goals, for example:
Sprint title
Sprint 3 — API, AI/NLP Job Insights, and Product Validation
SDLC focus
API design, authentication contract, secured workflow access.
Business objective
Expose Trackly’s core job application workflow through a secured API that can support future clients.
Engineering objective
Add Django REST Framework, SimpleJWT, job application serializers, secured API routes, and database-backed API tests.
Tasks
Install and configure Django REST Framework.
Add JWT authentication.
Create serializers for job applications.
Add protected API routes.
Write API tests.
Concrete deliverables
Files created or modified:
- requirements.txt
- config/settings/base.py
- jobs/api/serializers.py
- jobs/api/views.py
- jobs/api/urls.py
- tests/test_jobs_api.py
Commands to run
docker compose exec web python manage.py makemigrations jobs --settings=config.settings.local
docker compose exec web pytest
Expected receipt
10 passed
This kind of goal document is extremely useful for Codex because it reduces ambiguity. Codex does not have to rediscover intent from scattered chat history. It can work from a concrete execution contract: files, commands, acceptance criteria, and expected test results.
The workflow becomes:
Plan Mode
Product idea -> architecture -> schema -> API contract -> UI flows -> sprint plan
Pursue Goal
Goal doc -> implementation -> tests -> review -> receipt -> update plan
I think the key detail is that ChatGPT Projects should not completely replace the repo as a source of truth. Instead, ChatGPT Projects can be the planning and orchestration source of truth, while the repo stores exported artifacts that Codex, VS Code, Git history, tests, and future contributors can all access.
That gives us a tighter loop:
Design -> Implement -> Test -> Review -> Update Plan
Each Pursue Goal could also have a lifecycle:
Draft -> Approved -> In Progress -> Implemented -> Tested -> Reviewed -> Done
And after implementation, Codex could write back a receipt:
Changed files
Commands run
Test results
Deviations from plan
Follow-up tasks
The biggest benefit is reducing drift. The design decisions, implementation work, test evidence, and review notes stay aligned across ChatGPT and Codex.
For solo builders and small teams especially, I think this could become a very practical SDLC workflow inside the ChatGPT/Codex ecosystem:
- Plan Mode decides what should exist.
- Pursue Goal makes it exist with evidence.
- Codex implements against the approved goal.
- The repo keeps durable project artifacts.
- The plan is updated when implementation reveals new information.
This feels like a strong direction for turning ChatGPT Projects from a conversation space into a more structured software delivery workspace.