DecisionOps Docs

Pilot Onboarding Kit

DecisionOps documentation.

Goal

Stand up a pilot repository in advisory mode, validate policy precision, and produce burn-in evidence before blocking merges.

Prerequisites

  • Cloudflare Workers deployed (api-mcp-worker, gatekeeper-worker, jobs-worker)
  • GitHub App installed on the pilot repository
  • Service token with scopes:
    • decisions:read
    • decisions:write
    • decisions:approve
    • policy:check
    • pr:write
    • admin:read
    • admin:write
    • hooks:read
    • mcp:read
    • mcp:call
    • metrics:read

Step 1: Seed Policy Mode

Set repo policy to advisory:

curl -X PUT "$API_URL/v1/admin/policies/$REPO_ID" \
  -H "authorization: Bearer $TOKEN" \
  -H "content-type: application/json" \
  -d '{"mode":"advisory","threshold":0.6,"highImpactPaths":[],"adrPaths":["docs/adr/**","docs/decisions/**"]}'

Step 2: Import Baseline Decisions

Ingest existing MADR docs into the Decision graph through jobs worker:

curl -X POST "$JOBS_URL/internal/ingest" \
  -H "content-type: application/json" \
  -d '{"orgId":"<org-id>","repoId":"'$REPO_ID'","path":"docs/adr/0001.md","markdown":"---\ntitle: Example\nstatus: accepted\ndecision_id: DEC-2026-0001\n---\n# Example\n"}'

Step 3: Enable Agent Hooks

Fetch generated hooks and place into repo AGENTS.md:

curl "$API_URL/v1/agent-hooks/$REPO_ID" \
  -H "authorization: Bearer $TOKEN"

Step 4: Run Burn-in Window

  • Keep advisory mode for 14-30 days.
  • Require decision IDs in PR descriptions.
  • Track findings and override reasons.

Check burn-in report:

curl "$API_URL/v1/admin/burn-in?days=14&minRuns=30" \
  -H "authorization: Bearer $TOKEN"

Step 5: Promote Selectively

Promote only repos meeting thresholds:

curl -X POST "$API_URL/v1/admin/policies/$REPO_ID/promote" \
  -H "authorization: Bearer $TOKEN" \
  -H "content-type: application/json" \
  -d '{"days":14,"minRuns":30}'

Success Criteria

  • At least 30 policy runs in window.
  • Advisory failure rate <= 5%.
  • Override rate <= 10%.
  • Stable check-run latency and no sustained queue DLQ growth.

On this page