Members

IdeaFileStatusSummaryKatz
clireqlan rq/ai-support.rqdoneHeadless twin of extension / MCP analysis: [cli_package] ( `reqlan` / `rq` ), same `<base>/.reqlan` index. [commands]: `init` · `parse <file>` · `analyse` / `analyze` · `search <query>` · `click <target>` · `export` / `export html`. `--json` for machines; `--cwd` / `REQLAN_WORKSPACE`; `REQLAN_INDEX_PATH` overrides index dir.0.040
skillsreqlan rq/ai-support.rqdonerq-* skills ( [chat_skill_naming], [cursor_skills_install] ) teach the graph, not the whole repo. Ontology in one breath — this project as example: - [idea] — named unit of intent ( `cli_package`, `skills` ) - [file] / [ideaset] — containers ( `reqlan rq/cli/cli_package.rq`; file = implicit ideaset ) - [base] — `.reqlan` boundary; one ideas index per base - [reference] — `[idea]` / `[[wiki]]` / `["./path".idea]` to ideas and code - [attribute] / [attribute_body] — `@name …`; first unmarked text is the body Prefer focused search / file context / local graph over full dumps ( [ai_integration] ).0.040
special_attributesreqlan rq/ai-support.rqdoneWhen creating or updating ideas, skills MUST set: - `@status` — lifecycle ( `draft` | `pending` | `in-progress` | `done` | … ) - `@todo` — open gaps / follow-ups ( bare or with a note ) - `@tests` — quoted test paths that prove the idea ( optional `:test name` suffix ) Do not bury status, todos, or test links in body prose.0.046
brandreqlan rq/brand.rqreqlan has a simple brand. Dark rust; and aqua blue pallete. Pink for highlights. Logo is nodular graph / crosshair0.040
extension_brandreqlan rq/brand.rqThe extension uses the brand logo from ["../site/public/logo.svg"]. PNG is used for marketplace, language file icon, activity bar, README, and chat participant surfaces ( Azure Marketplace rejects SVG ). WebP is generated as a raster fallback.0.040
file_iconreqlan rq/brand.rqthe file icon for. rq files should use the reqlan logo.0.040
elevator_pitchreqlan rq/constitution.rqBuild high quality, verifiable, explainable systems, quickly Site landing: ["./site/site.rq".elevator_pitch_section]0.056
general_purposereqlan rq/constitution.rqThe language should work in any stack. And ideally, even in non-software development environments.0.040
inspirationreqlan rq/constitution.rqThis project draws upon ideas from the following fields: - LLMS - Software development - Obsidian / Personal Knowledge Management systems. - Industrial Control Engineering - Ontology based business information systems0.040
llm_firstreqlan rq/constitution.rqThe language should be designed to be easy to use with llms. It should be support token minimisation.0.040
mission_statementreqlan rq/constitution.rqThis project offers a structred semantic framework for supporting people working with llms to document their semantic requirements as code; and provide ergonomic consumption and definition of them.0.040
scopereqlan rq/constitution.rqThe scope of these requirements spans the entire project, including the language itself, the developer-user tooling, and the reqlan-developer environment.0.040
simplicityreqlan rq/constitution.rqThe language should be simple to understand and use, and offer flexibility in the syntax for minimised friction and bp.0.040
supply_chainreqlan rq/constitution.rqThe supply chain for this project should be open and transparent, minimising risk and immature dependencies.0.095
vsc_firstreqlan rq/constitution.rqThe language should be designed to be easy to use with vscode.0.040
analytical_packagereqlan rq/core-architecture.rqin-progress`packages/analytical` ( `@reqlan/analytical` ) is the shared requirement graph index and analysis layer. It owns the [indexer]: extracts ideas and edges into a rusqlite store via the core native engine ( [workspace_index] ), holds Zustand analytical state, and exposes analysers and an analysis API. Headless CLI / MCP entry is `@reqlan/analytical/core` via `openAnalysisApi` ( native required; no Langium ). Consumers: [extension_package] ( thin editor adapter ), [mcp_package], [cli_package]. Depends on [language_package] for the editor LSP only. Published to npm alongside [cli_package]; version graph role: [package_versioning]. Rust engine port ( lexer / parser-for-index, indexer, search, export ): [rust_port.analytical_rust_port], shipped per [distribution.rust_binary_distribution].0.167
base_containersreqlan rq/core-architecture.rqIdeas are organised in [bases]; each base holds the [ideas_index] store under its `.reqlan` application memory. Discovery and nesting: ["./bases/base.rq".base], ["./bases/base.rq".base_nesting].0.040
cli_packagereqlan rq/core-architecture.rq`packages/cli` ( `@reqlan/cli` ) is a Clipanion CLI over the core analytical engine ( `@reqlan/analytical/core` ) for parse, analyse, search, and export. Entry: [cli_main]. Binary name `reqlan` ( alias `rq` ). Published to npm with language, analytical, and MCP per [package_versioning] and [distribution.version_management].0.094
extension_packagereqlan rq/core-architecture.rq`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: [lsp_rust.language_server_rust]. Node fallback: [language_server_main]. Depends on [language_package] and [analytical_package]. Follows [extension_architecture.event_driven] and [extension_architecture.state_machine_mindset] for JS state; webview UI standards in ["./codestyle/typescript.rq".ui_state_management]. This is the one Marketplace / Open VSX shippable; see [package_versioning].0.128
extension_surfacesreqlan rq/core-architecture.rqProduct surfaces on [extension_package] nest under [extension_hub.extension_domains]: - Host lifecycle: [extension_hub.host_lifecycle] - Language surface: [extension_hub.language_surface] - Index host: [extension_hub.index_host] ( [graph_analysers], editor adapter ) - Local context ( activity bar + context model ): [extension_hub.local_context] ( [activitybar.activity_bar], [context_scope_doc.context_scope] ) - Workspace summary ( Ideas Summary ): [extension_hub.workspace_summary] ( [ideas_summary_doc.ideas_summary] ) - Presentation ( shared webview + graph lib ): [extension_hub.presentation] ( [webview_doc.webview] ) - Agent surface: [extension_hub.agent_surface] ( [chat_participant_doc.chat_participant], [skills_and_mcp] ) - Graph mutation: [extension_hub.graph_mutation] ( [mutation_hooks] ) - Export surface: [extension_hub.export_surface] ( [export_doc.export_webview] )0.047
grammar_and_parserreqlan rq/core-architecture.rqThe language server parses with `reqlan-parse` ( [lsp_rust.language_server_rust] ). Do not switch the language to tree-sitter. Main `.rq` grammar file: [reqlan_grammar]. Comment-token grammar for `rq:[…]` in non- `.rq` sources: [comment_grammar]. `langium generate` still builds host AST modules and TextMate JSON per [development_build.build_prepare]. The checked-in TextMate grammar paints the editor before semantic tokens. Syntax requirements that the grammar must satisfy live in [syntax]; conceptual units in [ontology.idea], [ontology.ideaset], [ontology.reference], [ontology.import_statement]. Host services stay in [language_module]. The language server does not load them.0.172
hierarchy_of_truthreqlan rq/core-architecture.rqAlign with [development_core.hierarchy_of_requirements]: - User request trumps these requirements; these requirements trump current implementation. - Language concepts: [ontology]; syntax rules: [syntax]. - Package seams and process topology: this file ( [workspace_packages], [language_runtime] ). - Editor UI and host contracts: [extension_hub.extension_domains] ( [product_map] ). - Distribution and publishables: [distribution]; internal vs shippable versioning: [package_versioning].0.040
ideas_indexreqlan rq/core-architecture.rqThe ideas index is built and maintained by the [indexer] in [analytical_package]. Path: Rust parse / extract → SQLite via [workspace_index] ( [rust_port.analytical_rust_port] ). Application memory: each [bases.base] holds SQLite under `<base>/.reqlan/` ( shared by extension, [cli_package], and [mcp_package] ) — see ["./extension/index-host/index.rq".application_memory]. Multi-base: a BaseRegistry owns one [workspace_index] per discovered base; the extension adapter routes file events to the owning base. In the editor, [editor_index_adapter] watches `**\*.rq` and forwards changes to the owning base's [workspace_index]; it serves UIs, commands, chat, and analysers. The Rust language server reads the same store for catalogs, rename, and find-references ( [lsp_rust.language_server_rust] ). Headless ( MCP / CLI ) uses [analysis_runtime] ( nearest base containing cwd when several exist ). Capability requirements: [indexer.index_ideas], [indexer.index_technology], and sibling analysers in that file. Triggers: [indexer.triggers] and ["./extension/index-host/index.rq".idea_index_triggers].0.100
language_packagereqlan rq/core-architecture.rq`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] ( native index / analysis via napi ), [extension_package] ( LSP ). Published to npm as a library dependency of [analytical_package]; not Marketplace-published. See [distribution.version_management] and [package_versioning].0.105
language_runtimereqlan rq/core-architecture.rqIdeaset (language_runtime)0.050
language_serverreqlan rq/core-architecture.rqThe language server is the `reqlan-lsp` binary ( [lsp_rust.language_server_rust] ). The extension launches it over stdio ( [extension_main] ). It parses open `.rq` buffers for definition, completion, semantic tokens, inlays, document links, and validation. It reads the ideas index for workspace names. It does not keep a syntax tree for every file. A Node Langium process remains only when `reqlan.languageServer.engine` is `node`, or when the binary is missing ( [language_server_main] ). Product expectation for LSP navigation and validation: [extension_scope.lsp_support].0.167
mcp_packagereqlan rq/core-architecture.rq`packages/mcp` ( `@reqlan/mcp` ) is a stdio MCP server over the analytical analysis API — no VS Code host required. Entry: [mcp_main] via ["../packages/mcp/bin/mcp.js"]. Binary name `reqlan-mcp`. Used by Cursor and other MCP clients per [chat_participant_doc.mcp] and [skills_and_mcp.mcp_tools]. Search and retrieval use ["./extension/agent/skills-and-mcp.rq".mcp_click_retrieval] ( `click` ) only. npm `mcpName` is `io.github.littletuna4/reqlan` for MCP Registry ownership checks ( ["../packages/mcp/package.json"] ). Published to npm with language, analytical, and CLI per [package_versioning] and [distribution.version_management] ( `mcp/v*` ). Windows ESM entry uses `pathToFileURL` like ["./cli/cli_package.rq".windows_esm_entry].0.109
monoreporeqlan rq/core-architecture.rqThe workspace is a pnpm monorepo ( `packages\*`, extension webviews, and `site` ) per ["../pnpm-workspace.yaml"] and [development_core.pnpm]. TypeScript project references build in order language → analytical → mcp → cli → extension per ["../tsconfig.build.json"]. Living requirements for the product live in this `reqlan rq` folder. Root orchestration ( Langium generate, package builds, Cursor skill sync ) lives in ["../package.json"]. Why libraries are separate packages ( and how Changesets sees them ): [package_versioning].0.040
package_versioningreqlan rq/core-architecture.rqSeparate 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], [cli_package], and [mcp_package] ( `language/v*`, `analytical/v*`, `cli/v*`, `mcp/v*` ) via Changesets `changeset publish` Changesets config is [changeset_config]. [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, CLI, and MCP ). 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].0.139
product_mapreqlan rq/core-architecture.rqIdeaset (product_map)0.050
runtime_topologyreqlan rq/core-architecture.rqThe editor and the index do not share one process. - LSP process: `reqlan-lsp` for live `.rq` editing ( [lsp_rust.language_server_rust] ). - Analytical [workspace_index] ( extension host via [editor_index_adapter], MCP / CLI via [analysis_runtime] ): full-workspace graph for tables, local graph, chat, MCP. Editor ↔ extension host: VS Code APIs and webview postMessage. Editor ↔ LSP: vscode-languageclient over stdio. The language server reads the ideas index directly. Host catalog notifications are optional. Stack sketch: [development_core.stack].0.040
scopereqlan rq/core-architecture.rqThese requirements describe the cross-package system architecture of the reqlan monorepo: language definition, language server, ideas index, editor product, and companion tools. They are distinct from [extension_scope.scope], which bounds only the VS Code extension and LSP product surface. Language concepts live in [ontology]; syntax truth lives in [syntax]; editor module contracts live under extension / module. Grouped as [workspace_packages], [language_runtime], and [product_map].0.040
site_packagereqlan rq/core-architecture.rq`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].0.058
workspace_packagesreqlan rq/core-architecture.rqIdeaset (workspace_packages)0.050
atlasreqlan rq/ontology.rqdraftA challenge with navigating complex graphs is that they can be overwhelming. One extension to the product is to have atlases — named, reusable cartographic cuts beyond the live [cartographic_map].0.046
attributereqlan rq/ontology.rqdoneAttributes are classification, functional, or nonfunctional metadata. Syntax: ["./language/syntax.rq".attribute_marker], ["./language/syntax.rq".attribute_forms], ["./language/syntax.rq".attribute_values], ["./language/syntax.rq".attribute_location]. Policy: ["./language/attributes.rq".attribute_configuration]. Indexed on [analytical_types] `IdeaAttributeMap`; extract: [idea_extractor], [rust_extract]. Product surface: [ideas_summary_tabs] Attributes tab.0.070
attribute_bodyreqlan rq/ontology.rqdoneThe first attribute in an idea, if not marked otherwise, is the main body attribute. It is unstructured text. Syntax: ["./language/syntax.rq".block_idea]; extract summary from that body: [idea_extractor], [rust_extract].0.054
basereqlan rq/ontology.rqdoneA base is a container for ideas, ideasets, and files — the boundary of one ideas graph. Discovery: a directory is a base only when it owns a `.reqlan` application-memory folder. There is no implicit base from a bare workspace folder; the product prompts the user to create `.reqlan` at the workspace-folder root when none exist. Bases may be nested: a child directory with its own `.reqlan` is a separate base; the parent base's index stops at that child boundary. Each base holds its own ideas index under its `.reqlan`. Details: ["./bases/base.rq".base].0.251
cartographic_mapreqlan rq/ontology.rqdoneA cartographic map is a visual representation of a graph, optimised / curated by the user for context. Product: ["./extension/workspace-summary/ideas_summary/graphical_graph.rq".graphical_graph] ( [graph_view] ). Distinct from a full-graph dump; [atlas] is a further curated overlay, not yet implemented.0.046
clickreqlan rq/ontology.rqA CLI / MCP function that returns compact local context for a given idea, file, or path. No match uses search. More than one match is ranked by distance from the session. One match returns idea content plus outbound, backlink, and sibling counts ( no edges ). Indexed code files are click targets. Uses a SQLite ["./cli/click.rq".click_session]. Count caps and session cache size are configurable. see ["./cli/click.rq".click]0.066
configurationreqlan rq/ontology.rqdoneThere are multiple scopes for configuration: at the [base] level and at the [extension] level. Base config: ["./extension/host/configuration.rq".configuration_location] ( `<base>/.reqlan/config.json` ). Base vs extension split: ["./bases/base.rq".base_configuration].0.040
extensionreqlan rq/ontology.rqdoneThe extension contains the editor product features. Host: [extension_main]; scope: ["./extension/host/scope.rq".vscode_extension], ["./extension/host/scope.rq".lsp_support]. Architecture: ["./extension/host/architecture.rq".event_driven]; packages: ["./core-architecture.rq".extension_package]. Domain hierarchy: ["./extension/extension.rq".extension_product], ["./extension/extension.rq".extension_domains].0.102
filereqlan rq/ontology.rqdoneFiles store ideas and form ideasets. Documents use the `.rq` suffix ( ["./language/syntax.rq".file_suffix] ) and ["./language/syntax.rq".file_layout]. Indexed as ideaset kind `file` in [analytical_types].0.094
grammar_rulereqlan rq/ontology.rqdoneGrammar rules describe the syntax features. Requirements: ["./language/syntax.rq"]; lexer bridge: ["./language/parser_lexer.rq".lexer_bridge_to_syntax]. Langium: [reqlan_grammar]; comment grammar: [comment_grammar]; index-path AST: [rust_ast].0.040
ideareqlan rq/ontology.rqdoneA reqlan core unit is an idea. Syntax: ["./language/syntax.rq".simple_idea], ["./language/syntax.rq".block_idea]. Grammar: [reqlan_grammar] `Idea` / `OneLinerIdea`; index records: [analytical_types] `IdeaRecord`. Extract: [idea_extractor], [rust_extract]; AST: [rust_ast]. Product surface: [ideas_summary_tabs] Ideas tab per ["./extension/workspace-summary/ideas_summary/webview.rq".ontology_aligned_tabs].0.110
idea_namereqlan rq/ontology.rqdoneThe idea name is a string / handle / variable that uniquely identifies the idea ( within the ideaset / file ). It should not be a reserved [keyword]. Syntax: ["./language/syntax.rq".idea_name]; grammar: [reqlan_grammar] `IdeaName`.0.069
ideasetreqlan rq/ontology.rqdoneIdeasets are namespace containers for ideas. Syntax: ["./language/syntax.rq".ideaset]. Grammar: [reqlan_grammar] `IdeaSet`. Index kind `ideaset` plus `ideaset_member` edges: [analytical_types], [idea_extractor], [rust_index_types]. A [file] is an implicit ideaset ( ["./language/syntax.rq".file_layout] ). Product surface: [ideas_summary_tabs] Ideasets tab.0.134
import_statementreqlan rq/ontology.rqdoneImports describe references. Some [keyword] s are reserved for imports. Forms: ["./language/imports.rq".import_from], ["./language/imports.rq".import_namespace], ["./language/imports.rq".import_qualified]. Grammar: [reqlan_grammar] `Import`; resolve: [import_resolver].0.063
keywordreqlan rq/ontology.rqdoneAs a language, reqlan has keywords that are reserved in some contexts. Import statement keywords: ["./language/imports.rq".import_keywords] ( `import`, `from`, `as` ). Grammar: [reqlan_grammar] — those tokens are keywords only at statement start. Idea names should not use reserved keywords ( [idea_name] ).0.057
referencereqlan rq/ontology.rqdoneReferences link ideas to other ideas, files, and symbols. Syntax: ["./language/syntax.rq".reference_brackets], ["./language/syntax.rq".reference_wikilink], ["./language/syntax.rq".reference_qualified], ["./language/syntax.rq".reference_file], ["./language/syntax.rq".reference_url], ["./language/syntax.rq".reference_embedding]. Kinds: [reference_types]. Grammar: [reqlan_grammar] `ReferenceTarget`; index edges: [idea_extractor], [rust_extract].0.655
reference_typesreqlan rq/ontology.rq[reference] Kinds of [reference]. Details in ["./reference_types.rq"]. Index edge kinds live on [analytical_types] / [rust_index_types]. [idea_reference] [ideaset_reference] [comment_reference] [file_reference] [link_reference] [url_reference] [wildcard_reference]0.127
referenced_filesreqlan rq/ontology.rqdoneNon- `.rq` files that ideas reference, or that reference ideas. These may be shared. They should be captured in the ["./indexer/indexer.rq".index]. Outbound file refs: ["./language/syntax.rq".reference_file], [file_reference_resolve], edge kind `file_reference` in [analytical_types]. Inbound comment refs: ["./extension/language/comment-references/functional-code-comment-references.rq".references_in_functional_code_comments] via [comment_resolver] / [comment_grammar]. Full non- `.rq` file indexing of comment-bearing sources: ["./indexer/indexer.rq".index_code_files]. Click treats those files as centres: ["./cli/click.rq".click_code_file].0.169
activity_bar_site_linkreqlan rq/phonebook.rqThe activity bar Context webview header info control opens phonebook link id `site` per ["./extension/local-context/activitybar.rq".info_site_link].0.047
extension_readme_linksreqlan rq/phonebook.rqThe extension VSIX README uses phonebook link ids `site`, `github`, `vsc`, `openvsx`, `discord`, `github-sponsors`, and `email` for site, repository, marketplace, Open VSX, Discord, sponsorship, and contact URLs. Generation is defined in ["./distribution/distribution.rq".extension_readme].0.054
github_fundingreqlan rq/phonebook.rqdoneThe GitHub sponsor button is configured in ["../.github/FUNDING.yml"]. The GitHub Sponsors username is the account in phonebook link id `github-sponsors`. Discord is community, not a funding platform: do not list it in FUNDING. yml.0.046
npm_package_readme_linksreqlan rq/phonebook.rqPublishable npm package READMEs ( `@reqlan/language`, `@reqlan/analytical`, `@reqlan/cli`, `@reqlan/mcp` ) use the same phonebook link ids as [extension_readme_links]. Generation is defined in ["./distribution/distribution.rq".npm_package_readme].0.046
npm_packagesreqlan rq/phonebook.rqPublishable npm packages ( `@reqlan/language`, `@reqlan/analytical`, `@reqlan/cli`, `@reqlan/mcp` ) live under the `packages` key in ["./phonebook.json"]. Package ids are `language`, `analytical`, `cli`, and `mcp`. The site Links section renders them under Packages per ["./site/site.rq".links] / ["./site/site.rq".package_icons]. Typed helpers: `phonebookPackages`, `getPhonebookPackage` in ["../scripts/phonebook.ts"].0.095
phonebookreqlan rq/phonebook.rqCanonical project links and publishable npm package URLs live in ["./phonebook.json"]. Modules that need contact, repo, marketplace, Discord, sponsorship, or npm package URLs should read from there instead of hardcoding values. Typed access is shared via ["../scripts/phonebook.ts"] for the site and extension README generator.0.176
phonebook_iconsreqlan rq/phonebook.rqIcon sets and lookup URLs live under the `icons` key in ["./phonebook.json"]. A link or package can omit `icon`. If `icon` is present, it references a set id ( `simple-icons`, `mdi`, … ) and slug `name` from that set's catalog. Search a set at its `search` URL when renaming or replacing icons. Surfaces render icons with Iconify via the packages listed in each set's `package` field per ["./development/core.rq".iconify_stack]. Site registry: ["../site/src/lib/phonebook-icons.ts"] per ["./site/site.rq".icon_registry].0.057
root_readme_linksreqlan rq/phonebook.rqThe repository README uses phonebook link ids `site`, `github`, `vsc`, `openvsx`, `discord`, `github-sponsors`, and `email` for site, repository, marketplace, Open VSX, Discord, sponsorship, and contact URLs. Generation is defined in ["./distribution/distribution.rq".root_readme].0.046
show_in_footerreqlan rq/phonebook.rqdoneEach entry under `links` in ["./phonebook.json"] may set `show-in-footer`. The property is optional. Omitted means true. Set `show-in-footer` to false to keep a link out of the site footer and the landing contact list. Packages do not have this property. Schema: ["./phonebook.schema.json"]. Typed helpers: `isShownInFooter`, `phonebookFooterLinks` in ["../scripts/phonebook.ts"] and ["../site/src/lib/phonebook.ts"]. per ["./site/site.rq".footer] per ["./site/site.rq".links]0.072
comment_referencereqlan rq/reference_types.rqdoneInbound ["./ontology.rq".reference] from comments in non- `.rq` source: `rq:[idea]` / `rq:["path".idea]`. Qualified paths may use import-root aliases ( `rq:["@/path".idea]` ) per ["./language/imports.rq".configuration_import_root_alias] and ["./extension/language/comment-references/functional-code-comment-references.rq".comment_reference_import_root_alias]. Spec: ["./extension/language/comment-references/functional-code-comment-references.rq".references_in_functional_code_comments] Syntax note: ["./language/syntax.rq".comment_reference]. Resolve: [comment_resolver]. Unresolved: ["./language/syntax.rq".comment_reference_resolution_error]. Index edge kind `comment_link`. Related capture of those files: ["./ontology.rq".referenced_files]. Indexer: ["./indexer/indexer.rq".index_code_files].0.119
file_referencereqlan rq/reference_types.rqdoneOutbound ["./ontology.rq".reference] to a file, folder, or symbol — not only `.rq`. Syntax: ["./language/syntax.rq".reference_file] ( bracketed quoted path, optional `L#` / symbol path ). Index edge kind `file_reference`. Resolve: [file_reference_resolve]; extract: [idea_extractor]. Editor links: ["./extension/language/syntax/features-syntax.rq".file_references]. Inbound file-reference CodeLens at the top of the target file: ["./extension/language/syntax/features-syntax-highlighting.rq".file_inbound_code_lens]. Non- `.rq` targets and inbound comment traffic: ["./ontology.rq".referenced_files]. Markdown `[label](target)` also stores this edge kind — see [link_reference]. Quoted body text is not this kind: [reference_edgecase].0.211
idea_referencereqlan rq/reference_types.rqdoneIdea-to-idea ["./ontology.rq".reference]: bracket `[name]` / `[ideaset.name]` targets a local, imported, or same-file idea. Syntax: ["./language/syntax.rq".reference_brackets], ["./language/syntax.rq".same_file_reference], ["./language/syntax.rq".reference_qualified], ["./language/syntax.rq".reference_embedding], ["./language/syntax.rq".references_to_subidea]. Index edge kind `references` on [analytical_types] / [rust_index_types]. Extract: [idea_extractor], [rust_extract]. A `[ideaset.member]` form records the edge on the member leaf, not on the ideaset container. An attribute uses the same brackets. See ["./language/syntax.rq".attribute_namespacing]. Wikilink surface for the same edge kind: [link_reference]. Fan-out across files: [wildcard_reference].0.125
ideaset_referencereqlan rq/reference_types.rqdoneReferences to an ["./ontology.rq".ideaset] or a namespace that behaves as one. Syntax: ["./language/syntax.rq".ideaset]; namespace import alias: ["./language/imports.rq".import_namespace] ( `[alias]` opens the imported file and links only the alias name ). Membership edges are `ideaset_member`; a bare namespace-alias bracket is stored as `file_reference` ( [idea_extractor] ), not `references`.0.057
link_referencereqlan rq/reference_types.rqdoneLink-shaped ["./ontology.rq".reference] surfaces that are not a bare `[idea]` bracket. Wikilink `[[target]]` ( optional alias pipe ): ["./language/syntax.rq".reference_wikilink] — indexes as idea-to-idea `references`, same as [idea_reference]. Markdown `[label](target)`: ["./language/syntax.rq".markdown_links] — label is not an idea ref; the target indexes as `file_reference` ( [file_reference] ).0.112
reference_edgecasereqlan rq/reference_types.rqdoneA quoted string is a [file_reference] only when it is inside brackets. Example of a file reference: ["./reference_types.rq"] Example of body text: " this is not a reference. rq " The file suffix does not change this rule. The parser must not make a file reference from quoted body text. The language server must not make a document link or a missing-file error from quoted body text. Related: [file_reference], ["./language/syntax.rq".naked_strings_in_body], ["./language/syntax.rq".reference_file].0.112
url_referencereqlan rq/reference_types.rqdoneA bracket reference whose target is an absolute URL with a scheme and `://`. Example: [https://reqlan.com/]. Syntax: ["./language/syntax.rq".reference_url]. Index edge kind `url_reference` on [analytical_types] / [rust_index_types]. Extract: [idea_extractor], [rust_extract]. [check] does not treat a URL reference as a missing idea or a missing file. Unbracketed URLs in body prose stay text, not this kind. Related: [file_reference], [link_reference].0.075
wildcard_referencereqlan rq/reference_types.rqdoneOne ["./ontology.rq".reference] that matches many ideas: quoted path glob + idea pattern ( `*` / `?` ). Syntax and navigation: ["./language/imports.rq".wildcard_references], ["./language/imports.rq".wildcard_references_webview]. Index: one `wildcard_reference` edge per catalog match ( ["./indexer/indexer.rq".wildcard_reference_edges] ); never stored as plain `references`. Native extract: ["../crates/reqlan-index/src/extract.rs"]. Sparse match handling: ["./core_analysis/check.rq".check_wildcard_sparse] ( ["./core_analysis/check.rq".check_wildcard_zero], ["./core_analysis/check.rq".check_wildcard_one] ).0.279
show_dont_tellreqlan rq/ui.rqcopy should be minimal and user facing. no long lists, no avoidable labels.0.052