Documentation Freshness Audit
The weekly documentation audit found the following inconsistencies between code and documentation:
Findings
| Area |
Issue |
File(s) |
| Architecture tree |
src/hash.rs missing from directory listing |
AGENTS.md |
| Architecture tree |
src/safeoutputs/upload_build_artifact.rs missing from directory listing |
AGENTS.md |
| Safe output tools |
upload-build-artifact tool missing from table |
README.md |
| Safe output tools |
upload-build-artifact tool missing from table |
prompts/create-ado-agentic-workflow.md |
| Front matter fields |
README lists field as triggers but actual YAML key is on: |
README.md |
| Front matter example |
Top-level example shows schedule: as a top-level field, but no such field exists β schedule is under on: schedule: |
docs/front-matter.md |
Details
1. AGENTS.md β missing files in architecture tree
Two source files exist in the codebase but are absent from the src/ directory tree in AGENTS.md:
src/hash.rs β present in src/main.rs module declarations (mod hash;) but not listed in the architecture tree.
src/safeoutputs/upload_build_artifact.rs β the tree only shows upload_workitem_attachment.rs but upload_build_artifact.rs also exists and is exported from src/safeoutputs/mod.rs.
2. README.md β upload-build-artifact missing from safe output tools table
The safe output tools table (around line 374β396) lists all other tools but omits upload-build-artifact. The tool is fully implemented in src/safeoutputs/upload_build_artifact.rs and documented in docs/safe-outputs.md (Β§ upload-build-artifact).
3. prompts/create-ado-agentic-workflow.md β upload-build-artifact missing
The "All configurable safe output tools" table (Β§ Builds & Branches group) lists queue-build, create-branch, create-git-tag, and add-build-tag, but does not include upload-build-artifact. This is the primary guide agents use when authoring workflows, so the omission will cause agents to be unaware of this capability.
4. README.md β wrong field name in Front Matter Fields table
The Front Matter Fields table (around line 247) contains:
| `triggers` | object | β | Pipeline trigger configuration |
But the actual YAML key in the front matter is on: β see src/compile/types.rs:
#[serde(default, rename = "on")]
pub on_config: Option<OnConfig>,
There is no triggers: field. Using triggers: in a pipeline definition will be silently ignored (the FrontMatter struct does not use #[serde(deny_unknown_fields)]), causing the trigger to never fire.
5. docs/front-matter.md β top-level example shows schedule: as a top-level field
The full example block near the top of docs/front-matter.md (around line 19) shows:
schedule: daily around 14:00 # Fuzzy schedule syntax - see docs/schedule-syntax.md
as a top-level front matter field, but FrontMatter has no top-level schedule field. Schedule is nested under the on: key:
on:
schedule: daily around 14:00
The same file correctly shows the on: form later (around line 74), but the top-level example contradicts it. The standalone schedule: at the top level would be silently ignored at compile time.
Suggested Fixes
This issue was created by the automated documentation freshness check.
Generated by Documentation Freshness Check Β· β 1.8M Β· β·
Documentation Freshness Audit
The weekly documentation audit found the following inconsistencies between code and documentation:
Findings
src/hash.rsmissing from directory listingAGENTS.mdsrc/safeoutputs/upload_build_artifact.rsmissing from directory listingAGENTS.mdupload-build-artifacttool missing from tableREADME.mdupload-build-artifacttool missing from tableprompts/create-ado-agentic-workflow.mdtriggersbut actual YAML key ison:README.mdschedule:as a top-level field, but no such field exists β schedule is underon: schedule:docs/front-matter.mdDetails
1. AGENTS.md β missing files in architecture tree
Two source files exist in the codebase but are absent from the
src/directory tree inAGENTS.md:src/hash.rsβ present insrc/main.rsmodule declarations (mod hash;) but not listed in the architecture tree.src/safeoutputs/upload_build_artifact.rsβ the tree only showsupload_workitem_attachment.rsbutupload_build_artifact.rsalso exists and is exported fromsrc/safeoutputs/mod.rs.2. README.md β
upload-build-artifactmissing from safe output tools tableThe safe output tools table (around line 374β396) lists all other tools but omits
upload-build-artifact. The tool is fully implemented insrc/safeoutputs/upload_build_artifact.rsand documented indocs/safe-outputs.md(Β§upload-build-artifact).3. prompts/create-ado-agentic-workflow.md β
upload-build-artifactmissingThe "All configurable safe output tools" table (Β§ Builds & Branches group) lists
queue-build,create-branch,create-git-tag, andadd-build-tag, but does not includeupload-build-artifact. This is the primary guide agents use when authoring workflows, so the omission will cause agents to be unaware of this capability.4. README.md β wrong field name in Front Matter Fields table
The Front Matter Fields table (around line 247) contains:
But the actual YAML key in the front matter is
on:β seesrc/compile/types.rs:There is no
triggers:field. Usingtriggers:in a pipeline definition will be silently ignored (the FrontMatter struct does not use#[serde(deny_unknown_fields)]), causing the trigger to never fire.5. docs/front-matter.md β top-level example shows
schedule:as a top-level fieldThe full example block near the top of
docs/front-matter.md(around line 19) shows:as a top-level front matter field, but
FrontMatterhas no top-levelschedulefield. Schedule is nested under theon:key:The same file correctly shows the
on:form later (around line 74), but the top-level example contradicts it. The standaloneschedule:at the top level would be silently ignored at compile time.Suggested Fixes
src/hash.rsandsrc/safeoutputs/upload_build_artifact.rsto the architecture tree inAGENTS.mdupload-build-artifactrow to the safe output tools table inREADME.mdupload-build-artifactrow to the "All configurable safe output tools" table inprompts/create-ado-agentic-workflow.mdtriggersβonin the Front Matter Fields table inREADME.mddocs/front-matter.mdto moveschedule:underon:(or remove it from the top-level block and rely on theon:section below)This issue was created by the automated documentation freshness check.