Curriculum previewThis is not your assigned passport. No identity, answers, or completion progress are stored here.How to start your passport
Handbook / assessment

assessment

GitHub-Native Passport Assessment

The Passport measures observable research-computing behavior through structured answers, bounded real actions, and trusted checks on one exact submitted version. It is open-book and iterative; it does not reward memorizing commands.

The Passport measures observable research-computing behavior through structured answers, bounded real actions, and trusted checks on one exact submitted version. It is open-book and iterative; it does not reward memorizing commands.

Four-Repository Model#

Repository Visibility Purpose
IDEALLab/onboarding-IT lab handbook policy Curriculum, site, generator source
soheylm-passport-sandbox/passport-exercises public Fictional exercises and public learning records
soheylm-passport-sandbox/gh-passport public Cross-platform GitHub CLI extension releases
soheylm-passport-sandbox/onboarding-control private Enrollments, assignments, controller, operations, registry

Each learner owns username/passport-exercises. Students do not join either organization and receive no repository-creation permission there. The launcher manages the transport branch and central draft PR in the background; a separate practice PR is created manually only in the Git mission.

Assessment Flow#

local mission action and bounded check
  -> generated sanitized submission
  -> background commit and push
  -> signed GitHub App webhook
  -> Cloudflare Worker validates and dispatches PR number + exact SHA
  -> private controller verifies identity and exact SHA
  -> isolated deterministic assessment without credentials or network
  -> trusted Check Run and actionable feedback
  -> retry or continue
  -> minimal private completion record

Public Content Boundary#

The public learning record may contain only structured choices, fictional scenarios, bounded synthetic code, and safe Slurm fixtures. It must never contain credentials, ETH or other private identifiers, real logs, screenshots, AI transcripts, research data, datasets, checkpoints, results, or confidential project details.

A secret scan stops before parsing or execution. A real incident uses the lab's private incident route, not the public exercise repository.

Authority#

  • The learner remains responsible for every answer, command, diff, and result.
  • The local browser remembers drafts and navigation; it cannot award a pass.
  • The public GitHub record is an auditable source, not pass authority.
  • The trusted controller App publishes status for one exact SHA.
  • The private registry stores only the minimal completion record.
  • A named operational owner decides real access, classification, or ownership; that decision is separate from the training score.

A merge, label, learner workflow, local checkbox, similarly named Check Run, or AI response cannot award completion.

Submission Loop#

Every mission uses the same browser loop: Do -> Check my work -> Submit mission -> Fix or continue. The launcher commits only the generated submission and mission-declared synthetic artifact. Students use Git themselves only when Git is the skill being taught.

A signed webhook normally dispatches the controller immediately. A sparse cron is recovery only. The learner must not resubmit an unchanged attempt. If no status appears after 30 minutes, the dashboard opens one public non-secret help request that can be handled asynchronously.

Implementation Map#

Concern Canonical source
Curriculum and routes curriculum/
Public exercise export passport_system/exercises_export.py
Local launcher and verifiers tools/passport-cli/
Fork registration passport_system/fork_registration.py
Deterministic/security checks passport_system/controller.py
Trusted dispatch and status passport_system/scheduler.py
Cloudflare signature bridge platform/cloudflare-worker/
Private consolidated deployment platform/onboarding-control/
Synthetic/adversarial tests tests/

See completion records, the rubric, and the deployment runbook.