|
1 | 1 | # Plan: test suite fast loop |
2 | 2 |
|
3 | | -Status: **active (planning)**. This plan implements |
4 | | -[`propose/TEST-SUITE-FAST-LOOP-PROPOSE.md`](../propose/TEST-SUITE-FAST-LOOP-PROPOSE.md). |
| 3 | +Status: **completed**. This plan implements |
| 4 | +[`propose/completed/TEST-SUITE-FAST-LOOP-PROPOSE.md`](../../propose/completed/TEST-SUITE-FAST-LOOP-PROPOSE.md). |
5 | 5 |
|
6 | 6 | Depends on: **none** (first landing is CI so later fixture work is mechanically validated). |
7 | 7 |
|
@@ -50,7 +50,7 @@ Depends on: **none** (first landing is CI so later fixture work is mechanically |
50 | 50 | | `tests/_builders.py` | Thin wrappers importing **production** `build_ast_graph` passes — **no copied logic**. Several tests today run **pass5/6** (`pass5_imperative_edges`, `pass6_match_edges`); the shipped helper(s) must match each call site (appendix in propose shows pass1–4 + `write_kuzu` only — extend as needed for Tier-2 session builds and any Tier-3 caller that needs the full pipeline). | |
51 | 51 | | Mixed files | **`test_ast_graph_build.py`**: most tests already use `kuzu_db_path`; two tests rebuild `route_extraction_smoke` into `tmp_path` — prefer **`kuzu_graph_route_extraction_smoke`** (session) if assertions are read-only, else Tier-3 helper. **`test_kuzu_queries.py`**: audit the `route_extraction_smoke` inline build (≈ line 403); same rule. | |
52 | 52 | | **`test_call_edge_matching.py`** | Mostly pure `_match_call_edge` / `graph_enrich` source reads; `_build_tables` hits **`cross_service_smoke`** read-only — candidate for **Tier 2** session materialization or a **`build_graph_tables(root)`** helper (no Kuzu) per audit, even though propose listed it under Tier 3. **Audit outcome wins** over the propose table row. | |
53 | | -| PR-2 delivery | **`plan-prompts`** and **`pr-review`** live under **`.cursor/skills/`** in git. **`tests/README.md` merged in PR-1** must already point at **[`propose/TEST-SUITE-FAST-LOOP-PROPOSE.md`](../propose/TEST-SUITE-FAST-LOOP-PROPOSE.md)** (and this plan) and link both skills so contributors find the canonical copies. | |
| 53 | +| PR-2 delivery | **`plan-prompts`** and **`pr-review`** live under **`.cursor/skills/`** in git. **`tests/README.md` merged in PR-1** must already point at **[`propose/completed/TEST-SUITE-FAST-LOOP-PROPOSE.md`](../../propose/completed/TEST-SUITE-FAST-LOOP-PROPOSE.md)** (and this plan) and link both skills so contributors find the canonical copies. | |
54 | 54 |
|
55 | 55 | --- |
56 | 56 |
|
@@ -147,7 +147,7 @@ Target modules from propose (verify no writes to fixture dirs / session DB): |
147 | 147 | ### 6. `tests/README.md` |
148 | 148 |
|
149 | 149 | - **Extend the same “CI merge gate” / testing doc section PR-3 started** — append, do not create a second competing “how tests work” chapter. |
150 | | -- Document **three-tier model**, when to add a new session fixture, Tier-2 audit rule, **bank-chat consumer matrix** expectation for future edits, and the **iteration subset** convention with links to **[`propose/TEST-SUITE-FAST-LOOP-PROPOSE.md`](../propose/TEST-SUITE-FAST-LOOP-PROPOSE.md)** + this plan; link the repo **`plan-prompts`** and **`pr-review`** skills under `.cursor/skills/` (PR-2 aligns both; either may land before the other if text already matches). |
| 150 | +- Document **three-tier model**, when to add a new session fixture, Tier-2 audit rule, **bank-chat consumer matrix** expectation for future edits, and the **iteration subset** convention with links to **[`propose/completed/TEST-SUITE-FAST-LOOP-PROPOSE.md`](../../propose/completed/TEST-SUITE-FAST-LOOP-PROPOSE.md)** + this plan; link the repo **`plan-prompts`** and **`pr-review`** skills under `.cursor/skills/` (PR-2 aligns both; either may land before the other if text already matches). |
151 | 151 | - Document **before/after** timing capture expectation for the PR-1 description (per propose §9 #10). |
152 | 152 |
|
153 | 153 | ## Tests for PR-1 |
@@ -194,7 +194,7 @@ Representative high-signal modules to re-run locally during implementation (not |
194 | 194 |
|
195 | 195 | ### In this repository (`plan-prompts`) |
196 | 196 |
|
197 | | -1. **[`.cursor/skills/plan-prompts/`](../.cursor/skills/plan-prompts/)** — each generated **`plans/CURSOR-PROMPTS-*.md`** per-PR **Prompt** block includes **`## Tests to run (iteration loop)`** between **Deliverables** and **Tests**: bullet list of `tests/test_*.py` paths + one-line rationale; allow **empty / docs-only** pattern (UC15). Skill text, scaffold, and examples stay aligned with [`propose/TEST-SUITE-FAST-LOOP-PROPOSE.md`](../propose/TEST-SUITE-FAST-LOOP-PROPOSE.md) §5. |
| 197 | +1. **[`.cursor/skills/plan-prompts/`](../.cursor/skills/plan-prompts/)** — each generated **`plans/CURSOR-PROMPTS-*.md`** per-PR **Prompt** block includes **`## Tests to run (iteration loop)`** between **Deliverables** and **Tests**: bullet list of `tests/test_*.py` paths + one-line rationale; allow **empty / docs-only** pattern (UC15). Skill text, scaffold, and examples stay aligned with [`propose/completed/TEST-SUITE-FAST-LOOP-PROPOSE.md`](../../propose/completed/TEST-SUITE-FAST-LOOP-PROPOSE.md) §5. |
198 | 198 |
|
199 | 199 | ### In this repository (`pr-review`) |
200 | 200 |
|
@@ -249,6 +249,6 @@ Representative high-signal modules to re-run locally during implementation (not |
249 | 249 |
|
250 | 250 | # Tracking |
251 | 251 |
|
252 | | -- **PR-3 (CI + protection)**: _pending_ |
253 | | -- **PR-1 (fixtures)**: _pending_ |
254 | | -- **PR-2 (plan-prompts + pr-review)**: _pending_ |
| 252 | +- **PR-1 (fixtures)**: merged in #100 (`d83cd30`) |
| 253 | +- **PR-2 (plan-prompts + pr-review)**: merged in #101 (`2738a84`) |
| 254 | +- **PR-3 (CI + protection)**: merged in #102 (`cursor/pr-3-ci-workflow` → `master`); branch protection on `master` requires the `test` status check, force-push disabled, `enforce_admins: false`. Landing order ended up PR-1 → PR-2 → PR-3 rather than the plan's stated PR-3 → PR-1 → PR-2; PR-3's green check closed the window. |
0 commit comments