Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Make a PHP repository easier for an AI coding agent to work in by giving it a concise, accurate map of the app, its conventions, and the commands that verify changes. Keep the root guide short, put detailed architecture and domain knowledge in maintained documents, and make the project’s PHP types and analysis workflow informative. For Codex, AGENTS.md is a supported repository-instructions mechanism; other tools may use different filenames or rules.

Start with a map, not a manual

An agent needs to establish what the application does, where relevant code lives, and how to check its work. A useful root guide answers those questions quickly and points to deeper documentation rather than trying to contain the whole codebase’s knowledge.

OpenAI describes a structured documentation knowledge base as the system of record for its agent-oriented engineering work, and cautions that an oversized AGENTS.md can crowd out the task and code context. Its advice: “give Codex a map, not a 1,000-page instruction manual.” OpenAI’s account of harness engineering is about its own practices, not a universal agent requirement, but the distinction is useful: put navigation and essential rules in the guide, and keep detailed knowledge in documents people maintain.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What to put in the root guide

For a PHP application, use repository-specific paths, names, and commands. A compact guide can cover these items:

  • Purpose: one or two sentences describing the app and its main users or responsibilities.
  • Directory map: identify the actual locations of application code, tests, configuration, templates, migrations, and other important areas. Explain layers or boundaries that are not obvious from the directory names.
  • Setup: list the project’s real prerequisites and setup steps, plus any required services or environment variables. Describe how to obtain or configure secrets without putting secret values in documentation.
  • Verification: give the commands developers use for tests, formatting, static analysis, and other relevant checks, with prerequisites or scope where needed.
  • Local conventions: state rules that cannot be reliably inferred from examples, such as how to create migrations, handle errors, work with generated files, or decide where a feature belongs.
  • Further reading: link to maintained architecture, domain, deployment, and troubleshooting documents rather than duplicating them.

Do not fill the guide with generic PHP advice that conflicts with the project’s practices. A statement such as “run the test suite” is less useful than the exact command in the repository, along with what services or configuration it needs.

Use instruction files according to the agent

Instruction-file discovery is product-specific. OpenAI’s Codex prompting guide documents how Codex discovers and combines global and project AGENTS.md files according to scope. That supports using the file for Codex, but it does not establish that every coding agent recognizes the same filename or merges instructions the same way.

Check the documentation for the exact agent and version your team uses. If you work across tools, keep a shared source of truth for repository facts and add concise, agent-specific adapters where necessary. Avoid copying full sets of rules into several files: duplicated guidance can drift and contradict itself.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keep guidance aligned with the repository

Instructions are only helpful while they describe the code that exists. When paths, scripts, setup requirements, or architectural boundaries change, update the guide and linked docs in the same work. Add directory-level instructions only where a subtree genuinely has different rules, and check that those instructions do not conflict with repository-wide guidance.

Use paths and commands that a contributor can verify directly. For example, the Symfony AI repository’s guide illustrates project-specific PHP package layout, commands, and upgrade guidance in a live monorepo. Treat it as an example of concrete guidance, not as a template every PHP application should copy.

Make PHP code easier to interpret

Repository notes cannot replace clarity in the code itself. Accurate property types, parameter and return types, and useful annotations make behavior easier to follow and give static analyzers information to check. PHPStan puts it plainly: “Properly annotated and typehinted code (class properties, function and method arguments, return types) helps not only static analysis tools but also other people that work with the code to understand it.” See PHPStan’s Getting Started guide.

Prefer annotations that express real domain constraints and keep them synchronized with implementation. An inaccurate type or stale docblock can mislead both people and agents. Where the code’s behavior is complex, a short explanation of the domain rule may be more valuable than repeating what the function name already says.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Run analysis on code your team maintains

Include the project’s actual static-analysis command and configuration in its verification instructions. PHPStan’s guide recommends analyzing code written by the project rather than third-party vendor code, whose maintainers control those errors. Configure the analyzer for the application and test code your team owns, and address meaningful findings at the level the project has chosen.

PHPStan’s current getting-started page says PHP 7.4 or newer is required to run PHPStan, and shows installation with composer require --dev phpstan/phpstan and execution through vendor/bin/phpstan, including the example vendor/bin/phpstan analyse src tests. These details are version-sensitive: confirm the PHP and PHPStan requirements for the release selected by your project before adding exact versions or commands to its guide. Do not substitute that example for the project’s configured command if it differs.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Validate whether an agent can orient itself

A useful check is to give the agent a small, representative task and first ask it to explain the application’s relevant structure and proposed verification. For example, ask it to identify which files it would inspect for a change to a particular feature and which repository commands it would run. Compare its answer with the actual code and workflow.

If it misses an important boundary, points to a nonexistent path, or selects an irrelevant check, fix the map, linked documentation, or code-level information that caused the confusion. Do not respond by adding a long speculative rulebook: improve the specific source of truth and repeat the check.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A practical rollout order

  1. Write the root orientation: explain the application and map its main layers using real repository paths.
  2. Record setup and checks: document current prerequisites, setup, required services or configuration, and exact verification commands.
  3. Add hard-to-infer conventions: cover migration policy, generated files, dependency boundaries, error handling, and feature placement only where the repository has actual rules.
  4. Move depth to maintained documents: link out to architecture, deployment, domain, and troubleshooting material instead of expanding the root guide indefinitely.
  5. Improve PHP type information: make types and annotations accurate, then run the configured analyzer on code the project owns.
  6. Check agent-specific behavior: confirm instruction discovery and scope for the chosen product, then validate its orientation against a real sample task.
  7. Maintain the map: update paths, commands, and guidance as the application changes, and check for conflicting local instructions.

For developers embedding agents in an application rather than using a coding agent against a repository, the deployment question is different. OpenAI’s Agents documentation distinguishes managed Agents API, Agents SDK, and Responses API approaches; that choice does not change the repository-writing practices above.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.