Point the canonical entry points at the new package layout; the .specify compat facade
is retained as an intentional backward-compat layer (see below).
- .gitea/workflows/{ci,harness-ci}.yml: invoke packages/casan-harness/scripts/bash|tests
(state paths .specify/logs kept). CI now runs on the new structure.
- infra/local-prod/docker-compose.yml: dashboard-server.py -> packages path (logs/alerts
env stay under .specify state).
- scripts/casan-step.mjs + run-casan-pipeline.mjs: resolve the harness under
packages/casan-harness, falling back to .specify so the adversarial/sourcegen sandboxes
(which stage a .specify/ tree) keep working; requirement input prefers apps/okr/domain/input.
- project-registry.json: record the new layout (harness_root, state_root, governance_root,
per-project domain_root) so Plan-06 can register a second app with its own domain.
verify-harness-reuse.sh already resolves via CASAN_HARNESS_ROOT -> HARNESS_REUSE_VALID (3 projects).
Facade decision: the .specify/{scripts,tests,security,...} symlinks are KEPT as a
documented compat layer. A full hard cutover (removing them) still needs ~15 literal
`.specify/...` refs repointed (loop_common/evidence-pack/secrets-scan config+test paths,
run-casan-pipeline step scripts, and the signed policy-bundle.yaml path list which then
needs manifest regen + re-sign). That is a scoped follow-up; the physical separation
(code in packages/, domain in apps/, packages holds no domain data, single CASAN_* path
indirection) is complete and the full gate is green via BOTH entry paths: PASS=64 FAIL=0 SKIP=3.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
38 lines
910 B
YAML
38 lines
910 B
YAML
name: CASAN Harness CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
harness:
|
|
runs-on: ci-runner
|
|
timeout-minutes: 45
|
|
env:
|
|
CASAN_CI_RUN_FRONTEND: "1"
|
|
CASAN_CI_RUN_INFRA_LAB: "0"
|
|
CASAN_GEN_MODE: "template"
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install system dependencies
|
|
run: |
|
|
set -euo pipefail
|
|
if ! command -v node >/dev/null 2>&1; then
|
|
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
|
|
apt-get install -y nodejs
|
|
fi
|
|
node --version
|
|
npm --version
|
|
|
|
- name: Install npm dependencies
|
|
working-directory: AINative_OKR_CASAN5
|
|
run: npm ci
|
|
|
|
- name: Run CASAN harness gate
|
|
working-directory: AINative_OKR_CASAN5
|
|
run: bash packages/casan-harness/scripts/bash/ci-harness-gate.sh
|