Skip to content

Commit 7122902

Browse files
Propose CH-004: repair the tag/test mismatches G-002 found.
Mints EVT-011/012/013, retires EVT-003, and closes AN-010's two unit-tier gaps.
1 parent dd79bae commit 7122902

4 files changed

Lines changed: 58 additions & 2 deletions

File tree

.clue/id-ledger.yaml

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ counters:
55
ARCH: "3"
66
C: "7"
77
CAP: "8"
8-
CH: "3"
8+
CH: "4"
99
CRIT: "8"
1010
DES: "8"
11+
EVT: "1"
1112
G: "2"
12-
IDR: "2"
13+
IDR: "3"
1314
OQ: "2"
1415
P: "1"
1516
PDR: "1"
@@ -207,6 +208,11 @@ entries:
207208
state: live
208209
prefix: CH
209210
component: "3"
211+
- id: CH-004
212+
kind: numeric
213+
state: reserved
214+
prefix: CH
215+
component: "4"
210216
- id: CRIT-001
211217
kind: numeric
212218
state: live
@@ -287,6 +293,11 @@ entries:
287293
state: live
288294
prefix: DES
289295
component: "8"
296+
- id: EVT-001
297+
kind: numeric
298+
state: reserved
299+
prefix: EVT
300+
component: "1"
290301
- id: G-001
291302
kind: numeric
292303
state: live
@@ -307,6 +318,11 @@ entries:
307318
state: live
308319
prefix: IDR
309320
component: "2"
321+
- id: IDR-003
322+
kind: numeric
323+
state: reserved
324+
prefix: IDR
325+
component: "3"
310326
- id: OQ-001
311327
kind: numeric
312328
state: live
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
No blocking questions. `IDR-003` records the one choice that could have gone either way (retire-and-mint `EVT-003` vs. strengthen its assertion) and why retire-and-mint is the honest option given the fixed classic robot available.
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
id: CH-004
3+
type: change
4+
status: proposed
5+
links: [G-002, CAP-001, CAP-003, AN-010, P-001]
6+
title: Repair the tag/test mismatches G-002 found
7+
---
8+
9+
# CH-004 — Repair the tag/test mismatches G-002 found
10+
11+
## What
12+
13+
`G-002` found that three passing conformance tests in `CAP-001` prove behaviour their tags do not name, and `AN-010` found two smaller unit-tier gaps in `CAP-003`. This change closes both:
14+
15+
- Mint `EVT-011` (round and battle completion each reach their handler exactly once) and retag the two tests currently mistagged `EVT-005`.
16+
- Mint `EVT-012` (winning a round reaches the win handler) and retag the test currently mistagged `EVT-004`.
17+
- Retire `EVT-003` and mint `EVT-013` with a scenario that matches what classic's own `InteruptibleEvent` robot and its own suite actually assert — same-priority re-entry into an interruptible handler, not a higher-priority one. No classic robot in the source tree exercises genuine higher-priority re-entry, so the original wording promised evidence that cannot exist for this robot; `IDR-003` records the decision and why it forecloses rather than defers.
18+
- Promote `EVT-011`, `EVT-012`, and `EVT-013` — each now has passing evidence under its correct name.
19+
- Narrow `API-001`'s scenario to the one direction `AngleConverter` implements, marking it `(single-direction)`; the round-trip clause described a symmetry the adapter never needed, per `AN-010`.
20+
- Add the missing `API-004` owner-departed test.
21+
- Add plan doors `M-139`/`M-140`/`M-141` for `EVT-011`/`EVT-012`/`EVT-013`; mark `M-103` (`EVT-003`) superseded.
22+
23+
## Why
24+
25+
`G-002`'s own argument: a mistagged test is worse than a missing one, because it makes a criterion look ready to promote when nothing kept the promise. `CH-003` nearly promoted `EVT-005` on exactly this reasoning, and `M-001` cannot honestly close while its fourth clause — criteria active rather than `@draft` — can be satisfied by a mistag.
26+
27+
## Route
28+
29+
Full. Every mint, retirement, and promotion changes what `CAP-001`'s and `CAP-003`'s accepted contract says is proven.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
- [ ] Write `IDR-003`: `EVT-003`'s higher-priority claim retired, evidence rescoped to what classic's `InteruptibleEvent` actually proves
2+
- [ ] `CAP-001/criteria.md`: mint `EVT-011` (round/battle completion), mint `EVT-012` (win handler), retire `EVT-003` with `@retired` tombstone, mint `EVT-013` (same-priority re-entry) — serves `EVT-011`, `EVT-012`, `EVT-013`
3+
- [ ] Retag and rename tests in `RoundOutcomeEventsConformanceTest.java`: `testEVT005_...RoundAndBattleCompletion...``testEVT011_...`, `testEVT005_...RoundCompletionIsNotReportedMoreThanOncePerRound``testEVT011_...`, `testEVT004_...WinningARoundReachesTheWinHandler``testEVT012_...` — serves `EVT-011`, `EVT-012`
4+
- [ ] Retag and rename tests in `InterruptibleEventConformanceTest.java`: `testEVT003_...``testEVT013_...`, update class javadoc — serves `EVT-013`
5+
- [ ] `CAP-003/criteria.md`: narrow `API-001` to drop the round-trip clause, mark `(single-direction)`
6+
- [ ] `AngleConverterTest.java`: update class javadoc to note the single direction, no test change needed (no round-trip was ever tested)
7+
- [ ] `BulletMapperTest.java`: add `testAPI004_UnitNegative_MapsABulletWhoseOwnerHasLeftTheBattle`
8+
- [ ] `P-001`: add `M-139`/`EVT-011`, `M-140`/`EVT-012`, `M-141`/`EVT-013`; mark `M-103` superseded, pointing at `M-141`
9+
- [ ] Run `./gradlew :robocode-api:test` and `./gradlew :conformance-test:test` with the environment gates; confirm the conformance tier actually ran, not skipped
10+
- [ ] Digest: regenerate README indexes, delete this workspace, `clue validate`

0 commit comments

Comments
 (0)