Referenced by12
Labels26

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_nestingBases may nest: any subdirectory that owns its own `.reqlan` is a child base. Parent-base indexing includes only `.rq` files under the parent root that are **not** under any child base root ( [base_discovery] ownership exclusion ). Nested bases appear as siblings in the multi-base registry; the longest-matching base root wins for a given file path ( [implied_context] ).0.060
implied_contextThe **active base** for editor-adjacent surfaces is the longest-matching base root that contains the focused file path. When no file is focused, the last selected base ( Ideas Summary switcher / activity bar ) or the first discovered base is used. Context, local graph, and analysers bind to the active base's index — not a merged global graph. User / explicit pin is a pointer swap only — [active_base_switch]. Core selection: [base_discovery] ( `baseForPath` / `selectDefaultBase` ); editor pin / switch: [editor_index_adapter].0.075
multi_base_environmentAnalytical features are multibase aware via [base_registry]: one [ideas_index] / `WorkspaceIndex` per base, isolated catalogs ( no cross-base idea-id collision ). Surfaces list all discovered bases; Ideas Summary and context panes scope to the active / selected base ( [active_base_switch] ). Cross-base reference resolution and merged graphs are out of scope for the first multi-base pass. Headless ( CLI / MCP ) selects one base via [analysis_runtime]; the editor hosts [editor_index_adapter].0.134
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_rqignoredoneEach base may define path ignore rules in `.reqlan/.rqignore` using **gitignore syntax**. Patterns are relative to the base root ( parent of `.reqlan` ), not the `.reqlan` directory. Owned by `@reqlan/analytical` so the CLI, MCP, and extension share one filter for discovery and indexing walks. Built-in defaults always apply ( dependencies, venvs, build output, VCS / editor stores, `*.db3` / sqlite DBs and SQLite sidecars, binary globs per ["../index-host/index.rq".binary_ignore], files that have no comments per ["../index-host/index.rq".commentless_file_ignore], `*.secret.rq`, hidden entries, and `.reqlan/` itself ); the on-disk file adds or overrides via the same syntax, including `!` negation. New bases seed `.reqlan/.rqignore` with those defaults ( ["../index-host/index.rq".rqignore] ). Missing or unreadable `.rqignore` still uses built-in defaults. Location convention: [configuration_location]. Application memory: ["../index-host/index.rq".application_memory].0.223
lean_resolved_opendoneWhen a link already carries a resolved `fileUri` / `targetPath`, open that URI at the given line — do not re-classify resolution or walk base discovery on the click path. Pass the active base root into ["../../../packages/extension/src/analytical_submodule/index-store/open-index-file.ts"] so ["../../../packages/extension/src/analytical_submodule/index-store/resolve-index-file-uri.ts"] skips tree discovery. `toIndexFileUri` fallbacks ( editor selection, git chrome, open-tab scan ) must use ["../../../packages/analytical/src/core/base-discovery.ts".nearestBaseRoot] ( ancestor `.reqlan` walk ), never `discoverBases` ( full workspace scan ). Clicking a search hit that already has `fileUri` + line must not wait on catalog scoring or base rediscovery.0.045
local_graph_viewThe activity bar provides a local graph view scoped to the current file or selected idea. The local graph should show direct and optionally indirect references with a configurable depth.0.055
index_sequencingdoneDescribe when the ideas index starts, updates, and idles, and which trigger owns each pass. Capability aliases live in [triggers] and [idea_index_triggers]. Detail ideas below; keep [nonblocking_index] and [indexing_incrementality] as the UX rules. Related: [consumers.index_consumers], [cache_reuse.index_cache_reuse], [ideas_schema.documents_table], [diagnostics_schema.sync_runs_table].0.179
scan_limitsdoneThe workspace scan has two caps. There is no unlimited setting. Defaults and clamp bounds are the `scan` object in ["../../packages/analytical/src/core/defaults.json"]. `reqlan.scan.maxDepth` uses `defaultMaxDepth`, `minDepth`, and `maxDepthLimit` from that file. The workspace folder is depth 0. A directory deeper than the cap is not entered. `reqlan.scan.maxEntries` uses `defaultMaxEntries`, `minEntries`, and `maxEntriesLimit` from that file. The count is directories plus files visited. When a cap hits, the walk stops, keeps the partial result, and the editor shows a warning. It does not start another scan to finish. Refresh uses the same caps. CLI and MCP use the same defaults. Built-in ignore also skips `target/` so a Cargo tree does not consume the entry budget. [extension_startup_sequence] [cache_reuse.single_sync_walk]0.064
basedoneA 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
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

Reference labels

"../../../packages/analytical/test/base-discovery.test.ts", "../../../packages/analytical/test/base-discovery.test.ts:nearestBaseRoot walks ancestors instead of scanning sibling trees", "../../../packages/analytical/test/base-discovery.test.ts:skips node_modules and does not treat .reqlan as a walkable base root", "../../packages/analytical/test/base-discovery.test.ts:baseForPath picks longest matching root", "../../packages/analytical/test/base-discovery.test.ts:discovers base at workspace root", "../../packages/analytical/test/base-discovery.test.ts:discovers nested bases and excludes child files from parent ownership", "../../packages/analytical/test/base-discovery.test.ts:isPathInsideOrEqual treats Windows drive paths as case-insensitive", "../../packages/analytical/test/base-discovery.test.ts:returns empty when no .reqlan exists", "../../packages/analytical/test/base-discovery.test.ts:selectDefaultBase prefers cwd containment", "../../packages/analytical/test/base-discovery.test.ts:skips node_modules and does not treat .reqlan as a walkable base root", "../../packages/analytical/test/base-discovery.test.ts:skips target build trees", "../packages/analytical/test/base-discovery.test.ts:discovers base at workspace root", "../packages/analytical/test/base-discovery.test.ts:returns empty when no .reqlan exists", ../../../packages/analytical/test/base-discovery.test.ts, ../../../packages/analytical/test/base-discovery.test.ts:nearestBaseRoot walks ancestors instead of scanning sibling trees, ../../../packages/analytical/test/base-discovery.test.ts:skips node_modules and does not treat .reqlan as a walkable base root, ../../packages/analytical/test/base-discovery.test.ts:baseForPath picks longest matching root, ../../packages/analytical/test/base-discovery.test.ts:discovers base at workspace root, ../../packages/analytical/test/base-discovery.test.ts:discovers nested bases and excludes child files from parent ownership, ../../packages/analytical/test/base-discovery.test.ts:isPathInsideOrEqual treats Windows drive paths as case-insensitive, ../../packages/analytical/test/base-discovery.test.ts:returns empty when no .reqlan exists, ../../packages/analytical/test/base-discovery.test.ts:selectDefaultBase prefers cwd containment, ../../packages/analytical/test/base-discovery.test.ts:skips node_modules and does not treat .reqlan as a walkable base root, ../../packages/analytical/test/base-discovery.test.ts:skips target build trees, ../packages/analytical/test/base-discovery.test.ts:discovers base at workspace root, ../packages/analytical/test/base-discovery.test.ts:returns empty when no .reqlan exists