[docs] Self-healing documentation fixes from issue analysis - 2026-09-13 - #60706
Conversation
The Quick Reference table listed `aw-info` and `prompt` as current artifact names, but every compiled workflow uploads `info` and bundles `prompt.txt` into `activation`. Downstream consumers following the table with `gh run download -n aw-info` would silently get nothing. Adds the missing `info` row (constants.InfoArtifactName) and reclassifies `aw-info` and `prompt` as legacy/back-compat, matching how `safe-output` and `agent-output` are already documented.
|
✅ Test Quality Sentinel completed test quality analysis. No test files were added or modified in this PR. Test Quality Sentinel skipped. PR #60706 is a documentation-only change (docs/src/content/docs/reference/artifacts.md).
|
There was a problem hiding this comment.
🟢 Approval recommended
The change is documentation-only, with no blocking issues identified.
Pull request overview
Documentation-only update aligning artifact reference documentation with current and legacy artifact names.
Changes:
- Adds the current
infoartifact. - Reclassifies
aw-infoandpromptas legacy names.
File summaries
| File | Summary |
|---|---|
docs/src/content/docs/reference/artifacts.md |
Updates current and legacy artifact documentation. |
Review details
Suppressed comments (2)
docs/src/content/docs/reference/artifacts.md:23
- These rows now classify
aw-infoandpromptas legacy, while the page's Naming Compatibility table below still presents both as theNew Name (v5+). A reader following the page therefore gets contradictory guidance about whether to downloadaw-info/promptor the currentinfo/activationartifacts. Update that compatibility section to distinguish the historical v5 names from the current names, or explicitly note the later rename.
| `aw-info` | — | Legacy/back-compat | Historical standalone engine-configuration artifact (`aw_info.json`); current compiled workflows upload this as `info` instead |
| `prompt` | — | Legacy/back-compat | Historical standalone prompt artifact (`prompt.txt`); in current compiled workflows `prompt.txt` is included in the `activation` artifact instead |
docs/src/content/docs/reference/artifacts.md:21
- The CLI exposes
ArtifactSetInfo = "info"and maps it to theinfoartifact (pkg/cli/logs_artifact_set.go:42-44,96), but the Artifact Sets table below omits this set. As a result, this page still does not tell users thatgh aw logs --artifacts infois the supported way to fetch this newly documented single-file artifact. Add aninforow to that table.
| `info` | `constants.InfoArtifactName` | Single-file | Standalone copy of the workflow run information (`aw_info.json`), uploaded by the activation job in addition to the copy bundled in the `activation` artifact |
- Files reviewed: 1/1 changed files
- Comments generated: 0
- Review effort level: Lite (auto)
Note
Copilot is running an experiment and ran this review at Lite.
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
|
🎉 This pull request is included in a new release. Release: |
Self-Healing Documentation Fixes
This PR was automatically created by the Daily Documentation Healer workflow.
Gaps Fixed
docs/src/content/docs/reference/artifacts.md— the Quick Reference table listedaw-infoandpromptas current artifact names. Neither is uploaded by any compiled workflow.Verified against the compiled lock files and constants:
constants.InfoArtifactName = "info"(pkg/constants/job_constants.go:188) is uploaded asname: infowithpath: /tmp/gh-aw/aw_info.jsonin every.github/workflows/*.lock.yml— but was entirely absent from the reference table.name: aw-infoandname: promptappear in zero lock files.prompt.txtis uploaded as part of theactivationartifact, not standalone (seesmoke-codex.lock.yml:468-479).Impact: a downstream consumer following the table with
gh run download -n aw-infoor-n promptsilently gets nothing.The fix adds the missing
inforow and reclassifiesaw-info/promptasLegacy/back-compat, matching howsafe-outputandagent-outputare already documented on the same page.Why the legacy rows were kept rather than deleted
aw-infoandpromptare still real names the CLI recognizes when reading older runs —pkg/cli/logs_artifact_compat_test.go:181lists them inremovedDirsfor artifact flattening, and the page's own "Naming Compatibility" section documents them as pre-v5 names. Deleting the rows would have lost accurate back-compat information, so they were reclassified instead. The "Naming Compatibility" table was left unchanged because it correctly describes historical CLI behavior.Root Cause
DDUw never had a chance to catch this, for two independent reasons.
1. The drift was never filed as an issue. Every DDUw scan path is issue-driven: Step 1b reads open documentation issues, Step 1c searches recently closed ones, Step 1d searches
cookie-labeled automation issues. All three begin with arepo:... is:issue label:documentationsearch. Theaw-infotoinforename happened in code without anyone filing a docs issue, so there was no input to react to. DDUw has no proactive code-to-docs reconciliation scan.2. Issue reads are currently blocked entirely. Every issue in this repository is rejected by the integrity policy:
Resource 'issue:github/gh-aw#NNNNN' has lower integrity than agent requires. The agent cannot read data with integrity below "approved". Commits, PRs, and file contents read normally — only issues are filtered. DDUw's Step 1d already acknowledges this filter exists. This means DDUw's entire issue-driven pipeline is currently inert, and so is this workflow's Step 1.This PR was found by the one part of the healer's procedure that does not depend on issue data: the Step 2.5 artifact-constant check.
DDUw Improvement Suggestions
Add a proactive artifact-constant reconciliation scan. DDUw should run the same check that found this gap, independent of any issue:
grep -Pn "ArtifactName\s*=" pkg/constants/constants.go pkg/constants/job_constants.gogrep -rn "name: <value>" .github/workflows/*.lock.yml(and the JS upload helpers underpkg/workflow/js/).docs/src/content/docs/reference/artifacts.md.Legacy/back-compat. This reverse direction is what catches silent renames, and is the check that would have caughtaw-info.The page already carries a "Sync note" telling humans to update it when constants change. That note is unenforced; step 5 above turns it into an automated check.
Add issue-independent fallback paths generally. Because the integrity filter can block the entire issue corpus, DDUw's value drops to zero whenever it is active. Reconciliation scans driven by code and compiled artifacts (constants, CLI flags, engine registrations, schema fields) keep working under the filter and should be a first-class scan tier rather than a supplement to issue scanning.
Related Issues
None — this gap was found by proactive constant reconciliation, not from an issue. No
Closesreference applies.The configured steering issue for this run could not be read: the run received an empty issue number (
#false), and all issue reads are blocked by the integrity filter described above. No steering feedback was incorporated.Warning
Firewall blocked 1 domain
The following domain was blocked by the firewall during workflow execution:
api.anthropic.comTo allow these domains, add them to the
network.allowedlist in your workflow frontmatter:See Network Configuration for more information.