Skip to content

fix(ux): prerequisites check, no-args squad list, schedule hint [v0.3… #955

fix(ux): prerequisites check, no-args squad list, schedule hint [v0.3…

fix(ux): prerequisites check, no-args squad list, schedule hint [v0.3… #955

Workflow file for this run

name: CI
permissions:
contents: read
on:
push:
branches: [main, develop, 'sprint/**', 'release/**']
pull_request:
branches: [main, develop, 'sprint/**', 'release/**']
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20, 22]
steps:
- uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Lint
run: npm run lint
- name: Type check
run: npm run typecheck
- name: Build
run: npm run build
- name: Test
run: npm run test -- --coverage
env:
FORCE_COLOR: '1'
- name: Upload coverage (Node 22 only)
if: matrix.node-version == 22
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
- name: Upload build artifacts (Node 22 only)
if: matrix.node-version == 22
uses: actions/upload-artifact@v4
with:
name: dist
path: dist/
retention-days: 7
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Security audit
run: npm audit --audit-level=critical
smoke-test:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Test squads init
run: |
# Create temp directory and init
mkdir -p /tmp/test-init
cd /tmp/test-init
git init
git config user.email "smoke@test.local"
git config user.name "Smoke Test"
node $GITHUB_WORKSPACE/dist/cli.js init --yes --force
# Verify core files created by seed-based init
test -f CLAUDE.md || (echo "CLAUDE.md missing" && exit 1)
test -f .claude/settings.json || (echo ".claude/settings.json missing" && exit 1)
test -f .agents/BUSINESS_BRIEF.md || (echo ".agents/BUSINESS_BRIEF.md missing" && exit 1)
test -f AGENTS.md || (echo "AGENTS.md missing" && exit 1)
# Core 4 squads (created by --yes)
test -f .agents/squads/company/SQUAD.md || (echo "company SQUAD.md missing" && exit 1)
test -f .agents/squads/research/SQUAD.md || (echo "research SQUAD.md missing" && exit 1)
test -f .agents/squads/intelligence/SQUAD.md || (echo "intelligence SQUAD.md missing" && exit 1)
test -f .agents/squads/product/SQUAD.md || (echo "product SQUAD.md missing" && exit 1)
# Context cascade files
test -f .agents/config/SYSTEM.md || (echo "SYSTEM.md missing" && exit 1)
test -f .agents/memory/company/directives.md || (echo "directives.md missing" && exit 1)
# Memory state files
test -f .agents/memory/company/manager/state.md || (echo "company manager state missing" && exit 1)
test -f .agents/memory/research/lead/state.md || (echo "research lead state missing" && exit 1)
test -f .agents/memory/intelligence/intel-lead/state.md || (echo "intelligence state missing" && exit 1)
echo "✓ squads init smoke test passed"
- name: Test squads status
run: |
cd /tmp/test-init
node $GITHUB_WORKSPACE/dist/cli.js status || true
echo "✓ squads status runs"
- name: Test squads context
run: |
cd /tmp/test-init
node $GITHUB_WORKSPACE/dist/cli.js context || true
echo "✓ squads context runs"
first-run-e2e:
name: First-Run E2E (retention gate)
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Run first-run E2E journey
run: npx vitest run test/e2e/first-run.e2e.test.ts --reporter=verbose
env:
FORCE_COLOR: '1'
NO_COLOR: '0'
npm-install-smoke:
name: npm install smoke test (PR gate)
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run npm-install smoke test
run: bash scripts/e2e-smoke.sh