Chapter 35 — Capstone proposal
Lesson map
Lesson 35 published. Map, example, EX103.
flowchart TD
N0["Learning outcomes"]
N1["35.1 Scope"]
N2["35.2 Non-goals"]
N3["35.3 Metrics"]
N4["35.4 Risks"]
N5["35.5 Advisor"]
N6["35.6 Ethics"]
N7["35.7 Bold non-goals on cover"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
N7 --> EX["Worked example"]
EX --> Q["Exercise EX103"]
Logical drawing
flowchart LR
N0["Learning outcomes"]
N1["35.1 Scope"]
N2["35.2 Non-goals"]
N3["35.3 Metrics"]
N4["35.4 Risks"]
N5["35.5 Advisor"]
N6["35.6 Ethics"]
N7["35.7 Bold non-goals on cover"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX103"]
[Learning outcomes]
|
v
[35.1 Scope]
|
v
[35.2 Non-goals]
|
v
[35.3 Metrics]
|
v
[35.4 Risks]
|
v
[35.5 Advisor]
|
v
[35.6 Ethics]
|
v
[35.7 Bold non-goals on cover]
|
v
[Worked example] --> [Exercise EX103]
Learning outcomes
You will (1) write a scoped capstone proposal; (2) list non-goals; (3) define success metrics.
35.1 Scope
Build a scope-diff tool for TrackScope with tests and a short evaluation on synthetic inventories.
The capstone builds a scope-diff tool that compares TrackScope inventories across time and flags drift. Deliverables are the tool, automated tests and a short evaluation on synthetic inventories with planted changes. Sam sizes the scope so a bachelor's term can finish without borrowing nights from another course. Success means trustworthy diffs, not a platform rewrite. The proposal states which inventory fields are in scope for comparison. A narrow tool that ships beats a wide vision that stalls.
35.2 Non-goals
Non-goals keep the build from becoming a career in connectors. No integration with every ticket system, no exploit modules and no LLM summariser in version one. Sam prints the list on the proposal cover in bold so mid-project enthusiasm has something to hit. Advisors grade violations of printed non-goals as scope failures. Friends will suggest extras; the cover is the answer. Printed refusals are easier to enforce than remembered intentions. Bold cover text only works if someone is willing to point at it mid-argument.
35.3 Metrics
Evaluation metrics are precision and recall on planted inventory drifts, plus a hard fail-closed result on corrupt files. Dashboards that look pretty while swallowing garbage do not pass. Sam plants known adds, removes and field changes so scores are grounded. Fail-closed means the tool refuses to emit a diff when the file cannot be parsed safely. Metric definitions are frozen before the evaluation run. Planted truth is how a student tool earns a serious score. Checkpoint demos that chase polish usually hide a broken fail-closed path.
35.4 Risks
Time, data access, reviewer availability.
Primary risks are calendar time, access to realistic synthetic generators and reviewer availability for checkpoints. Sam lists mitigations: a vertical slice early, generators already used in prior labs and booked advisor slots. Unowned risks become surprises in week ten. The proposal rates each risk as high, medium or low with a trigger to escalate. Risks about ego and feature envy are written down too. Named risks with mitigations are part of engineering, not preamble filler. Synthetic inventories keep the capstone from becoming a data-handling incident. A tempting feature waits for its own proposal rather than hitchhiking on v1.
35.5 Advisor
Checkpoints every two weeks.
Advisor checkpoints every two weeks keep the build honest. Each checkpoint demos a control property such as fail-closed rather than only new screens. Sam books the slots at proposal time so availability risk is already mitigated. Missed checkpoints without notice pause merge privileges until a recovery plan exists. The cadence is a feature of the education, not bureaucracy. Regular demos catch creep while the code is still small enough to redirect. A tempting feature waits for its own proposal rather than hitchhiking on v1 during build week. Photographing the poster into the README makes the boundary travel with the code.
35.6 Ethics
Synthetic inventories only.
The capstone uses synthetic inventories only; live TRB exports stay out of student laptops. Generators document how realism was approximated so evaluators are not misled. Sam's ethics note restates that even synthetic staff-like names stay inside course machines. Any urge to peek at production inventories is a stop condition. Ethics here is mostly about data diet discipline. Synthetic-only rules keep ambition from becoming an access incident. Photographing the poster into the README makes the boundary travel with the code during build week. Dated evidence of the boundary stops later readers from claiming amnesia.
35.7 Bold non-goals on cover
Non-goals are printed on the proposal cover in bold. Sam's advisor grades whether a mid-project feature creep violated a printed non-goal. Bold text makes the violation embarrassing enough to stop.
Embarrassment is an underrated control. When a friend suggests an LLM summariser, Sam points at the bold line rather than inventing a new argument. Advisors ask students to read the non-goal aloud when creep appears. Cover printing costs pennies and saves weeks. Soft non-goals that live only in a paragraph get ignored under excitement. Make the boundary socially costly to cross and fewer people cross it.
35.8 Checkpoint demos
Every two weeks Sam demos fail-closed, not new UI chrome. Advisors grade control of scope creep.
Chrome is seductive; control properties are the grade. Sam's demo script opens with a corrupt file and shows the refusal before any happy path. Advisors who only see screenshots miss the safety behaviour. Students learn to rehearse the boring demo until it is crisp. Creep often arrives dressed as a small UI improvement. Demoing the refusal first sets the tone for the whole checkpoint. Quizzes that force a spoken no train the muscle the build will need.
35.9 Non-goals posters at the desk
Printers in the lab reprint non-goals posters for Sam's desk during build week.
A poster at eye level beats a PDF buried in a folder. Build week is when tempting ideas peak, so the printer runs then on purpose. Visitors who joke about the poster still read it. Sam replaces torn copies rather than letting the wall go blank. Physical reminders sound old-fashioned and still change behaviour. Desk-level boundaries catch the idea before it becomes a branch. Scope tools earn trust by refusing corrupt input more than by drawing charts. Two-week cadence keeps surprises small enough to correct without heroics.
35.10 LLM suggestion refused
Mid-build, a friend suggests adding LLM summarisation of findings. Sam points at the bold non-goals. The feature waits for a new proposal. Bold text earns its ink.
The scene is ordinary and that is why it matters. Sam does not debate model quality; he points at the cover and parks the idea. The friend is not wrong about usefulness; the timing is wrong for v1. Waiting for a new proposal keeps evaluation metrics coherent. Cohorts retell the scene because it is easy to imitate. A calm point at bold text beats a long argument about roadmap purity.
35.11 No LLM in v1 on poster
Non-goals poster includes "no LLM feature in v1". Visitors laugh; Sam points at the signed proposal. Laughter is fine; creep is not.
Laughter often greets explicit bans on fashionable tools. Sam treats the laugh as proof the boundary is visible. The signed proposal backs the poster when someone claims the ban was informal. v2 can revisit models with its own metrics and ethics note. Fashion pressure is predictable; the poster makes the answer predictable too. Visible bans survive jokes better than quiet assumptions do. Printers and posters sound quaint until they stop a late-night merge argument.
35.12 Poster photo in README
Non-goals poster is photographed into the capstone repo README.
The README photograph timestamps the boundary beside the code. Future readers cloning the repo see what v1 refused without hunting email. Sam rejects README edits that crop the non-goals out of the image. Documentation that travels with the repository outlives slide decks. A picture of a poster is still evidence of intent. Repo-native boundaries keep remote collaborators inside the same fence. Friends pitching extras are part of the test environment, not a distraction from it. Failing closed on garbage files is a product requirement, not a nice-to-have.
35.13 Dated poster photograph
README photograph of non-goals must be dated within the build week.
An undated photo could be theatre from another term. Sam requires the camera date or a visible dated slip in the frame. Build-week dating ties the boundary to the work actually underway. Old photos of old bans do not cover new temptations. Small dating rules keep evidence meaningful. Fresh photographs make the non-goals claim checkable. Failing closed on garbage files is a product requirement, not a nice-to-have during build week. Precision and recall on planted drifts beat vibes about whether the tool feels smart.
35.14 Non-goals quiz at checkpoints
Proposal checkpoints include a non-goals quiz: advisor names a tempting feature; Sam must say no and point to the cover. Failing the quiz delays code merge.
The quiz is short and slightly awkward on purpose. Saying no out loud under advisor eyes prepares Sam for friends and sponsors. Merge delays sound harsh until the first prevented sprawl. Students swap tempting features each checkpoint so answers cannot be memorised emptily. Spoken refusal is a deliverable. If you cannot point to the cover and refuse, you are not ready to merge. Precision and recall on planted drifts beat vibes about whether the tool feels smart during build week.
Worked example (synthetic TRB)
Sam's proposal is two pages; advisor accepts after he adds an explicit non-goal: no live TRB scanning.
Synthetic case — Riverstone Transit Bank (TRB). The bank, Sam Ito, TrackScope/FindingsDesk/PulseMap and all figures are invented for teaching.
Errors and limits
This book grants no authority to test real banks or payment systems. Labs use documentation-range addresses and synthetic data only; exploit code is never provided.
Exercises
- EX103 — Non-goal. Name one required non-goal. Rubric: 3 = no exploit modules or no live scanning / no all-ticket integrations; 2 = partial; 1 = vague; 0 = none.
- EX104 — Metric. Give one success metric for scope-diff. Rubric: 3 = precision/recall on planted drifts or fail-closed on corrupt files; 2 = vague; 1 = "works"; 0 = none.
- EX105 — Ethics line. What data may the capstone use? Rubric: 3 = synthetic inventories only; 2 = partial; 1 = production customer DB; 0 = none.
Synthesis
Proposals win by narrow scope, non-goals and measurable success.
Continue studying — chapter 35 of 40
← Chapter 34 (draft) · Course chapter index · Chapter 36 (draft) →