First run
May 7, 2026 · View on GitHub
All copy-paste shell commands for a first run live in this file. Narrative and guarantees: integrate.md.
Prerequisites
- Node.js ≥ 22.13 (repo root)
- Once:
npm installat repository root - Once:
npm run buildat repository root (producesdist/cli.js)
Fast path (SQLite, automated)
From the repository root:
npm run partner-quickstart
This seeds a temporary SQLite database, runs agentskeptic check, asserts stdout JSON (Outcome Certificate), and exits non-zero on failure.
Postgres (single env var)
Set only PARTNER_POSTGRES_URL to a connection string with permission to run DDL for the seed (CREATE TABLE / INSERT). From repository root:
export PARTNER_POSTGRES_URL="postgresql://USER:PASS@HOST:5432/DBNAME"
npm run partner-quickstart
Manual CLI (SQLite, temp DB you manage)
After seeding with examples/partner-quickstart/partner.seed.sql:
node dist/cli.js check --workflow-id wf_partner --events examples/partner-quickstart/partner.events.ndjson --registry examples/partner-quickstart/partner.tools.json --db path/to/your.db
Activation pack (activate)
Canonical onboarding pack (exportable proof/ subtree and activation.manifest.json on contract terminals). Uses the same --input, --db (or --postgres-url), and --out flags as legacy bootstrap with BootstrapPackInput v1 JSON. From repository root after npm run build (--out must not exist beforehand):
ACT_OUT="$(mktemp -u "${TMPDIR:-/tmp}/agentskeptic-act-XXXXXXXX")"
node dist/cli.js activate --input test/fixtures/bootstrap-pack/input.json --db examples/demo.db --out "$ACT_OUT"
Normative semantics: bootstrap-pack-normative.md. Integrator overview: integrate.md § Activation. Adoption spine ordering with INTEGRATE_SPINE_NODE and AGENTSKEPTIC_VERIFY_DB: integrate.md (Integrate spine).
Manual CLI (Postgres)
node dist/cli.js check --workflow-id wf_partner --events examples/partner-quickstart/partner.events.ndjson --registry examples/partner-quickstart/partner.tools.json --postgres-url "$PARTNER_POSTGRES_URL"
LangGraph reference (emit events, then verify)
Python default path: pip install -e "python/[dev]" then python examples/python-verification/run_partner_kernel_demo.py (in-process kernel; no node dist/cli.js on the hot path). Canonical integrator guide: integrate.md. LangGraph checkpoint trust statute: integrator-verification.md#langgraph-checkpoint-trust.
Node oracle (CI / regression only): minimal emitter in test/fixtures/langgraph-node-oracle/. From repository root after npm run build:
npm ci --prefix test/fixtures/langgraph-node-oracle
EVENTS="$(mktemp)"
node test/fixtures/langgraph-node-oracle/run.mjs "$EVENTS"
DB="$(mktemp).db"
sqlite3 "$DB" < examples/partner-quickstart/partner.seed.sql
node dist/cli.js check --workflow-id wf_partner --events "$EVENTS" --registry examples/partner-quickstart/partner.tools.json --db "$DB" --langgraph-checkpoint-trust
Postgres (same PARTNER_POSTGRES_URL contract as above; apply the seed with your usual SQL client, then verify against the emitted file):
npm ci --prefix test/fixtures/langgraph-node-oracle
EVENTS="$(mktemp)"
node test/fixtures/langgraph-node-oracle/run.mjs "$EVENTS"
node dist/cli.js check --workflow-id wf_partner --events "$EVENTS" --registry examples/partner-quickstart/partner.tools.json --postgres-url "$PARTNER_POSTGRES_URL" --langgraph-checkpoint-trust
Integrator-owned gate
After npm run build, verify-integrator-owned uses the same flags as manual batch verify but rejects the canonical bundled example SQLite triple (stderr: INTEGRATOR_OWNED_GATE, bundled_examples; exit 2). Example that passes the gate by copying partner fixtures to temp paths (paths must not end with the bundled suffixes in verifyWorkloadClassify.ts):
npm run build
TMP="$(mktemp -d)"
trap 'rm -rf "$TMP"' EXIT
cp examples/partner-quickstart/partner.events.ndjson "$TMP/events.ndjson"
cp examples/partner-quickstart/partner.tools.json "$TMP/tools.json"
sqlite3 "$TMP/db.sqlite" < examples/partner-quickstart/partner.seed.sql
node dist/cli.js verify-integrator-owned --workflow-id wf_partner --events "$TMP/events.ndjson" --registry "$TMP/tools.json" --db "$TMP/db.sqlite"
Normative semantics: integrate.md and agentskeptic.md (Integrator-owned gate).