Date: 2026-04-30
Scope: Read-only audit of /Users/vijaysehgal/Downloads/02-Portfolio/ai-product-os against OpenAI Codex best practices.
Source baseline: https://developers.openai.com/codex/learn/best-practices
The project is partially following Codex best practices.
It is strong on durable context, AGENTS.md, planning before coding, review loops, MCP usage, and using subagents for bounded exploration. It is weaker on Codex-native portability, executable automation, CI validation, and instruction drift.
OpenAI's Codex best-practices guidance emphasizes clear goal/context/constraints/done-when prompts, planning for complex tasks, practical AGENTS.md, durable config/MCP setup, tests and review before accepting work, scoped skills, automations for stable repeated work, and bounded subagents for exploration or triage.
- Durable workflow context is strong:
AGENTS.md,CLAUDE.md, andproject-state.mdgive agents clear state, roles, and pipeline gates. - Planning and staged execution are mature:
commands/execute-plan.mdrequires task breakdown and PM approval before coding. - Review and QA discipline is better than average:
commands/review.mdhas severity gates, and MoneyMirror has meaningful Vitest and Playwright scripts inapps/money-mirror/package.json. - MCP and external workflow thinking exists: Linear, Neon, Vercel, and codebase-memory are documented or configured, with Codex project MCP intentionally conservative in
.codex/config.toml. - Durable learning loop exists: postmortems and
/learningfeed lessons back into agents, knowledge files, andCODEBASE-CONTEXT.md.
-
No real CI validation.
- Evidence:
.github/workflows/pr-auto-review.ymlonly installs Claude Code and runs reviewer assignment. - Impact: lint, typecheck, tests, builds, and E2E checks are not enforced before merge.
- Evidence:
-
Instruction drift exists.
- Evidence:
commands/and.claude/commands/are duplicated and not guaranteed equivalent. - Impact: documented command behavior can diverge from registered command behavior.
- Evidence:
-
Knowledge-loading rules conflict.
- Evidence:
CLAUDE.mdandcommand-protocol.mdprefer command-scoped knowledge loading, whilesystem-orchestrator.mdand.claude/rules/knowledge.mdsay agents must read all knowledge files. - Impact: agents can over-load context or follow different execution protocols.
- Evidence:
-
Technical rules conflict.
- Evidence:
.claude/rules/code-quality.mdsays never fire-and-forget promises in API routes, while newer telemetry guidance requires fire-and-forget PostHog with.catch()in latency-sensitive paths. - Impact: reviewers and implementers can make opposite calls on the same code.
- Evidence:
-
App-local
AGENTS.mdis too thin.- Evidence:
apps/money-mirror/AGENTS.mdonly warns about Next.js version behavior. - Impact: Codex gets little app-specific architecture, validation, or risk guidance when working inside the app.
- Evidence:
-
Codex-native portability is partial.
- Evidence: the repo is heavily Claude-native through
CLAUDE.md,.claude/commands, and.claude/rules. - Impact: Codex can read the repo, but the canonical workflow is not fully expressed in Codex-first surfaces.
- Evidence: the repo is heavily Claude-native through
-
Automation is advisory, not enforceable.
- Evidence: hooks and scripts exist, but several checks are advisory or omitted from root
check:all. - Impact: repeated workflow checks still rely on agent discipline instead of a hard automation backstop.
- Evidence: hooks and scripts exist, but several checks are advisory or omitted from root
-
Env template tracking risk.
- Evidence: app
.gitignorepatterns can ignore.env.local.example, while docs expect that file to exist. - Impact: onboarding, deploy checks, and agent setup can fail because expected env templates are missing or untracked.
- Evidence: app
- Add a standard CI workflow for active apps: install, lint, typecheck, test, build, and optionally Playwright smoke.
- Add
typecheckandvalidatescripts toapps/money-mirror/package.json, plus root scripts that delegate to active apps. - Pick one canonical command source and add drift detection for
.claude/commandsvscommands/. - Resolve the two instruction conflicts: knowledge-loading scope and telemetry fire-and-forget exception.
- Expand root and app
AGENTS.mdfor Codex-native usage, especially MoneyMirror. - Add an MCP runtime matrix covering Codex, Claude, Cursor, VS Code, and intentionally disabled integrations.
019dddab-d357-7390-9ad3-e3a4c48ac99a: reusable guidance,AGENTS.md, workflow docs.019dddab-d380-71e0-b685-c20df9279445: testing, validation, CI, review gates.019dddab-d3c2-7df3-9c58-1498889062ea: architecture, tooling, MCP, automation, drift.
AGENTS.mdCLAUDE.mdREADME.mdproject-state.mdcommand-protocol.mdsystem-orchestrator.md.codex/config.toml.cursor/settings.json.vscode/mcp.json.github/workflows/pr-auto-review.yml.claude/settings.json.claude/settings.local.json.claude/rules/agents.md.claude/rules/commands.md.claude/rules/code-quality.md.claude/rules/knowledge.md.claude/rules/testing.md.claude/rules/tech-stack.md.husky/pre-commit.husky/pre-push.lintstagedrc.jsonpackage.json.gitignorecommands/assign-reviewers.mdcommands/create-issue.mdcommands/create-plan.mdcommands/deploy-check.mdcommands/deslop.mdcommands/docs.mdcommands/execute-plan.mdcommands/gmail-sync.mdcommands/learning.mdcommands/linear-bind.mdcommands/linear-sync.mdcommands/peer-review.mdcommands/qa-test.mdcommands/review.mdagents/backend-engineer-agent.mdagents/code-review-agent.mdagents/learning-agent.mdagents/qa-agent.mdknowledge/engineering-lessons.mdknowledge/linear-operations.mdknowledge/prompt-library.mdexperiments/linear-sync/issue-013.jsonexperiments/plans/manifest-013.jsonexperiments/results/review-012.mdexperiments/results/peer-review-012.mdexperiments/results/qa-test-012.mdexperiments/results/deploy-check-012.mdexperiments/results/postmortem-012.mdapps/money-mirror/AGENTS.mdapps/money-mirror/CLAUDE.mdapps/money-mirror/README.mdapps/money-mirror/CODEBASE-CONTEXT.mdapps/money-mirror/package.jsonapps/money-mirror/tsconfig.jsonapps/money-mirror/vitest.config.tsapps/money-mirror/playwright.config.tsapps/money-mirror/eslint.config.mjsapps/money-mirror/next.config.tsapps/money-mirror/e2e/smoke.spec.tsapps/money-mirror/vercel.jsonapps/money-mirror/.gitignoreapps/money-mirror/.env.local.exampleapps/research-copilot/README.mdapps/research-copilot/package.jsonapps/research-copilot/.env.local.exampleapps/research-copilot/src/lib/db.tsapps/research-copilot/src/lib/ai/openrouter.tsapps/nykaa-personalisation/AGENTS.mdapps/nykaa-personalisation/CLAUDE.mdsrc/README.mdsrc/package.jsonscripts/lib/check-drift.jsscripts/lib/check-env-files.jsscripts/lib/check-file-sizes.jsscripts/lib/check-function-sizes.jsscripts/lib/check-gate-before-write.jsscripts/lib/check-test-colocation.jsscripts/lib/validate-docs.js