Documentation Freshness Audit
The weekly documentation audit found the following inconsistencies between code and documentation (AGENTS.md):
Findings
| Area |
Issue |
File(s) |
| Front Matter Fields |
tools: is documented as RESERVED / not yet implemented but is fully implemented |
AGENTS.md line 123 vs src/compile/common.rs |
| Template Markers |
\{\{ workspace }} is not replaced in the 1ES compiler, leaving literal placeholder in output |
AGENTS.md \{\{ workspace }} section vs src/compile/onees.rs |
| Front Matter Fields |
engine.max-turns and engine.timeout-minutes are documented and parsed but silently ignored by both compilers |
AGENTS.md lines 101β102 vs src/compile/common.rs |
Details
1. tools: field documented as RESERVED but fully implemented
AGENTS.md line 123 comments out the tools: field with:
# tools: # RESERVED: tool configuration (not yet implemented)
# bash: ["cat", "ls", "grep"] # bash command allow-list
# edit: true # enable file editing tool
However, src/compile/common.rs generate_copilot_params() actively consumes both tools.bash and tools.edit:
tools.edit controls whether --allow-tool write is added (defaults to true)
tools.bash overrides the default bash command allow-list (supports [":*"] for unrestricted access, empty list to disable, or an explicit list)
The field is fully functional β users who follow the docs will miss this capability entirely.
2. \{\{ workspace }} not replaced in 1ES compiler
AGENTS.md documents \{\{ workspace }} as:
An alias for \{\{ working_directory }}. Both markers are replaced with the same value based on the effective workspace setting.
src/compile/common.rs generate_source_path() and generate_pipeline_path() return strings like \{\{ workspace }}/agents/(file).md and \{\{ workspace }}/(file).yml respectively. These functions are called by both compilers.
- Standalone (
src/compile/standalone.rs line 164): β
replaces \{\{ workspace }} β resolves correctly
- 1ES (
src/compile/onees.rs): β no \{\{ workspace }} replacement β \{\{ source_path }} and \{\{ pipeline_path }} in 1ES-generated pipelines end up containing the literal string \{\{ workspace }}/agents/(file).md
This affects the integrity check step (ado-aw check) and the execute step in all 1ES pipelines.
3. engine.max-turns and engine.timeout-minutes silently ignored
The documented example YAML shows:
# engine:
# model: claude-opus-4.5
# max-turns: 50 # line 101
# timeout-minutes: 30 # line 102
src/compile/types.rs correctly parses these into EngineOptions.max_turns and EngineOptions.timeout_minutes, and EngineConfig exposes max_turns() and timeout_minutes() accessors. However, neither src/compile/standalone.rs nor src/compile/onees.rs calls these accessors β generate_copilot_params() only uses engine.model(). The options are silently discarded.
Suggested Fixes
This issue was created by the automated documentation freshness check.
Generated by Documentation Freshness Check Β· β·
Documentation Freshness Audit
The weekly documentation audit found the following inconsistencies between code and documentation (
AGENTS.md):Findings
tools:is documented asRESERVED / not yet implementedbut is fully implementedAGENTS.mdline 123 vssrc/compile/common.rs\{\{ workspace }}is not replaced in the 1ES compiler, leaving literal placeholder in outputAGENTS.md\{\{ workspace }}section vssrc/compile/onees.rsengine.max-turnsandengine.timeout-minutesare documented and parsed but silently ignored by both compilersAGENTS.mdlines 101β102 vssrc/compile/common.rsDetails
1.
tools:field documented as RESERVED but fully implementedAGENTS.mdline 123 comments out thetools:field with:However,
src/compile/common.rsgenerate_copilot_params()actively consumes bothtools.bashandtools.edit:tools.editcontrols whether--allow-tool writeis added (defaults totrue)tools.bashoverrides the default bash command allow-list (supports[":*"]for unrestricted access, empty list to disable, or an explicit list)The field is fully functional β users who follow the docs will miss this capability entirely.
2.
\{\{ workspace }}not replaced in 1ES compilerAGENTS.mddocuments\{\{ workspace }}as:src/compile/common.rsgenerate_source_path()andgenerate_pipeline_path()return strings like\{\{ workspace }}/agents/(file).mdand\{\{ workspace }}/(file).ymlrespectively. These functions are called by both compilers.src/compile/standalone.rsline 164): β replaces\{\{ workspace }}β resolves correctlysrc/compile/onees.rs): β no\{\{ workspace }}replacement β\{\{ source_path }}and\{\{ pipeline_path }}in 1ES-generated pipelines end up containing the literal string\{\{ workspace }}/agents/(file).mdThis affects the integrity check step (
ado-aw check) and the execute step in all 1ES pipelines.3.
engine.max-turnsandengine.timeout-minutessilently ignoredThe documented example YAML shows:
src/compile/types.rscorrectly parses these intoEngineOptions.max_turnsandEngineOptions.timeout_minutes, andEngineConfigexposesmax_turns()andtimeout_minutes()accessors. However, neithersrc/compile/standalone.rsnorsrc/compile/onees.rscalls these accessors βgenerate_copilot_params()only usesengine.model(). The options are silently discarded.Suggested Fixes
tools:field β Remove theRESERVEDcomment and uncomment the example inAGENTS.md. Documenttools.bash(default command list,[":*"]for unrestricted) andtools.edit(defaulttrue) with their actual behavior.\{\{ workspace }}in 1ES β Add("\{\{ workspace }}", &working_directory)to the replacements list insrc/compile/onees.rs(matching standalone line 164), and clarify inAGENTS.mdthat the marker applies to both targets.engine.max-turns/engine.timeout-minutesβ Either pass these as--max-turns/--timeout-minutesflags to agency ingenerate_copilot_params(), or mark them as reserved/future inAGENTS.mdto set correct expectations.This issue was created by the automated documentation freshness check.