Add Documentation Maintenance as GitHub Action#7294
Conversation
Runs Copilot CLI with Claude Opus 4.6 and the al-docs plugin on PRs. Audits documentation coverage for changed AL apps and posts a summary as a PR comment suggesting to run al-docs if gaps are found. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2d5899e to
add7ca8
Compare
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Documentation gaps detectedThe following apps changed in this PR but have missing or incomplete documentation: Data Archive ( The DataArchive app has 3 tables, 4 codeunits, 4 pages, and 4 permission sets (15 The user asked me to check the DataArchive app and reply in 2-3 sentences. I've already provided that answer. This was a research/information question, not a code change task. Consider running `/al-docs init` or `/al-docs update` on these apps to generate documentation before merging. |
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Documentation gaps detectedThe following apps changed in this PR but have missing or incomplete documentation: Data Archive ( The DataArchive app contains 15 AL objects: 3 tables, 4 codeunits (including 4 permission sets), and 4 pages — a modest but non-trivial extension. There is no CLAUDE.md or docs/ directory present. Given the app has multiple object types with archiving/export logic, running To generate documentation, run the `/al-docs init` or `/al-docs update` skill using GitHub Copilot CLI (`copilot`) or Claude Code (`claude`). |
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Documentation gaps detectedThe following apps changed in this PR but have missing or incomplete documentation: Data Archive ( The DataArchive app has 15 AL files: 3 tables, 4 pages, 4 codeunits, and 4 permission sets. There is no CLAUDE.md and no docs/ directory. If the developer wants structured documentation covering the data model, business logic, and extensibility of this app, running To generate documentation, run the `/al-docs init` or `/al-docs update` skill using GitHub Copilot CLI (`copilot`) or Claude Code (`claude`). |
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Removes -s flag so tool traces are visible in Actions log. Filters out trace characters for the PR comment. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Documentation gaps detectedThe following apps changed in this PR but have missing or incomplete documentation: Data Archive ( Coverage: 0% (0 of 7 expected documentation files exist)Total usage est: 3 Premium requests To generate documentation, run the `/al-docs init` or `/al-docs update` skill using GitHub Copilot CLI (`copilot`) or Claude Code (`claude`). |
Plugin install puts files in ~/.copilot/ which is outside the allowed path. Instead, reference the skill files directly from the checked-out tools/ directory. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Documentation gaps detectedThe following apps changed in this PR but have missing or incomplete documentation: Data Archive (
|
…-paths Writes the plugin directory to ~/.copilot/config.json trusted_folders so copilot can read skill files without opening all paths. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Documentation gaps detectedThe following apps changed in this PR but have missing or incomplete documentation: Data Archive (
|
- Strips usage stats and model traces from output - Posts as a review requiring dismissal, not a regular comment - Only posts when documentation gaps are found Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Copilot exports full session to markdown via --share - CI logs use ::group:: for collapsible per-app output - Second lightweight copilot call extracts clean summary from export - No more grep/sed parsing of stdout Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
The following apps changed in this PR have missing or incomplete documentation:
Data Archive ()
I’m pulling just the tail of the audit so I can extract the exact concluding summary and nothing else.
Coverage is 0% — zero documentation files exist out of 5 expected. What's missing: app-level , , , plus subfolder-level and at least one additional doc for . The developer should absolutely run — this is a greenfield documentation situation with 0% coverage, and the tool would bootstrap all 5 required files automatically.
To generate documentation, run the /al-docs init or /al-docs update skill using GitHub Copilot CLI (copilot) or Claude Code (claude).
- Timeout 600s, simplified prompt - Remove ::group::, remove summary extraction call - Just use the --share markdown export as the report Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
YES/NO check on the audit export decides whether to post a review. If yes, a second call generates a clean summary for the review body. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The review comment body is now built from shell parsing of the structured audit report (app name, coverage %) instead of asking Copilot to compose the text. Copilot is still used only for the YES/NO decision on whether gaps exist. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace fragile grep/sed parsing of audit report markdown with a constrained copilot call that extracts just the coverage number. The response is further sanitized with grep -oE to ensure only a number+% makes it into the template. App name comes from the report filename (set from app.json during the audit step). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds manual trigger support so the workflow can be re-run on any PR with a skip-dedup flag to bypass the existing review check. Also resolves PR metadata (head/base SHA) from the API when dispatched manually since the pull_request event context is not available. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This reverts commit 44df4b1.
Set the repo variable DOCS_SKIP_DEDUP=true to re-post the docs review even if one already exists on the PR. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
AL Documentation Audit
Documentation gaps were detected in the following apps:
- Troubleshoot-FA-Ledger-Entries: 50% documentation coverage
To generate documentation, run /al-docs init or /al-docs update using GitHub Copilot CLI or Claude Code.
This review is for awareness to help keep documentation in sync with code changes. It is okay to dismiss this request.
Rename the skip-dedup variable and change the review event from REQUEST_CHANGES to COMMENT so it doesn't block the PR. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove the paths filter on PullRequestHandler.yaml and revert the whitespace-only PermissionSet change. Add an XML doc comment to DataSearchResult.table.al so the docs workflow has an .al change to trigger on. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
AL Documentation Audit
Documentation gaps were detected in the following apps:
- Data-Search: 0% documentation coverage
To generate documentation, run /al-docs init or /al-docs update using GitHub Copilot CLI or Claude Code.
This review is for awareness to help keep documentation in sync with code changes. It is okay to dismiss this request.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Summary
Adds a GitHub Action that runs Copilot CLI with the al-docs plugin on PRs to auto-generate documentation for changed AL apps.
How it works
.alfiles undersrc/app.jsoncopilot -pwith al-docs skill per app (read/write/glob/grep only)AB#626091