ci: publish GenDoc's own error catalog on every push to main#166
Open
Reefact wants to merge 1 commit into
Open
ci: publish GenDoc's own error catalog on every push to main#166Reefact wants to merge 1 commit into
Reefact wants to merge 1 commit into
Conversation
Regenerate FirstClassErrors.GenDoc's error catalog as Markdown into doc/generated/gendoc on every push to main, and commit it directly with the github-actions[bot] identity when it changed. No PR review step, unlike the changelog draft: the content is a deterministic rendering of the catalog GenDoc already documents about itself, with nothing inferred to curate. Restricted to push events on main (never pull requests), reusing the .NET 8 floor job's existing build of fce and FirstClassErrors.GenDoc.dll. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0148FgVG3MkKn2kudM2TkmGa
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Wire the CI/CD generation angle that #142 called for but the merged PR #163 only proved with a transient
grepcheck:doc/generated/gendoc/(created by #164/#165 as the living-documentation target for "the error catalog emitted by the GenDoc toolchain") now gets actually populated — the.NET 8 floorjob regenerates it as Markdown fromFirstClassErrors.GenDoc.dllon every push tomain, and commits it directly when it changed.Type of change
Changes
floorjob in.github/workflows/ci.yml, gated ongithub.event_name == 'push' && github.ref == 'refs/heads/main'(never a pull request), that runsfce generate --assemblies .../FirstClassErrors.GenDoc.dll --format markdown --layout single --service-name gendoc --output doc/generated/gendoc, reusing the build already done earlier in the same job.github-actions[bot]identity and push directly tomain— no PR, unlike the changelog-draft workflow, because the content is a deterministic rendering of a catalog GenDoc already documents about itself: there is nothing model-inferred to curate, only source truth to reflect.contents: write(only this job; everything else in the workflow stays read-only).doc/generated/gendoc/starts this PR still holding only its.gitkeepplaceholder — the first real content lands from the first post-merge run onmain, so the automation proves itself rather than being seeded by hand.Testing
dotnet build FirstClassErrors.slndotnet test FirstClassErrors.slnFirstClassErrors.Analyzers.UnitTests)Not run: this PR touches only
.github/workflows/ci.yml, no source. Verified instead: the workflow YAML parses; the exactfce generateinvocation was run locally (Release build ofFirstClassErrors.Cli) against a scratch output directory and produced a well-formed single-file Markdown catalog (table of contents, business rules, diagnostics, RFC 9457 examples) for all 16GENDOC_*codes — content deleted afterward, not committed, per the point above. Theif:gate means this PR's own CI run exercises every step except the final commit (a push event, not a pull request), so the publish step's condition is the only part untested by this PR's own checks; the real proof is the first push tomainafter merge.Documentation
doc/updateddoc/generated/README.mdalready describesgendoc/as CI/CD-produced living documentation; this PR only makes that true, without changing the description.Architecture decisions
Checked against the ADR base: this operationalizes the
doc/generated/convention #164/#165 already established (no new decision), and is consistent with ADR-0009 (GenDoc documents its own errors) and ADR-0002 (net8.0 floor tooling — this reuses the floor job's existing build, no new target framework).Related issues
Refs #142
🤖 Generated with Claude Code
https://claude.ai/code/session_0148FgVG3MkKn2kudM2TkmGa
Generated by Claude Code