Skip to content

Source of Truth

This project treats source code, tests, and authored notes as durable study material. Generated docs and PDFs must be reproducible from those inputs, and employer-specific interview prep must never enter this tree. This page is the whole contract.

Authored Material

PathPurpose
src/algo/Algorithm implementations and docstrings
tests/Examples and property-based correctness checks
src/concepts/Technical concept modules
src/practice/Code-reading and decomposition exercises
reference-sheets/Printable notes, quick-reference sheets, and the practice method (sheets 10–11)
reference-sheets/appendix-topics.jsonStructured appendix topics rendered into the booklet compile-safely

Generated Material

OutputCommand
booklet.tex / booklet.pdf / docs/assets/booklet.pdfjust packet
reference-sheets/pdf/*.pdfjust pdf-all
site/just docs-build

Three Layers

LayerWhatWherePublic?
L1 — knowledgealgorithms, tests, concepts, reference sheets 01–09this repo
L2 — practice methodsheets 10–11, just interview / just rep, spaced repetitionthis repo
L3 — private overlayemployer/panel front & back matter, people, dates, tailored positioning, personal rep logsa private downstream repo⛔ never here

The distinction that keeps this publishable:undefinedis a method ("how to stay calm and narrate at a whiteboard" — a general, teachable skill);undefinedis a dossier (who is on Tuesday's panel). Method publishes; dossier never touches this tree. If a sentence only makes sense for one employer, it is L3.

The Graph Edge Is One-Way

private superset repo                    THIS REPO (public)
─────────────────────                    ──────────────────
bazel_dep + path/git override   ──────▶  module(name = "dsa_study_packet")
\includepdf{@dsa_study_packet            //:booklet  (neutral PDF)
            //:booklet}
+ private front/back matter (L3)
→ private //:study_packets

The private repo depends on this one; this repo knows nothing about any downstream. Composition is overlay, not bundle: the neutral booklet is compiled here from this tree (so it cannot contain employer text), and a private lane \includepdfs the finished PDF between its own front and back matter. The two bodies of text only ever meet as adjacent pages in a private output — never in source. Delete the private repo and this SSOT is unchanged and complete. examples/overlay-demo/ is a self-contained, fork-me demonstration of the pattern with placeholder content.

The Boundary Is Enforced

scripts/check_public_boundary.py (just public-boundary) fails if any tracked file contains secret-shaped content or secret-file paths: tracked SOPS or dotenv files, age keys, GitHub tokens, private-key blocks, legacy secret tripwires. Name-specific tripwires (employers, panels, private repo names) are deliberately not listed here — the private downstream repo scans this tree with its own marker list, so the public guard cannot itself disclose what it guards against. Neutrality is a machine check, not a promise. Personal rep scores (.challenges/reps.md) are gitignored by default — publish aggregates deliberately, or not at all.

Who Owns The Practice Method

L2 is one loop described from five angles. Each surface owns exactly one question about it; none restates another's answer.

SurfaceOwnsDoes not own
Sheet 10the CLARP method + self-review rubric — how to performno calendar, no daily loop
Sheet 11the 14-day calendar + daily loop — when. Its prose feeds scripts/practice_day.py closely — edit sheet 11 itself for loop changes, never this tableno method detail, no rubric
Evidence pagewhy — research citations and the video shelfno calendar, no rubric scoring
AGENTS.md personahow the resident interviewer behaves during a rep; regenerates the .github surfaces via just gen-agentsno citations, no calendar
Skills (practice-day, interviewer)routing — which rung, which just command runs nextno method content of its own

A change landing on the wrong row is the drift tell: a calendar edit inside sheet 10, a rubric row inside the evidence page, or a citation inside AGENTS.md all mean the edit belongs one row up or down this table instead.

Runbook

I want to…Do thisLayer
Add/extend a study or practice sheetreference-sheets/NN-*.md + one-line docs/reference/NN-*.md wrapper; nav + PDF pick it upL1/L2
Add an algorithmsrc/algo/<topic>/<problem>.py + tests; booklet and site regenerateL1
Prep for a specific employer/panelCreate a lane in the private downstream repo; author front/back matter thereL3
Keep practice tapes / mock scripts / rep scoresPrivate repo or gitignored local dir — never tracked hereL3
This page lives in git. Anyone can propose an edit. Edit this page View source

A reading surface for the DSA study packet. Content is tracked in git; every page links to its source.