Skip to content

docs(spikes): add AISDLC-95 routing research - #8380

Closed
tpouyer wants to merge 1 commit into
fullsend-ai:mainfrom
tpouyer:codex/docs/aisdlc-95-implementation-plan
Closed

tpouyer wants to merge 1 commit into
fullsend-ai:mainfrom
tpouyer:codex/docs/aisdlc-95-implementation-plan

Conversation

@tpouyer

@tpouyer tpouyer commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Add the research and proposed implementation plan for AISDLC-95 automatic model routing. The documents distinguish current behavior and accepted architecture from recommendations that still require reporter approval.

Ask your AI to review this implementation plan by reading the How to review this proposal section in the docs/spikes/aisdlc-95/README.md

Related Issue

Changes

  • Add a reader-friendly introduction, human and AI review workflow, decision guide, and planned Jira follow-through.
  • Consolidate the proposed routing architecture, safety boundaries, reporter decision gates, delivery stages, and verification expectations.
  • Document research, pseudocode prototypes, and implementation plans for:
    • AISDLC-288 acceptance-criteria refinement
    • AISDLC-289 external model gateway
    • AISDLC-290 offline policy authoring
    • AISDLC-291 pre-run routing advisor
    • AISDLC-292 related-work boundaries
  • Align the proposal with ADRs 0112, 0137, and 0138 while preserving pinned and deterministic model routing.
  • Keep all proposed decisions explicitly unapproved until reviewed by the AISDLC-95 reporter.

Testing

  • make lint passes (stage changes first, then run)
  • Tests are not applicable because this PR adds documentation only.

Checklist

  • PR title follows Conventional Commits (correct type, ! for breaking changes)
  • Commits are signed off (DCO) — human and human-directed agent sessions only
  • I wrote this contribution myself and can explain all changes in it

Preserve the reviewed AISDLC-95 refinement artifacts.

Link the research from a consolidated implementation plan.

Record Jira traceability and ADR constraints.

Document reporter decision gates before the delivery breakdown.

Signed-off-by: Tim Pouyer <tim.pouyer@gmail.com>
@tpouyer
tpouyer requested a review from a team October 12, 2026 19:15
@github-actions

Copy link
Copy Markdown

E2E tests did not run

E2E tests run automatically for org/repo members and collaborators on pull requests.

For other contributors, a maintainer with write access must add the ok-to-test label after the latest push.

See E2E testing guide for details.

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Document AISDLC-95 model-routing research and proposed delivery plan

📝 Documentation 🕐 40+ Minutes

Grey Divider

AI Description

• Consolidate five routing investigations into a staged plan for reporter review.
• Define decision gates, evaluation requirements, and safety boundaries while preserving pinned
 routing.
• Distinguish existing ADRs and Jira facts from proposals requiring approval.
Diagram

graph TD
  E["Run evidence"] --> P["Offline policy"] --> H["Human approval"] --> A["Pre-run advisor"] --> G["Fullsend gate"] --> W["Gateway serving"]
  S["Pinned selection"] --> G
  G --> E
  W --> E
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Deterministic policies only
  • ➕ Keeps live selection reproducible and avoids a classifier service.
  • ➖ May not satisfy a product requirement for a new task-specific decision on each run.
2. Gateway as selector
  • ➕ Centralizes request-time classification and serving.
  • ➖ Requires a new control contract, pre-transmission candidate checks, stronger identity evidence, and explicit route-isolated failure handling.

Recommendation: Keep the proposed separation as the review basis: establish deterministic routing and evidence first, govern policies offline, and test the advisor without enforcement. Do not treat this documentation as architecture approval; the reporter must resolve the decision gates, and live learned routing requires a new ADR.

Files changed (17) +5679 / -0

Documentation (17) +5679 / -0
README.mdGuide readers through the AISDLC-95 proposal +384/-0

Guide readers through the AISDLC-95 proposal

• Introduces the proposed routing responsibilities, a human and AI-assisted review process, twelve decisions, delivery stages, and safety rules. Lists the five spike artifacts and Jira follow-through that requires separate approval.

docs/spikes/aisdlc-95/README.md

implementation-plan.mdConsolidate routing architecture and delivery gates +267/-0

Consolidate routing architecture and delivery gates

• Synthesizes the five spikes into a proposed offline-policy, pre-run-advisor, and gateway-serving design. Records ADR constraints, invariants, reporter decisions, phased exit gates, and verification expectations without authorizing implementation.

docs/spikes/aisdlc-95/implementation-plan.md

implementation-plan.mdPlan acceptance-criteria refinement +224/-0

Plan acceptance-criteria refinement

• Defines a workshop, criteria-writing, evidence-mapping, architecture-review, and approved-Jira-update sequence. Requires live Jira facts and unresolved decisions to remain distinct.

docs/spikes/aisdlc-95/spikes/AISDLC-288/implementation-plan.md

prototype.mdPrototype acceptance-contract validation +134/-0

Prototype acceptance-contract validation

• Explains why a runtime router prototype would prejudge the criteria spike. Provides process pseudocode for validating criteria, decision placeholders, source classifications, and Jira relationships.

docs/spikes/aisdlc-95/spikes/AISDLC-288/prototype.md

research.mdSeparate explicit routing criteria from open decisions +376/-0

Separate explicit routing criteria from open decisions

• Records the dated Jira and ADR baseline, explicit criteria E1–E13, implied candidates I1–I8, and decisions D1–D12. Supplies parameterized acceptance-criteria text and related-work traceability for reporter review.

docs/spikes/aisdlc-95/spikes/AISDLC-288/research.md

implementation-plan.mdStage the external-gateway investigation +288/-0

Stage the external-gateway investigation

• Plans provider-neutral conformance testing and a serving-only proof before any optional gateway-selector experiment. Specifies route, authentication, identity-assurance, long-running credential, rollout, and ADR gates.

docs/spikes/aisdlc-95/spikes/AISDLC-289/implementation-plan.md

prototype.mdSketch gateway selector and serving contracts +536/-0

Sketch gateway selector and serving contracts

• Compares pseudocode for gateway-based selection against gateway serving of a concrete choice. Defines candidate, credential, identity-evidence, failure, telemetry, and test contracts that prohibit silent direct-route or auth-mode fallback.

docs/spikes/aisdlc-95/spikes/AISDLC-289/prototype.md

research.mdAssess external gateways as selectors or serving routes +372/-0

Assess external gateways as selectors or serving routes

• Contrasts request-time gateway selection with the lower-risk concrete-model serving role. Reviews gateway products and identifies gaps in candidate authorization, served-model assurance, session stability, and operational proof.

docs/spikes/aisdlc-95/spikes/AISDLC-289/research.md

implementation-plan.mdPlan governed offline policy authoring +214/-0

Plan governed offline policy authoring

• Stages evidence inventory, read-only proposal generation, independent evaluation, signed artifacts, separately reviewed activation, and rollback. Separates deterministic-overlay and advisor-policy prerequisites.

docs/spikes/aisdlc-95/spikes/AISDLC-290/implementation-plan.md

prototype.mdSketch the evidence-to-approved-policy lifecycle +533/-0

Sketch the evidence-to-approved-policy lifecycle

• Defines pseudocode for immutable evidence, bias and leakage checks, proposal generation, ordered promotion gates, signing, activation, and exact rollback. Keeps the offline proposer unable to change live policy.

docs/spikes/aisdlc-95/spikes/AISDLC-290/prototype.md

research.mdEvaluate offline authoring as routing governance +331/-0

Evaluate offline authoring as routing governance

• Finds offline policy authoring suitable as a governance layer and potentially a standalone deterministic increment. Distinguishes reproducible analysis from stochastic advisor calls and requires quality, security, and evidence gates before cost-based promotion.

docs/spikes/aisdlc-95/spikes/AISDLC-290/research.md

implementation-plan.mdStage pre-run advisor delivery and verification +304/-0

Stage pre-run advisor delivery and verification

• Plans offline experiments, an ADR-defined policy gate, non-enforcing shadow integration, outcome attribution, evaluation, and conditional enforcement. Places the proposed advisor before model-dependent credential and sandbox planning.

docs/spikes/aisdlc-95/spikes/AISDLC-291/implementation-plan.md

prototype.mdSketch a gated host-side routing advisor +648/-0

Sketch a gated host-side routing advisor

• Defines proposed signal, recommendation, policy-gate, mode/application-point, and decision-record contracts. Pseudocode makes shadow execution retain the static choice and requires an accepted ADR before enforcement.

docs/spikes/aisdlc-95/spikes/AISDLC-291/prototype.md

research.mdInvestigate a pre-run model-and-effort advisor +458/-0

Investigate a pre-run model-and-effort advisor

• Identifies a host-runner insertion point, trust-classified inputs, precedence and telemetry gaps, and privacy requirements for shadowing. Uses an external router case study as context while reserving Fullsend promotion and enforcement for its own evidence and ADR.

docs/spikes/aisdlc-95/spikes/AISDLC-291/research.md

implementation-plan.mdPlan Jira relationship and ownership reconciliation +182/-0

Plan Jira relationship and ownership reconciliation

• Orders fresh Jira validation, dependency decisions, description and link-change review, security review, and separately approved mutation. Requires precise distinctions between related issues, blockers, and broader parent outcomes.

docs/spikes/aisdlc-95/spikes/AISDLC-292/implementation-plan.md

prototype.mdPrototype related-work boundary checks +137/-0

Prototype related-work boundary checks

• Uses validation pseudocode rather than a routing implementation to check source status, Jira links, ownership, and gateway safety claims. Prevents parentage or descriptive prose from silently becoming acceptance criteria or blocker relationships.

docs/spikes/aisdlc-95/spikes/AISDLC-292/prototype.md

research.mdMap routing ownership and dependency evidence +291/-0

Map routing ownership and dependency evidence

• Documents the dated Jira hierarchy and related-work boundaries for evaluation, cost evidence, cumulative budgets, configuration, and gateway discovery. Separates implemented gateway routing from automatic selection and accepted-but-unimplemented overlay behavior.

docs/spikes/aisdlc-95/spikes/AISDLC-292/research.md

@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (2) 📘 Rule violations (0) 🔗 Cross-repo conflicts (0) 📜 Skill insights (1)

Grey Divider


Action required

1. A denied choice can reach an unapproved model 🐞 Bug ⛨ Security
Description
PlanConcreteGatewayRun validates the effective model against run.approvedProviderPolicy, but
returns sameRouteFallback after denial without applying that policy or checking gateway
authorization for the fallback. When the trusted fallback configuration permits a model outside the
run's approved set, the serving plan can select it even though staying on the same gateway block and
authentication mode does not establish model approval.
Code

docs/spikes/aisdlc-95/spikes/AISDLC-289/prototype.md[R321-323]

+  if denied:
+      if sameRouteFallback exists:
+          return PlanConcreteOnSameGatewayRoute(sameRouteFallback)
Evidence
The prototype checks policy and gateway authorization for effective, but its denial branch returns
the fallback without either check. The Codex gateway route accepts a gateway model ID without
checking it against a model-policy list, so route selection cannot supply the missing approval.

docs/spikes/aisdlc-95/spikes/AISDLC-289/prototype.md[308-331]
internal/runtime/codex_run.go[167-193]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The serving-layer prototype can plan a configured fallback after denying the effective model without validating that fallback against the run's provider policy or gateway authorization.
## Fix Focus Areas
- docs/spikes/aisdlc-95/spikes/AISDLC-289/prototype.md[308-331]
## Recommended Fix
Before returning a fallback plan, apply the same concrete-model policy gate to the fallback and verify that the configured gateway authorizes its canonical ID for the repository; otherwise fail closed.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Dismiss ↗ | View ↗



Remediation recommended

2. Proposed routing lacks a planned callout 📜 Skill insight ≡ Correctness
Description
The new README presents automatic model selection, offline policy, and gateway serving as proposed
features in ordinary paragraphs and numbered content, without a > **Planned:** callout containing
an issue link. Readers scanning the spike can encounter implementation-shaped behavior without the
standardized planned-feature marker, while the surrounding disclaimer does not satisfy that required
format.
Code

docs/spikes/aisdlc-95/README.md[R15-20]

+The recommended approach separates model routing into three responsibilities:
+
+1. **Learn from completed work without changing production automatically.**
+   An offline process studies quality, cost, latency, and completion evidence.
+   It may propose a new routing policy, but people must review and approve the
+   exact policy before it can be used.
Evidence
The checklist requires every mention of a not-yet-implemented feature to use a > **Planned:**
callout with an issue link. The changed README introduces automatic routing responsibilities and
explicitly describes them as a proposal, but the cited section contains only ordinary prose and
numbered items; no planned callout is present in the changed patch.

docs/spikes/aisdlc-95/README.md[15-20]
Skill: writing-user-docs

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The documentation describes automatic model routing as a proposed feature but does not use the required `> **Planned:**` blockquote callout with a relevant issue link.

## Fix Focus Areas
- docs/spikes/aisdlc-95/README.md[15-28]

## Recommended Fix
Add a `> **Planned:**` callout near the first description of the proposed routing behavior, including a link to the relevant AISDLC issue. Apply the same format to other newly added documents where not-yet-implemented routing features are introduced.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Dismiss ↗ | View ↗


3. Setup failures leave no terminal outcome 🐞 Bug ◔ Observability
Description
RunAgent writes a decision before side effects, but writes RecordRunOutcome only after route
setup and runtime execution. A fatal gate rejection, gateway planning error, startup error, or
cancellation during setup returns before that record is written, despite the prototype's requirement
for one terminal decision/outcome record on cancellation paths.
Code

docs/spikes/aisdlc-95/spikes/AISDLC-291/prototype.md[R456-461]

+        if err != nil { return err }
+        route, err := startGatewayRoute(ctx, plan)
+        if err != nil { return err }
+        // Any later control-plane, credential, gateway-side classifier,
+        // gateway, or upstream failure returns error. Never try direct
+        // OpenAI/Vertex/static key and never switch oidc <-> api-key.
Evidence
The pseudocode records the decision at line 436, returns directly on setup errors at lines 453–462,
and reaches outcome recording only at line 479. Its own test matrix requires a terminal record for
cancellation during route setup.

docs/spikes/aisdlc-95/spikes/AISDLC-291/prototype.md[436-479]
docs/spikes/aisdlc-95/spikes/AISDLC-291/prototype.md[610-615]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The runner pseudocode returns from several post-decision failure paths without recording a terminal outcome.
## Fix Focus Areas
- docs/spikes/aisdlc-95/spikes/AISDLC-291/prototype.md[436-479]
- docs/spikes/aisdlc-95/spikes/AISDLC-291/prototype.md[610-615]
## Recommended Fix
Define one terminal-outcome recording path for every exit after a decision is created, including gate rejection, route planning, startup, and cancellation. Record unavailable metrics and served-model evidence as unknown rather than inventing values.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Dismiss ↗ | View ↗


Grey Divider

Context sources
⚠️ Tickets: not configured — ticket URL found in PR but could not be fetched — check ticket provider credentials
✅ Compliance rules (platform): 89 rules
✅ Skills: 5 invoked
  writing-user-docs
  writing-adrs
  check-patch-coverage
  cutting-releases
  adr-corner
✅ Cross-repo context — repo relationships
  Explored: repo: fullsend-ai/pi-inference-gateway (sha: b552e5da) — View relationship
  Explored: repo: fullsend-ai/agents (sha: e0166257) — View relationship
Review mode: Auto: ⚖️ Balanced: Documentation-only proposal; substantial but non-production and reviewable in one pass.

Grey Divider

Tip of the day
💡 Did you know, you can commit Qodo's fix in one click with committable suggestions (GitHub & GitLab)

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

Comment on lines +15 to +20
The recommended approach separates model routing into three responsibilities:

1. **Learn from completed work without changing production automatically.**
An offline process studies quality, cost, latency, and completion evidence.
It may propose a new routing policy, but people must review and approve the
exact policy before it can be used.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Remediation recommended

2. Proposed routing lacks a planned callout 📜 Skill insight ≡ Correctness

The new README presents automatic model selection, offline policy, and gateway serving as proposed
features in ordinary paragraphs and numbered content, without a > **Planned:** callout containing
an issue link. Readers scanning the spike can encounter implementation-shaped behavior without the
standardized planned-feature marker, while the surrounding disclaimer does not satisfy that required
format.
Agent Prompt
## Issue description
The documentation describes automatic model routing as a proposed feature but does not use the required `> **Planned:**` blockquote callout with a relevant issue link.

## Fix Focus Areas
- docs/spikes/aisdlc-95/README.md[15-28]

## Recommended Fix
Add a `> **Planned:**` callout near the first description of the proposed routing behavior, including a link to the relevant AISDLC issue. Apply the same format to other newly added documents where not-yet-implemented routing features are introduced.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Dismiss ↗ | View ↗

Comment on lines +321 to +323
if denied:
if sameRouteFallback exists:
return PlanConcreteOnSameGatewayRoute(sameRouteFallback)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

1. A denied choice can reach an unapproved model 🐞 Bug ⛨ Security

PlanConcreteGatewayRun validates the effective model against run.approvedProviderPolicy, but
returns sameRouteFallback after denial without applying that policy or checking gateway
authorization for the fallback. When the trusted fallback configuration permits a model outside the
run's approved set, the serving plan can select it even though staying on the same gateway block and
authentication mode does not establish model approval.
Agent Prompt
## Issue description
The serving-layer prototype can plan a configured fallback after denying the effective model without validating that fallback against the run's provider policy or gateway authorization.
## Fix Focus Areas
- docs/spikes/aisdlc-95/spikes/AISDLC-289/prototype.md[308-331]
## Recommended Fix
Before returning a fallback plan, apply the same concrete-model policy gate to the fallback and verify that the configured gateway authorizes its canonical ID for the repository; otherwise fail closed.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Dismiss ↗ | View ↗

Comment on lines +456 to +461
if err != nil { return err }
route, err := startGatewayRoute(ctx, plan)
if err != nil { return err }
// Any later control-plane, credential, gateway-side classifier,
// gateway, or upstream failure returns error. Never try direct
// OpenAI/Vertex/static key and never switch oidc <-> api-key.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Remediation recommended

3. Setup failures leave no terminal outcome 🐞 Bug ◔ Observability

RunAgent writes a decision before side effects, but writes RecordRunOutcome only after route
setup and runtime execution. A fatal gate rejection, gateway planning error, startup error, or
cancellation during setup returns before that record is written, despite the prototype's requirement
for one terminal decision/outcome record on cancellation paths.
Agent Prompt
## Issue description
The runner pseudocode returns from several post-decision failure paths without recording a terminal outcome.
## Fix Focus Areas
- docs/spikes/aisdlc-95/spikes/AISDLC-291/prototype.md[436-479]
- docs/spikes/aisdlc-95/spikes/AISDLC-291/prototype.md[610-615]
## Recommended Fix
Define one terminal-outcome recording path for every exit after a decision is created, including gate rejection, route planning, startup, and cancellation. Record unavailable metrics and served-model evidence as unknown rather than inventing values.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Dismiss ↗ | View ↗

@github-actions

Copy link
Copy Markdown

Site preview

Preview: https://cd824d99-site.fullsend-ai.workers.dev

Commit: 26ffee51cd914999ac60cde6109d02a5ba6a11b8

@codecov

codecov Bot commented Oct 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@waynesun09 waynesun09 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Review comments: three MEDIUM findings inline.

for the advisor application point and gateway-selector control plane.
- Re-read current Jira and repository state before creating delivery work.

Exit gate: the reporter approves the planning basis and every unresolved item

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

MEDIUM: Spike-level open decisions, including whether the served-identity evidence for promotion and compliance is attainable, are left out of the D1-D12 gate

The README (lines 57, 67, 86, 116, 206, 305) and Phase 0 (line 141) send reviewers, including the AI-facilitator instructions, through exactly twelve decisions (D1-D12). The spike documents list more open human decisions that D1-D12 does not cover:

#6 has the largest effect. AISDLC-289/research.md:319-320 and AISDLC-290/research.md:152-154 require provider-attested or independently-reconciled evidence for provider/data-policy compliance, and independently-reconciled evidence for any promotion based on served, provider or cost claims. The PR does not show that any provider or gateway deployment produces that evidence today. On the ADR 0137 route the gateway holds the upstream key. Even so, Phase 3's exit and Phase 6 ("Prove actual-served identity at the assurance required for each claim") present the gate as one that can be met. The Phase 0 exit gate ("every unresolved item has a decision, owner or explicit deferral") does not say whether these spike items are included, so a review that follows the README can finish with them unresolved.

Suggestion: Map each spike-level unresolved question to a D-number, or add an "Additional open questions carried from spikes" table to implementation-plan.md with an owner/deferral column, and make the README review process cover it. Make the attainability of provider-attested or independently-reconciled evidence (AISDLC-289 #6) an explicit reporter decision. If no current provider or gateway can produce it, state that gateway-route promotion depends on the residual-risk exception path.

RequestedRoute "direct" | "gateway"
GatewayAuthMode Optional["oidc" | "api-key"] // never credential value
ServedModel Optional[string]
ServedVerification "provider_reported" | "gateway_reported" |

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

MEDIUM: The advisor prototype's ServedVerification enum conflicts with the five-value assurance scale the other spikes use

RoutingDecisionRecord.ServedVerification (lines 547-548) has the values provider_reported | gateway_reported | requested_only | unknown. AISDLC-289/research.md:302-320, AISDLC-290/research.md:141-154 and AISDLC-290/prototype.md:86-87 instead define Assurance as requested-only | runtime-reported | gateway-attested | provider-attested | independently-reconciled, and the promotion and compliance gates are written against that scale. The advisor record emits served-identity evidence, but it cannot express runtime-reported or independently-reconciled (which promotion requires), and its spelling and terms differ ("reported" versus "attested", underscores versus hyphens). The consolidated plan's Phase 2 (implementation-plan.md:166) requires "assurance" on identity evidence but defines no enum. Delivery teams following each spike would therefore build records that cannot be compared with each other.

Suggestion: Use the five-value AISDLC-289/290 assurance scale in the AISDLC-291 prototype (rename ServedVerification to Assurance with the same values), and define the enum once in implementation-plan.md Phase 2 so that every spike refers to that definition.


LiteLLM's official beta Auto Routing documentation demonstrates that a gateway
can expose a normal model alias whose implementation classifies each request.
It supports heuristic, LLM, JEV, keyword, semantic, and custom classifiers;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

MEDIUM: The LiteLLM Auto Routing capabilities are misstated against the cited primary source

Line 121 says LiteLLM "supports heuristic, LLM, JEV, keyword, semantic, and custom classifiers". The cited page (docs.litellm.ai/docs/proxy/auto_routing) documents the classifier_type values llm, jev and custom, with a heuristic scorer as the default. Keyword matching is a deterministic keyword_tier_rules short-circuit, semantic matching is a semantic_keyword_matching flag on those rules, and the standalone semantic router is deprecated.

Lines 131-133 say return_raw_model_name: false lets an alias "conceal the selected model from the client response". The page says that with the default the body's model field is restamped to the alias but the tier that answered "is reachable only through the x-litellm-model-id response header". The selected model is therefore still returned in a header. That changes the identity-evidence analysis: the evidence exists, as presentation-level data in the gateway trust domain.

Suggestion: Correct the classifier list to the documented classifier types and describe keyword and semantic matching as rule features. Restate the return_raw_model_name implication: the selected identity is still returned in the x-litellm-model-id header, and it counts only as gateway-trust-domain evidence (gateway-attested at most), not independent proof.

@rh-hemartin

Copy link
Copy Markdown
Member

I see somewhere that is not available to the public that you do not intend to commit this. Can you add this to the PR description and move it to draft? I thought you wanted to commit this, which made no sense to me to commit it here (maybe on experiments, but not here).

@tpouyer

tpouyer commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor Author

Closing this research proposal because the implementation work is now tracked under the AISDLC-95 feature:

This PR remains available as background research for those epics.

@tpouyer tpouyer closed this Oct 20, 2026
@github-actions
github-actions Bot deleted the codex/docs/aisdlc-95-implementation-plan branch November 15, 2026 10:15

This branch was successfully deployed

1 active deployment
site-preview — 26ffee51 Deployed Oct 12, 2026 by github-actions[bot]
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.

3 participants