Qwalora Ranger
SUBMISSION WORKFLOW
--:--:--
from day work to a signed entry

How a submission becomes verified truth.

No ranger writes their own score. The program measures each repository, signs the result, and this site proves the signature. Here is the exact path, the identity model, and the gate.

The pipeline

01 · RANGER

Day work

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

02 · EVIDENCE

evidence/W##/D###

README + results file, placeholders resolved, attested no-AI.

03 · PR

Pull request

One per day, branch day/Dxxx, protected main.

04 · CI GATE

test-and-validate

pytest, ownership check, loopback + secret guard. Red blocks merge.

05 · BOARD TAG

Signed release

A board turns green only on tag board1..6.

06 · COHORT SYNC

Program re-measures

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

07 · COMMAND CENTER

Verified in-browser

Your browser checks the signature before any number renders.

Who we trust, and why it cannot be faked

The program measures, not the ranger

Cohort sync clones each rostered repo and re-runs the same evidence scan. A ranger editing their own local status changes nothing: the authoritative number is recomputed by the program.

One signature over the whole cohort

The aggregate is signed with an Ed25519 key held only as a CI secret. The public key ships with the site; the private key never leaves the program's CI, so only the program can produce a valid board.

Tamper is visible, not silent

The signature covers the exact bytes served. Change one digit of one percentage and every visitor's browser shows "signature invalid" instead of trusting the data.

Identity = GitHub handle on the roster
Attribution = head commit SHA + author, per repo
Authenticity = Ed25519 signature by program CI
Measurement = program re-runs progress.py
Verification = tweetnacl in the viewer's browser
keys/ is gitignored · private key is a GitHub Actions secret · public key is committed
# program CI, per sync (scheduled + on demand)
for repo in roster: git clone --depth=1 $repo _repos/$handle
python3 scripts/aggregate_cohort.py --repos-dir _repos \
  --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 \
  portfolio/site/src/data/cohort.json
# Vercel redeploys; the site verifies the signature on load

How red/blue engagements are scored

Every engagement is a pair: a red action and the blue detection meant to catch it, 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.

Outcomes

detected   alert fired, evidence linked
contained   detected and response action proven
missed   no alert - a visibility gap to close

What counts

A detection passes only with a positive fixture that fires and a negative fixture that stays quiet. Mean time to detect is measured from the red action's first event. Missed engagements drive the next detection-engineering task; nothing is scored on a screenshot.