reqlanOverviewIdeasFilesCode filesClustersAttributesGraphPrint
Ideas/ideas_index

Idea detail

ideas_index

reqlan rq/core-architecture.rq:118

block

Summary

The ideas index is built and maintained by the indexer.rq in analytical_package.
Path: parse with language_package → extract ideas / edges → SQLite via workspace-index.ts.
Application memory: each base holds SQLite under `<base>/.reqlan/` ( shared by extension, cli_package, and mcp_package ) — see application_memory.
Multi-base: a BaseRegistry owns one workspace-index.ts per discovered base; the extension adapter routes file events to the owning base.
In the editor, index-service.ts watches `**\*.rq` and forwards changes to the owning base's workspace-index.ts; it serves UIs, commands, chat, and analysers.
Headless ( MCP / CLI ) uses create-runtime.ts ( nearest base containing cwd when several exist ).
Capability requirements: index_ideas, index_technology, and sibling analysers in that file.
Triggers: triggers and idea_index_triggers.

Jump to outbound references

Jump to inbound references

Navigation

Source file

reqlan rq/core-architecture.rq

community 5

community cluster

core-architecture.rq

file cluster

reqlan rq

folder cluster

status: Not present

status cluster

tag: Not present

tag cluster

Printable page

Static print-friendly idea sheet.

Attributes

No attributes declared.

Ancestor context

analytical_package

`packages/analytical` ( `@reqlan/analytical` ) is the shared requirement graph index and analysis layer. It owns the [indexer]: extracts ideas and edges from Langium ASTs into a sql. js SQLite store ( [workspace_index] ), holds Zustand analytical state, and exposes analysers and an analysis API. Headless entry is [analysis_runtime] via `createAnalysisRuntime` / `WorkspaceIndex`. Consumers: [extension_package] ( thin editor adapter ), [mcp_package], [cli_package]. Depends on [language_package]. Published to npm alongside [cli_package]; version graph role: [package_versioning].

language_package

`packages/language` ( `@reqlan/language` ) is the canonical language definition. It owns Langium grammars, generated AST and parser, scoped linking, validators, and LSP service providers. Public DI entry is [language_module] via `createReqlanServices`. Consumers: [analytical_package] ( indexer / analysis ), [extension_package] ( LSP ), [cli_package]. Published to npm as a library dependency of [analytical_package] and [cli_package]; not Marketplace-published. See [distribution.version_management] and [package_versioning].

cli_package

`packages/cli` ( `@reqlan/cli` ) is a Clipanion CLI over [language_package] ( parse ) and [analytical_package] ( `AnalysisApi` for analyse / search ). Entry: [cli_main]. Binary name `reqlan` ( alias `rq` ). Published to npm with language and analytical per [package_versioning] and [distribution.version_management].

mcp_package

`packages/mcp` ( `reqlan-mcp` ) is a stdio MCP server over the analytical analysis API — no VS Code host required. Entry: [mcp_main]. Used by Cursor and other MCP clients per [chat_participant_doc.mcp] and [skills_and_mcp.mcp_tools]. Ignored by Changesets and `private` ( not an npm publishable ) per [distribution.version_management].

extension_package

`packages/extension` ( npm `reqlan-extension` ) is the editor product per [distribution.extension_package]. It registers `.rq` language support, TextMate grammars, starts the language client, and owns activity bar, Ideas Summary, chat, skills, and mutation hooks. Ideas index engine lives in [analytical_package] / [indexer]; the extension only hosts a thin VS Code adapter ( [editor_index_adapter] ) for watchers and UI. Host entry: [extension_main]. LSP process entry: [language_server_main]. Depends on [language_package] and [analytical_package]. Follows [extension_architecture.event_driven] and [extension_architecture.state_machine_mindset] ( zustand ) for JS state. This is the one Marketplace / Open VSX shippable; see [package_versioning].

package_versioning

Separate workspace packages exist for build isolation and reuse — not because each ships to every channel. [language_package] and [analytical_package] are leaf libraries shared by LSP, index, MCP, and CLI; they need their own package boundaries for TypeScript project refs and a single grammar / index ownership point. Release-driving channels: - Marketplace / Open VSX: [extension_package] ( `ext/v*` ) - GitHub Pages: [site_package] ( `site/v*` ) - npm registry: [language_package], [analytical_package], and [cli_package] ( `language/v*`, `analytical/v*`, `cli/v*` ) via Changesets `changeset publish` Changesets config is [changeset_config]. It ignores [mcp_package] only. [language_package] and [analytical_package] stay in the Changesets graph so a lib change can bump their versions and patch dependents via `updateInternalDependencies: "patch"` ( including the extension and CLI ). Extension webview folders may be private pnpm members ( e. g. `@reqlan/ideas-summary-webview` ) so Vite / Svelte can own deps; they bundle into extension media and are not Changesets publish targets. Activity-bar UI is not a separate package. json product. Contributors record release intent with a changeset on publishable packages when user-facing behaviour changes; see [distribution.version_management].

site_package

`site` is the marketing / docs Next. js site per [distribution.site_package]. It is off the language-service and ideas-index path. Release-driving publishable alongside [extension_package]; see [package_versioning].

Outbound references

KindIdeaPathSnippet
file_reference analysis_runtime packages/analytical/src/create-runtime.ts create-runtime.ts
file_reference workspace_index packages/analytical/src/index-store/workspace-index.ts workspace-index.ts
file_reference editor_index_adapter packages/extension/src/analytical_submodule/index-store/index-service.ts index-service.ts
file_reference indexer reqlan rq/indexer/indexer.rq indexer.rq
references analytical_package reqlan rq/core-architecture.rq analytical_package
references cli_package reqlan rq/core-architecture.rq cli_package
references language_package reqlan rq/core-architecture.rq language_package
references mcp_package reqlan rq/core-architecture.rq mcp_package

Inbound references

KindIdeaPathSnippet
ideaset_member language_runtime reqlan rq/core-architecture.rq —
references base_containers reqlan rq/core-architecture.rq ideas_index

Unresolved references

KindIdeaPathSnippet
references application_memory application_memory
references base base
references idea_index_triggers idea_index_triggers
references index_ideas index_ideas
references index_technology index_technology
references triggers triggers

Local graph

Initialising graph…