Submission model

How work becomes verified truth.

No ranger writes their own score. The program measures each repository, signs the result, and your browser proves the signature. Here is the exact path from a day of work to a signed entry on the command center.

qw-integrity // trust modelSIGNED
Identity  GitHub handle on the roster
Attribution  head commit SHA + author
Authenticity  Ed25519 signature by program CI
Measurement  program re-runs the evidence scan
Verification  WebCrypto in the viewer's browser
private key never leaves CIpublic key ships with the site
The pipeline

Seven steps, from day work to a signed board.

STEP 01ranger

Day work

Reproduce and fix in the loopback lab, and capture a negative control.

STEP 02evidence

evidence/W##/D###

A README plus the results file, placeholders resolved, attested no-AI.

STEP 03PR

Pull request

One per day on branch day/Dxxx, opened against protected main.

STEP 04CI gate

validate

The autograder runs the board checks. Red blocks merge, every time.

STEP 05tag

Signed release

A board turns green only on its release tag, board1 through board6.

STEP 06program

Cohort sync

Program CI re-runs the evidence scan per repo, then Ed25519-signs the cohort.

STEP 07command center

Verified in your browser

Your browser checks the signature with WebCrypto before a single number renders. The data is trusted only after the signature is proven.

Why it cannot be faked

The program measures, not the ranger.

  • Cohort sync clones each rostered repo and re-runs the same evidence scan. Editing a local status changes nothing.
  • The aggregate is signed with an Ed25519 key held only as a CI secret; the public key ships with the site.
  • The signature covers the exact served bytes. Change one digit and every visitor's browser shows the signature invalid.
# program CI, per sync (scheduled + on demand)
for repo in roster:
  git clone --depth=1 $repo _repos/$handle
python3 scripts/aggregate_cohort.py \
  --out portfolio/site/src/data/cohort.json
# sign with the CI secret, never a committed key
COHORT_SIGNING_KEY=$SECRET \
  python3 scripts/sign_cohort.py cohort.json
# Vercel redeploys; the browser verifies on load
How engagements are scored

A red action, and the detection meant to catch it.

Every engagement is a pair, mapped to a MITRE ATT&CK technique. The program records the outcome and the time to detect from the ranger's own SIEM and detection fixtures. Nothing is scored on a screenshot.

Detected

The alert fired and the evidence is linked to the engagement.

outcome · detected

Contained

Detected, and the response action was proven, not just described.

outcome · contained

Missed

No alert, a visibility gap that drives the next detection task.

outcome · missed

See it proven.

Every number on the command center took this exact path: measured by the program, signed, and verified in your browser.