with one click
webstatus-maintenance
// Use when upgrading toolchain versions (Go, Node.js, Terraform, Playwright) or updating the DevContainer and Github CI configurations.
// Use when upgrading toolchain versions (Go, Node.js, Terraform, Playwright) or updating the DevContainer and Github CI configurations.
Use when creating or modifying Go backend API endpoints, modifying Spanner database schemas, or working with OpenAPI and Spanner mappers.
Use when working with the webstatus notification pipeline, event producer, push delivery, or push workers (e.g., Email, Webhooks), and Pub/Sub subscribers.
Use when modifying the ANTLR search grammar, adding new search terms, or working with the query parser and builder.
Use when writing, modifying, or debugging Playwright end-to-end (E2E) tests for webstatus.dev.
Use when modifying the frontend SPA, working with TypeScript, Lit web components, Shoelace components, or frontend tests.
Use when working on Go data ingestion workflows, scheduled Cloud Run jobs, or adding new scrapers for BCD, WPT, or other data sources.
| name | webstatus-maintenance |
| description | Use when upgrading toolchain versions (Go, Node.js, Terraform, Playwright) or updating the DevContainer and Github CI configurations. |
This skill provides guidance for updating the core toolchain versions across the webstatus.dev repository.
For a technical overview of synchronized upgrades and infrastructure maintenance, see references/architecture.md.
When asked to update a specific language or tool, you must update it in all of its respective locations to prevent environment drift.
The Go version must be kept in sync across:
.devcontainer/devcontainer.json (features -> go -> version).github/workflows/ci.yml (GO_VERSION environment variable).github/workflows/devcontainer.yml (GO_VERSION environment variable)images/go_service.Dockerfile (FROM golang:X.Y.Z-alpine...)After updating the files, you should run make go-update && make go-tidy to ensure the go.mod dependencies are compatible with the new version.
The Node.js version must be kept in sync across:
.devcontainer/devcontainer.json (features -> node -> version).devcontainer/Dockerfile (FROM mcr.microsoft.com/devcontainers/typescript-node:X-22).github/workflows/ci.yml (NODE_VERSION environment variable).github/workflows/devcontainer.yml (NODE_VERSION environment variable)images/nodejs_service.Dockerfile (FROM node:X.Y.Z-alpine...)After updating, run make node-update and test the frontend build.
Playwright requires its NPM package and OS-level dependencies to stay in sync:
playwright and @web/test-runner-playwright in frontend/package.json..github/workflows/ci.yml (the npx playwright install --with-deps step).Other DevContainer tools (Terraform, Skaffold, Shellcheck, GitHub CLI) are managed within .devcontainer/devcontainer.json.
features object and update its "version"..terraform-version file (if one exists) or CI checks match the new version.If you change how versions are managed or introduce a new critical dependency:
docs/maintenance.md to reflect the new update path.GEMINI.md to ensure I am aware of the changes.