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 install at repository root
  • Once: npm run build at repository root (produces dist/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).