Skip to content

Use the selected provider for drift ordering - #121

Merged
0xfauzi merged 3 commits into
0xfauzi:mainfrom
pdd27673:fix/issue-118
Oct 25, 2026
Merged

0xfauzi merged 3 commits into
0xfauzi:mainfrom
pdd27673:fix/issue-118

Conversation

@pdd27673

@pdd27673 pdd27673 commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

judgement --order-by-drift previously sent source text and map claims to Jev even when [decisions] provider = "openai" selected OpenAI.

Text and JSON reports now use the shared provider selector. --provider overrides the configuration. Drift questions require a measured result for the selected provider. OpenAI has no measured drift result. With OpenAI selected, the command sends no request and gives the cause in text and JSON. It does not create an OpenAI transport or fall back to Jev. A missing Jev key or a failed Jev request gives no score. Keys alone do not cause requests. Drift ordering still changes only the order of stale review lines, with the same findings and exit codes.

Closes #118.

The change updates command help, the reference, the trust and security page, and the generated site. The system map records the provider rule and the current source references. The CLI flow claims retain their direction and artifacts.

Validation:

  • uv run pytest -q --tb=short: 2,043 passed, 2 skipped.
  • Regression cases cover configuration selection, command-line overrides in both directions, text and JSON, Python and TypeScript, missing keys, Jev failures and caching, and no-question runs. OpenAI cases assert zero requests, including with both keys set, without a key, and on repeated runs.
  • Before the fix, 18 of the first 22 new cases failed. Both transports are injected; no test calls a live provider.
  • uv run pre-commit run --all-files and uv run mypy src --strict pass.
  • uv run --group site python site/build.py --check passes.
  • uv run systemap refresh, check, and judgement pass. All 161 modules are mapped, and all 16 component source reviews are current.

The required ~/.claude/WRITING.md is absent, and the official ASD-STE100 reference was unavailable. The available project language policy was used. No ASD-STE100 acceptance result is claimed.

@0xfauzi 0xfauzi left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One blocking item against the scope of #118 (see the inline comment). The provider selection, the --provider override, and the tests for keys, failures and cache are correct. I ran the full suite on this head. The only failures are 4 tests that also fail on the base commit in my environment, because of git commit signing and a timing limit.


Generated by Claude Code

Comment thread src/systemap/drift_order.py

@0xfauzi 0xfauzi left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved at b93ee36. The blocking item is fixed. providers.require_drift uses the same check as triage, and it runs before the provider is created. With OpenAI selected, the command sends no data to either provider and gives the cause in text and in drift_order.reason. The tests cover this. The reference, the trust and security page and the CHANGELOG agree with the code.

I ran the full suite on this head and on main 02a496b. Both have the same 3 failures, which come from git commit signing in my environment. All other tests pass. mypy --strict, pre-commit, systemap check and judgement pass. All CI checks pass, and the branch merges cleanly with main.


Generated by Claude Code

@0xfauzi
0xfauzi merged commit d7d7a8b into 0xfauzi:main Oct 25, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

judgement --order-by-drift sends data to Jev when the selected provider is OpenAI

2 participants