Walkthrough: .vscode and GitHub CI/CD

This document records the project-specific setup for editor configuration and continuous integration for the devcentr.org repository.

Decision: .vscode only (no code-workspace)

  • Chosen approach: use a committed .vscode folder in this repo only. No multi-root .code-workspace file.

  • Rationale: Single-repo project; shared settings and recommended extensions live in .vscode so all contributors get the same editor behavior and hints.

What was added

.vscode (committed)

  • .vscode/settings.json — project settings: dprint as default formatter, format on save for TypeScript/TSX/JSON/JSONC.

  • .vscode/extensions.json — recommended extensions: dprint.dprint, solidjs-community.solid-js.

.vscode is not in .gitignore in this repo, so these files are versioned.

GitHub Actions CI and deploy

  • Workflow file: .github/workflows/ci.yml

  • Triggers: push and pull_request to main

  • Build job: Ubuntu, Node 22, pnpm 9; checks out sibling repos for changelog ingest, toolchain-advisor SDL, and agent-rules bootstrap profiles; pnpm install --no-frozen-lockfile then pnpm run build. Static build output is in .output/public. A .nojekyll file is added there so GitHub Pages serves _build and _server correctly. Post-build, CI asserts skills/index.html and catalog/bootstrap-profiles.json exist.

  • Deploy job (runs only on push to main): uploads .output/public as the Pages artifact and deploys via actions/deploy-pages. Requires GitHub Pages to be set to "Deploy from a GitHub Actions workflow" in the repo Settings → Pages. Custom domain (e.g. devcentr.org) can be set there.

Static build (app.config.ts)

  • ssr: false and server: { preset: "static", static: true } so the site is built as static files for GitHub Pages (or any static host). The previous 503 at the live URL was because the app was not deployed; the workflow now deploys the static build on every push to main.

Other dev-centr projects

Some other repos under dev-centr have .vscode/ in their .gitignore (e.g. docs, issue-tracker, github-actions-editor). This repo does not ignore .vscode; standardizing others would require removing that ignore and adding a shared or repo-specific .vscode there.

Summary

| Item | Result | |-------------------|--------| | Workspace style | .vscode only, no .code-workspace | | .vscode committed | Yes (settings.json, extensions.json) | | CI/CD | GitHub Actions: build on push/PR; deploy to GitHub Pages on push to main | | Build output | Static (.output/public) for Pages | | Lockfile | pnpm-lock.yaml committed for CI |