{"id":2943,"date":"2026-04-25T10:07:52","date_gmt":"2026-04-25T10:07:52","guid":{"rendered":"https:\/\/aiopsschool.com\/blog\/?p=2943"},"modified":"2026-04-25T11:04:13","modified_gmt":"2026-04-25T11:04:13","slug":"coding-best-practices-using-codex-for-laravel-developers","status":"publish","type":"post","link":"https:\/\/aiopsschool.com\/blog\/coding-best-practices-using-codex-for-laravel-developers\/","title":{"rendered":"Coding Best Practices using Codex for Laravel Developers"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Option 1 <\/h2>\n\n\n\n<p>Do <strong>not<\/strong> start Codex from the parent folder unless you need all projects.<\/p>\n\n\n\n<p>For each Laravel project, add ignore files:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat &gt; .codexignore &lt;&lt;'EOF'\nvendor\/\nnode_modules\/\nstorage\/\nbootstrap\/cache\/\npublic\/build\/\npublic\/hot\n.git\/\n.env\n*.log\n*.zip\n*.sql\n*.dump\n*.bak\nEOF<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Option 2<\/h2>\n\n\n\n<p>Also add\/update <code>AGENTS.md<\/code> inside each project:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Professnow Laravel project\n\nOnly inspect files relevant to the requested task.\n\nDo not scan:\n- vendor\/\n- node_modules\/\n- storage\/logs\/\n- bootstrap\/cache\/\n- public\/build\/\n- .env\n\nBefore editing, identify the exact files needed.\nPrefer small, targeted changes.\nDo not refactor unrelated code.<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Option 3 <\/h2>\n\n\n\n<p>Use targeted prompts like:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Fix the booking status issue. Look only in routes\/web.php, app\/Http\/Controllers, app\/Models, and resources\/views\/bookings.<\/code><\/pre>\n\n\n\n<p>Avoid prompts like:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Analyze this whole project<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Example, If you have multiple microservices<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>root@ip-172-31-1-90:\/opt\/lampp\/htdocs\/professnow# ls -1\nadmin-new\nbookings-new\ncategory-new\ncustomer-managers-new\ngallery\nnotification-new\nprofessional-new\nprofessnow-new<\/code><\/pre>\n\n\n\n<p>Use this structure:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/opt\/lampp\/htdocs\/professnow\/\n\u251c\u2500\u2500 AGENTS.md          # global rules\n\u251c\u2500\u2500 .codexignore      # global ignore\n\u251c\u2500\u2500 admin-new\/\n\u251c\u2500\u2500 bookings-new\/\n...\n<\/code><\/pre>\n\n\n\n<p>Create global <code>.codexignore<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/opt\/lampp\/htdocs\/professnow\n\ncat &gt; .codexignore &lt;&lt;'EOF'\n**\/vendor\/\n**\/node_modules\/\n**\/storage\/\n**\/bootstrap\/cache\/\n**\/public\/build\/\n**\/public\/hot\n**\/.git\/\n**\/.env\n**\/error_log\n**\/nohup.out\n**\/*.log\n**\/*.zip\n**\/*.sql\n**\/*.dump\n**\/*.bak\nEOF\n<\/code><\/pre>\n\n\n\n<p>Create global <code>AGENTS.md<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat &gt; AGENTS.md &lt;&lt;'EOF'\n# Professnow workspace rules\n\nThis workspace contains multiple separate projects.\n\nProjects:\n- admin-new: admin panel\n- bookings-new: bookings service\/app\n- category-new: category service\/app\n- customer-managers-new: customer manager app\n- gallery: standalone PHP\/gallery assets\n- notification-new: notification service\/app\n- professional-new: professional app\n- professnow-new: main Professnow app\n\nRules:\n- Do not scan all projects unless explicitly asked.\n- First identify which project is relevant.\n- Work inside only one project at a time.\n- Ignore vendor, node_modules, storage, logs, cache, build files, backups, and env files.\n- Before editing, list the exact files you plan to inspect.\n- Make small targeted changes only.\n- Do not refactor unrelated code.\nEOF\n<\/code><\/pre>\n\n\n\n<p>Then add per-project ignore files:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for d in admin-new bookings-new category-new customer-managers-new notification-new professional-new professnow-new; do\ncat &gt; \"$d\/.codexignore\" &lt;&lt;'EOF'\nvendor\/\nnode_modules\/\nstorage\/\nbootstrap\/cache\/\npublic\/build\/\npublic\/hot\n.git\/\n.env\nerror_log\nnohup.out\n*.log\n*.zip\n*.sql\n*.dump\n*.bak\nEOF\ndone\n<\/code><\/pre>\n\n\n\n<p>For <code>gallery<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat &gt; gallery\/.codexignore &lt;&lt;'EOF'\nimages\/\ngalleries\/\ngallery\/\nsingle\/\n*.zip\n*.bak\n*.log\nEOF\n<\/code><\/pre>\n\n\n\n<p>Best daily usage:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/opt\/lampp\/htdocs\/professnow\/bookings-new\ncodex\n<\/code><\/pre>\n\n\n\n<p>Not:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/opt\/lampp\/htdocs\/professnow\ncodex\n<\/code><\/pre>\n\n\n\n<p>Prompt style:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Work only in bookings-new. Inspect routes, controllers, models, and related views only. Do not scan other projects.\n<\/code><\/pre>\n\n\n\n<p>This will save the most credit.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Option 4<\/h2>\n\n\n\n<h1 class=\"wp-block-heading\">Short Tutorial: Codex Memories<\/h1>\n\n\n\n<p><code>~\/.codex\/memories\/<\/code> is where Codex stores local memories so it can remember useful context from previous sessions. Memories are <strong>off by default<\/strong>, so you need to enable them first. (<a href=\"https:\/\/developers.openai.com\/codex\/memories?utm_source=chatgpt.com\">OpenAI Developers<\/a>)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Enable memories<\/h2>\n\n\n\n<p>Open Codex config:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p ~\/.codex\nnano ~\/.codex\/config.toml\n<\/code><\/pre>\n\n\n\n<p>Add:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;features]\nmemories = true\n<\/code><\/pre>\n\n\n\n<p>Your user-level Codex config lives at:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>~\/.codex\/config.toml\n<\/code><\/pre>\n\n\n\n<p>(<a href=\"https:\/\/developers.openai.com\/codex\/config-reference?utm_source=chatgpt.com\">OpenAI Developers<\/a>)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Check memory folder<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>ls -la ~\/.codex\/memories\n<\/code><\/pre>\n\n\n\n<p>If it is empty or missing at first, that is normal. Codex may create memory later after sessions become eligible.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Use <code>\/memories<\/code> inside Codex<\/h2>\n\n\n\n<p>Inside Codex, type:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/memories\n<\/code><\/pre>\n\n\n\n<p>Use this to control whether the current thread can:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>use existing memories\ngenerate future memories\n<\/code><\/pre>\n\n\n\n<p>Thread choices do not change your global config. (<a href=\"https:\/\/developers.openai.com\/codex\/memories?utm_source=chatgpt.com\">OpenAI Developers<\/a>)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. What to save<\/h2>\n\n\n\n<p>Good memory:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Remember that I prefer small, targeted changes.\nRemember that I usually want tests run before final answers.\nRemember that this project uses Laravel and MySQL.\nRemember not to scan vendor, node_modules, storage, or build folders unless needed.\n<\/code><\/pre>\n\n\n\n<p>Bad memory:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Remember my database password.\nRemember my API key.\nRemember production customer data.\nRemember my SSH private key.\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">5. Recommended config<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;features]\nmemories = true<\/code><\/pre>\n\n\n<p>[memories]<\/p>\n\n\n\n<p>use_memories = true generate_memories = true disable_on_external_context = true min_rollout_idle_hours = 6 max_rollout_age_days = 30 max_unused_days = 30<\/p>\n\n\n\n<p>These memory settings are documented in Codex\u2019s configuration reference. (<a href=\"https:\/\/developers.openai.com\/codex\/config-reference?utm_source=chatgpt.com\">OpenAI Developers<\/a>)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. Memory vs AGENTS.md<\/h2>\n\n\n\n<p>Use memory for things Codex can recall:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>I prefer short explanations.\nI usually work in Laravel.\nI like small commits.\n<\/code><\/pre>\n\n\n\n<p>Use <code>AGENTS.md<\/code> for rules Codex must follow:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Do not edit generated files.\nDo not expose secrets.\nRun tests before finishing.\nDo not refactor unrelated code.\n<\/code><\/pre>\n\n\n\n<p>Codex supports <code>AGENTS.md<\/code> as reusable project guidance. (<a href=\"https:\/\/developers.openai.com\/codex\/guides\/agents-md?utm_source=chatgpt.com\">OpenAI Developers<\/a>)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7. Delete memories<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>rm -rf ~\/.codex\/memories\n<\/code><\/pre>\n\n\n\n<p>This removes saved memories, but if memory is still enabled, Codex may create new ones later.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">8. Disable memories<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;features]\nmemories = false<\/code><\/pre>\n\n\n<p>[memories]<\/p>\n\n\n\n<p>use_memories = false generate_memories = false<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Simple rule<\/h2>\n\n\n\n<p>Use:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Memory = helpful recall\nAGENTS.md = strict rules\nPrompt = current task\n<\/code><\/pre>\n\n\n\n<p>That is the best practical setup.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Option 4 &#8211; Codex Memories<\/h2>\n\n\n\n<p><code>~\/.codex\/memories\/<\/code> is where Codex stores local memories so it can remember useful context from previous sessions.<\/p>\n\n\n\n<p>Memories are useful for saving recurring preferences, project context, coding style, and workflow habits.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">1. Enable Memories<\/h3>\n\n\n\n<p>Open your Codex config file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p ~\/.codex\nnano ~\/.codex\/config.toml\n<\/code><\/pre>\n\n\n\n<p>Add this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;features]\nmemories = true\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">2. Check the Memory Folder<\/h3>\n\n\n\n<p>Run:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls -la ~\/.codex\/memories\n<\/code><\/pre>\n\n\n\n<p>If the folder is missing or empty at first, that can be normal. Codex may create memory files later after enough useful sessions.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">3. Use <code>\/memories<\/code> Inside Codex<\/h3>\n\n\n\n<p>Inside Codex, type:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/memories\n<\/code><\/pre>\n\n\n\n<p>Use this to control whether the current Codex session can:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Use existing memories\nGenerate future memories\n<\/code><\/pre>\n\n\n\n<p>This is useful when working on sensitive or temporary tasks.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">4. What to Save in Memory<\/h3>\n\n\n\n<p>Good examples:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Remember that I prefer small, targeted changes.\nRemember that I like short explanations after code changes.\nRemember that this project uses Laravel and MySQL.\nRemember not to scan vendor, node_modules, storage, logs, or build folders unless needed.\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">5. What Not to Save<\/h3>\n\n\n\n<p>Avoid saving secrets or private production data:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Database passwords\nAPI keys\nSSH private keys\n.env values\nCustomer data\nProduction tokens\n<\/code><\/pre>\n\n\n\n<p>Memory is for reusable working context, not secrets.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">6. Recommended Config<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;features]\nmemories = true<\/code><\/pre>\n\n\n<p>[memories]<\/p>\n\n\n\n<p>use_memories = true generate_memories = true disable_on_external_context = true min_rollout_idle_hours = 6 max_rollout_age_days = 30 max_unused_days = 30<\/p>\n\n\n\n<p>This enables memory while keeping it reasonably controlled.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">7. Memory vs AGENTS.md<\/h3>\n\n\n\n<p>Use memory for helpful recall:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>I prefer small commits.\nI usually work with Laravel.\nI like concise summaries.\n<\/code><\/pre>\n\n\n\n<p>Use <code>AGENTS.md<\/code> for strict rules:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Do not expose secrets.\nDo not edit generated files.\nRun tests before finishing.\nDo not refactor unrelated code.\n<\/code><\/pre>\n\n\n\n<p>Simple rule:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Memory = helpful recall\nAGENTS.md = strict rules\nPrompt = current task\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">8. Delete Memories<\/h3>\n\n\n\n<p>To remove all saved memories:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rm -rf ~\/.codex\/memories\n<\/code><\/pre>\n\n\n\n<p>If memories are still enabled, Codex may create new ones later.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">9. Disable Memories<\/h3>\n\n\n\n<p>Edit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano ~\/.codex\/config.toml\n<\/code><\/pre>\n\n\n\n<p>Set:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;features]\nmemories = false<\/code><\/pre>\n\n\n<p>[memories]<\/p>\n\n\n\n<p>use_memories = false generate_memories = false<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">10. Best Practice<\/h3>\n\n\n\n<p>Use Codex memories to reduce repeated explanations, but do not rely on memory alone.<\/p>\n\n\n\n<p>Best setup:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>~\/.codex\/memories\/   = learned context\n~\/.codex\/AGENTS.md   = personal rules\nproject\/AGENTS.md    = project rules\ncurrent prompt        = current task\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Option 7 &#8211; graphify Graphify turns your project into a <strong>knowledge graph<\/strong> so Codex can understand the code structure<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Short Tutorial: Graphify with Codex<\/h3>\n\n\n\n<p>Graphify turns your project into a <strong>knowledge graph<\/strong> so Codex can understand the code structure before searching files randomly. It creates files like <code>graphify-out\/GRAPH_REPORT.md<\/code>, <code>graphify-out\/graph.json<\/code>, and <code>graphify-out\/graph.html<\/code>. The latest GitHub release shown is <strong>v0.5.0<\/strong>, released April 23, 2026. (<a href=\"https:\/\/github.com\/safishamsi\/graphify\">GitHub<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">1. Install Graphify<\/h3>\n\n\n\n<p>The official package name is <code>graphifyy<\/code>, but the command is <code>graphify<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pipx install graphifyy\n<\/code><\/pre>\n\n\n\n<p>Or:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install graphifyy\n<\/code><\/pre>\n\n\n\n<p>Check:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>graphify --help\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">2. Enable Codex Multi-Agent<\/h3>\n\n\n\n<p>Edit Codex config:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p ~\/.codex\nnano ~\/.codex\/config.toml\n<\/code><\/pre>\n\n\n\n<p>Add:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;features]\nmulti_agent = true\n<\/code><\/pre>\n\n\n\n<p>Codex needs <code>multi_agent = true<\/code> for Graphify parallel extraction. (<a href=\"https:\/\/github.com\/safishamsi\/graphify\">GitHub<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">3. Install Graphify for Codex<\/h3>\n\n\n\n<p>Go to your project:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/path\/to\/your\/project\n<\/code><\/pre>\n\n\n\n<p>Install Codex integration:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>graphify codex install\n<\/code><\/pre>\n\n\n\n<p>Or:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>graphify install --platform codex\n<\/code><\/pre>\n\n\n\n<p>This writes Graphify guidance into <code>AGENTS.md<\/code> and installs a Codex hook in <code>.codex\/hooks.json<\/code>, so Codex is reminded to use the graph before broad file searching. (<a href=\"https:\/\/github.com\/safishamsi\/graphify\">GitHub<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">4. Create the Graph<\/h3>\n\n\n\n<p>From terminal:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>graphify .\n<\/code><\/pre>\n\n\n\n<p>Inside Codex, use:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$graphify .\n<\/code><\/pre>\n\n\n\n<p>Important: for Codex, use <code>$graphify<\/code>, not <code>\/graphify<\/code>. (<a href=\"https:\/\/pypi.org\/project\/graphifyy\/\">PyPI<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">5. Use Graphify in Codex<\/h3>\n\n\n\n<p>After graph is created, ask Codex like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Use Graphify first. Read graphify-out\/GRAPH_REPORT.md before searching files. Identify the relevant modules, then inspect only the needed files.\n<\/code><\/pre>\n\n\n\n<p>Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Use Graphify first and find where login is handled. Do not grep the whole project until you read GRAPH_REPORT.md.\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">6. Useful Graphify Commands<\/h3>\n\n\n\n<p>Build graph:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>graphify .\n<\/code><\/pre>\n\n\n\n<p>Update graph after code changes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>graphify . --update\n<\/code><\/pre>\n\n\n\n<p>Ask graph a question:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>graphify query \"how does authentication work?\"\n<\/code><\/pre>\n\n\n\n<p>Explain one node\/file\/class:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>graphify explain \"UserController\"\n<\/code><\/pre>\n\n\n\n<p>Find path between two concepts:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>graphify path \"User\" \"Payment\"\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">7. Best Workflow with Codex<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/path\/to\/project\ngraphify codex install\ngraphify .\ncodex\n<\/code><\/pre>\n\n\n\n<p>Inside Codex:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$graphify .\n<\/code><\/pre>\n\n\n\n<p>Then prompt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Use Graphify before search. Read GRAPH_REPORT.md first, then make a small targeted change.\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Simple Rule<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>Graphify = project map\nGRAPH_REPORT.md = summary Codex should read first\n$graphify . = run Graphify inside Codex\ngraphify . --update = refresh graph after changes\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Option 6 &#8211; <code>.graphifyignore<\/code> tells Graphify which files and folders to skip when building a project knowledge graph.<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Short Tutorial: <code>.graphifyignore<\/code><\/h3>\n\n\n\n<p><code>.graphifyignore<\/code> tells Graphify which files and folders to skip when building a project knowledge graph.<\/p>\n\n\n\n<p>It works like <code>.gitignore<\/code>.<\/p>\n\n\n\n<p>Use it to avoid scanning:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vendor\/\nnode_modules\/\nlogs\/\ncache\/\n.env files\nlarge media files\ndatabase dumps\nbuild output\n<\/code><\/pre>\n\n\n\n<p>This makes Graphify faster, cleaner, and safer.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Why Use <code>.graphifyignore<\/code>?<\/h3>\n\n\n\n<p>Without <code>.graphifyignore<\/code>, Graphify may scan unnecessary files like:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vendor\/\nnode_modules\/\nstorage\/logs\/\npublic\/build\/\n.env\n*.sql\n*.zip\n<\/code><\/pre>\n\n\n\n<p>That can make the graph noisy and may waste time or tokens.<\/p>\n\n\n\n<p>With <code>.graphifyignore<\/code>, Graphify focuses only on useful project files.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Create <code>.graphifyignore<\/code><\/h3>\n\n\n\n<p>Go to your project folder:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/path\/to\/your\/project\n<\/code><\/pre>\n\n\n\n<p>Create the file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano .graphifyignore\n<\/code><\/pre>\n\n\n\n<p>Or use:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat &gt; .graphifyignore &lt;&lt;'EOF'\nvendor\/\nnode_modules\/\nstorage\/\nbootstrap\/cache\/\npublic\/build\/\n.env\n*.log\n*.sql\n*.zip\nEOF\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Basic Example<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>vendor\/\nnode_modules\/\n.env\n*.log\n*.zip\n<\/code><\/pre>\n\n\n\n<p>This tells Graphify to ignore:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vendor\/          dependency files\nnode_modules\/    npm packages\n.env             secrets\/config file\n*.log            log files\n*.zip            archive files\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Laravel Example<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>vendor\/\nnode_modules\/\nstorage\/\nbootstrap\/cache\/\npublic\/build\/\npublic\/hot\n.env\n.env.*\n*.log\n*.sql\n*.dump\n*.zip\n*.bak\n<\/code><\/pre>\n\n\n\n<p>Good for Laravel projects because it skips dependencies, cache, logs, environment files, and database dumps.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Node \/ React Example<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>node_modules\/\ndist\/\nbuild\/\ncoverage\/\n.next\/\n.nuxt\/\n.env\n.env.*\n*.log\n<\/code><\/pre>\n\n\n\n<p>Good for frontend projects because it skips dependencies, build output, test coverage, and environment files.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Python Example<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>.venv\/\nvenv\/\n__pycache__\/\n.pytest_cache\/\n.mypy_cache\/\ndist\/\nbuild\/\n.env\n*.log\n*.db\n*.sqlite\n<\/code><\/pre>\n\n\n\n<p>Good for Python projects because it skips virtual environments, caches, build files, logs, and local databases.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Large Workspace Example<\/h3>\n\n\n\n<p>For a folder with multiple apps:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>**\/vendor\/\n**\/node_modules\/\n**\/storage\/\n**\/bootstrap\/cache\/\n**\/public\/build\/\n**\/.env\n**\/*.log\n**\/*.sql\n**\/*.zip\n<\/code><\/pre>\n\n\n\n<p>The <code>**\/<\/code> pattern means \u201cmatch this folder or file anywhere inside the workspace.\u201d<\/p>\n\n\n\n<p>Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>**\/vendor\/\n<\/code><\/pre>\n\n\n\n<p>matches:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>app1\/vendor\/\napp2\/vendor\/\nbackend\/vendor\/\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Run Graphify After Creating It<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>graphify .\n<\/code><\/pre>\n\n\n\n<p>Graphify will now skip everything listed in <code>.graphifyignore<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Best Practice<\/h3>\n\n\n\n<p>Keep <code>.graphifyignore<\/code> strict.<\/p>\n\n\n\n<p>A good rule:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Ignore anything that is generated, secret, huge, cached, or not written by your team.\n<\/code><\/pre>\n\n\n\n<p>Useful files to keep:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>app\/\nsrc\/\nroutes\/\nconfig\/\ndatabase\/migrations\/\nresources\/views\/\nREADME.md\nAGENTS.md\ncomposer.json\npackage.json\n<\/code><\/pre>\n\n\n\n<p>Files to ignore:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vendor\/\nnode_modules\/\nstorage\/\nlogs\/\n.env\nbuild\/\ndist\/\n*.sql\n*.zip\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Final Example<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Dependencies\nvendor\/\nnode_modules\/\n\n# Secrets\n.env\n.env.*\n\n# Logs and cache\nstorage\/\nbootstrap\/cache\/\n*.log\n\n# Build output\npublic\/build\/\ndist\/\nbuild\/\n\n# Backups and dumps\n*.sql\n*.dump\n*.zip\n*.bak\n<\/code><\/pre>\n\n\n\n<p>This is enough for most projects.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Option 1 Do not start Codex from the parent folder unless you need all projects. For each Laravel project, add [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2943","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/aiopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/2943","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aiopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aiopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aiopsschool.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/aiopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=2943"}],"version-history":[{"count":7,"href":"https:\/\/aiopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/2943\/revisions"}],"predecessor-version":[{"id":2964,"href":"https:\/\/aiopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/2943\/revisions\/2964"}],"wp:attachment":[{"href":"https:\/\/aiopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=2943"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aiopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=2943"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aiopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=2943"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}