Skip to content

docs: reposition project as Cynosure Router#64

Closed
Disaster-Terminator wants to merge 2 commits intomainfrom
review/cynosure-readme-identity
Closed

docs: reposition project as Cynosure Router#64
Disaster-Terminator wants to merge 2 commits intomainfrom
review/cynosure-readme-identity

Conversation

@Disaster-Terminator
Copy link
Copy Markdown
Owner

@Disaster-Terminator Disaster-Terminator commented May 5, 2026

Summary

  • Rename the documented project identity to Cynosure Router without changing GitHub repository metadata.
  • Rewrite README.md in Chinese around the actual sidecar boundary: intent-aware routing control plane before LiteLLM execution.
  • Add docs/PROJECT_IDENTITY.md to record the proposed repository name, GitHub title, About description, topics, and migration notes.

Notes

This PR intentionally does not change GitHub repository title, About description, repository name, topics, or other platform metadata. Those recommendations are recorded in docs/PROJECT_IDENTITY.md for review first.

Validation

Docs-only change; automated tests not run.

Summary by Sourcery

将文档中提到的项目重命名为 Cynosure Router,并重新定位 README,突出其作为部署在 LiteLLM 之前、具备意图识别能力的路由 sidecar 的角色,重点面向中文场景的文档,同时澄清生产环境与可观测性相关的工作流。

Documentation:

  • 重写 README,描述 Cynosure Router 的定位、能力、运行工作流,以及以中文场景为主的使用案例,包括健康检查、可观测性、评测(eval)以及上线前的生产预检指引。
  • 新增 PROJECT_IDENTITY 文档,记录拟定的项目名称、仓库元数据方面的推荐,以及迁移时需要考虑的事项,但不修改任何 GitHub 配置。
Original summary in English

Summary by Sourcery

Rename the documented project to Cynosure Router and reposition the README around its role as an intent-aware routing sidecar in front of LiteLLM, with Chinese-focused documentation and clarified production/observability workflows.

Documentation:

  • Rewrite README to describe Cynosure Router’s positioning, capabilities, operational workflows, and Chinese-heavy use cases, including health checks, observability, eval, and production preflight guidance.
  • Add PROJECT_IDENTITY documentation capturing the proposed project name, repository metadata recommendations, and migration considerations without changing any GitHub settings.

@qodo-code-review
Copy link
Copy Markdown

ⓘ You've reached your Qodo monthly free-tier limit. Reviews pause until next month — upgrade your plan to continue now, or link your paid account if you already have one.

@sourcery-ai
Copy link
Copy Markdown

sourcery-ai Bot commented May 5, 2026

审阅者指南(Reviewer's Guide)

将文档中项目的对外身份从 “Gateway Semantic Router” 调整为 “Cynosure Router”,重写 README(主要为中文),将其核心叙事聚焦在作为 LiteLLM 前面、具备意图感知能力的路由控制平面这一 “sidecar” 角色。同时新增 PROJECT_IDENTITY 文档,记录拟议项目名称、GitHub 元数据方面的推荐及迁移注意事项,但本 PR 不对任何实际仓库/平台元数据做改动。

Cynosure Router 路由决策与回退的时序图

sequenceDiagram
  actor Client
  participant Router as CynosureRouter
  participant Emb as EmbeddingService
  participant GW as LiteLLMGateway
  participant Prov as ModelProvider

  Client->>Router: POST /v1/chat/completions model=semantic-router
  Router->>Router: Inspect metadata_route_and_model
  alt Non_entry_model
    Router->>GW: Forward_request_passthrough
    GW->>Prov: Execute_model
    Prov-->>GW: Response
    GW-->>Router: Response
    Router-->>Client: Response_with_headers
  else Entry_model
    alt Metadata_explicit_route
      Router->>Router: Use_metadata_route
    else Chinese_hard_rules
      Router->>Router: Match_high_risk_keywords
    else Embedding_semantic_match
      Router->>Emb: POST /v1/embeddings
      Emb-->>Router: Embedding_vector
      Router->>Router: Select_best_route_by_score
    else Low_confidence
      Router->>Router: Fallback_to_configured_route
    end

    Router->>Router: Rewrite_model_field_to_target_model
    Router->>GW: Forward_rewritten_request
    GW->>Prov: Execute_model
    Prov-->>GW: Response
    GW-->>Router: Response
    Router->>Router: Log_route_complete_structured
    Router-->>Client: Response_with_routing_headers

    opt Embedding_error
      Router->>Router: Mark_embedding_degraded_and_use_fallback_route
    end
  end
Loading

文件级变更(File-Level Changes)

Change Details Files
将文档中记录的项目身份从 Gateway Semantic Router 重命名为 Cynosure Router,并重新定位 README,使其围绕在 LiteLLM 前面的意图感知路由控制平面来展开。
  • 修改 README 的标题和开篇标语,使用新的 Cynosure Router 名称和双语定位语句。
  • 用以中文为主的深入说明替换之前简短、以英文为主的描述,重点阐述路由器的设计目的、以中文场景为主的使用案例,以及其作为 LiteLLM 前置 sidecar 控制平面的关系。
  • 新增架构与定位章节(核心定位、当前能力、与 LiteLLM 的关系、项目边界、当前状态、Name),明确项目的职责边界、路由行为以及非目标。
  • 扩展当前能力的文档说明,包括兼容 OpenAI 的 chat 代理行为、流式/非流式处理方式、路由抽象(fast/strong/experimental)、决策优先级顺序以及安全回退语义。
  • 重新组织并充实运行运维相关章节,包括本地运行、容器部署、健康/就绪探针、流式冒烟测试以及 LiteLLM entry 设计,强调推荐的端口布局和 sidecar 部署形态。
  • 澄清安全性、可观测性与可审计性方面的内容,包括决策预览端点、结构化路由日志、Correlation ID 处理方式,以及哪些内容是刻意不记录的(如 prompts、tokens)。
README.md
更明确地记录配置、评估(eval)和可观测性工作流,包括路由库(route banks)、评估库(eval banks)、预检/端到端(E2E)检查、日志摘要以及路由错误预算(route error budgets)。
  • 在配置章节中详细说明 config/routes.yaml 及环境变量覆盖方式,重点突出 route_modelfallback_route_id、阈值(thresholds)以及 embedding/LiteLLM 端点。
  • 阐明运行时路由如何保持依赖轻量,而大型语义资产则通过 config/route_sources.yaml 离线构建,并使用专门的资产构建脚本完成。
  • 文档化路由库(route banks)和评估库(eval banks)的构建和使用方式,包括示例 uv 命令,以及在生成资产缺失时,运行时如何采取保守的加载行为。
  • 详细说明预检脚本、LiteLLM entry 端到端(E2E)检查、日志摘要与路由错误预算脚本的功能,包括各自检查的内容、如何针对日志或在线路由器运行,以及它们如何用于生产发布前的闸门控制。
  • 解释结构化路由日志的事件结构(route_complete / route_error 事件,包含 route_idtarget_modelpolicy_idrequest_id_sourceupstream_statusduration 等字段),以及这些日志如何流入汇总和错误预算检查。
README.md
新增 PROJECT_IDENTITY 文档,描述拟议的长期项目名称、仓库命名方式、GitHub 元数据以及迁移指引,本 PR 中不修改任何实际仓库元数据。
  • 新增 docs/PROJECT_IDENTITY.md,记录推荐的产品名称 “Cynosure Router”、建议的仓库名称 cynosure-router,以及从 gateway-semantic-router 迁移的理由。
  • 定义推荐的 GitHub 仓库标题、About 描述(长短版本),以及中英文的一句话定位语。
  • 解释 “Cynosure” 这一命名背后的含义——作为模型流量的引导点,并说明这一名称如何比之前的描述性名称更好地体现项目范围(意图路由、评估、可观测性、错误预算)。
  • 给出推荐的 README 标题结构以及如何与新的项目身份对齐,但不直接修改任何平台元数据。
  • 列出未来建议添加的 GitHub topics,以及在实际重命名仓库时需要回顾的检查清单(README 中的路径、compose 构建上下文、Docker 服务名称、CI 引用、外部 URL、本地克隆路径等)。
  • 明确说明本 PR 仅修改文档,刻意不更改 GitHub 仓库名、标题、About 描述或 topics,同时保留当前示例中的本地路径,等待后续协调一致的重命名。
docs/PROJECT_IDENTITY.md

提示与命令(Tips and commands)

与 Sourcery 交互(Interacting with Sourcery)

  • 触发新的审阅: 在 pull request 上评论 @sourcery-ai review
  • 继续讨论: 直接回复 Sourcery 的审阅评论。
  • 从审阅评论生成 GitHub issue: 在某条审阅评论下回复,请求 Sourcery 从该评论创建一个 issue。你也可以直接回复 @sourcery-ai issue,从该评论生成 issue。
  • 生成 pull request 标题: 在 pull request 标题中任意位置写上 @sourcery-ai 即可随时生成标题。你也可以在 pull request 中评论 @sourcery-ai title 来(重新)生成标题。
  • 生成 pull request 摘要: 在 pull request 正文中任意位置写上 @sourcery-ai summary,即可在该位置生成 PR 摘要。你也可以在 pull request 中评论 @sourcery-ai summary 来(重新)生成摘要。
  • 生成审阅者指南: 在 pull request 中评论 @sourcery-ai guide,即可(重新)生成审阅者指南。
  • 解决所有 Sourcery 评论: 在 pull request 中评论 @sourcery-ai resolve,即可将所有 Sourcery 评论标记为已解决。如果你已经处理了所有评论且不希望再看到它们,这会非常有用。
  • 关闭所有 Sourcery 审阅: 在 pull request 中评论 @sourcery-ai dismiss,即可关闭所有现有的 Sourcery 审阅。这在你希望以一次全新的审阅重新开始时尤其有用——别忘了再评论一次 @sourcery-ai review 来触发新的审阅!

自定义你的体验(Customizing Your Experience)

打开你的 dashboard 以:

  • 启用或禁用审阅功能,例如 Sourcery 生成的 pull request 摘要、审阅者指南等。
  • 更改审阅语言。
  • 添加、移除或编辑自定义审阅指令。
  • 调整其他审阅设置。

获取帮助(Getting Help)

Original review guide in English

Reviewer's Guide

Repositions the documented project identity from “Gateway Semantic Router” to “Cynosure Router”, rewriting the README (primarily in Chinese) to center the sidecar’s role as an intent-aware routing control plane in front of LiteLLM, and adds a PROJECT_IDENTITY doc that captures the proposed name, GitHub metadata recommendations, and migration considerations without changing any actual repo/platform metadata.

Sequence diagram for Cynosure Router routing decision and fallback

sequenceDiagram
  actor Client
  participant Router as CynosureRouter
  participant Emb as EmbeddingService
  participant GW as LiteLLMGateway
  participant Prov as ModelProvider

  Client->>Router: POST /v1/chat/completions model=semantic-router
  Router->>Router: Inspect metadata_route_and_model
  alt Non_entry_model
    Router->>GW: Forward_request_passthrough
    GW->>Prov: Execute_model
    Prov-->>GW: Response
    GW-->>Router: Response
    Router-->>Client: Response_with_headers
  else Entry_model
    alt Metadata_explicit_route
      Router->>Router: Use_metadata_route
    else Chinese_hard_rules
      Router->>Router: Match_high_risk_keywords
    else Embedding_semantic_match
      Router->>Emb: POST /v1/embeddings
      Emb-->>Router: Embedding_vector
      Router->>Router: Select_best_route_by_score
    else Low_confidence
      Router->>Router: Fallback_to_configured_route
    end

    Router->>Router: Rewrite_model_field_to_target_model
    Router->>GW: Forward_rewritten_request
    GW->>Prov: Execute_model
    Prov-->>GW: Response
    GW-->>Router: Response
    Router->>Router: Log_route_complete_structured
    Router-->>Client: Response_with_routing_headers

    opt Embedding_error
      Router->>Router: Mark_embedding_degraded_and_use_fallback_route
    end
  end
Loading

File-Level Changes

Change Details Files
Rename the documented project identity from Gateway Semantic Router to Cynosure Router and reposition the README around an intent-aware routing control plane in front of LiteLLM.
  • Change the README title and opening tagline to use the new Cynosure Router name and bilingual positioning statement.
  • Replace the prior brief English-centric description with an in-depth Chinese-first explanation of the router’s purpose, Chinese-heavy use cases, and relationship to LiteLLM as a sidecar control plane.
  • Add architecture and positioning sections (核心定位, 当前能力, 与 LiteLLM 的关系, 项目边界, 当前状态, Name) that clarify the exact responsibility boundaries, routing behavior, and non-goals of the project.
  • Expand documentation of current capabilities, including OpenAI-compatible chat proxy behavior, streaming/non-streaming handling, route abstractions (fast/strong/experimental), decision priority order, and safe fallback semantics.
  • Reorganize and enrich operational sections for local run, container deployment, health/readiness probes, streaming smoke tests, and LiteLLM entry design, emphasizing recommended port layout and sidecar deployment shape.
  • Clarify safety, observability, and auditability aspects, including decision preview endpoints, structured route logs, correlation ID handling, and what is intentionally not logged (prompts, tokens).
README.md
Document configuration, eval, and observability workflows more explicitly, including route banks, eval banks, preflight/E2E checks, log summary, and route error budgets.
  • Elaborate the configuration section around config/routes.yaml and environment overrides, highlighting route_model, fallback_route_id, thresholds, and embedding/LiteLLM endpoints.
  • Clarify how runtime routing remains dependency-light while large semantic assets are built offline from config/route_sources.yaml using dedicated asset build scripts.
  • Document the build and usage of route banks and eval banks, including example uv commands and the conservative runtime loading behavior when generated assets are absent.
  • Detail preflight, LiteLLM entry E2E, log summary, and route-error-budget scripts, including what each checks, how to run them against logs or live routers, and how they should gate production rollout.
  • Explain how structured route logs are shaped (route_complete/route_error events with route_id, target_model, policy_id, request_id_source, upstream_status, duration, etc.) and how they feed into summaries and error-budget checks.
README.md
Add a PROJECT_IDENTITY document describing the proposed long-term project name, repository naming, GitHub metadata, and migration guidance without changing any actual repo metadata in this PR.
  • Introduce docs/PROJECT_IDENTITY.md capturing the recommended product name “Cynosure Router”, the suggested repository name “cynosure-router”, and the rationale for moving away from gateway-semantic-router.
  • Define recommended GitHub repository title, About descriptions (long and short variants), and one-line positioning statements in both English and Chinese.
  • Explain the naming rationale around “Cynosure” as a guiding point for model traffic and how it better reflects the project’s scope (intent routing, evaluation, observability, error budgets) than the previous descriptive name.
  • Outline suggested README title structure and alignment with the new identity without directly modifying any platform metadata.
  • List recommended future GitHub topics and a checklist of items to revisit if and when the repository is actually renamed (paths in README, compose build context, Docker service names, CI references, external URLs, local clone paths, etc.).
  • Clarify that this PR is docs-only and intentionally does not change GitHub repository name, title, About description, or topics yet, keeping current local path examples until a later, coordinated rename.
docs/PROJECT_IDENTITY.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link
Copy Markdown

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

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

Hey - 我提供了一些整体性的反馈:

  • README 和 docs/PROJECT_IDENTITY.md 在定位和命名方面有不少内容重叠;建议将权威的身份/定位说明集中放在一个地方,然后在另一个文档中引用它,这样在未来需要修改时可以减少两者之间的偏差。
  • README 里仍然包含具体的本地路径,比如 /home/raystorm/gateway/gateway-semantic-router;为了避免被当成硬性要求直接复制粘贴,可以考虑将这些路径参数化(例如 <project-root>),或者把它们移到一个专门的“示例部署”章节中。
给 AI Agent 的提示词
Please address the comments from this code review:

## Overall Comments
- README 和 docs/PROJECT_IDENTITY.md 在定位和命名方面有不少内容重叠;建议将权威的身份/定位说明集中放在一个地方,然后在另一个文档中引用它,这样在未来需要修改时可以减少两者之间的偏差。
- README 里仍然包含具体的本地路径,比如 `/home/raystorm/gateway/gateway-semantic-router`;为了避免被当成硬性要求直接复制粘贴,可以考虑将这些路径参数化(例如 `<project-root>`),或者把它们移到一个专门的“示例部署”章节中。

Sourcery 对开源项目是免费的——如果你觉得我们的评审有帮助,请考虑分享 ✨
帮我变得更有用!请在每条评论上点 👍 或 👎,我会根据你的反馈持续改进代码评审质量。
Original comment in English

Hey - I've left some high level feedback:

  • There’s quite a bit of overlap between README and docs/PROJECT_IDENTITY.md around positioning and naming; consider consolidating the canonical identity/positioning in one place and referencing it from the other to reduce future drift when changes are needed.
  • The README still embeds concrete local paths like /home/raystorm/gateway/gateway-semantic-router; it may be clearer to either parameterize these (e.g. <project-root>) or move them into a dedicated “example deployment” section so they’re less likely to be copy-pasted as hard requirements.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- There’s quite a bit of overlap between README and docs/PROJECT_IDENTITY.md around positioning and naming; consider consolidating the canonical identity/positioning in one place and referencing it from the other to reduce future drift when changes are needed.
- The README still embeds concrete local paths like `/home/raystorm/gateway/gateway-semantic-router`; it may be clearer to either parameterize these (e.g. `<project-root>`) or move them into a dedicated “example deployment” section so they’re less likely to be copy-pasted as hard requirements.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

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.

1 participant