@@ -10,6 +10,68 @@ harness; this file is the script you follow.
1010Delete ` 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