A5: Probe Jev score/noul + mode escape option #7

Closed
opened 2026-10-28 05:27:22 +00:00 by jacisjake · 0 comments
jacisjake commented 2026-10-28 05:27:22 +00:00 (Migrated from github.com)

Epic: #1. Depends on: none

Goal

Exercise Jev's two untested question types (score, noul) against the real TypeSafe API with our key, and add the missing escape option to the pipeline's mode question, so JEV_STRATEGIES.md's three-band strategy stops being an assumption.

Context a stranger needs

jev.go Classify (jev.go:82) currently parses only answer.Choice + answer.Confidence (jev.go:99-102). The API docs describe score (returns score value) and noul (returns a yes probability, no confidence). Response shape for those is unverified — this task verifies it. A probe_test.go live test must t.Skip() when TYPESAFE_API_KEY is empty.

Acceptance criteria — falsifiable tests

  1. TestProbeScoreAndNoulAgainstLiveAPI (jev_test.go) — Given TYPESAFE_API_KEY set, when POSTing one call with a score question (2–10 levels) and a noul question, then the test asserts answers.score exposes a numeric score field and answers.noul exposes a yes probability; if the reply lacks either, the test fails with the raw body. Red now (test doesn't exist), green after.
  2. TestModeChoiceHasEscapeOption (jev_test.go) — Given jevQuestions["mode"].criteria, then it contains an other key (JEV_STRATEGIES.md strategy 2). Red now (only solo/split/murder exist, jev.go:64-67), green after.
  3. Unit test TestParseScoreAndNoulAnswers against the fake-server pattern (TestClassifyAgainstFakeServer, jev.go parsing): a canned response with score+noul answers decodes without error. Red now (parser ignores those fields), green after.

Test command

go test -race -run 'TestProbeScoreAndNoul|TestModeChoiceHasEscape|TestParseScoreAndNoul' ./...

Blockers / unknowns

If score/noul fail on our key (400s), record the raw error in JEV_STRATEGIES.md — that flips which tag/route designs are viable.

Epic: #1. Depends on: none ## Goal Exercise Jev's two untested question types (`score`, `noul`) against the real TypeSafe API with our key, and add the missing escape option to the pipeline's `mode` question, so `JEV_STRATEGIES.md`'s three-band strategy stops being an assumption. ## Context a stranger needs `jev.go` `Classify` (`jev.go:82`) currently parses only `answer.Choice` + `answer.Confidence` (`jev.go:99-102`). The API docs describe `score` (returns `score` value) and `noul` (returns a yes probability, no confidence). Response shape for those is unverified — this task verifies it. A `probe_test.go` live test must `t.Skip()` when `TYPESAFE_API_KEY` is empty. ## Acceptance criteria — falsifiable tests 1. `TestProbeScoreAndNoulAgainstLiveAPI` (`jev_test.go`) — Given `TYPESAFE_API_KEY` set, when POSTing one call with a `score` question (2–10 levels) and a `noul` question, then the test asserts `answers.score` exposes a numeric score field and `answers.noul` exposes a yes probability; if the reply lacks either, the test fails with the raw body. Red now (test doesn't exist), green after. 2. `TestModeChoiceHasEscapeOption` (`jev_test.go`) — Given `jevQuestions["mode"].criteria`, then it contains an `other` key (`JEV_STRATEGIES.md` strategy 2). Red now (only solo/split/murder exist, `jev.go:64-67`), green after. 3. Unit test `TestParseScoreAndNoulAnswers` against the fake-server pattern (`TestClassifyAgainstFakeServer`, `jev.go` parsing): a canned response with score+noul answers decodes without error. Red now (parser ignores those fields), green after. ## Test command `go test -race -run 'TestProbeScoreAndNoul|TestModeChoiceHasEscape|TestParseScoreAndNoul' ./...` ## Blockers / unknowns If `score`/`noul` fail on our key (400s), record the raw error in `JEV_STRATEGIES.md` — that flips which tag/route designs are viable.
Sign in to join this conversation.