RAG retrieval server for lsFusion platform documentation with local dense indexing and guidance delivery
Two tools with exceptionally detailed parameter descriptions and clear schemas. Tool naming follows verb_noun pattern well. Descriptions exceed production baselines significantly (both >1000 chars, baseline p90=392 chars). Input schemas are comprehensive with type constraints and field metadata. However, output schemas lack explicit documentation in the visible code, and error handling guidance is implicit rather than explicit. Both tools are READ_ONLY with no destructive operations, simplifying error cases. The server demonstrates sophisticated parameter engineering (batch queries, pagination, exclusion lists) aligned with Arcade patterns for constrained input and response shaping.
Retrieve whole articles from capability maps and coding rules by name. Returns the authoritative source for platform constraints, practices, and procedures. An area's article carries the current constraints and prescribed practices of that area — the traps accepted without a diagnostic that still change behaviour, the performance and structural choices already made, and the procedures whose order matters. Call with no parameters to get the top article of each branch (rules, brief, language, paradigm, how-to), which is the start-of-session call and the only way to obtain the maps.
Search official lsFusion documentation, or read one article of it by name. TWO SELECTORS, at least one required, and which you pass decides what you get: `query` alone searches all three branches by meaning and returns ranked chunks; `article` alone WALKS that one article from the top in document order — omit `query` to traverse; both together search inside that one article. Keeping `query` while adding `article` gets you a ranked search, not a traversal. Returns `{docs:[{id,source,text,score,query}], status}`; `status` is one sentence saying whether this response is the whole answer and, when it is not, the exact call that continues it. `score` is cosine similarity and is NULL in a traversal, which has nothing to be similar to; when it is null the list is in document order. `omitted` is how many matched but did not fit the response's size budget — non-zero means page with `exclude_ids`, zero means that was the whole answer. ROUTING: reach for `article` after a search, when a chunk is on the right subject but visibly partial — the constraint it depends on, the case it omits and the table it points at are elsewhere in the SAME article and invisible from inside the chunk. Its name is already in front of you: the part of the chunk `id` before `::`, or the basename of any `.md` link in the text. Searching again with different wording is the move this replaces. Omit `type` by default: each branch has its own share of the response, so setting `type` only removes the other two branches — it does not improve the branch it keeps — and naming an article picks its branch already. For capability maps and coding rules use `lsfusion_get_guidance`, which returns whole articles; reading the rules of an area you are about to work in is mandatory. The corpus is English-only (`docs/en/`) — cross-lingual embeddings make non-English queries work, but English wording gives the best recall.
Output schema not explicitly documented in server.py; RetrieveDocsOutput is imported but its structure is not visible in the provided source code.
Error handling and recovery guidance implicit in parameter descriptions but not formalized in tool documentation. No explicit error categorization (retryable vs user-fixable vs fatal).
lsfusion_get_guidance lacks output schema documentation. Parameters are optional and behavior changes based on which is passed, but return type is not formally specified.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 72 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |