Skip to content

Add maintenance guardrails for content rules and toolchain#73

Merged
VatsalSy merged 4 commits into
mainfrom
Worthington/fix-maintenance-review-followups
Mar 17, 2026
Merged

Add maintenance guardrails for content rules and toolchain#73
VatsalSy merged 4 commits into
mainfrom
Worthington/fix-maintenance-review-followups

Conversation

@comphy-bot

@comphy-bot comphy-bot commented Mar 16, 2026

Copy link
Copy Markdown
Member

Summary

  • add follow-up guardrails for review comments raised on recent maintenance PRs
  • keep the content-rules workflow trigger list in sync with the files its validator actually checks
  • add regression coverage for both deploy.sh edge cases and the add-news bullet matcher
  • pin the Ruby/Bundler toolchain so local setup and CI fail early instead of drifting into manual lockfile edits

Changes

  • add scripts/check-content-rules-trigger-parity.py and wire it into content-rules-checks.yml
  • expand content-rules workflow path coverage to include the add-news/add-paper skill docs plus the workflow/self-check files
  • fix scripts/deploy.sh --host validation to accept bracketed IPv6 literals and report the constraint clearly
  • add tests/deploy-script-regression.sh plus a new maintenance-regression-checks.yml workflow for deploy/add-news regressions on relevant PRs
  • add tests/news-bullet-regression.test.js with fixtures covering frontmatter delimiters, nested bullets, and special announcement blocks
  • add scripts/check-ruby-toolchain.sh, pin CI to Ruby 3.2.2 + Bundler 2.5.23, and update scripts/setup.sh/README.md to use the same toolchain and preflight
  • add PR-template checklist items for single-purpose dependency/security PRs and resolved review threads before merge

Testing

  • python3 scripts/check-content-rules-trigger-parity.py
  • bash -n scripts/deploy.sh
  • bash -n scripts/setup.sh
  • bash -n scripts/check-ruby-toolchain.sh
  • bash tests/deploy-script-regression.sh
  • ruby -e 'require "yaml"; YAML.load_file(".github/workflows/content-rules-checks.yml"); YAML.load_file(".github/workflows/jekyll.yml"); YAML.load_file(".github/workflows/maintenance-regression-checks.yml"); puts "yaml ok"'
  • npm test -- --runInBand tests/news-bullet-regression.test.js
  • ./scripts/check-ruby-toolchain.sh (fails on this machine as expected: active Ruby is 2.6.10, repo requires 3.2.2)

@VatsalSy
VatsalSy requested a review from Copilot March 16, 2026 22:30
Bump jest and jest-environment-jsdom to 30.3.0 so the test stack no longer pulls @tootallnate/once through jsdom/http-proxy-agent.

Adjust the affected jsdom tests to update the URL via history.replaceState instead of redefining window.location, which is no longer writable under the newer environment.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds maintenance guardrails to keep CI/workflows, scripts, and docs aligned (content-rule validation triggers, deploy.sh edge cases, add-news bullet counting fixtures, and Ruby/Bundler toolchain pinning).

Changes:

  • Adds trigger-parity validation for the content-rules workflow and expands workflow path filters.
  • Adds regression tests + a dedicated workflow for deploy.sh edge cases and add-news bullet counting fixtures.
  • Pins Ruby/Bundler versions across CI + setup docs/scripts and adds a toolchain preflight check.

Reviewed changes

Copilot reviewed 17 out of 18 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
scripts/check-content-rules-trigger-parity.py New guardrail ensuring workflow trigger paths match files validated by validate-content-rules.sh.
.github/workflows/content-rules-checks.yml Expands trigger paths and runs the new parity check before validation.
scripts/deploy.sh Improves --host validation to accept bracketed IPv6 literals with a clearer error message.
tests/deploy-script-regression.sh New bash regression tests covering deploy.sh port/livereload/IPv6/validation behavior.
.github/workflows/maintenance-regression-checks.yml New workflow to run deploy/add-news regressions only when relevant files change.
tests/news-bullet-regression.test.js New Jest regression tests verifying top-level - bullet counting behavior against fixtures.
tests/fixtures/news-bullets/*.md Fixtures for frontmatter, nested bullets, and special announcement blocks.
scripts/check-ruby-toolchain.sh New toolchain preflight enforcing Ruby/Bundler versions from repo-pinned files.
.github/workflows/jekyll.yml Pins Ruby/Bundler in CI and runs toolchain preflight.
scripts/setup.sh Aligns setup with pinned Ruby/Bundler and runs the toolchain preflight.
README.md Updates setup docs to reference pinned Bundler and the toolchain preflight.
.github/PULL_REQUEST_TEMPLATE/default.md Adds checklist items to reduce scope creep and ensure review threads are resolved.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread scripts/setup.sh Outdated
Comment thread scripts/setup.sh Outdated
Comment thread scripts/check-content-rules-trigger-parity.py Outdated
Comment thread README.md Outdated
@VatsalSy
VatsalSy merged commit 35d2914 into main Mar 17, 2026
5 checks passed
@VatsalSy
VatsalSy deleted the Worthington/fix-maintenance-review-followups branch March 17, 2026 15:47
comphy-bot added a commit that referenced this pull request Mar 21, 2026
- weekly-tests.yml: add content-rules parity, validate-content-rules,
  deploy regression, news-bullet/stale-search targeted tests, teaching
  markdown lint, ruby toolchain check, and jekyll build to the weekly
  schedule so maintenance guardrails from PRs #73/#76 run continuously

- tests/utils.test.js: 18 new Jest tests covering initScrollReveal
  (IO available + unavailable + no blocks), copyToClipboard (clipboard
  API, execCommand fallback, rejected clipboard, missing text, attribute
  variants), safeQuery/safeQueryAll (valid, no-match, invalid selector,
  context), and window.Utils export shape

- pr-hygiene-check.yml: new workflow that warns when a dependency/security
  PR also changes unrelated app/content files; warning-only mode, suppress
  with 'mixed-changes-ok' label, flip ENFORCE=true to hard-fail

- PR template: add checklist item requiring a regression test or linked
  follow-up issue for every accepted review finding that identifies a
  reproducible bug or edge case
VatsalSy added a commit that referenced this pull request Jun 29, 2026
…view-followups

Add maintenance guardrails for content rules and toolchain
VatsalSy pushed a commit that referenced this pull request Jun 29, 2026
- weekly-tests.yml: add content-rules parity, validate-content-rules,
  deploy regression, news-bullet/stale-search targeted tests, teaching
  markdown lint, ruby toolchain check, and jekyll build to the weekly
  schedule so maintenance guardrails from PRs #73/#76 run continuously

- tests/utils.test.js: 18 new Jest tests covering initScrollReveal
  (IO available + unavailable + no blocks), copyToClipboard (clipboard
  API, execCommand fallback, rejected clipboard, missing text, attribute
  variants), safeQuery/safeQueryAll (valid, no-match, invalid selector,
  context), and window.Utils export shape

- pr-hygiene-check.yml: new workflow that warns when a dependency/security
  PR also changes unrelated app/content files; warning-only mode, suppress
  with 'mixed-changes-ok' label, flip ENFORCE=true to hard-fail

- PR template: add checklist item requiring a regression test or linked
  follow-up issue for every accepted review finding that identifies a
  reproducible bug or edge case
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants