Coding agents on an Exponential project
This page is for developers who work with an AI coding assistant on an extension, a design or a whole installation. Such an assistant reads code well, but Exponential's behavior depends on settings layers, siteaccesses, overrides and caches that code alone does not show. Give it the facts, and keep it away from what it must not touch.
Contents
- What the agent needs
- Documentation through exp:help
- Runtime facts through the console
- The build steps it must know
- What it must not touch
- Reviewing its work
What the agent needs
| Need | Source |
|---|---|
| How a feature is meant to work | The help in doc/ (Agent-friendly documentation) |
| How this installation is configured right now | Read-only console commands on a development copy |
| How to build, test and deploy a change | The project's own instructions, and the application creators' pages |
| What it may and may not change | Your project notes for the agent |
Documentation through exp:help
Tell the agent to search before it answers: ./console exp:help search "<words>" --json, then read the pages. The
application creators' section is the developer's map: Application creators: start here.
Runtime facts through the console
On a development or staging copy, these commands answer from the running installation instead of from a guess:
| Question | Command |
|---|---|
| Which files set this setting, in load order, and which value wins? | ./console exp:ini where site.ini/ExtensionSettings/ActiveExtensions |
| What is its value? | ./console exp:ini get site.ini/DesignSettings/SiteDesign |
| May this user read or edit this node, and which limitation refuses it? | ./console exp:access:check --user=<login> --node=<id> |
| What did the error log say after the change? | ./console exp:logs --tail=var/log/error.log --lines=50 |
| What does the documentation say? | ./console exp:help search "<words>" |
Give the agent the read commands only. Commands that change settings or data (exp:ini set, cache clears, scripts that
write) stay with a person. A command runs as the system user that starts it, with access to the whole installation,
which is why this belongs on a development copy, not on production.
The build steps it must know
From the application creators' pages, the steps an agent most often forgets:
| After | Run | Read |
|---|---|---|
| Editing a PHP file | php -l <file> | Debugging and logs |
| Adding or renaming a class | php bin/php/ezpgenerateautoloads.php -e (extensions) | Autoloads and class naming |
| Changing settings, classes or templates | Clear the relevant caches (php bin/php/ezcache.php) | Caching in applications |
| Any change on a running server | Reload PHP-FPM or restart the application server where classes are kept in memory | Deploying with Velocity |
What it must not touch
Write these into your project notes for the agent:
settings/override/and any file with keys or passwords: never read into the conversation, never committed. Provider keys belong there and nowhere else.- Production data: no database dumps or customer data in the agent's context.
- Destructive commands (removing files, dropping tables, clearing everything on production) only after a person confirms.
- Commits: stage files by name, never everything; review the diff before committing.
Reviewing its work
Treat the agent's change as a contributor's pull request:
- run the tests and the checks your project uses (Testing applications, CI for extensions);
- check that it did not invent kernel classes, settings or template operators:
exp:help searchandexp:ini gettell you whether they exist; - check the documentation it changed, if any, with
./console exp:help check.
Related pages
- Agent-friendly documentation
- A diagnosis workflow with the console
- Environment, settings and secrets
- Develop with Git
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
Become an Exponential Partner
Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.