Skip to content

Commit 191ac70

Browse files
committed
docs(spike): add an ordered TODO checklist to the runbook
The runbook had grown into a changelog of what was fixed, which buried what still needs doing. Adds a five-step checklist up top, marking the timing run as the only item DAP-115 is actually blocked on.
1 parent 999664c commit 191ac70

1 file changed

Lines changed: 62 additions & 0 deletions

File tree

scripts/spike/RUNBOOK.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,68 @@ harness; this file is the script you follow.
1010
Delete `scripts/spike/` once the findings are folded into
1111
`docs/hypothetical-courses-design.md`.
1212

13+
---
14+
15+
## ✅ TODO — everything left, in order
16+
17+
Sections below have the detail. **Step 2 is the only thing DAP-115 is blocked
18+
on**; 3–5 are follow-ups.
19+
20+
Load the harness first (paste `planner-poc.js` into a DevTools console **on a
21+
UT audit page** — Django checks `Referer` on the audit POST).
22+
23+
**1. Clean up leftovers** (~1 min) — you're at 4 rows with stale `C S324E`
24+
entries. Stale rows change what the audit returns, so do this before timing.
25+
26+
```js
27+
const rows = await poc.readPlanner();
28+
for (const row of rows.filter((r) => r.key_course_id === "C S324E")) {
29+
await poc.testDelete(row);
30+
}
31+
await poc.readPlanner(); // expect only AFR305 + C S331
32+
```
33+
34+
**2. Run the timing** (~5 min) — ⭐ **the actual deliverable.** No extra
35+
arguments; the form shape is known now.
36+
37+
```js
38+
await poc.timePreview({ dept: "C S", num: "324E", ccyys: "20272" }, 5);
39+
```
40+
41+
Creates 5 real audits in your UT history. Copy the printed table. **If p95
42+
total > 15 s, flag DAP-114** — that reopens the eager-verify decision.
43+
44+
**3. Re-run parallel adds** (~3 min) — the previous verdict was unsound; the
45+
test now runs a serial baseline first. Run it 2–3 times, since races are flaky.
46+
47+
```js
48+
await poc.testParallelAdd([
49+
{ dept: "C S", num: "324E", ccyys: "20272" },
50+
{ dept: "C S", num: "331", ccyys: "20272" },
51+
{ dept: "C S", num: "429H", ccyys: "20272" },
52+
]);
53+
await poc.cleanup();
54+
```
55+
56+
**4. Follow the Modify URL** (~5 min) — manual, no harness. Open the URL from
57+
[DAP-122](#dap-122--mostly-done-) in a tab, change term or pass/fail, submit,
58+
and record from the Network tab what the browser sends. DAP-129 needs this.
59+
60+
**5. DAP-123 captures** (~10 min) — two runs the page console can't give you:
61+
62+
- Paste the harness into the **extension service worker** console
63+
(`chrome://extensions` → Degree Audit + → service worker), run
64+
`await poc.testExecutionContext()`.
65+
- Run `await poc.testAuthSignal()` while **logged out** (incognito window).
66+
67+
**Optional:** planner max rows, and whether a closed term is rejected or
68+
silently parenthesized.
69+
70+
**Finish:** `poc.report()`, then `await poc.cleanup()`, then post the timing
71+
table on DAP-115 and check off `docs/hypothetical-courses-design.md`.
72+
73+
---
74+
1375
## Before you start
1476

1577
- Log in at <https://utdirect.utexas.edu/apps/degree/audits/>.

0 commit comments

Comments
 (0)