From 21509fae4951d2b7c17925f09ca1e5f01eba0e25 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 18 Feb 2026 21:48:03 +0000 Subject: [PATCH 1/8] Add GitHub Actions CI to verify generated HTML is in sync MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a workflow that runs on every PR and push to main. It installs dependencies, re-runs generate.py, and fails with a clear message if the committed HTML in docs/ differs from what the generator would produce — preventing drift between the YAML source files and the checked-in HTML. https://claude.ai/code/session_01N58bvEvfg7jhcnDJaCpnD5 --- .github/workflows/check-generated.yml | 42 +++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .github/workflows/check-generated.yml diff --git a/.github/workflows/check-generated.yml b/.github/workflows/check-generated.yml new file mode 100644 index 00000000..30c9c9b5 --- /dev/null +++ b/.github/workflows/check-generated.yml @@ -0,0 +1,42 @@ +name: Check generated HTML is up to date + +on: + pull_request: + push: + branches: + - main + +jobs: + check: + name: Regenerate and diff + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.11" + cache: "pip" + + - name: Install dependencies + run: pip install -r requirements.txt + + - name: Run generator + run: python generate.py + + - name: Fail if generated files differ from committed files + run: | + if ! git diff --exit-code docs/; then + echo "" + echo "──────────────────────────────────────────────────────" + echo "ERROR: The generated HTML files are out of sync." + echo "You edited a YAML file but did not re-run generate.py." + echo "" + echo "Fix: run python generate.py locally, then commit the" + echo "updated files in docs/ together with your YAML changes." + echo "──────────────────────────────────────────────────────" + exit 1 + fi From 35bf9c6c823688334b83636f44e5fdf83f0c70af Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 18 Feb 2026 22:06:23 +0000 Subject: [PATCH 2/8] Switch CI from blocking to auto-committing regenerated HTML Instead of failing the PR when HTML is out of sync with YAML, the workflow now runs generate.py and pushes the result back to the PR branch automatically. This makes the workflow safe for agent-authored PRs (Codex, Claude) that may only edit YAML without regenerating the HTML. https://claude.ai/code/session_01N58bvEvfg7jhcnDJaCpnD5 --- .github/workflows/check-generated.yml | 35 ++++++++++++++++----------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/.github/workflows/check-generated.yml b/.github/workflows/check-generated.yml index 30c9c9b5..e88672fc 100644 --- a/.github/workflows/check-generated.yml +++ b/.github/workflows/check-generated.yml @@ -1,4 +1,4 @@ -name: Check generated HTML is up to date +name: Keep generated HTML in sync on: pull_request: @@ -6,14 +6,22 @@ on: branches: - main +permissions: + contents: write + jobs: - check: - name: Regenerate and diff + sync: + name: Regenerate HTML if needed runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 + with: + # Check out the actual branch, not the merge commit, + # so we can push back to it if needed. + ref: ${{ github.head_ref || github.ref_name }} + token: ${{ secrets.GITHUB_TOKEN }} - name: Set up Python uses: actions/setup-python@v5 @@ -27,16 +35,15 @@ jobs: - name: Run generator run: python generate.py - - name: Fail if generated files differ from committed files + - name: Commit regenerated HTML if out of sync run: | - if ! git diff --exit-code docs/; then - echo "" - echo "──────────────────────────────────────────────────────" - echo "ERROR: The generated HTML files are out of sync." - echo "You edited a YAML file but did not re-run generate.py." - echo "" - echo "Fix: run python generate.py locally, then commit the" - echo "updated files in docs/ together with your YAML changes." - echo "──────────────────────────────────────────────────────" - exit 1 + if ! git diff --exit-code docs/ > /dev/null 2>&1; then + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add docs/ + git commit -m "Auto-regenerate HTML from YAML changes [skip ci]" + git push + echo "Regenerated and committed updated HTML." + else + echo "HTML is already in sync, nothing to commit." fi From 0639c9ef9d7e87668b15cae9215782344652a257 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 18 Feb 2026 22:13:15 +0000 Subject: [PATCH 3/8] Fix .gitattributes typo and mark generated HTML as linguist-generated The file was misnamed .gitatttributes (3 t's) so git was never reading it. Renamed to .gitattributes and added linguist-generated attribute for docs/checklists/*.html so GitHub collapses those diffs by default in pull requests. https://claude.ai/code/session_01N58bvEvfg7jhcnDJaCpnD5 --- .gitattributes | 3 +++ .gitatttributes | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 .gitattributes delete mode 100644 .gitatttributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..1b13972c --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +*.png binary + +docs/checklists/*.html linguist-generated=true diff --git a/.gitatttributes b/.gitatttributes deleted file mode 100644 index 90f3ebd5..00000000 --- a/.gitatttributes +++ /dev/null @@ -1 +0,0 @@ -*.png binary \ No newline at end of file From c15144d5f561c866975ca9feba3d5bb12be3ce44 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 18 Feb 2026 22:17:31 +0000 Subject: [PATCH 4/8] Auto-regenerate HTML from YAML changes [skip ci] --- docs/checklists/achievements.html | 220 +- .../ancient_dragon_smithing_stones.html | 112 +- docs/checklists/armor.html | 1516 +++------- docs/checklists/ashesof_war.html | 600 +--- docs/checklists/bell_bearings.html | 340 +-- docs/checklists/bosses.html | 1132 ++----- docs/checklists/cookbooks.html | 340 +-- docs/checklists/dlc_walkthrough.html | 80 +- docs/checklists/dragon_hearts_deathroots.html | 116 +- docs/checklists/flaskof_wondrous_physick.html | 260 +- docs/checklists/gestures.html | 260 +- .../checklists/golden_seeds_sacred_tears.html | 244 +- docs/checklists/great_runes.html | 116 +- .../illusory_walls_invisible_paths.html | 180 +- docs/checklists/incantations.html | 640 +--- docs/checklists/landmarks_locations.html | 928 ++---- .../larval_tears_celestial_dews.html | 28 +- docs/checklists/legendaries.html | 40 +- .../memory_stones_talisman_pouches.html | 72 +- docs/checklists/npc_questlines.html | 188 +- docs/checklists/paintings.html | 116 +- docs/checklists/pots_bottles.html | 196 +- docs/checklists/remembrances_mausoleums.html | 100 +- ...dutree_fragments_revered_spirit_ashes.html | 28 +- docs/checklists/scrollsand_prayerbooks.html | 72 +- docs/checklists/sitesof_grace.html | 1420 +++------ docs/checklists/sorceries.html | 468 +-- docs/checklists/spirit_ashes.html | 484 +-- .../checklists/stonesword_keys_imp_seals.html | 488 +-- docs/checklists/talismans.html | 824 ++--- .../tldr_all_npc_quest_stepsin_order.html | 124 +- docs/checklists/tools_multiplayer.html | 220 +- docs/checklists/walkthrough.html | 2684 +++++------------ docs/checklists/weapons.html | 2272 ++++---------- docs/checklists/whetstones.html | 52 +- docs/index.html | 16 +- docs/map.html | 25 +- docs/options.html | 16 +- docs/search.html | 20 +- 39 files changed, 4259 insertions(+), 12778 deletions(-) diff --git a/docs/checklists/achievements.html b/docs/checklists/achievements.html index a1705e2f..c8aaacf7 100644 --- a/docs/checklists/achievements.html +++ b/docs/checklists/achievements.html @@ -27,14 +27,10 @@ Roundtable Guides
- +
- - - +
@@ -206,9 +198,7 @@

Achievements