Quickstart: First Board

Run a full local lifecycle with generated .consensus/api scripts.

What you'll build

A local board state, one job, one submission, one vote, and one resolution — all on your machine.

This path uses .consensus/api/*.sh templates from consensus-tools init.

Steps

1

Initialize templates

mkdir my-first-board && cd my-first-board
consensus-tools init
cp .consensus/env.example .consensus/.env
source .consensus/.env
2

Enable local mode

export CONSENSUS_MODE=local
3

Post a job

JOB_JSON=$(bash .consensus/api/jobs_post.sh \
  "Review add(a,b)" \
  "Check correctness and edge cases" \
  '{"code":"function add(a,b){return a+b}"}')

JOB_ID=$(echo "$JOB_JSON" | jq -r '.id')
echo "job=$JOB_ID"
4

Create a submission

bash .consensus/api/submissions_create.sh "$JOB_ID" \
  '{"verdict":"correct","notes":["works for numeric inputs"]}' \
  "baseline review" \
  0.82
5

List submissions and vote

SUB_ID=$(bash .consensus/api/submissions_list.sh "$JOB_ID" | jq -r '.id' | head -n1)

bash .consensus/api/votes_cast.sh "$JOB_ID" --submission "$SUB_ID" --weight 1
6

Resolve and fetch result

bash .consensus/api/resolve.sh "$JOB_ID"
bash .consensus/api/result_get.sh "$JOB_ID"

What just happened

  1. jobs_post.sh created a job in local JSON storage
  2. submissions_create.sh attached an artifact
  3. votes_cast.sh recorded a vote
  4. resolve.sh finalized outcome
  5. result_get.sh returned the resolution payload

Next steps