What you'll learn: the seven criteria and weights that make 100 points, what weak, acceptable and strong look like for each, the caps that stop a polished page from hiding a broken build, and the exact package to submit to a reviewer or to yourself.
How the scoring works
Composite scenario, not a real company. The capstone is the Lumen Industrial Supply Product Discovery Copilot. Nobody here awards a certificate. The rubric is a way to find your weak spots before a customer or an interviewer does, so you can score yourself or hand the package to a peer or mentor you trust.
Each criterion has a weight. Within it, you place your work in one of three bands. The bands are the same share of every weight: weak is up to 40 percent, acceptable is above 40 and up to 75 percent, and strong is above 75 percent, rounded down to whole points.
| # | Criterion | Points |
|---|---|---|
| 1 | Correctness and tests | 20 |
| 2 | Retrieval and evidence | 15 |
| 3 | Workflow safety | 15 |
| 4 | Security and access control | 15 |
| 5 | Evaluation honesty | 15 |
| 6 | Integration design note | 10 |
| 7 | Documentation and demo | 10 |
| Total | 100 |
The total is 20 + 15 + 15 + 15 + 15 + 10 + 10 = 100.
Figure 1. Where the evidence for each criterion comes from
How to read this: every criterion is scored from an artifact you can show, not from a claim, so if the artifact does not exist the criterion starts at zero.
The bands in points
| Weight | Weak | Acceptable | Strong |
|---|---|---|---|
| 20 | 0 to 8 | 9 to 15 | 16 to 20 |
| 15 | 0 to 6 | 7 to 11 | 12 to 15 |
| 10 | 0 to 4 | 5 to 7 | 8 to 10 |
For example, 40 percent of 15 is 6 and 75 percent of 15 is 11.25, which rounds down to 11. So a 15-point criterion is weak at 0 to 6, acceptable at 7 to 11 and strong at 12 to 15.
1. Correctness and tests (20)
| Band | What it looks like |
|---|---|
| Weak | Tests are missing, fail, or need a key or a network. Behaviour is checked by running the app by hand. |
| Acceptable | Tests pass offline and cover the happy path of each phase. Malformed model output and error cases are tested for some phases only. |
| Strong | Tests pass offline from a clean checkout, are deterministic, and cover each phase including the failure paths: malformed model output, tool failure, invalid input, wrong role, reused idempotency key. |
Evidence: the pytest output. The reference build has 151 tests and runs in a few seconds. The count is not the score; coverage of failure paths is.