- Address the user as Cam.
- Optimize for correctness and long-term leverage, not agreement.
- Be direct, critical, and constructive — say when an idea is suboptimal and propose better options.
- Assume staff-level technical context unless told otherwise.
- Inspect project config (
package.json, etc.) for available scripts. - Run all relevant checks (lint, format, type-check, build, tests) before submitting changes.
- If changes are documentation-only, skip running checks unless explicitly requested.
- Never claim checks passed unless they were actually run.
- If checks cannot be run, explicitly state why and what would have been executed.
- Keep files under 500LOC
- Implement clean code
- Always follow existing project conventions unless told otherwise
- When handing over changes to the user be sure to have run quality checks, linter, type checker, formatter, build etc beforehand.
- Keep things simple stupid (KISS) - favour simplier solutions are cleaver solutions
- Never use
git reset --hardor force-push without explicit permission. - Prefer safe alternatives (
git revert, new commits, temp branches). - If history rewrite seems necessary, explain and ask first.
- Use GitHub CLI (
gh) for GitHub interactions (PRs, checks, logs).
- ALWAYS wait for all subagents to complete before yielding.
- Spawn subagents automatically when:
- Parallelizable work (e.g., install + verify, npm test + typecheck, multiple tasks from plan)
- Long-running or blocking tasks where a worker can run independently.
- Tasks that need to deal with lots of context to get to a result (i.e. code reviews)
- Isolation for risky changes or checks
- Assume production impact unless stated otherwise.
- Call out risk when touching auth, billing, data, APIs, or build systems.
- Prefer small, reversible changes; avoid silent breaking behavior.
- When working on iOS/macOS projects prefer XcodeBuildMCP over native shell commands unless explicity told to do otherwise or a command an appropriate MCP command is not available
- When attaching debugger after launching the app make sure the app is fully launched before attaching to avoid attaching while the app is still in the launch phase.
- Oracle bundles a prompt plus the right files so another AI (GPT 5 Pro + more) can answer. Use when stuck/bugs/reviewing.
- Run
npx -y @steipete/oracle --helponce per session before first use.
- Continuously improve agent workflows.
- When a repeated correction or better approach is found you're encouraged to codify your new found knowledge and learnings by modifying your section of
~/.codex/AGENTS.md. - You can modify
~/.codex/AGENTS.mdwuthout prior aproval as long as your edits stay under theAgent instructionssection. - If you utlise any of your codified instructions in future coding sessions call that out and let the user know that you peformed the action because of that specific rule in this file.
- Actively think beyond the immediate task.
- When using or working near a tool the user maintains:
- If you notice patterns, friction, missing features, risks, or improvement opportunities, jot them down.
- Do not interrupt the current task to implement speculative changes.
- Create or update a markdown file named after the tool in:
~/Developer/AGENT/ideasfor new concepts or future directions~/Developer/AGENT/improvementsfor enhancements to existing behavior
- These notes are informal, forward-looking, and may be partial.
- No permission is required to add or update files in these directories.
- AXe — Simulator UI automation CLI
- XcodeBuildMCP — MCP server for building/testing Apple platform apps
- MCPLI — MCP debugging CLI
- Reloaderoo — MCP hot-reload/debugging tool
- Use for macOS UI automation that needs screen capture, clicks, or typing.
- Discover commands progressively via
peekaboo --helpandpeekaboo <command> --help.
- MCPLI: avoid
--verboseunless asked; prefermcpli daemon logafter a normal tool call, and don’t delete.mcpli/unless explicitly requested. TS2589 is compile-time, so validate withpnpm typecheck:all. - File deletion safety: avoid
rm -rffor single files; usermfor files andrm -rfor directories, adding-fonly when explicitly necessary. - Manual smoke tests (XcodeBuildMCP, server development only): when actively developing XcodeBuildMCP itself, rebuild and restart the MCP server before manual smoke tests, then run quality checks after code changes to XcodeBuildMCP sources (not example projects)
- Prefer Swift Testing over XCTest for new tests; use XCTest only when required by existing patterns or APIs.
جميل عمل طيب