Why most beginner agents die in production — and how to pick one that ships — step 7 of 7
One last thing before we move on. Same surface as a write step — but the lesson doesn't complete until this passes.
Final drill. Synthesize the wedge checklist into one function:
pick_capstone(candidates) that takes a list of project pitches
and returns the NAME of the highest-scoring candidate.
Each candidate is a dict with:
name: stringvolume_per_day: intoutput_schema_defined: boolhas_rubric: boolusers_count: inteval_method_defined: bool
Score each candidate using the same five rules from step 06 (each passing signal adds 20):
volume_per_day >= 10: +20output_schema_defined: +20has_rubric: +201 <= users_count <= 10: +20eval_method_defined: +20
Return the name of the highest-scoring candidate. On a tie,
return the FIRST one in the list (Python's max with key=
preserves stable order).
Five candidates run. Expected output:
ship: Support email triage
One last thing before we move on. Same surface as a write step — but the lesson doesn't complete until this passes.
Final drill. Synthesize the wedge checklist into one function:
pick_capstone(candidates) that takes a list of project pitches
and returns the NAME of the highest-scoring candidate.
Each candidate is a dict with:
name: stringvolume_per_day: intoutput_schema_defined: boolhas_rubric: boolusers_count: inteval_method_defined: bool
Score each candidate using the same five rules from step 06 (each passing signal adds 20):
volume_per_day >= 10: +20output_schema_defined: +20has_rubric: +201 <= users_count <= 10: +20eval_method_defined: +20
Return the name of the highest-scoring candidate. On a tie,
return the FIRST one in the list (Python's max with key=
preserves stable order).
Five candidates run. Expected output:
ship: Support email triage
this step needs the editor
on desktop today; in the app (coming soon). save your spot and we'll bring you back here when you're ready.