Documentation Freshness Audit
The weekly documentation audit found the following inconsistencies between code and documentation:
Findings
| Area |
Issue |
File(s) |
| README.md front matter table |
engine field description says "AI model to use" with default claude-opus-4.5 β both are wrong |
README.md |
| README.md Quick Start example |
engine: claude-sonnet-4.5 uses a model name as the engine value β this is invalid YAML |
README.md |
| AGENTS.md template markers |
\{\{ mcpg_step_env }} exists in both pipeline templates but has no documentation section |
AGENTS.md, src/data/base.yml, src/data/1es-base.yml |
| AGENTS.md architecture tree |
src/validate.rs is not listed in the architecture directory tree |
AGENTS.md |
| AGENTS.md architecture tree |
src/compile/extensions/tests.rs is not listed in the architecture directory tree |
AGENTS.md |
Details
1. README.md β Incorrect engine field documentation (Critical)
In the Front Matter Fields table (README.md, Agent File Reference section):
| `engine` | string or object | `claude-opus-4.5` | AI model to use |
```
This is wrong on two counts:
- **Default value**: The `engine` field is an engine *identifier*, not a model name. Its default is `copilot` (see `EngineConfig::default()` in `src/compile/types.rs`). The model is a sub-field of the engine object.
- **Description**: "AI model to use" is misleading. The field selects the engine (currently only `copilot`). The model is set via `engine.model` in the object form.
The correct row should read something like:
```
| `engine` | string or object | `copilot` | Engine identifier or object with `id`, `model`, `timeout-minutes`, etc. |
2. README.md β Broken Quick Start example (Critical)
In the Quick Start section, the generated agent file example includes:
engine: claude-sonnet-4.5
This is invalid front matter. When the engine field is a plain string, it is parsed as the engine identifier β not a model name. Setting engine: claude-sonnet-4.5 would attempt to use an engine named claude-sonnet-4.5, which doesn't exist.
The correct way to select a non-default model is:
engine:
id: copilot
model: claude-sonnet-4.5
```
Or simply omit the `engine:` field entirely if using the default (`copilot` engine + `claude-opus-4.5` model).
The `prompts/create-ado-agentic-workflow.md` file correctly explains this distinction (Step 2), but `README.md` contradicts it with this bad example.
---
#### 3. `AGENTS.md` β Undocumented `\{\{ mcpg_step_env }}` template marker
The marker `\{\{ mcpg_step_env }}` appears in both:
- `src/data/base.yml` (line 285)
- `src/data/1es-base.yml` (same location)
But it has **no documentation section** in `AGENTS.md`. The compiler generates this via `generate_mcpg_step_env()` in `src/compile/common.rs` (line 1390). It produces an `env:` block for the MCPG step, forwarding pipeline variables required by extensions (e.g., `AZURE_DEVOPS_EXT_PAT`). All other markers have dedicated `## \{\{ marker_name }}` sections β this one is missing.
---
#### 4. `AGENTS.md` β Architecture tree missing `src/validate.rs`
The file `src/validate.rs` exists in the codebase (declared as `pub mod validate` in `src/main.rs`) and contains structural input validators (char allowlists, format checks, injection detectors, container/DNS validators). However it is not listed in the architecture directory tree in `AGENTS.md`. The adjacent `src/sanitize.rs` is listed.
---
#### 5. `AGENTS.md` β Architecture tree missing `src/compile/extensions/tests.rs`
The file `src/compile/extensions/tests.rs` exists but is not shown in the architecture tree under `src/compile/extensions/`. The tree currently shows only:
```
β β βββ mod.rs
β β βββ github.rs
β β βββ safe_outputs.rs
Suggested Fixes
This issue was created by the automated documentation freshness check.
Generated by Documentation Freshness Check Β· β 1.2M Β· β·
Documentation Freshness Audit
The weekly documentation audit found the following inconsistencies between code and documentation:
Findings
enginefield description says "AI model to use" with defaultclaude-opus-4.5β both are wrongREADME.mdengine: claude-sonnet-4.5uses a model name as the engine value β this is invalid YAMLREADME.md\{\{ mcpg_step_env }}exists in both pipeline templates but has no documentation sectionAGENTS.md,src/data/base.yml,src/data/1es-base.ymlsrc/validate.rsis not listed in the architecture directory treeAGENTS.mdsrc/compile/extensions/tests.rsis not listed in the architecture directory treeAGENTS.mdDetails
1.
README.mdβ Incorrectenginefield documentation (Critical)In the Front Matter Fields table (
README.md, Agent File Reference section):2.
README.mdβ Broken Quick Start example (Critical)In the Quick Start section, the generated agent file example includes:
This is invalid front matter. When the
enginefield is a plain string, it is parsed as the engine identifier β not a model name. Settingengine: claude-sonnet-4.5would attempt to use an engine namedclaude-sonnet-4.5, which doesn't exist.The correct way to select a non-default model is:
Suggested Fixes
README.mdβ Fix the Front Matter Fields table: changeenginedefault fromclaude-opus-4.5tocopilot, update description to explain it's an engine identifier (not a model selector directly)README.mdβ Fix the Quick Start example: replaceengine: claude-sonnet-4.5with the correct object form (engine: {id: copilot, model: claude-sonnet-4.5}) or remove theengine:line if the default model is acceptableAGENTS.mdβ Add a## \{\{ mcpg_step_env }}documentation section describing the marker's purpose: generating theenv:block that forwards pipeline variables (e.g., ADO tokens) required by enabled extensions into the MCPG stepAGENTS.mdβ Addvalidate.rsto the architecture tree with a description: "Structural input validators (char allowlists, format checks, injection detectors)"AGENTS.mdβ Addtests.rsto thecompile/extensions/section of the architecture treeThis issue was created by the automated documentation freshness check.