MSRBot.io automation operates as a linked chain—from document extraction to site build and URL validation.
Each stage runs on a scheduled cron and triggers follow-ups automatically after merges or upstream data changes.
Most core workflows execute on a weekly cron, with triggered rebuilds after PR merges or manual dispatch. Validate Document URLs runs biweekly (1st + 15th of each month) — the corpus passed ~26k docs and each sweep takes 90+ minutes.
Crawls defined URL maps to parse and populate data (currently only SMPTE). Creates a PR if changes are found.
Workflow: Extract Documents - SMPTE
Sample Run: Run #18390426360
Dataset:
Reports (as needed):
Sample PR: - Update documents.json (20251010-193337) (#520)
Trigger: weekly schedule or manual dispatch
Builds a master lineage of documents, mapping each family, suite, and amendment relationship. Rebuilt inside every data PR (committed back to the PR branch); UNKEYED issues are synced after merge.
Workflow: Build MSI + MRI (PR) · issues: Sync MSI/MRI issues
Dataset: src/main/data/docs/
Reports:
Sample Issue: UNKEYED: x509-sg.2000 (#469)
Trigger: PRs that touch data/input/config/lib or the MSI/MRI scripts (incl. extract PRs), or manual dispatch
Builds a master reference map and determines whether referenced documents are present in the dataset. Rebuilt in the same PR-time job as MSI, right after it; MISSING REF issues are synced after merge.
Workflow: Build MSI + MRI (PR) · issues: Sync MSI/MRI issues
Dataset: src/main/data/docs/
Reports:
src/main/reports/mri/src/main/reports/mri_presence_audit.json(generated to resolve issues)
Sample Issue: MISSING REF: W3C.xml-names.20091208 (#467)
Trigger: same job as MSI (runs right after it)
Builds the front-end site from data and publishes to GitHub Pages.
Workflow: Build MSR
Sample Run: Run #18388295172 → Publish to GH Pages
Dataset:
Build Output: msrbot.io
Trigger: completion of Build MRI
Validates and normalizes URLs in the dataset. Creates PRs and manages issues as needed.
Workflow: Validate URLs
Sample Run: Run #18388310278
Reports:
src/main/reports/url_validate_audit.jsonsrc/main/reports/url_validate_normalize.json(generated to resolve issues)
Sample PR: URL Backfill resolved for X entries (#491)
Sample Issues:
Trigger: completion of Build MSR
Build preview of MSR site during PR creation, prior to publication to manually check rendering.
Workflow: Build Preview
Sample Run: Run #18398206332
Sample PRs:
Trigger: creation of PR with changes to
src/main/data/docs/or site rendering.
- Fully autonomous workflow chain:
Extract → MSI → MRI → MSR → URL Validate - Each stage runs independently but triggers the next when changes are detected and generates auditable JSON reports.
- PRs are opened only when data changes; metadata and validation commits go directly to
main. - PR generate MSR preview links when appropriate; when closed and/or merged, self cleans to remove stale preview links and branches.
- Permanent artifacts reports are stored in
src/main/reports. - All runs are concurrency-protected, idempotent, and self-healing.
- Node.js 20+ (LTS)
- GitHub Actions with
contents,issues, andpull-requestswrite permissions - Access to HTML/PDF publication URLs