chore: replace AI skill library with 16 verified mvp-* skills
Deploy to Staging / Build Images (push) Successful in 5m32s
Deploy to Staging / Deploy to Staging (push) Successful in 44s
Deploy to Staging / Verify Staging (push) Successful in 5s
Deploy to Staging / Notify Staging Ready (push) Successful in 4s
Deploy to Staging / Notify Staging Failure (push) Has been skipped

Removes the old planner/decision-critic/role-agents/domain-agents system
(step-injector scripts, stale scopes, sprint-era workflow) and replaces it
with 16 ground-truth-verified skills under .claude/skills/: change control,
debugging playbook, failure archaeology, architecture contract, domain
reference, OCR/Gemini pipeline, config and secrets, build and env, run and
operate, diagnostics (with tested scripts), validation and QA, docs and
writing, launch readiness, deploy-safety campaign, proof and analysis
toolkit, and research frontier. RULE 0/1/2, the temporal-contamination rule,
and the decision stress-test protocol are carried forward into the new
skills; the retired content remains in git history.

Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
Eric Gullickson
2026-07-09 20:21:42 -05:00
co-authored by Claude Fable 5
parent e729d425fd
commit c239bb9347
71 changed files with 4087 additions and 10221 deletions
@@ -0,0 +1,65 @@
#!/bin/bash
# local-gate.sh - Run every quality check that works on a dev machine and
# print a PASS/FAIL table.
#
# Why: CI runs ZERO tests and ZERO lint (the only PR gate is that images
# build and staging boots healthy). This script IS the pre-push gate.
#
# Scope (deliberate):
# - backend lint, type-check, UNIT tests only (--forceExit; open pg/redis
# handles otherwise hang jest). Integration tests are EXCLUDED: they
# need a live database and some DROP TABLE CASCADE (owner non-negotiable:
# never without a fresh backup). audit-log __tests__ also need a DB and
# are excluded via path pattern.
# - frontend lint, type-check. Frontend jest is broken outside the
# container (2026-07-07), so no frontend tests here.
#
# Usage: ./local-gate.sh (needs node_modules in backend/ and frontend/:
# run "npm install" in each first)
# Exit: 0 = all pass, 1 = at least one failure
set -u
ROOT="$(git rev-parse --show-toplevel 2>/dev/null)"
[ -z "$ROOT" ] && { echo "ERROR: not inside a git repo" >&2; exit 2; }
LOGDIR="${TMPDIR:-/tmp}/mvp-local-gate.$$"
mkdir -p "$LOGDIR"
RESULTS=""
OVERALL=0
run_step() { # run_step <label> <dir> <command...>
label="$1"; dir="$2"; shift 2
log="$LOGDIR/$(echo "$label" | tr ' /' '__').log"
printf '%-28s ' "$label..."
if (cd "$ROOT/$dir" && "$@") >"$log" 2>&1; then
echo "PASS"
RESULTS="$RESULTS$label|PASS
"
else
echo "FAIL (log: $log)"
tail -15 "$log" | sed 's/^/ /'
RESULTS="$RESULTS$label|FAIL
"
OVERALL=1
fi
}
run_step "backend lint" backend npm run --silent lint
run_step "backend type-check" backend npm run --silent type-check
run_step "backend unit tests" backend npm test --silent -- \
--testPathPattern='(tests/unit|src/core)' \
--testPathIgnorePatterns='integration' --forceExit
run_step "frontend lint" frontend npm run --silent lint
run_step "frontend type-check" frontend npm run --silent type-check
echo
echo "==================== LOCAL GATE ===================="
printf '%-28s %s\n' "CHECK" "RESULT"
echo "$RESULTS" | awk -F'|' 'NF { printf "%-28s %s\n", $1, $2 }'
echo "====================================================="
if [ "$OVERALL" -eq 0 ]; then
echo "PASS: safe to push. (Integration tests NOT run - container-only.)"
else
echo "FAIL: fix before pushing. CI will NOT catch these."
fi
exit "$OVERALL"