Referenced by16
Labels86

Referencing ideas

IdeaStatusTagsSummaryKatz
baseA base is a container for ideas, ideasets, and files. It forms the boundary of one ideas graph and is consumed by the CLI and the extension. Marker: a directory is a base only when it owns a `.reqlan` folder ( [app_memory_doc.application_memory] ). No bare workspace folder is treated as a base until the user creates `.reqlan` there ( [create_base_onboarding] ). Aligns with [ontology_base]. Discovery and registry: [base_discovery], [base_registry]. Marker path helpers: [application_memory_impl].0.322
base_configurationBase configuration is distinct from, but related to, [extension_configuration]. Optional settings live at `<base>/.reqlan/config.json` ( one config per base ). For an `.rq` file, the applying base is the nearest ancestor that owns `.reqlan`; that base's config applies when present. See [extension_configuration.configuration_location]; resolved by [path_resolve].0.087
clickdoneThe [click_ontology] function returns compact local context for one target. Input: an idea name, a `path#idea` ref, a `.rq` file path, or an indexed code file ( [click_input], [click_code_file] ). Resolution uses [click_ambiguity]: no match uses search; more than one match is ranked; one match uses [click_output]. Optional [click_max_detail] flags cap how many names and bodies are listed. Optional `sessionKey` continues a [click_session]. A second click on a centre already clicked in that session returns the connected content ( [click_session] ). Surfaces: CLI `reqlan click` ( [click_cli] ), MCP `click` ( [mcp_server] ), and [native_analysis_api] `click`. MCP search and retrieval use this tool only ( ["../extension/agent/skills-and-mcp.rq".mcp_click_retrieval] ). Engine: [click_rust] on ["./cli_package.rq".architecture] / ["../core_analysis/rust_port.rq".analytical_rust_port]. Related: [function_parity], [commands], [agent_advisory], [click_session], [click_input], [click_max_detail], [click_output].0.200
click_max_detaildoneFlags that cap how many names and bodies click lists. Invalid or missing values use the default. Values less than 1 use 1. Defaults live in `.reqlan/config.json` under `click` ( [configuration_location], [configuration_schema_file] ). CLI and MCP flags override config. - `maxBacklinks` / `--max-backlinks` / `click.maxBacklinks` — first n backlink names in [click_output], then " + m more ". - `maxSiblings` / `--max-siblings` / `click.maxSiblings` — first n sibling names, then " + m more ". - `maxOutbound` / `--max-outbound` / `click.maxOutbound` — first n outbound names or paths, then " + m more ". - `maxCandidates` / `--max-candidates` / `click.maxCandidates` — search hits and ranked ambiguous matches. The default for each list is `click.listLimit` in ["../../packages/analytical/src/core/defaults.json"]. `maxDetail` / `--max-detail` is the old hop-depth for a neighbourhood dump. Unique [click_output] does not use hop depth. The flag is still accepted and ignored on the unique path.0.122
click_session_limitdoneMaximum stored click sessions per base is `click.maxSessions` in ["../../packages/analytical/src/core/defaults.json"]. Configure with `click.maxSessions` in `.reqlan/config.json` ( [configuration_location], [configuration_schema_file] ). Invalid or missing values use that default. Values below `click.minimum` use `click.minimum`. Eviction is by session count and last-touched time ( [click_session] ). Count caps for one click result are [click_max_detail], not this limit.0.070
configuration_import_roots`importRoots` is an optional array of alias-to-directory mappings in `.reqlan/config.json`. Each mapping has: - `alias` ( required non-empty string ): prefix before `/` in aliased import paths. - `root` ( optional non-empty string ): directory for that alias. A relative `root` resolves against the base root ( the parent of `.reqlan` ), not against the `.reqlan` directory. An absolute path or `file://` URI is used as that alias' import-root directory directly. When `root` is omitted for a mapping, that alias uses the workspace folder that contains the `.rq` file. When `importRoots` is omitted, empty, or has no valid entries, the default is one mapping with alias `importRootAlias` from ["../../../packages/analytical/src/core/defaults.json"] and no explicit root. When several aliases could match a path, the longest alias wins. Invalid or unreadable JSON, and a non-array `importRoots` value, fall back to defaults ( or no loaded config for discovery, then defaults at resolve time ). Language path forms and `@/` shorthand: ["../../language/imports.rq".import_paths] and ["../../language/imports.rq".configuration_import_root_alias]. Comment references in source files use the same mappings: ["../language/comment-references/functional-code-comment-references.rq".comment_reference_import_root_alias]. Schema: [configuration_schema_file]. Applying file discovery: [configuration_location]. Editor completion of aliased import paths: ["../language/syntax/features-syntax.rq".code_completion].0.167
configuration_locationAn optional `.reqlan/config.json` may appear under a base's `.reqlan` directory. For a given `.rq` file, the applying base is the nearest ancestor directory that owns a `.reqlan` folder. The applying config is that base's `.reqlan/config.json` when present. If the owning base has no `config.json`, or no owning base is found, defaults from [configuration_import_roots] apply. A child base does not inherit a parent base's config.0.190
configuration_schema_filedoneThe machine-readable JSON Schema for `.reqlan/config.json` is ["../../../packages/extension/schemas/config.schema.json"]. That file is the single authoring source. Its `$id` is the public URL `https://reqlan.com/schemas/v1/config.schema.json`. Path segment `v1` is schema compatibility version: additive keys stay on `v1`; breaking shape changes introduce `v2` and a new seed URL. The site hosts a synced copy under `/schemas/v1/` ( ["../../site/site.rq".sync_config_schema] ). The extension contributes the local schema for `**/.reqlan/config.json` via `jsonValidation` in ["../../../packages/extension/package.json"] ( offline editor path ). New bases seed `$schema` to the public `$id` ( ["./installation.rq".base_config_seed] ). `.reqlan/config.json` is a JSON object. Unknown properties are not part of the schema and are ignored when loading. `$schema` is an allowed property.0.105
base_config_seeddoneNew bases write `.reqlan/config.json` with `$schema` pointing at the public v1 schema URL via [create_base_impl]. Seed shape: `{"$schema":"https://reqlan.com/schemas/v1/config.schema.json"}`. Semantics and discovery of applying config: [configuration.configuration_location], [configuration.configuration_import_roots], [bases.base_configuration]. Schema / editor validation: [configuration.configuration_schema_file]. A child base does not inherit a parent base's config file. Existing bases are not rewritten ( idempotent create leaves them alone ).0.076
installationreqlan installation has **two sequenced layers** that must not be conflated: 1. [extension_installation] — host product ( VS Code / Cursor extension ) install and first activation. 2. [base_installation] — marking a filesystem directory as a reqlan [bases.base] and seeding its `.reqlan` application memory. Extension install alone does **not** create a base. Base install alone does **not** open the welcome webview or install host agent skills. CLI `init` shares the base path with the editor ( [cli.init] / [bases.create_base_onboarding] ).0.046
configuration_import_root_aliasAn import path may start with an alias string, then `/`, then a relative path under that alias's import-root directory. Default alias string: `@`, written as `@/` plus a path relative to the import root. Default import-root directory: the workspace folder that contains the `.rq` file ( not the document directory ). The path after `/` is joined to that alias's import-root directory; the alias itself must be followed by `/` ( e. g. `@reqs` is not aliased ). Alias strings and import-root directories are configured as [configuration.configuration_import_roots] in the applying `.reqlan/config.json` from [configuration.configuration_location]. A configured relative `root` resolves against the base root ( parent of `.reqlan` ); an omitted `root` keeps the workspace-folder default. When several configured aliases could match a path, the longest alias wins. Related path forms: [import_paths], ["../extension/language/comment-references/functional-code-comment-references.rq".comment_reference_import_root_alias]. Completion: ["../extension/language/syntax/features-syntax.rq".code_completion]. File references and the language server use the same locate rule as ["../core_analysis/check.rq".check]: load `importRoots` from the applying `.reqlan/config.json` for the source file ( [configuration.configuration_location] ), then `resolve_rq_path` and join the workspace when the result is relative — including paths with spaces such as `["@/my file.ts"]`.0.296
import_keywordsThe keywords import, from, and as are reserved for import statements. Import keywords may also appear as ordinary words in idea body text when not at statement start.0.047
configurationdoneThere 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
ideadoneA 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
sitethe / site folder contains a static Next. js App Router landing page for reqlan. should align with [brand] Copy modules: [copy] Document head: [meta_tags]0.040
sync_config_schemadone`scripts/sync-config-schema.mts` copies the canonical base config JSON Schema from ["../../packages/extension/schemas/config.schema.json"] into `public/schemas/v1/config.schema.json`. Public URL: `https://reqlan.com/schemas/v1/config.schema.json` ( path `v1` is schema compatibility; not site package semver ). Canonical authoring and `$id`: ["../extension/host/configuration.rq".configuration_schema_file]. Init seed `$schema`: ["../extension/host/installation.rq".base_config_seed]. Wired into site `predev` and `build-static` ( same pattern as [sync_presentations] ). Deployed with existing `site/v*` pipeline. Synced artifact is not a second authoring source; do not edit under `public/schemas/`.0.054

Reference labels

"../../../packages/language/test/config.test.ts:Windows drive-letter root is used as a file URI not scheme c:", "../../../packages/language/test/config.test.ts:absolute filesystem root is used directly", "../../../packages/language/test/config.test.ts:aliased path uses relative root from applying config", "../../../packages/language/test/config.test.ts:aliased path uses workspace folder when root is omitted", "../../../packages/language/test/config.test.ts:empty importRoots array uses default alias mapping", "../../../packages/language/test/config.test.ts:empty object uses default alias mapping", "../../../packages/language/test/config.test.ts:empty string alias entries are skipped", "../../../packages/language/test/config.test.ts:empty string root is ignored on a mapping", "../../../packages/language/test/config.test.ts:file URI root is used directly", "../../../packages/language/test/config.test.ts:importRoots alias only overrides the alias", "../../../packages/language/test/config.test.ts:invalid JSON falls back to undefined load", "../../../packages/language/test/config.test.ts:invalid importRoots entries are skipped", "../../../packages/language/test/config.test.ts:loads config from an ancestor base", "../../../packages/language/test/config.test.ts:loads config from the owning base .reqlan", "../../../packages/language/test/config.test.ts:longest alias wins when mappings overlap", "../../../packages/language/test/config.test.ts:multiple importRoots map aliases to different roots", "../../../packages/language/test/config.test.ts:nearest base config wins over farther ones", "../../../packages/language/test/config.test.ts:non-array importRoots falls back to undefined load", "../../../packages/language/test/config.test.ts:non-object JSON falls back to undefined load", "../../../packages/language/test/config.test.ts:owning base without config does not inherit parent", "../../../packages/language/test/config.test.ts:relative root resolves against the base root", "../../../packages/language/test/config.test.ts:resolveRqConfig falls back to defaults when applying JSON is invalid", "../../../packages/language/test/config.test.ts:resolveRqConfig uses defaults when no applying file exists", "../../../packages/language/test/config.test.ts:returns undefined when no config exists", "../../../packages/language/test/config.test.ts:schema $id matches public v1 host path", "../../../packages/language/test/config.test.ts:schema file documents importRoots mappings", "../../../packages/language/test/config.test.ts:unknown properties are ignored while known keys still apply", "../../packages/language/test/config.test.ts:aliased path uses relative root from applying config", "../../packages/language/test/config.test.ts:aliased path uses workspace folder when root is omitted", "../../packages/language/test/config.test.ts:loads click list caps from applying config", "../../packages/language/test/config.test.ts:loads click.maxSessions from applying config", "../../packages/language/test/config.test.ts:loads config from an ancestor base", "../../packages/language/test/config.test.ts:loads config from the owning base .reqlan", "../../packages/language/test/config.test.ts:longest alias wins when mappings overlap", "../../packages/language/test/config.test.ts:multiple importRoots map aliases to different roots", "../../packages/language/test/config.test.ts:nearest base config wins over farther ones", "../../packages/language/test/config.test.ts:owning base without config does not inherit parent", "../../packages/language/test/config.test.ts:returns undefined when no config exists", "../../packages/language/test/config.test.ts:schema $id matches public v1 host path", "../../packages/language/test/config.test.ts:schema file documents click maxSessions", "../../packages/language/test/config.test.ts:schema file documents importRoots mappings", "../packages/language/test/config.test.ts:loads config from the owning base .reqlan", "../packages/language/test/config.test.ts:returns undefined when no config exists", ../../../packages/language/test/config.test.ts:Windows drive-letter root is used as a file URI not scheme c:, ../../../packages/language/test/config.test.ts:absolute filesystem root is used directly, ../../../packages/language/test/config.test.ts:aliased path uses relative root from applying config, ../../../packages/language/test/config.test.ts:aliased path uses workspace folder when root is omitted, ../../../packages/language/test/config.test.ts:empty importRoots array uses default alias mapping, ../../../packages/language/test/config.test.ts:empty object uses default alias mapping, ../../../packages/language/test/config.test.ts:empty string alias entries are skipped, ../../../packages/language/test/config.test.ts:empty string root is ignored on a mapping, ../../../packages/language/test/config.test.ts:file URI root is used directly, ../../../packages/language/test/config.test.ts:importRoots alias only overrides the alias, ../../../packages/language/test/config.test.ts:invalid JSON falls back to undefined load, ../../../packages/language/test/config.test.ts:invalid importRoots entries are skipped, ../../../packages/language/test/config.test.ts:loads config from an ancestor base, ../../../packages/language/test/config.test.ts:loads config from the owning base .reqlan, ../../../packages/language/test/config.test.ts:longest alias wins when mappings overlap, ../../../packages/language/test/config.test.ts:multiple importRoots map aliases to different roots, ../../../packages/language/test/config.test.ts:nearest base config wins over farther ones, ../../../packages/language/test/config.test.ts:non-array importRoots falls back to undefined load, ../../../packages/language/test/config.test.ts:non-object JSON falls back to undefined load, ../../../packages/language/test/config.test.ts:owning base without config does not inherit parent, ../../../packages/language/test/config.test.ts:relative root resolves against the base root, ../../../packages/language/test/config.test.ts:resolveRqConfig falls back to defaults when applying JSON is invalid, ../../../packages/language/test/config.test.ts:resolveRqConfig uses defaults when no applying file exists, ../../../packages/language/test/config.test.ts:returns undefined when no config exists, ../../../packages/language/test/config.test.ts:schema $id matches public v1 host path, ../../../packages/language/test/config.test.ts:schema file documents importRoots mappings, ../../../packages/language/test/config.test.ts:unknown properties are ignored while known keys still apply, ../../packages/language/test/config.test.ts:aliased path uses relative root from applying config, ../../packages/language/test/config.test.ts:aliased path uses workspace folder when root is omitted, ../../packages/language/test/config.test.ts:loads click list caps from applying config, ../../packages/language/test/config.test.ts:loads click.maxSessions from applying config, ../../packages/language/test/config.test.ts:loads config from an ancestor base, ../../packages/language/test/config.test.ts:loads config from the owning base .reqlan, ../../packages/language/test/config.test.ts:longest alias wins when mappings overlap, ../../packages/language/test/config.test.ts:multiple importRoots map aliases to different roots, ../../packages/language/test/config.test.ts:nearest base config wins over farther ones, ../../packages/language/test/config.test.ts:owning base without config does not inherit parent, ../../packages/language/test/config.test.ts:returns undefined when no config exists, ../../packages/language/test/config.test.ts:schema $id matches public v1 host path, ../../packages/language/test/config.test.ts:schema file documents click maxSessions, ../../packages/language/test/config.test.ts:schema file documents importRoots mappings, ../packages/language/test/config.test.ts:loads config from the owning base .reqlan, ../packages/language/test/config.test.ts:returns undefined when no config exists