[doc-healer] doc-healer DDUw improvement - integrity-filtered issue queries return empty

Open
#62,496 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
github-actions, markdown

Research direction

Read daily-doc-healer.md Step 1 and the corresponding issue-enumeration sections in daily-doc-updater.md. Check how empty list/search results and removed-item counts are represented, then decide how the workflows should report censored results without treating them as no work. Done means the affected workflows distinguish incomplete data from a genuine empty result and document the low-perPage diagnostic and policy choice.

Written by the indexing model from the issue text.

Description

automation documentation
Summary

The doc-healer run on 2026-09-21 could not execute Step 1 (identify recently closed documentation issues). Every bulk issue query returned an empty array because the integrity policy stripped all results. Critically, the empty result is indistinguishable from "no issues found", so the workflow would normally proceed straight to noop and report a clean bill of health that was never actually verified.

The silent failure

Both enumeration paths returned []:

  • list_issues (state: CLOSED, labels: [documentation])
  • search_issues (semantic query)

With a large perPage the response is simply [] plus a count of removed items. Only when perPage was lowered to 5 did the tool disclose which resources were withheld:

Withheld resources (perPage: 5)
issue:github/gh-aw#61398 — integrity below "approved"
issue:github/gh-aw#61396 — integrity below "approved"
issue:github/gh-aw#61395 — integrity below "approved"
issue:github/gh-aw#61394 — integrity below "approved"
issue:github/gh-aw#61357 — integrity below "approved"

These are bot-authored issues (github-actions[bot], deep-report and similar agentic workflows). Because gh-aw's documentation issues are overwhelmingly filed by automation, the integrity floor excludes essentially the entire corpus that doc-healer and DDUw are designed to analyze.

Which step failed

daily-doc-healer.md Step 1 assumes a non-empty result set means work to do and an empty one means none. It has no branch for "the query was censored." The same assumption exists wherever daily-doc-updater.md enumerates issues.

Suggested changes
  1. Distinguish censored from empty. In Step 1, if a list/search call returns zero items and reports removed items, do not treat it as "no issues found." Emit report_incomplete (or missing_data) naming the blocked resources instead of falling through to noop.
  2. Document the low-perPage diagnostic. A smaller page size surfaces the withheld resource IDs in the filter message; a large one does not. Worth stating explicitly so future runs can at least report what was blocked.
  3. Decide the policy question explicitly. Either raise the integrity floor for this workflow so bot-authored documentation issues are readable, or narrow doc-healer's charter to the deterministic repo-local checks (below) and drop the issue-driven steps. The current configuration asks the workflow to do something its permissions forbid.

[!NOTE]
This run deliberately did not route around the filter by calling issue_read on each withheld number. The policy states the agent may not read those resources; harvesting the IDs from the error message to re-fetch them individually would defeat the control rather than respect it.

Repo-local checks did run — all clean

The deterministic drift checks do not depend on issue content and were completed:

Check results
Check Result
Artifact constants vs reference/artifacts.md All documented — incl. evals, experiment, code-scanning-sarif, safe-outputs-items, agent-output-fallback, firewall-audit-logs
Registered engines vs reference/engines.md All 5 documented (claude, codex, copilot, gemini, pi); none flagged experimental: true
Base-URL env var table (engines.md:192) Omits picorrect, not a gap. pi_engine.go defines no base-URL env var; Pi borrows the matching provider engine's AWF config

No documentation content gaps were found, so no fix PR was opened.

Skip list

#61398 was already on the site-build-ui-issues cache entry and is confirmed out of scope — it targets docs/astro.config.mjs sidebar collapsed state (closed as not_planned), not Markdown content. The cache also carries #60377. The remaining withheld issues (#61396, #61395, #61394, #61357) could not be classified.

[!WARNING]

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • api.anthropic.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "api.anthropic.com"

See Network Configuration for more information.

Generated by 📝 Daily Documentation Healer · claude · haiku45 · 192.8 AIC · ⌖ 54.6 AIC · ⊞ 10.4K ·

  • expires on Sep 24, 2026, 3:48 PM UTC-08:00
Dominant language
Go
Stars
5.2k
Forks
547
Avg merge
5h 55m
Merged PRs (30d)
771

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from github/gh-aw

All issues in github/gh-aw

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.