Skip to content

feat: MCP one-click install + category filters #99

feat: MCP one-click install + category filters

feat: MCP one-click install + category filters #99

Workflow file for this run

name: CI
on:
pull_request:
push:
branches: [main]
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
# Structural docs check: fail any PR that hard-codes a skill
# count in prose. Pure Node, no install step required.
# The accepted forms are {{SKILLS_TOTAL}}, {{SKILLS_UPSTREAM}},
# {{SKILLS_REPOS}} — see scripts/skill-counts.cjs for the
# source of truth. This gate is what makes the prose count
# drift impossible: the next skill-add that forgets to update
# the count will fail CI rather than silently land.
check-skill-counts:
name: Verify skill counts in prose
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 22
- name: Verify no hard-coded skill counts in prose
run: node scripts/check-skill-counts.cjs
# Doc-pair section diff: fail any PR that drops an EN section in a
# documented EN/ZH doc pair, or adds a ZH-only section that drifts
# further from EN. Pure Node, no install step required. Defaults
# to drift informational; --strict mode (see script) makes
# missing EN sections a hard fail. Pair list lives in the script.
check-doc-pair:
name: Verify EN/ZH doc pair section parity
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 22
- name: Verify section parity across EN/ZH doc pairs
run: node scripts/check-doc-pair.cjs
# Mojibake gate: fail any PR that introduces a U+FFFD replacement
# character or CP1252-substituted-UTF-8 mojibake into a tracked
# source file. Pure Node, no install step required. Catches the
# same class of bug the doc-pair check catches, but at the byte
# level so it works across all languages.
check-mojibake:
name: Verify no mojibake in source files
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 22
- name: Verify no U+FFFD or CP1252 markers in tracked files
run: node scripts/check-mojibake.cjs
# i18n coverage gate: fail any PR that drops a locale file or
# introduces drift between an EN source key and a translated
# value. Pure Node, no install step required. `--strict` mode
# (see scripts/check-i18n-coverage.cjs) makes missing locale
# files a hard fail. In default mode (drift informational) the
# job still reports the table; the strict mode is opt-in for
# release branches.
check-i18n-coverage:
name: Verify i18n locale coverage
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 22
- name: Verify all locales have all locale files
run: node scripts/check-i18n-coverage.cjs
desktop-shell-checks:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- name: Install dependencies
run: npm ci
- name: Typecheck platform-core
run: npm run typecheck --workspace @cubecloud/platform-core
- name: Install agent-desktop dependencies
working-directory: agent-desktop
run: npm ci
- name: Typecheck agent-desktop
working-directory: agent-desktop
run: npm run typecheck
- name: Run agent-desktop test suite
working-directory: agent-desktop
run: npm run test
# NOTE: The desktop-shell-electron-smoke job was removed in V2.10.73.
# It referenced `npm run test:electron-smoke`, which was never defined
# in agent-desktop/package.json. The real CDP smoke suite
# (`npm run smoke` → scripts/smoke-all.js) requires a running dev
# electron with ENABLE_CDP=1 CDP_PORT=9222, which is not suitable for
# headless CI without significant setup. CDP smokes are a local /
# pre-release manual step — see .github/prompts/audit.prompt.md and
# .github/skills/agent-desktop-audit/SKILL.md.
desktop-shell-windows-packaging:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- name: Install dependencies
run: npm ci
- name: Install agent-desktop dependencies
working-directory: agent-desktop
run: npm ci
- name: Build Windows package
working-directory: agent-desktop
run: npm run build:win
- name: Verify packaged Windows app
working-directory: agent-desktop
run: npm run verify:bundle