фиксирую состояние

This commit is contained in:
2026-04-07 21:41:27 +03:00
parent 7387e5cc51
commit f62fb678b8
52 changed files with 4073 additions and 316 deletions
@@ -0,0 +1,540 @@
defaults:
component: process_v2_retrieval_policy_resolver
cases:
- id: general-overview-grounded
route:
routing_domain: GENERAL
intent: GENERAL_QA
subintent: SUMMARY
user_query: "Что это за сервис?"
normalized_query: "что это за сервис"
anchors:
target_doc_hints: []
endpoint_paths: []
expected:
plan:
profile: general_qa_grounded_summary
layers: [D1_DOCUMENT_CATALOG, D0_DOC_CHUNKS]
limit: 8
filters:
prefer_path_prefixes: [docs/architecture/, docs/]
- id: general-does-not-become-docs-summary
route:
routing_domain: GENERAL
intent: GENERAL_QA
subintent: SUMMARY
user_query: "Дай общий обзор, включая /health"
normalized_query: "дай общий обзор включая /health"
anchors:
endpoint_paths: ["/health"]
target_doc_hints: ["docs/api/health-endpoint.md"]
matched_aliases: ["api"]
expected:
plan:
profile: general_qa_grounded_summary
layers: [D1_DOCUMENT_CATALOG, D0_DOC_CHUNKS]
limit: 8
- id: find-files-with-target-hint
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: FIND_FILES
user_query: "Покажи файл про health endpoint"
normalized_query: "покажи файл про health endpoint"
anchors:
endpoint_paths: ["/health"]
target_doc_hints: ["docs/api/health-endpoint.md"]
expected:
plan:
profile: file_lookup
layers: [D1_DOCUMENT_CATALOG, D3_ENTITY_CATALOG]
limit: 12
filters:
target_doc_hints: ["docs/api/health-endpoint.md"]
path_prefixes: [docs/api/]
prefer_like_patterns: ["%health-endpoint.md%"]
- id: find-files-endpoint-only
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: FIND_FILES
user_query: "Где описан /send?"
normalized_query: "где описан /send"
anchors:
endpoint_paths: ["/send"]
target_doc_hints: []
expected:
plan:
profile: file_lookup
layers: [D1_DOCUMENT_CATALOG, D3_ENTITY_CATALOG]
limit: 12
filters:
path_prefixes: [docs/api/, docs/]
prefer_like_patterns: ["%/send%"]
- id: find-files-entities-and-domain
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: FIND_FILES
user_query: "В каком документе описан ManualSendWorker?"
normalized_query: "в каком документе описан manualsendworker"
anchors:
entity_names: ["ManualSendWorker"]
matched_aliases: ["manual send"]
process_domain: "messaging"
process_subdomain: "manual_send"
target_doc_hints: []
expected:
plan:
profile: file_lookup
layers: [D1_DOCUMENT_CATALOG, D3_ENTITY_CATALOG]
limit: 12
filters:
metadata.domain: messaging
metadata.subdomain: manual_send
prefer_path_prefixes: [docs/domains/, docs/, docs/logic/]
prefer_like_patterns: ["%manualsendworker%", "%manual send%", "%messaging%", "%manual_send%"]
- id: docs-summary-api-endpoint-health
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: SUMMARY
user_query: "Объясни /health"
normalized_query: "объясни /health"
target_terms: ["health", "/health"]
anchors:
endpoint_paths: ["/health"]
target_doc_hints: ["docs/api/health-endpoint.md"]
expected:
plan:
profile: docs_summary_api_endpoint
layers: [D1_DOCUMENT_CATALOG, D2_FACT_INDEX, D0_DOC_CHUNKS]
limit: 8
filters:
target_doc_hints: ["docs/api/health-endpoint.md"]
path_prefixes: [docs/api/, docs/]
prefer_path_prefixes: [docs/api/, docs/]
- id: docs-summary-architecture
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: SUMMARY
user_query: "Как устроена архитектура сервиса?"
normalized_query: "как устроена архитектура сервиса"
anchors:
file_names: ["docs/architecture/runtime-manager.md"]
target_doc_hints: ["docs/architecture/runtime-manager.md"]
matched_aliases: ["architecture"]
expected:
plan:
profile: docs_summary_architecture
layers: [D1_DOCUMENT_CATALOG, D5_RELATION_GRAPH, D0_DOC_CHUNKS]
limit: 8
filters:
target_doc_hints: ["docs/architecture/runtime-manager.md"]
prefer_path_prefixes: [docs/architecture/, docs/]
- id: docs-summary-logic-flow
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: SUMMARY
user_query: "Опиши workflow отправки уведомлений"
normalized_query: "опиши workflow отправки уведомлений"
anchors:
matched_aliases: ["workflow"]
process_domain: "notifications"
process_subdomain: "delivery_loop"
target_doc_hints: []
expected:
plan:
profile: docs_summary_logic_flow
layers: [D4_WORKFLOW_INDEX, D1_DOCUMENT_CATALOG, D0_DOC_CHUNKS]
limit: 8
filters:
metadata.domain: notifications
metadata.subdomain: delivery_loop
prefer_path_prefixes: [docs/logic/, docs/architecture/, docs/]
- id: docs-summary-domain-entity
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: SUMMARY
user_query: "Что такое RuntimeManager?"
normalized_query: "что такое runtimemanager"
anchors:
entity_names: ["RuntimeManager"]
process_domain: "runtime"
expected:
plan:
profile: docs_summary_domain_entity
layers: [D3_ENTITY_CATALOG, D1_DOCUMENT_CATALOG, D0_DOC_CHUNKS]
limit: 8
filters:
metadata.domain: runtime
prefer_path_prefixes: [docs/domains/, docs/, docs/api/]
prefer_like_patterns: ["%runtimemanager%", "%runtime%"]
- id: docs-summary-generic-weak-signals
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: SUMMARY
user_query: "Дай краткое summary документации"
normalized_query: "дай краткое summary документации"
anchors:
target_doc_hints: []
endpoint_paths: []
entity_names: []
matched_aliases: []
expected:
plan:
profile: docs_summary_generic
layers: [D1_DOCUMENT_CATALOG, D0_DOC_CHUNKS]
limit: 8
filters:
prefer_path_prefixes: [docs/]
- id: docs-summary-generic-conflicting-signals
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: SUMMARY
user_query: "Как связан /health и RuntimeManager?"
normalized_query: "как связан /health и runtimemanager"
anchors:
endpoint_paths: ["/health"]
entity_names: ["RuntimeManager"]
expected:
plan:
profile: docs_summary_generic
layers: [D1_DOCUMENT_CATALOG, D0_DOC_CHUNKS]
limit: 8
- id: find-files-stays-file-lookup-on-mixed-signals
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: FIND_FILES
user_query: "Найди документ по architecture runtime manager"
normalized_query: "найди документ по architecture runtime manager"
anchors:
entity_names: ["RuntimeManager"]
matched_aliases: ["architecture"]
file_names: ["docs/architecture/runtime-manager.md"]
expected:
plan:
profile: file_lookup
layers: [D1_DOCUMENT_CATALOG, D3_ENTITY_CATALOG]
limit: 12
filters:
path_prefixes: [docs/architecture/]
- id: resolver-survives-partial-empty-anchors
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: SUMMARY
user_query: "Что там по docs?"
normalized_query: "что там по docs"
anchors:
entity_names: []
file_names: [""]
endpoint_paths: []
target_doc_hints: []
matched_aliases: []
process_domain:
process_subdomain:
expected:
plan:
profile: docs_summary_generic
layers: [D1_DOCUMENT_CATALOG, D0_DOC_CHUNKS]
limit: 8
- id: find-files-file-name-priority
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: FIND_FILES
user_query: "Покажи документ manual-send"
normalized_query: "покажи документ manual-send"
anchors:
file_names: ["docs/workflows/manual-send.md"]
matched_aliases: ["manual send"]
target_doc_hints: []
expected:
plan:
profile: file_lookup
layers: [D1_DOCUMENT_CATALOG, D3_ENTITY_CATALOG]
limit: 12
filters:
path_prefixes: [docs/workflows/]
prefer_like_patterns: ["%docs/workflows/manual-send.md%", "%manual send%"]
- id: conflict-api-hint-vs-workflow-metadata
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: SUMMARY
user_query: "Опиши flow для /health в notification loop"
normalized_query: "опиши flow для /health в notification loop"
anchors:
endpoint_paths: ["/health"]
target_doc_hints: ["docs/api/health-endpoint.md"]
matched_aliases: ["workflow"]
process_domain: "notifications"
process_subdomain: "delivery_loop"
expected:
plan:
profile: docs_summary_generic
layers: [D1_DOCUMENT_CATALOG, D0_DOC_CHUNKS]
limit: 8
filters:
target_doc_hints: ["docs/api/health-endpoint.md"]
metadata.domain: notifications
metadata.subdomain: delivery_loop
path_prefixes: [docs/api/, docs/]
- id: conflict-file-name-vs-architecture-alias
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: SUMMARY
user_query: "Объясни architecture для notification loop"
normalized_query: "объясни architecture для notification loop"
anchors:
file_names: ["docs/logic/notification-loop.md"]
matched_aliases: ["architecture"]
expected:
plan:
profile: docs_summary_generic
layers: [D1_DOCUMENT_CATALOG, D0_DOC_CHUNKS]
limit: 8
filters:
prefer_path_prefixes: [docs/architecture/, docs/, docs/logic/]
prefer_like_patterns: ["%docs/logic/notification-loop.md%", "%architecture%"]
- id: conflict-hint-vs-entity-soft-signals
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: SUMMARY
user_query: "Что делает /send и ManualSendWorker?"
normalized_query: "что делает /send и manualsendworker"
anchors:
endpoint_paths: ["/send"]
target_doc_hints: ["docs/api/send-endpoint.md"]
entity_names: ["ManualSendWorker"]
matched_aliases: ["manual send"]
expected:
plan:
profile: docs_summary_generic
layers: [D1_DOCUMENT_CATALOG, D0_DOC_CHUNKS]
limit: 8
filters:
target_doc_hints: ["docs/api/send-endpoint.md"]
path_prefixes: [docs/api/, docs/]
prefer_like_patterns: ["%send-endpoint.md%", "%/send%", "%manualsendworker%", "%manual send%"]
- id: metadata-only-find-files
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: FIND_FILES
user_query: "Найди документы по notifications delivery loop"
normalized_query: "найди документы по notifications delivery loop"
anchors:
process_domain: "notifications"
process_subdomain: "delivery_loop"
expected:
plan:
profile: file_lookup
layers: [D1_DOCUMENT_CATALOG, D3_ENTITY_CATALOG]
limit: 12
filters:
path_prefixes: [docs/]
metadata.domain: notifications
metadata.subdomain: delivery_loop
prefer_path_prefixes: [docs/, docs/domains/, docs/logic/]
- id: metadata-only-generic-summary
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: SUMMARY
user_query: "Дай summary по notifications delivery loop"
normalized_query: "дай summary по notifications delivery loop"
anchors:
process_domain: "notifications"
process_subdomain: "delivery_loop"
expected:
plan:
profile: docs_summary_generic
layers: [D1_DOCUMENT_CATALOG, D0_DOC_CHUNKS]
limit: 8
filters:
metadata.domain: notifications
metadata.subdomain: delivery_loop
prefer_path_prefixes: [docs/]
prefer_like_patterns: ["%notifications%", "%delivery_loop%"]
- id: metadata-domain-entity-with-alias
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: SUMMARY
user_query: "Объясни компонент billing"
normalized_query: "объясни компонент billing"
anchors:
matched_aliases: ["component"]
process_domain: "billing"
expected:
plan:
profile: docs_summary_domain_entity
layers: [D3_ENTITY_CATALOG, D1_DOCUMENT_CATALOG, D0_DOC_CHUNKS]
limit: 8
filters:
metadata.domain: billing
prefer_path_prefixes: [docs/domains/, docs/, docs/api/]
prefer_like_patterns: ["%component%", "%billing%"]
- id: alias-only-api
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: SUMMARY
user_query: "Объясни api health"
normalized_query: "объясни api health"
anchors:
matched_aliases: ["api endpoint"]
expected:
plan:
profile: docs_summary_api_endpoint
layers: [D1_DOCUMENT_CATALOG, D2_FACT_INDEX, D0_DOC_CHUNKS]
limit: 8
filters:
path_prefixes: [docs/api/, docs/]
prefer_like_patterns: ["%api endpoint%"]
- id: alias-only-architecture
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: SUMMARY
user_query: "Расскажи про architecture"
normalized_query: "расскажи про architecture"
anchors:
matched_aliases: ["architecture"]
expected:
plan:
profile: docs_summary_architecture
layers: [D1_DOCUMENT_CATALOG, D5_RELATION_GRAPH, D0_DOC_CHUNKS]
limit: 8
filters:
prefer_path_prefixes: [docs/architecture/, docs/]
prefer_like_patterns: ["%architecture%"]
- id: partial-only-endpoint-path
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: SUMMARY
user_query: "Что делает /status?"
normalized_query: "что делает /status"
anchors:
endpoint_paths: ["/status"]
expected:
plan:
profile: docs_summary_api_endpoint
layers: [D1_DOCUMENT_CATALOG, D2_FACT_INDEX, D0_DOC_CHUNKS]
limit: 8
filters:
path_prefixes: [docs/api/, docs/]
prefer_like_patterns: ["%/status%"]
- id: partial-only-target-doc-hint
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: SUMMARY
user_query: "Объясни notification loop"
normalized_query: "объясни notification loop"
anchors:
target_doc_hints: ["docs/logic/notification-loop.md"]
expected:
plan:
profile: docs_summary_logic_flow
layers: [D4_WORKFLOW_INDEX, D1_DOCUMENT_CATALOG, D0_DOC_CHUNKS]
limit: 8
filters:
target_doc_hints: ["docs/logic/notification-loop.md"]
prefer_path_prefixes: [docs/logic/, docs/architecture/, docs/]
- id: generic-neutral-with-nonsemantic-hint
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: SUMMARY
user_query: "Дай общий summary intro docs"
normalized_query: "дай общий summary intro docs"
anchors:
target_doc_hints: ["docs/intro/overview.md"]
expected:
plan:
profile: docs_summary_generic
layers: [D1_DOCUMENT_CATALOG, D0_DOC_CHUNKS]
limit: 8
filters:
target_doc_hints: ["docs/intro/overview.md"]
prefer_path_prefixes: [docs/]
- id: generic-neutral-weak-mixed-aliases
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: SUMMARY
user_query: "Нужен общий summary про architecture component"
normalized_query: "нужен общий summary про architecture component"
anchors:
matched_aliases: ["architecture", "component"]
expected:
plan:
profile: docs_summary_generic
layers: [D1_DOCUMENT_CATALOG, D0_DOC_CHUNKS]
limit: 8
filters:
prefer_path_prefixes: [docs/architecture/, docs/, docs/domains/, docs/api/]
- id: find-files-hard-priority-with-multiple-hints
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent: FIND_FILES
user_query: "Найди документы по /health и runtime manager"
normalized_query: "найди документы по /health и runtime manager"
anchors:
endpoint_paths: ["/health"]
entity_names: ["RuntimeManager"]
matched_aliases: ["architecture"]
target_doc_hints:
- "docs/api/health-endpoint.md"
- "docs/architecture/runtime-manager.md"
expected:
plan:
profile: file_lookup
layers: [D1_DOCUMENT_CATALOG, D3_ENTITY_CATALOG]
limit: 12
filters:
target_doc_hints:
- "docs/api/health-endpoint.md"
- "docs/architecture/runtime-manager.md"
path_prefixes: [docs/api/, docs/architecture/]
prefer_like_patterns: ["%health-endpoint.md%", "%runtime-manager.md%"]
@@ -0,0 +1,199 @@
defaults:
component: process_v2_router_plus_retrieval_policy
cases:
- id: soft-architecture-summary
query: "Как устроена архитектура приложения?"
expected:
route:
routing_domain_equals_any: [DOCS, GENERAL]
intent_equals_any: [DOC_EXPLAIN, GENERAL_QA]
subintent: SUMMARY
retrieval_plan:
profile_equals_any: [docs_summary_architecture, docs_summary_generic, general_qa_grounded_summary]
- id: soft-process-summary
query: "Опиши процесс отправки уведомлений"
expected:
route:
routing_domain_equals_any: [DOCS, GENERAL]
intent_equals_any: [DOC_EXPLAIN, GENERAL_QA]
subintent: SUMMARY
retrieval_plan:
profile_equals_any: [docs_summary_logic_flow, docs_summary_generic, general_qa_grounded_summary]
- id: soft-domain-entity-summary
query: "Что такое runtime health в документации?"
expected:
route:
routing_domain_equals_any: [DOCS, GENERAL]
intent_equals_any: [DOC_EXPLAIN, GENERAL_QA]
subintent: SUMMARY
retrieval_plan:
profile_equals_any: [docs_summary_domain_entity, docs_summary_generic, general_qa_grounded_summary]
- id: soft-runtime-health-document
query: "Покажи документ про runtime health"
expected:
route:
routing_domain_equals_any: [DOCS, GENERAL]
intent_equals_any: [DOC_EXPLAIN, GENERAL_QA]
subintent_equals_any: [SUMMARY, FIND_FILES]
retrieval_plan:
profile_equals_any: [file_lookup, docs_summary_domain_entity, docs_summary_generic, general_qa_grounded_summary]
- id: soft-api-send-noisy
query: "Нужен краткий док-саммари по api /send"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
retrieval_plan:
profile: docs_summary_api_endpoint
- id: soft-general-risks-architecture
query: "Какие риски у такого подхода в архитектуре?"
expected:
route:
routing_domain_equals_any: [GENERAL, DOCS]
intent_equals_any: [GENERAL_QA, DOC_EXPLAIN]
subintent: SUMMARY
retrieval_plan:
profile_equals_any: [general_qa_grounded_summary, docs_summary_architecture, docs_summary_generic]
- id: soft-general-polling-webhook
query: "Сравни polling и webhook в контексте сервиса"
expected:
route:
routing_domain_equals_any: [GENERAL, DOCS]
intent_equals_any: [GENERAL_QA, DOC_EXPLAIN]
subintent: SUMMARY
retrieval_plan:
profile_equals_any: [general_qa_grounded_summary, docs_summary_generic]
- id: soft-conflict-entity-plus-process
query: "Объясни entity runtime health и runtime loop"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
retrieval_plan:
profile_equals_any: [docs_summary_domain_entity, docs_summary_generic]
filters:
prefer_path_prefixes_contains: [docs/domains/]
- id: soft-alias-handle-health
query: "Объясни ручку /health"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
retrieval_plan:
profile: docs_summary_api_endpoint
- id: soft-alias-show-doc-handle-health
query: "Покажи документ по ручке /health"
expected:
route:
routing_domain_equals_any: [DOCS, GENERAL]
intent_equals_any: [DOC_EXPLAIN, GENERAL_QA]
subintent_equals_any: [FIND_FILES, SUMMARY]
retrieval_plan:
profile_equals_any: [file_lookup, docs_summary_api_endpoint, general_qa_grounded_summary]
- id: soft-alias-schema-overview
query: "Нужен обзор по архитектуре notify app"
expected:
route:
routing_domain_equals_any: [DOCS, GENERAL]
intent_equals_any: [DOC_EXPLAIN, GENERAL_QA]
subintent: SUMMARY
retrieval_plan:
profile_equals_any: [docs_summary_architecture, docs_summary_generic, general_qa_grounded_summary]
- id: soft-alias-find-schema-file
query: "Найди файл со схемой сервиса уведомлений"
expected:
route:
routing_domain_equals_any: [DOCS, GENERAL]
intent_equals_any: [DOC_EXPLAIN, GENERAL_QA]
subintent_equals_any: [FIND_FILES, SUMMARY]
retrieval_plan:
profile_equals_any: [file_lookup, docs_summary_architecture, docs_summary_generic, general_qa_grounded_summary]
- id: soft-process-domain-summary
query: "Объясни overview по billing invoice flow"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
route:
anchors:
process_domain: present
process_subdomain: present
retrieval_plan:
profile_equals_any: [docs_summary_logic_flow, docs_summary_generic, docs_summary_architecture]
- id: soft-process-domain-find-files
query: "Найди файл по billing invoice flow"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: FIND_FILES
route:
anchors:
process_domain: present
process_subdomain: present
retrieval_plan:
profile: file_lookup
- id: soft-noisy-arch-overview
query: "arch overview по notify app"
expected:
route:
routing_domain_equals_any: [DOCS, GENERAL]
intent_equals_any: [DOC_EXPLAIN, GENERAL_QA]
subintent: SUMMARY
retrieval_plan:
profile_equals_any: [docs_summary_architecture, docs_summary_generic, general_qa_grounded_summary]
- id: soft-noisy-file-send-endpoint
query: "нужен файл где описан /send endpoint"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: FIND_FILES
retrieval_plan:
profile: file_lookup
- id: soft-bare-file-token-preferences
query: "health-endpoint.md"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: FIND_FILES
route:
anchors:
file_names_contains: ["health-endpoint.md"]
retrieval_plan:
profile: file_lookup
- id: soft-doc-path-preferences
query: "docs/api/health-endpoint.md"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: FIND_FILES
route:
anchors:
file_names_contains: ["docs/api/health-endpoint.md"]
retrieval_plan:
profile: file_lookup
@@ -0,0 +1,206 @@
defaults:
component: process_v2_router_plus_retrieval_policy
cases:
- id: strict-general-overview
query: "Общий обзор сервиса"
expected:
router:
domain: GENERAL
intent: GENERAL_QA
sub_intent: SUMMARY
route:
anchors:
endpoint_paths_not_contains: ["/health"]
file_names_not_contains: ["/health"]
retrieval_plan:
profile: general_qa_grounded_summary
layers_contains: [D1_DOCUMENT_CATALOG, D0_DOC_CHUNKS]
limit: 8
filters:
prefer_path_prefixes_contains: [docs/architecture/, docs/]
path_prefixes: absent
- id: strict-api-summary-health
query: "Объясни endpoint /health"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
route:
anchors:
endpoint_paths_contains: ["/health"]
file_names_not_contains: ["/health"]
retrieval_plan:
profile: docs_summary_api_endpoint
filters:
path_prefixes_contains: [docs/api/]
prefer_path_prefixes_contains: [docs/api/]
- id: strict-find-files-health-described
query: "Где описан endpoint /health"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: FIND_FILES
route:
anchors:
endpoint_paths_contains: ["/health"]
file_names_not_contains: ["/health"]
retrieval_plan:
profile: file_lookup
layers_contains: [D1_DOCUMENT_CATALOG, D3_ENTITY_CATALOG]
limit: 12
filters:
path_prefixes_contains: [docs/api/]
prefer_path_prefixes_contains: [docs/api/]
- id: strict-find-files-health-show-file
query: "Покажи файл с описанием /health"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: FIND_FILES
route:
anchors:
endpoint_paths_contains: ["/health"]
retrieval_plan:
profile: file_lookup
filters:
path_prefixes_contains: [docs/api/]
- id: strict-runtime-health-find-files
query: "Где описан runtime health"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: FIND_FILES
retrieval_plan:
profile: file_lookup
filters:
path_prefixes_contains_any: [docs/domains/, docs/]
- id: strict-noisy-runtime-health-find-files
query: "runtime health где описано в docs"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: FIND_FILES
retrieval_plan:
profile: file_lookup
- id: strict-doc-path-is-file-lookup
query: "docs/api/health-endpoint.md"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: FIND_FILES
route:
anchors:
file_names_contains: ["docs/api/health-endpoint.md"]
endpoint_paths_not_contains: ["/api/health-endpoint.md"]
retrieval_plan:
profile: file_lookup
filters:
path_prefixes_contains: [docs/api/]
- id: strict-file-token-is-file-lookup
query: "health-endpoint.md"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: FIND_FILES
route:
anchors:
file_names_contains: ["health-endpoint.md"]
endpoint_paths_not_contains: ["health-endpoint.md"]
retrieval_plan:
profile: file_lookup
- id: strict-noisy-english-show-doc
query: "pls show doc for /health"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: FIND_FILES
route:
anchors:
endpoint_paths_contains: ["/health"]
file_names_not_contains: ["/health"]
target_terms_not_contains: [pls, show, doc, for]
retrieval_plan:
profile: file_lookup
filters:
path_prefixes_contains: [docs/api/]
- id: strict-bare-endpoint-anchor-invariant
query: "/health"
expected:
route:
routing_domain_equals_any: [GENERAL, DOCS]
intent_equals_any: [GENERAL_QA, DOC_EXPLAIN]
subintent: SUMMARY
anchors:
endpoint_paths_contains: ["/health"]
file_names_not_contains: ["/health"]
- id: strict-find-files-dominates-health-question
query: "В каком файле описан `/health`?"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: FIND_FILES
retrieval_plan:
profile: file_lookup
- id: strict-runtime-health-summary-not-file-lookup
query: "Что делает runtime health"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
retrieval_plan:
profile_equals_any: [docs_summary_domain_entity, docs_summary_generic]
- id: strict-general-purpose
query: "Зачем нужен этот сервис?"
expected:
route:
routing_domain_equals_any: [GENERAL, DOCS]
intent_equals_any: [GENERAL_QA, DOC_EXPLAIN]
subintent: SUMMARY
retrieval_plan:
profile_equals_any: [general_qa_grounded_summary, docs_summary_generic]
- id: strict-conflict-summary-goes-generic
query: "Как устроена архитектура endpoint /send"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
retrieval_plan:
profile: docs_summary_generic
filters:
path_prefixes_contains: [docs/api/]
prefer_path_prefixes_contains: [docs/api/, docs/architecture/]
- id: strict-find-files-dominates-mixed-signals
query: "В каком файле описан architecture flow отправки уведомлений"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: FIND_FILES
retrieval_plan:
profile: file_lookup
@@ -0,0 +1,115 @@
defaults:
component: process_v2_router_plus_retrieval_policy
cases:
- id: qg-t01-docs-overview-architecture
query: "Объясни overview архитектуры сервиса уведомлений"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
retrieval_plan:
profile_one_of: [docs_summary_architecture, docs_summary_generic]
filters:
prefer_path_prefixes_contains: [docs/architecture/]
- id: qg-t02-docs-overview-flow
query: "Дай overview по flow отправки уведомлений"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
retrieval_plan:
profile_one_of: [docs_summary_logic_flow, docs_summary_generic]
filters:
prefer_path_prefixes_contains: [docs/logic/]
- id: qg-t03-soft-arch-overview-notify
query: "Arch overview по notify app"
expected:
route:
routing_domain_one_of: [DOCS, GENERAL]
intent_one_of: [DOC_EXPLAIN, GENERAL_QA]
subintent: SUMMARY
retrieval_plan:
profile_one_of: [docs_summary_architecture, docs_summary_generic, general_qa_grounded_summary]
- id: qg-t04-process-summary-filters
query: "Объясни billing invoice process"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
route:
anchors:
process_domain: present
process_subdomain: present
retrieval_plan:
if_anchor_present_then_filter_present:
- anchor: anchors.process_domain
filter: filters.metadata.domain
- anchor: anchors.process_subdomain
filter: filters.metadata.subdomain
profile_one_of: [docs_summary_logic_flow, docs_summary_generic]
- id: qg-t05-process-find-files-filters
query: "Найди файл по billing invoice process"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: FIND_FILES
route:
anchors:
process_domain: present
process_subdomain: present
retrieval_plan:
profile: file_lookup
if_anchor_present_then_filter_present:
- anchor: anchors.process_domain
filter: filters.metadata.domain
- anchor: anchors.process_subdomain
filter: filters.metadata.subdomain
filters:
prefer_path_prefixes_contains_any: [docs/domains/, docs/logic/]
- id: qg-t06-soft-process-shaped-input
query: "billing invoice docs"
expected:
route:
routing_domain: DOCS
intent: DOC_EXPLAIN
subintent_one_of: [FIND_FILES, SUMMARY]
retrieval_plan:
profile_one_of: [file_lookup, docs_summary_logic_flow, docs_summary_generic]
- id: qg-t07-clean-target-terms-architecture
query: "Объясни architecture overview сервиса уведомлений"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
route:
target_terms_not_contains: ["объясни", "overview", "architecture"]
retrieval_plan:
profile_one_of: [docs_summary_architecture, docs_summary_generic]
- id: qg-t08-clean-target-terms-file-query
query: "Найди doc for /health"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: FIND_FILES
route:
target_terms_contains: ["/health"]
target_terms_not_contains: ["найди", "doc", "for"]
anchors:
endpoint_paths_contains: ["/health"]
file_names_not_contains: ["/health"]
retrieval_plan:
profile: file_lookup
@@ -0,0 +1,193 @@
defaults:
component: process_v2_router_plus_retrieval_policy_rag
rag_session_id: "694cd10b-3842-4579-8d53-e54ec4291eae"
cases:
- id: rag-t01-architecture-summary
query: "Объясни overview архитектуры сервиса уведомлений"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
route:
anchors:
target_doc_hints_contains:
- "docs/architecture/telegram-notify-app-overview.md"
retrieval_plan:
profile: docs_summary_architecture
filters:
prefer_path_prefixes_contains:
- "docs/architecture/"
rag:
paths_contains:
- "docs/architecture/telegram-notify-app-overview.md"
layers_contains:
- "D5_RELATION_GRAPH"
- "D1_DOCUMENT_CATALOG"
- id: rag-t02-docs-index-find-files
query: "Найди файл-индекс документации проекта"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: FIND_FILES
route:
anchors:
target_doc_hints_contains:
- "docs/README.md"
retrieval_plan:
profile: file_lookup
filters:
path_prefixes_contains:
- "docs/"
rag:
paths_contains:
- "docs/README.md"
layers_contains:
- "D1_DOCUMENT_CATALOG"
- id: rag-t03-general-docs-overview
query: "Что входит в документацию этого проекта?"
expected:
router:
domain: GENERAL
intent: GENERAL_QA
sub_intent: SUMMARY
retrieval_plan:
profile: general_qa_grounded_summary
rag:
paths_contains:
- "docs/README.md"
- "docs/architecture/telegram-notify-app-overview.md"
layers_contains:
- "D1_DOCUMENT_CATALOG"
- "D0_DOC_CHUNKS"
- id: rag-t04-errors-catalog-find-files
query: "В каком файле лежит каталог ошибок?"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: FIND_FILES
route:
anchors:
target_doc_hints_contains:
- "docs/errors/catalog.yaml"
retrieval_plan:
profile: file_lookup
filters:
path_prefixes_contains:
- "docs/errors/"
rag:
paths_contains:
- "docs/errors/catalog.yaml"
layers_contains:
- "D1_DOCUMENT_CATALOG"
- id: rag-t05-errors-catalog-general
query: "Объясни каталог ошибок"
expected:
router:
domain: GENERAL
intent: GENERAL_QA
sub_intent: SUMMARY
route:
anchors:
target_doc_hints_contains:
- "docs/errors/catalog.yaml"
retrieval_plan:
profile: general_qa_grounded_summary
rag:
paths_contains:
- "docs/errors/catalog.yaml"
- id: rag-t06-health-summary-chain
query: "Объясни endpoint /health"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
route:
anchors:
endpoint_paths_contains:
- "/health"
file_names_not_contains:
- "/health"
retrieval_plan:
profile: docs_summary_api_endpoint
filters:
prefer_path_prefixes_contains:
- "docs/api/"
rag:
paths_contains_any:
- "docs/README.md"
- "docs/architecture/telegram-notify-app-overview.md"
layers_contains:
- "D2_FACT_INDEX"
- id: rag-t07-health-find-files-empty
query: "Где описан endpoint /health"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: FIND_FILES
route:
anchors:
endpoint_paths_contains:
- "/health"
target_doc_hints_contains:
- "docs/api/health-endpoint.md"
retrieval_plan:
profile: file_lookup
rag:
row_count: 0
paths: absent
layers: absent
- id: rag-t08-notifications-workflow-metadata
query: "Объясни notifications workflow"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
route:
anchors:
process_domain: notifications
retrieval_plan:
profile: docs_summary_logic_flow
filters:
metadata.domain: notifications
prefer_path_prefixes_contains:
- "docs/logic/"
rag:
paths_contains:
- "docs/architecture/telegram-notify-app-overview.md"
metadata_domains_contains:
- "notifications"
- id: rag-t09-mixed-summary-generic
query: "Как архитектурно устроен endpoint /send"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
route:
anchors:
endpoint_paths_contains:
- "/send"
retrieval_plan:
profile: docs_summary_generic
filters:
prefer_path_prefixes_contains:
- "docs/api/"
- "docs/architecture/"
rag:
paths_contains:
- "docs/architecture/telegram-notify-app-overview.md"
@@ -0,0 +1,180 @@
defaults:
component: process_v2_full_chain
rag_session_id: "694cd10b-3842-4579-8d53-e54ec4291eae"
cases:
- id: full-t01-general-docs-overview
query: "Что входит в документацию этого проекта?"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
retrieval_plan:
profile: docs_summary_generic
rag:
row_count: 0
pipeline:
answer_mode: insufficient_evidence
llm:
non_empty: true
contains_all:
- "не найден"
- "документ"
- id: full-t02-architecture-summary
query: "Объясни overview архитектуры сервиса уведомлений"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
route:
anchors:
target_doc_hints_contains:
- "docs/architecture/telegram-notify-app-overview.md"
retrieval_plan:
profile: docs_summary_architecture
rag:
paths_contains:
- "docs/architecture/telegram-notify-app-overview.md"
pipeline:
answer_mode: grounded_summary
llm:
non_empty: true
contains_any:
- ["RuntimeManager", "TelegramControlChannel"]
- ["worker", "Telegram"]
- id: full-t03-runtime-health-summary
query: "Что такое runtime health в этой документации?"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
retrieval_plan:
profile: docs_summary_domain_entity
rag:
row_count: 0
pipeline:
answer_mode: insufficient_evidence
llm:
non_empty: true
contains_all:
- "не найден"
- "документ"
- id: full-t04-logic-flow-summary
query: "Кратко опиши цикл отправки уведомлений"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
retrieval_plan:
profile: docs_summary_logic_flow
rag:
row_count: 0
pipeline:
answer_mode: insufficient_evidence
llm:
non_empty: true
contains_all:
- "не найден"
- "документ"
- id: full-t05-errors-catalog-find-files
query: "В каком файле лежит каталог ошибок?"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: FIND_FILES
route:
anchors:
target_doc_hints_contains:
- "docs/errors/catalog.yaml"
retrieval_plan:
profile: file_lookup
rag:
paths_contains:
- "docs/errors/catalog.yaml"
pipeline:
answer_mode: deterministic
llm:
non_empty: true
contains_all:
- "docs/errors/catalog.yaml"
- id: full-t06-docs-index-find-files
query: "Найди файл-индекс документации проекта"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: FIND_FILES
route:
anchors:
target_doc_hints_contains:
- "docs/README.md"
retrieval_plan:
profile: file_lookup
rag:
paths_contains:
- "docs/README.md"
pipeline:
answer_mode: deterministic
llm:
non_empty: true
contains_all:
- "docs/README.md"
- id: full-t07-mixed-generic-summary
query: "Как архитектурно устроен endpoint /send"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
route:
anchors:
endpoint_paths_contains:
- "/send"
retrieval_plan:
profile: docs_summary_generic
rag:
paths_contains:
- "docs/architecture/telegram-notify-app-overview.md"
pipeline:
answer_mode: grounded_summary
llm:
non_empty: true
contains_any:
- ["Telegram", "/send"]
- ["архитект", "endpoint"]
- id: full-t08-health-boundary
query: "Объясни endpoint /health"
expected:
router:
domain: DOCS
intent: DOC_EXPLAIN
sub_intent: SUMMARY
route:
anchors:
endpoint_paths_contains:
- "/health"
file_names_not_contains:
- "/health"
retrieval_plan:
profile: docs_summary_api_endpoint
rag:
row_count: 0
pipeline:
answer_mode: insufficient_evidence
llm:
non_empty: true
contains_all:
- "не найден"
- "документ"