Session M6-02 trainer guide: End-to-end capstone for one endpoint¶
Teaching goal¶
Guide learners through one reviewed POST /api/bookmarks change with GitHub Copilot.
Keep scope decisions in the accepted GitHub issue and require the Session M5-02
specification standards. Do not let the exercise expand into a full API,
deployment, or tool tour.
One-hour plan¶
| Time | Segment |
|---|---|
| 0:00 to 0:08 | Define the one-slice capstone |
| 0:08 to 0:18 | Set the issue boundary |
| 0:18 to 0:30 | Inspect and tighten the specification |
| 0:30 to 0:40 | Write the implementation issue |
| 0:40 to 0:50 | Walk through the patch and tests |
| 0:50 to 1:00 | Make the review decision and hand off |
Teach the boundary¶
The required slice is POST /api/bookmarks. Learners use GitHub Copilot to
implement it, run the tests, and review the result with a person.
Unfinished work does not count as capstone completion.
Write these non-goals where everyone can see them:
- no authentication;
- no persistent storage;
- no list, read, update, or delete endpoint;
- no deployment or CI redesign;
- no new dependency.
Keep the boundary in the issue¶
Have learners put every scope decision in the accepted GitHub issue. Do not create a
separate form. They must implement only POST /api/bookmarks, use synthetic data,
and keep the existing dependencies. They must stop if the work requires another
endpoint, live data, deployment, tool configuration, or a new dependency.
Apply Session M5-02¶
Use lab/starter/bookmark-create-spec.md as the source for accepted behavior. Ask
learners to check that each requirement is observable, technology choices stay in
the constraints section, and non-goals are named. They must map each issue
criterion to a specification ID and a test.
The issue should name the exact route, response shapes, validation rules, duplicate behavior, expected files, required tests, reviewer, and stop conditions. It must not invent behavior absent from the specification.
Implementation walkthrough¶
Use this work order:
Implement only the accepted POST /api/bookmarks issue in the training sandbox.
Use synthetic data and the existing dependencies. Before editing, name the expected
files and map each change to a requirement. Run npm test. Stop if the work requires
another endpoint, live data, deployment, tool configuration, or a new dependency.
Report changed files, test results, deviations, and deferred scope for review.
After 30 minutes of implementation, check whether learners can finish within the segment. If blocked, record the blocker and a request-changes or pause decision in the handoff. Resume implementation before claiming completion.
Review gate¶
Review in this order:
- Specification and acceptance criteria.
- Scope and deferrals.
- Validation, response shape, duplicate handling, and tests.
- Stop conditions and deviations from the accepted issue.
- Handoff owner and next action.
Record one decision: approve, request changes, or pause. Do not approve a change with a serious issue because time ran out.
Reference assets¶
lab/solution/capstone-project/contains the creation endpoint and tests.lab/solution/reference-handoff.mdshows the full issue-to-handoff record.lab/starter/capstone-handoff.mdis the learner template.lab/starter/trainer-delivery-plan-template.mdis an optional trainer reflection. It is not a learner deliverable.
Common questions¶
Should learners add the other Bookmark endpoints? No. Record them under deferred scope.
What if agent access fails? Stop the lab. Do not count a patch plan as capstone completion.
What if the tests cannot run? Record the command, failure, findings from inspection, and owner for the next action. Do not approve without executable test results.