From 462e1fff6da3641266c86407c68e14df1184beac Mon Sep 17 00:00:00 2001 From: tiennm99 Date: Mon, 10 Aug 2026 18:04:52 +0700 Subject: [PATCH] chore: unify the labs under one GitHub Pages site Each web demo builds with its base path under /ai-coding-workflow-labs/, a single deploy workflow assembles them with a root index, and the per-directory workflows from the standalone repos are removed. --- .github/workflows/deploy-pages.yml | 74 +++++++++++++++++++ README.md | 20 +++++ bmad/.github/workflows/deploy.yml | 40 ---------- bmad/vite.config.js | 2 +- claudekit/.github/workflows/deploy.yml | 44 ----------- claudekit/vite.config.js | 2 +- gstack/.github/workflows/ci.yml | 33 --------- gstack/.github/workflows/deploy.yml | 52 ------------- gstack/astro.config.mjs | 2 +- index.html | 31 ++++++++ oh-my-claudecode/.github/workflows/deploy.yml | 30 -------- superpowers/.github/workflows/deploy.yml | 46 ------------ superpowers/vite.config.ts | 2 +- 13 files changed, 129 insertions(+), 249 deletions(-) create mode 100644 .github/workflows/deploy-pages.yml create mode 100644 README.md delete mode 100644 bmad/.github/workflows/deploy.yml delete mode 100644 claudekit/.github/workflows/deploy.yml delete mode 100644 gstack/.github/workflows/ci.yml delete mode 100644 gstack/.github/workflows/deploy.yml create mode 100644 index.html delete mode 100644 oh-my-claudecode/.github/workflows/deploy.yml delete mode 100644 superpowers/.github/workflows/deploy.yml diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml new file mode 100644 index 0000000..4be6547 --- /dev/null +++ b/.github/workflows/deploy-pages.yml @@ -0,0 +1,74 @@ +name: Deploy to GitHub Pages + +on: + push: + branches: [main] + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + + - uses: actions/setup-node@v7 + with: + node-version: '24' + + - uses: oven-sh/setup-bun@v2 + with: + bun-version: 1.3.13 + + - name: Build claudekit + run: npm ci && npm test && npm run build + working-directory: claudekit + + - name: Build superpowers + run: npm ci && npm test && npm run build + working-directory: superpowers + + - name: Build bmad + run: npm ci && npm run build + working-directory: bmad + + - name: Build gstack + run: bun install --frozen-lockfile && bun run build + working-directory: gstack + env: + SITE_URL: https://tiennm99.github.io + SITE_BASE: /ai-coding-workflow-labs/gstack + + - name: Assemble site + run: | + set -euo pipefail + mkdir -p _site + cp index.html _site/ + cp -r claudekit/dist _site/claudekit + cp -r superpowers/dist _site/superpowers + cp -r bmad/dist _site/bmad + cp -r gstack/dist _site/gstack + mkdir -p _site/oh-my-claudecode + cp -r oh-my-claudecode/index.html oh-my-claudecode/src oh-my-claudecode/styles _site/oh-my-claudecode/ + + - uses: actions/upload-pages-artifact@v3 + with: + path: _site + + deploy: + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - id: deployment + uses: actions/deploy-pages@v4 diff --git a/README.md b/README.md new file mode 100644 index 0000000..10a78cf --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# ai-coding-workflow-labs + +Experiments with AI-assisted coding workflows and tooling. Each directory was a +standalone repository, merged here with full history. The web demos are served +together at **[tiennm99.github.io/ai-coding-workflow-labs](https://tiennm99.github.io/ai-coding-workflow-labs/)**. + +| Directory | Experiment | Demo | +| --- | --- | --- | +| [`claudekit/`](./claudekit/) | ClaudeKit workflow (Vite/JS) | [/claudekit/](https://tiennm99.github.io/ai-coding-workflow-labs/claudekit/) | +| [`superpowers/`](./superpowers/) | Superpowers skill set (Vite/TS) | [/superpowers/](https://tiennm99.github.io/ai-coding-workflow-labs/superpowers/) | +| [`bmad/`](./bmad/) | BMAD method (Vite/JS) | [/bmad/](https://tiennm99.github.io/ai-coding-workflow-labs/bmad/) | +| [`oh-my-claudecode/`](./oh-my-claudecode/) | oh-my-claudecode (static) | [/oh-my-claudecode/](https://tiennm99.github.io/ai-coding-workflow-labs/oh-my-claudecode/) | +| [`gstack/`](./gstack/) | gstack starter (Astro/Bun) | [/gstack/](https://tiennm99.github.io/ai-coding-workflow-labs/gstack/) | +| [`cc4e-course/`](./cc4e-course/) | Claude Code for Everyone course work | [Vercel](https://cc4e-course-lilac.vercel.app) | +| [`advanced-claude-workflows/`](./advanced-claude-workflows/) | Hooks/aliases notes | — | + +The `Deploy to GitHub Pages` workflow builds every app with its base path under +this repo and publishes them as one site with a root index. + +Archive of experiments — not production code. diff --git a/bmad/.github/workflows/deploy.yml b/bmad/.github/workflows/deploy.yml deleted file mode 100644 index 5c5c782..0000000 --- a/bmad/.github/workflows/deploy.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Deploy to GitHub Pages - -on: - push: - branches: [main] - workflow_dispatch: - -permissions: - contents: read - pages: write - id-token: write - -concurrency: - group: pages - cancel-in-progress: false - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: npm - - run: npm ci - - run: npm run build - - uses: actions/upload-pages-artifact@v3 - with: - path: dist - - deploy: - needs: build - runs-on: ubuntu-latest - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - steps: - - id: deployment - uses: actions/deploy-pages@v4 diff --git a/bmad/vite.config.js b/bmad/vite.config.js index e37c24e..565d2ae 100644 --- a/bmad/vite.config.js +++ b/bmad/vite.config.js @@ -4,6 +4,6 @@ import tailwindcss from '@tailwindcss/vite' // https://vite.dev/config/ export default defineConfig({ - base: '/try-bmad/', + base: '/ai-coding-workflow-labs/bmad/', plugins: [svelte(), tailwindcss()], }) diff --git a/claudekit/.github/workflows/deploy.yml b/claudekit/.github/workflows/deploy.yml deleted file mode 100644 index 98df68a..0000000 --- a/claudekit/.github/workflows/deploy.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: Deploy to GitHub Pages - -on: - push: - branches: [main] - workflow_dispatch: - -permissions: - contents: read - pages: write - id-token: write - -concurrency: - group: pages - cancel-in-progress: false - -jobs: - build-and-deploy: - runs-on: ubuntu-latest - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: npm - - - run: npm ci - - - run: npm test - - - run: npm run build - - - uses: actions/configure-pages@v5 - - - uses: actions/upload-pages-artifact@v3 - with: - path: dist - - - id: deployment - uses: actions/deploy-pages@v4 diff --git a/claudekit/vite.config.js b/claudekit/vite.config.js index a0f61fc..d6a1b2a 100644 --- a/claudekit/vite.config.js +++ b/claudekit/vite.config.js @@ -1,5 +1,5 @@ import { defineConfig } from "vite"; export default defineConfig({ - base: "/try-claudekit/", + base: "/ai-coding-workflow-labs/claudekit/", }); diff --git a/gstack/.github/workflows/ci.yml b/gstack/.github/workflows/ci.yml deleted file mode 100644 index 380fd9b..0000000 --- a/gstack/.github/workflows/ci.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: CI - -on: - pull_request: - push: - branches: - - main - -permissions: - contents: read - -jobs: - ci: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Setup Bun - uses: oven-sh/setup-bun@v2 - with: - bun-version: 1.3.13 - - - name: Install dependencies - run: bun install --frozen-lockfile - - - name: Typecheck - run: bun run typecheck - - - name: Unit tests - run: bun run test - - - name: Build - run: bun run build diff --git a/gstack/.github/workflows/deploy.yml b/gstack/.github/workflows/deploy.yml deleted file mode 100644 index d9dacfb..0000000 --- a/gstack/.github/workflows/deploy.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: Deploy to GitHub Pages - -on: - push: - branches: - - main - workflow_dispatch: - -permissions: - contents: read - pages: write - id-token: write - -concurrency: - group: pages-deploy - cancel-in-progress: false - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Setup Bun - uses: oven-sh/setup-bun@v2 - with: - bun-version: 1.3.13 - - - name: Install dependencies - run: bun install --frozen-lockfile - - - name: Build - run: bun run build - env: - SITE_URL: https://tiennm99.github.io - SITE_BASE: /try-gstack - - - name: Upload artifact - uses: actions/upload-pages-artifact@v3 - with: - path: ./dist - - deploy: - needs: build - runs-on: ubuntu-latest - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 diff --git a/gstack/astro.config.mjs b/gstack/astro.config.mjs index da31900..765c56c 100644 --- a/gstack/astro.config.mjs +++ b/gstack/astro.config.mjs @@ -3,7 +3,7 @@ import tailwind from '@astrojs/tailwind'; import sitemap from '@astrojs/sitemap'; const siteUrl = process.env.SITE_URL ?? 'https://tiennm99.github.io'; -const basePath = process.env.SITE_BASE ?? '/try-gstack'; +const basePath = process.env.SITE_BASE ?? '/ai-coding-workflow-labs/gstack'; export default defineConfig({ site: siteUrl, diff --git a/index.html b/index.html new file mode 100644 index 0000000..c84b023 --- /dev/null +++ b/index.html @@ -0,0 +1,31 @@ + + + + + + AI Coding Workflow Labs + + + +

AI Coding Workflow Labs

+

Experiments with AI-assisted coding workflows. Each entry was a standalone + repository, merged here with full history.

+ +

Not deployed here: + cc4e-course (hosted on Vercel) and + advanced-claude-workflows (notes only). +

+ + diff --git a/oh-my-claudecode/.github/workflows/deploy.yml b/oh-my-claudecode/.github/workflows/deploy.yml deleted file mode 100644 index da044e6..0000000 --- a/oh-my-claudecode/.github/workflows/deploy.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Deploy to GitHub Pages - -on: - push: - branches: [main] - workflow_dispatch: - -permissions: - contents: read - pages: write - id-token: write - -concurrency: - group: pages - cancel-in-progress: false - -jobs: - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/configure-pages@v5 - - uses: actions/upload-pages-artifact@v3 - with: - path: . - - id: deployment - uses: actions/deploy-pages@v4 diff --git a/superpowers/.github/workflows/deploy.yml b/superpowers/.github/workflows/deploy.yml deleted file mode 100644 index e433649..0000000 --- a/superpowers/.github/workflows/deploy.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Deploy to GitHub Pages - -on: - push: - branches: [main] - workflow_dispatch: - -permissions: - contents: read - pages: write - id-token: write - -concurrency: - group: pages - cancel-in-progress: true - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: npm - - - run: npm ci - - - run: npm test - - - run: npm run build - - - uses: actions/upload-pages-artifact@v3 - with: - path: dist - - deploy: - needs: build - runs-on: ubuntu-latest - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - steps: - - id: deployment - uses: actions/deploy-pages@v4 diff --git a/superpowers/vite.config.ts b/superpowers/vite.config.ts index c8abcee..5114533 100644 --- a/superpowers/vite.config.ts +++ b/superpowers/vite.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; export default defineConfig({ - base: "/try-superpowers/", + base: "/ai-coding-workflow-labs/superpowers/", plugins: [react()], test: { globals: true,