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

assessment

Public Exercise And Assessment Specification

This specification defines the public learner surface exported to soheylm-passport-sandbox/passport-exercises and the private authority exported to soheylm-passport-sandbox/onboarding-control.

This specification defines the public learner surface exported to soheylm-passport-sandbox/passport-exercises and the private authority exported to soheylm-passport-sandbox/onboarding-control.

Public Exercise Repository#

README.md
passport.example.json
passport-curriculum.json
missions/
submissions/
workspace/
.github/
  ISSUE_TEMPLATE/
  pull_request_template.md

The central repository contains only fictional fixtures, mission contracts, and non-secret metadata. It has no privileged workflow. After explicit consent, gh passport start creates a personal public fork and a background transport branch. Students do not need to understand that Git mechanism before the Git mission.

The managed .transport clone is separate from the visible practice folder. A browser submission stages only its generated submissions/<mission>.json and the mission's declared synthetic workspace/ files. It never runs git add . or stages unrelated learner content.

Private Authority#

The private control repository stores:

  • active enrollment with immutable learner and reviewer GitHub IDs;
  • fork, parent, base-repository, branch, and pull-request IDs;
  • canonical platform, responsibilities, route, baseline, and protected hashes;
  • per-mission attempt counts and exact-SHA controller state;
  • minimal completion and lifecycle records.

It never stores credentials, research data, broad logs, AI transcripts, local paths, Euler job IDs, or student-authored free-form assessment answers.

Learning Contract#

Every mission follows Understand -> Example -> Do -> Check -> Submit -> Fix or continue. Knowledge is captured as structured choices or ordered actions. Practical competence is checked against a bounded local or remote operation. Markdown is an assessed artifact only when writing a real document is itself the competency, such as project handover.

The controller requires at least 80% and every safety-critical answer. It then checks the declared practical receipt and synthetic artifact independently. Routine missions pass automatically. operational_approval means that training can pass while a real access or ownership decision remains separate.

Deterministic Checks#

Surface Controller rule
Structured submission Exact schema, curriculum, mission, answers, receipts, artifacts, and attestations
Repository boundary No secret pattern, large file, dataset, checkpoint, environment, cache, symlink, or unselected path
Protected source Curriculum, mission, route, workflow, rubric, and passport.json hashes remain exact
Synthetic programs Tests run at the exact submitted SHA in a no-network, no-credential container
Slurm fixtures CPU, memory, time, GPU, logging, and concurrency remain bounded
Git practice GitHub API verifies author, personal fork, branch, draft PR, exact SHA, exact diff, and Conventional Commit
Live systems Local probes submit only booleans or a one-way digest, never private paths, job IDs, or logs

Trust And Isolation#

Registration accepts only one central draft transport PR whose author, public fork, direct parent, source/base, branch, route, and passport.json match an active private enrollment. Assessment resolves the exact head SHA before the isolated job and revalidates it before publishing.

Student-controlled repositories receive no organization secret. Do not use pull_request_target to execute learner content. The assessment checkout has no persisted credential; untrusted code runs read-only, without network, under CPU, memory, process, and time limits.

The public controller App is installed only on passport-exercises. The separate dispatch App has Actions write access only on private onboarding-control. A signed Cloudflare Worker validates the public webhook and forwards only repository, PR number, head SHA, and delivery ID.

Completion#

The trusted Check Run on the exact SHA is the learner-facing authority. When all training missions pass, the controller writes the minimal private completion record and closes the transport PR without merging it. The launcher can still reconstruct a completed passport from that closed, unmerged PR and its trusted Check Run.

A PR merge, local checkbox, browser history, or learner-edited JSON never grants completion or operational access.