A. Representative-client acceptance fixture + exact current-state evidence #133

Closed
opened 2026-09-26 21:42:52 +00:00 by kilo · 0 comments
Member

Child A of #132 (representative-client compatibility program). First slice: establish the regression/acceptance asset and pin exact current-state behavior before any contract changes.

Scope (frozen)

Create a small sanitized representative-client fixture derived from the real 2026-09-26 ZCode acceptance capture. Do NOT copy the 1300-line ZCode system prompt or its full tool catalog. The fixture preserves the load-bearing semantics:

  • bare model id gpt-5.6-luna (no alias, no sr-pin:);
  • one short system message + one user message;
  • at least one representative client-owned function tool (synthetic, coding-agent-shaped: name/description/JSON-schema parameters);
  • tool_choice: "auto";
  • stream: true + stream_options: {"include_usage": true};
  • the four observed reasoning representations simultaneously: thinking: {"type": "enabled"}, enable_thinking: true, reasoning_effort: "max", reasoning: {"effort": "max"};
  • max_completion_tokens: 128000.

Deliverable shape:

  1. tests/representative_client_fixture.py — reusable builder(s) for the representative body and its variants (used by this and later children: B flips the model-resolution assertions, C the reasoning-dialect ones, D the limits ones, E the tools one).
  2. tests/test_representative_client.py — tests at the public HTTP boundary (authenticated gateway server, not parser helpers only):
    • current-state pins for each observed failure, each named with the child issue that will flip it: unknown_parameter (first of thinking/enable_thinking/reasoning, child C), model_not_found for the bare logical model (child B), output_limit_exceeded at defaults for 128000 (child D), and compatibility_unsupported for tools on the Codex-path compatibility cells (child E);
    • positive control: the same body without the four reasoning fields, against a configured alias + scripted adapter, executes (proves the harness, streaming + usage chunk included);
    • exact-pin control: sr-pin: path still admits the pinned reference (regression guard for the strict path).

Non-goals

No behavior change in this slice — production code is untouched except where a test needs an existing seam. No acceptance PASS claim: today's pins document FAILING representative compatibility, by design.

Complexity boundary

2 new test files (+ shared fixtures reuse); no production modules added or changed; budget 60 min wall clock.

Acceptance

  • Full gate green: uv sync --only-dev, make check, uv run basedpyright, git diff --check.
  • origin/develop..HEAD contains only this issue's commits; no merge commits.
  • PR open for human review; not merged.
Child A of #132 (representative-client compatibility program). First slice: establish the regression/acceptance asset and pin exact current-state behavior before any contract changes. ## Scope (frozen) Create a small **sanitized** representative-client fixture derived from the real 2026-09-26 ZCode acceptance capture. Do NOT copy the 1300-line ZCode system prompt or its full tool catalog. The fixture preserves the load-bearing semantics: - bare model id `gpt-5.6-luna` (no alias, no `sr-pin:`); - one short system message + one user message; - at least one representative client-owned function tool (synthetic, coding-agent-shaped: name/description/JSON-schema parameters); - `tool_choice: "auto"`; - `stream: true` + `stream_options: {"include_usage": true}`; - the four observed reasoning representations simultaneously: `thinking: {"type": "enabled"}`, `enable_thinking: true`, `reasoning_effort: "max"`, `reasoning: {"effort": "max"}`; - `max_completion_tokens: 128000`. Deliverable shape: 1. `tests/representative_client_fixture.py` — reusable builder(s) for the representative body and its variants (used by this and later children: B flips the model-resolution assertions, C the reasoning-dialect ones, D the limits ones, E the tools one). 2. `tests/test_representative_client.py` — tests at the **public HTTP boundary** (authenticated gateway server, not parser helpers only): - current-state pins for each observed failure, each named with the child issue that will flip it: `unknown_parameter` (first of `thinking`/`enable_thinking`/`reasoning`, child C), `model_not_found` for the bare logical model (child B), `output_limit_exceeded` at defaults for 128000 (child D), and `compatibility_unsupported` for `tools` on the Codex-path compatibility cells (child E); - positive control: the same body without the four reasoning fields, against a configured alias + scripted adapter, executes (proves the harness, streaming + usage chunk included); - exact-pin control: `sr-pin:` path still admits the pinned reference (regression guard for the strict path). ## Non-goals No behavior change in this slice — production code is untouched except where a test needs an existing seam. No acceptance PASS claim: today's pins document FAILING representative compatibility, by design. ## Complexity boundary 2 new test files (+ shared fixtures reuse); no production modules added or changed; budget 60 min wall clock. ## Acceptance - Full gate green: `uv sync --only-dev`, `make check`, `uv run basedpyright`, `git diff --check`. - `origin/develop..HEAD` contains only this issue's commits; no merge commits. - PR open for human review; not merged.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Creatidy/scarcity-router#133
No description provided.