Customization
Keep installed skills unchanged. Use TOML overrides for persona, menus, templates, activation steps, and review lenses. Ask e11-customize to create or audit the override you need.
Skill override layers
| Order | File | Owner |
|---|---|---|
| 1 | <skill-directory>/customize.toml | Toolkit defaults. Generated in your editor directory. |
| 2 | .foundry/custom/<skill>.toml | Team settings. Commit this file. |
| 3 | .foundry/custom/<skill>.user.toml | Personal settings. Keep this file ignored. |
Later scalars replace earlier values. Plain arrays append. Tables with an id or code replace matching entries and append new entries. Overrides do not delete entries. Use a supported empty value or false field to disable behavior.
Add a team instruction
Save this example as .foundry/custom/e11-agent-dev.toml.
[agent]
persistent_facts = ["Use the project test commands before presenting a delivery."]node .foundry/scripts/resolve-customization.mjs --skill .claude/skills/e11-agent-dev --key agentReview the merged result before committing. Edit only fields present in the shipped customization surface.
Central configuration
Central settings resolve in this order: .foundry/config.toml, .foundry/config.user.toml, .foundry/custom/config.toml, then .foundry/custom/config.user.toml. Init generates the first two. Put team changes in the third and personal changes in the fourth.
node .foundry/scripts/resolve-config.mjs --project-root . --key core --key modules.foundryCentral settings hold language, project paths, and the agent roster. For a project outside the E11 platform, set e11_platform = false under [modules.foundry] in your team override. Individual platform gates also have per-skill settings.
The optional visual add-on reads two keys under [modules.foundry]:
| Key | Values | Effect |
|---|---|---|
visual | auto (the default when absent), on, off | auto runs when a spec declares Screen states. on runs for every spec unless E11_VISUAL=off, the spec's visual: off, or the app config's enabled: false opts out. off skips it everywhere. An unattended run never sets an app up or installs anything. |
visual_app | an app folder, relative to the project root | Which visual.config.json to use when the project has more than one. |
[modules.foundry]
visual = "auto"
visual_app = "apps/web"Visual evidence in your flows
Dev Flow, Dev Auto, code review, Spec Flow and the epic handover can call the visual add-on themselves: capture before and after images of a change, have them reviewed cold, and put them in the done report. The hooks ship off. A project that never turns them on makes no e11 visual call.
Each hooked skill carries visual_hook = false. e11 toolkit render and e11 toolkit activate fold the effective value from these sources, highest first:
| Source | Where | Scope |
|---|---|---|
env | E11_VISUAL_HOOKS=on or off in the environment | This shell |
user | visual_hook in .foundry/custom/<skill>.user.toml, then visual_hooks under [modules.foundry] in .foundry/custom/config.user.toml or .foundry/config.user.toml | You, in this project |
team | visual_hook in .foundry/custom/<skill>.toml, then visual_hooks in .foundry/custom/config.toml or .foundry/config.toml | Everyone in this project |
flow-hooks | "visual": true in ~/.e11-foundry/flow-hooks.json | You, in every project on this machine |
Inside one scope the skill's own key beats the central key. A team that wants the hooks off for everyone sets visual_hooks = false in .foundry/custom/config.toml, which beats a person's Foundry Home file.
To turn the hooks on for yourself everywhere, write the Foundry Home file once (FOUNDRY_HOME moves the folder):
{ "schemaVersion": 1, "visual": true }e11 doctor then ends the Visual add-on line with flow hooks default on (flow-hooks.json); per-skill overrides may differ, and with flow hooks default off when nothing turned them on. A file that is not this shape reads as unset. Delete it, or set E11_VISUAL_HOOKS=off, to return every flow to no visual calls.
Every hook call passes --unattended: a flow never asks, installs or sets an app up for the add-on, and a skip, failure or deferral is one Not run: visual (<reason>) line, never a stop. The run folder is {implementation_artifacts}/visual/<slug>/, the same for every flow.
When the hooks are on through your own switch (flow-hooks or env), Dev Flow and Dev Auto leave the run folder out of their commit, add it to the checkout's local .git/info/exclude so the tree stays clean, and say (evidence left uncommitted: personal hook). When a project or skill file turned them on, the team opted in, and the folder's tracked files ride the commit.
Add a review lens
Review ships seven lenses in e11-review/customize.toml. Add a [[workflow.lenses]] entry with its id, applicable artifact type, condition, and method file. Reuse an existing id to replace a lens. Inspect the shipped surface for supported path and ordering fields.