Skip to content

CI scripts

Inventory of CI and utility scripts under scripts/ and the gates that use them.


Each npm run <script> command launches a verification script. Critical commands are run in CI on each PR.

CommandScriptRole
npm run linteslint . --ext .ts,.cjs --max-warnings=0TypeScript lint with import boundaries (see ADR 0001)
npm run typechecktsc -p tsconfig.json --noEmitStrict TypeScript check
npm testvitest runUnit tests (vitest)
npm run e2eplaywright testEnd-to-end tests (Playwright)
npm run line-countscripts/check-line-counts.mjsSize gate (refuses monoliths above threshold)
npm run architecture:checkscripts/check-architecture-boundaries.mjsStrict import boundaries between core/adapters/composition/addons
npm run public-docs:checkscripts/check-public-docs.mjsRefuses AGENT-*, AUDITOR-*, DISPATCH-* and other internal patterns in docs/
npm run docs:linksscripts/check-doc-links.mjsChecks internal markdown links (file + anchor)
npm run license:checkscripts/check-licenses.mjsChecks dependency licenses (refuses unauthorized copyleft)
npm run sbom:checkcyclonedx-npmGenerates and validates SBOM for root, UI, cortex-lite
npm run release:tarball:checkscripts/check-release-tarball.mjsAudits the release tarball (expected files, exclusions)

ScriptRole
scripts/release.shBump version, changelog, tag release
scripts/smoke-binary.shSmoke test the ./bin/arka-deck binary
scripts/init-public-repo.shPrepare a clean public repo (excludes .input/, AGENTS.md, CLAUDE.md, etc.)

.github/workflows/ci.yml chains the gates:

  1. Public files guard — refuses .input/, .claude/, .agents/, etc. in the Git index
  2. Public docs guardnpm run public-docs:check
  3. Docs link checknpm run docs:links
  4. DCO sign-off — checks git commit -s on each commit
  5. Secret scangitleaks on the repository
  6. ShellCheckshellcheck on shell scripts
  7. Quality (Node matrix) — lint + tests + build + line-count + architecture-check + typecheck + license-check + sbom-check

.github/workflows/release.yml adds:

  • Tarball generation
  • Tarball audit (check-release-tarball.mjs)
  • SHA256
  • GitHub Release

.github/workflows/scorecard.yml runs OSSF Scorecard each Monday to measure the supply-chain posture.


.githooks/ contains a pre-commit that:

  • Runs lint on staged files
  • Checks DCO sign-off
  • Refuses internal files (.input/, etc.)

Enable hooks locally:

Terminal window
git config core.hooksPath .githooks

  • Detailed CI/Gates (contributor workflow): docs/dev/workflow/ci-gates.en.md (coming)
  • Release procedure: docs/dev/workflow/release.en.md (coming)
  • Hexagonal architecture (ADR 0001): ../../adr/0001-architecture-hexagonale.md