Ideas38
Values21

Value distribution

ValueDistributionIdeasShare
true1847.4%
A change to a .rq file still republishes every comment buffer in the background pass, and unqualified lookup can call list_all_ideas.12.6%
CodeLens button to open idea git history12.6%
Move/delete and barrel-page host planners still call Langium DI. Finish those off napi/index/LSP.12.6%
The qualified file link before idea confirmation is still open on ["../support/open-file-sequencing.rq".missing_reference_colour_sequence].12.6%
Trusted Publisher registration for platform packages on npmjs.com12.6%
Unqualified comment lookup can still fall back to the name catalog when no open buffer matches.12.6%
deep links into HTML export pages when an export exists12.6%
first `@reqlan/analytical-<platform>-<arch>` publish (Trusted Publisher on npmjs.com + analytical/v* tag)12.6%
first `@reqlan/analytical-<platform>-<arch>` release not yet published12.6%
first ext/v* release with six target VSIXes not yet shipped12.6%
first multi-target Marketplace publish not yet run12.6%
first multi-target Open VSX publish not yet run12.6%
first multi-target VSIX and platform packages not yet published12.6%
fix this - it's currently not working as expected. in the12.6%
flesh out shared search UX / ranking contract across surfaces12.6%
postinstall warning is not covered by automated tests; package-manager optional install is not a reliable unit-test guarantee12.6%
publish first `@reqlan/analytical-<platform>-<arch>` release (Trusted Publisher on npmjs.com + analytical/v* tag)12.6%
refresh items when product priorities shift12.6%
specify atlas persistence and UI relative to ["./extension/workspace-summary/ideas_summary/graphical_graph.rq".graphical_graph]12.6%
surface per-file timing diagnostics from Rust sync into IndexDiagnosticsStore12.6%

Ideas with this attribute

IdeaValueStatusTagsSummaryKatz
base_linkingtrueA base may have one-directional relationships with other bases. This follows a subscription model. Bases may be cross subscribed. Unless linked, than bases remain isolated. Base linking is configured in the config file in the base. reqlan directory. - an unlinked child base should sever the contained ideas from the parent base ( i. e. the parent should just see the child as a separate base and child ideas shouldn't be visible, the indexer shouldn't crawl it. ) they should be functionally distinct - bases, distinct from eachother in the system file tree, should be linkeable ( either one way or both ways ) - A linked child base should allow the parent base to see the child's ideas. The indexs should be linked, and the child counts etc should be included in the parents. - A child base should always be able to link to parent base ideas.0.040
base_modestrueA base may be linked to0.040
watchtrueThe cli should be able to watch a base and maintain the index as files change.0.040
analytical_rust_portfirst `@reqlan/analytical-<platform>-<arch>` publish (Trusted Publisher on npmjs.com + analytical/v* tag)in-progressPort ["../core-architecture.rq".analytical_package] to Rust: lexer, parser ( index path ), extractor, SQLite index, search, and export. `@reqlan/analytical` remains the published JS facade ( `createAnalysisRuntime` / `AnalysisApi` / Zustand host state ). Native work lives in a `crates/` Cargo workspace and ships as per-architecture binaries per [distribution.rust_binary_distribution]. The editor language server is [lsp_rust.language_server_rust]. This analytical port does not replace that process. Component plans: [rust_crate_layout], [lexer_rust], [parser_rust], [parser_align], [indexer.indexer_rust], [search_rust], [export_rust], [native_bridge], [cutover].0.243
native_bridgepublish first `@reqlan/analytical-<platform>-<arch>` release (Trusted Publisher on npmjs.com + analytical/v* tag)in-progressThe Rust engine is the analytical core ( parse, index, search, export, typed queries, git-dates, overview coverage, barrel plan ) — not an optional addon. `@reqlan/analytical` is a typed napi facade ( specta `generated.ts` ) plus thin Node helpers ( `createBase`, path utils, `SqliteIndexStore` wrappers over typed napi ). It does not depend on Langium, `@reqlan/language`, or Zustand. Webview-only helpers ( search highlight, filter labels, file-treatment, context signals / model, graph physics ) live in the extension package. Interactive HTML JS stays in `crates/reqlan-export/assets`. Native owns: parse-for-index, persist, query, search, export execution, IndexService / WorkspaceIndex sync, and the index lifecycle FSM + status snapshot via `NativeWorkspaceIndex` + `NativeSqlDb`. The FSM ( `opening` / `syncing` / `ready` / `error` ), counts, in-memory sync progress / cancel, last error, file-index issues ( cap 500 ), and the document-update / workspace-change rings ( cap 50 ) live in `WorkspaceIndexRuntime`; TS reads them through `statusSnapshot()`. Durable diagnostics persist in `index-diagnostics.sqlite`. Consumers: [cli.cli_package] and MCP import `@reqlan/analytical/core` so they never load Langium; the extension host uses the per-target VSIX ( [distribution.vsix_export], [distribution.extension_host_target] ). The host-matching `.node` is required at runtime; there is no sql. js fallback.0.290
searchflesh out shared search UX / ranking contract across surfacesSearch over the requirement graph — find ideas by name, body, tags, and related signals. Surfaces: [fuzzy_search], [file_search], [contextual_search], [semantic_search], [katz_search]. Consumed by CLI `reqlan search`, MCP / chat tools, Ideas Summary, and the activity-bar search pane. Rust ranking engine: ["./rust_port.rq".search_rust].0.046
semantic_searchtrueBroader token / edge-label search over candidates through [native_analysis_api]. Prefer [fuzzy_search] for fast name-oriented lookup with separator-insensitive matching.0.092
extension_distributionfirst multi-target Marketplace publish not yet runin-progressAzure DevOps builds, tests, packages, and publishes the VS Code extension only for tags matching `ext/v*`. Tags are created by ["./distribution.rq".deployment_flow]. The extension version comes from packages / extension / package. json at the tag; the pipeline must not overwrite it from the tag suffix. The implementation lives in ["../../azure-pipelines.yml"]. The pipeline builds language, packages, and the extension only; it does not run the site static build or install Playwright ( [site_distribution] owns site CI ). Native core-engine binaries for VSIX come from the Azure `build_native` matrix on this git tag ( [vsix_native_not_from_npm], [rust_binary_distribution], [vsix_export] ). GitHub Actions still builds and publishes platform packages on `analytical/v*` for CLI / MCP ( [npm_distribution] ). Before tests Azure stages matrix artifacts into workspace packages ( `prepare-native-packages.mjs --binary-dir` ) and checks the host optionalDependency ( `scripts/ensure-host-native.mjs --no-build` ). VSIX packaging follows ["./distribution.rq".vsix_export]: one VSIX per [native_targets] tuple; Marketplace selects the VSIX matching the extension-host target ( [extension_host_target] ). Marketplace publish is complemented by Open VSX per ["./distribution.rq".openvsx_registry]. Pipeline cache and publish parallelism: [extension_pipeline_cache], [extension_pipeline_publish].0.243
extension_host_targetfirst `@reqlan/analytical-<platform>-<arch>` release not yet publishedin-progressThe extension host must load the native core engine for its machine. The selection strategy is ["./native_host_binary.rq".native_host_binary]. IndexService and WorkspaceIndex use `NativeWorkspaceIndex` ( ["../core_analysis/rust_port.rq".native_bridge] ). If the engine is missing, activation fails. Loader: ["../../packages/analytical/src/native/load-native.ts"]. The extension registers search folders from ["../../packages/extension/src/analytical_submodule/index.ts"].0.268
openvsx_registryfirst multi-target Open VSX publish not yet runin-progressThe extension should be published to the Open VSX registry at https://open-vsx.org so it is installable in editors that use Open VSX instead of the Visual Studio Marketplace. Publishing should use the same tag-driven `ext/v*` releases as ["./distribution.rq".extension_distribution]. Each per-target VSIX from ["./distribution.rq".vsix_export] is published to Open VSX ( Marketplace and Open VSX both select by extension-host `targetPlatform` ). Azure DevOps is the authoritative publish workflow; Open VSX publish belongs in ["../../azure-pipelines.yml"] alongside marketplace deploy. Publish path follows [extension_pipeline_publish].0.166
rust_binary_distributionTrusted Publisher registration for platform packages on npmjs.comin-progressOne platform-specific npm package per [native_targets] tuple: `@reqlan/analytical-<platform>-<arch>` ( napi suffixes: `linux-x64-gnu`, `linux-arm64-gnu`, `darwin-x64`, `darwin-arm64`, `win32-x64-msvc`, `win32-arm64-msvc` ). Each package declares `os` and `cpu`, contains the matching core engine `.node`, and uses the `@reqlan/analytical` package. json version as the single source of truth. ["../../scripts/prepare-native-packages.mjs"] writes that version. Changesets ignores `@reqlan/analytical-*` in ["../../.changeset/config.json"]. Git `@reqlan/analytical` does not list platform packages as `optionalDependencies`; this workspace links them through `packageExtensions` in ["../../pnpm-workspace.yaml"]. The published tarball lists pinned optionalDependencies ( `--publish-versions` ) ( [version_management] ). CLI and MCP install the host-matching binary from those published optionalDependencies. The published tarball runs ["./native_host_binary.rq".published_host_native_install] so a host miss prints a warning. Published on the existing `analytical/v*` channel ( [npm_distribution] / [release_tagging] ); not a separate tag channel. The napi build runs when this channel moved: a direct `analytical/v*` tag, or `analytical_tag` from [deployment_flow]. The first npm tag ( `npm_ref` ) can be `language/v*` in the same release, so that ref is not the native-build gate. Website download listing and GitHub-release postinstall are later follow-ups ( out of scope here ). Engine port: ["../core_analysis/rust_port.rq".analytical_rust_port] / ["../core_analysis/rust_port.rq".native_bridge]. Per-target VSIX packaging uses the same package layout under ["../../packages/analytical-native/"], filled by Azure from this git commit ( [vsix_export], [vsix_native_not_from_npm] ). npm tarballs of those packages are for CLI / MCP only. `collect-napi-binary.mjs` copies `reqlan-lsp` only with `--with-lsp`. The npm workflow does not pass that flag. Azure does, because the VSIX ships `bin/reqlan-lsp` ( [vsix_export] ). Implementation: ["../../packages/analytical-native/"], ["../../scripts/prepare-native-packages.mjs"], ["../../scripts/require-natives-published.mjs"], ["../../packages/analytical/scripts/check-host-native.mjs"], ["../../.changeset/config.json"], ["../../.github/workflows/deploy-npm.yml"] build-native job, ["../../azure-pipelines.yml"] build_native job.0.380
vsix_exportfirst ext/v* release with six target VSIXes not yet shippedin-progressOne VSIX is built per [native_targets] tuple via `vsce package --target <tuple> --no-dependencies`. Each VSIX keeps today's esbuild-bundled JS ( TS dependency graph stays bundled ); only the matching platform native package is staged into the VSIX so other targets' binaries are excluded. The same VSIX packs `bin/reqlan-lsp` for that target ( ["../extension/language/support/language-server-rust.rq".language_server_rust] ). Azure `collect-napi-binary.mjs --with-lsp` copies that binary into the native artifact. The pack script checks that zip entry by `file_size`. It does not read the binary through a pipe. The napi addon stays for the index host. npm platform packages do not contain it ( [rust_binary_distribution] ). Stamp `targetPlatform` so Marketplace / Open VSX route by extension host ( [extension_host_target], ["./native_host_binary.rq".native_host_binary_distributed] ). Artifact name shape: `reqlan-extension-<version>-<target>.vsix`. The VSIX includes logo assets from the extension media build: PNG for marketplace icon, language file icon, activity bar, and README; WebP as a raster fallback. Implementation: ["../../scripts/package-extension-targets.mjs"], ["../../scripts/prepare-native-packages.mjs"], ["../../scripts/collect-napi-binary.mjs"], ["../../packages/extension/.vscodeignore"] ( `native/`, `bin/` ), ["../../azure-pipelines.yml"].0.446
native_host_binary_distributedfirst multi-target VSIX and platform packages not yet publishedin-progressUse this procedure for a published VSIX and for published npm packages. VS Code extension: The registry installs the VSIX that has `targetPlatform` equal to the extension host. Each VSIX contains one `.node` file for one ["./distribution.rq".native_targets] tuple. The file name is `native/reqlan_napi.node`. The VSIX also contains `native/target.json`. At run time, read `process.platform` and `process.arch` on the extension host. If `target.json` records a different tuple, do not load `native/reqlan_napi.node`. Do not put binaries for other platforms in that VSIX. The Azure pipeline compiles each platform binary from this git commit ( `build_native` + `collect-napi-binary.mjs` + `prepare-native-packages.mjs --binary-dir` ). Package versions in git are canonical. The pipeline does not wait for npm. Related: ["./distribution.rq".vsix_export], ["./distribution.rq".extension_distribution], ["./distribution.rq".vsix_native_not_from_npm]. CLI and MCP: npm installs the host package from `optionalDependencies` on the published `@reqlan/analytical` tarball. Git does not list those entries. ["../../scripts/prepare-native-packages.mjs"] `--publish-versions` writes them at npm publish. The loader resolves that package from `@reqlan/analytical/package.json` ( `createRequire` ), which is where the optional dependency is attached after `npm install`. Published installs also run [published_host_native_install]. Related: ["./distribution.rq".rust_binary_distribution], [rust_port.native_bridge]. Implementation: ["../../scripts/package-extension-targets.mjs"], ["../../scripts/prepare-native-packages.mjs"], ["../../packages/analytical/src/native/load-native.ts"], ["../../packages/analytical/scripts/check-host-native.mjs"], ["../../azure-pipelines.yml"].0.129
published_host_native_installpostinstall warning is not covered by automated tests; package-manager optional install is not a reliable unit-test guaranteedoneAfter a published install of `@reqlan/analytical`, the host platform package must resolve. The host is `process.platform` and `process.arch` of the install process ( [native_host_binary] ). Git `@reqlan/analytical` does not list `optionalDependencies`. The check exits 0 in this workspace. The published tarball lists pinned optionalDependencies ( ["./distribution.rq".rust_binary_distribution] ). That tarball runs ["../../packages/analytical/scripts/check-host-native.mjs"] as `postinstall`. If the host package name is missing from `optionalDependencies`, or `createRequire` from `@reqlan/analytical/package.json` cannot resolve that package to a file, the script prints a warning and exits 0. The warning text tells the user how to enable optional dependencies and how to limit pnpm to the host OS and CPU. Do not use `--force`. `--force` installs every optional platform package. Do not skip the script with `--ignore-scripts` on a published install. CLI install documentation: ["../../packages/cli/README.template.md"]. Implementation: ["../../packages/analytical/scripts/check-host-native.mjs"], ["../../packages/analytical/package.json"], ["../../packages/cli/README.template.md"], ["../../packages/analytical/README.template.md"].0.114
decomposetrueA command pallete action for decomposition. Should replace an idea with a reference to a new file that holds the old contents. Should accept multiple inputs and put them in a list.0.090
file_based_code_actionstrueCode actions should be available for the whole file. The should include: ( regardless of cursor positions ) - barrel page — done via [barrel_page] ( `source.barrelPage` / `reqlan.barrelPage` ) - barrel idea - decompose idea - search for references. - create idea [code_actions]0.064
format_pagetrue- set the whitespace etc appropriate for the page.0.040
open_a_random_requirementtrueas it sounds0.040
pallete_function_create_todotrueA function that opens up a modal webview form allowing the user to write a rq-idea, search for references etc, and writes it to a specified output file. default folder is next to current file, but should be selectable in form. This behaviour should be configurable via ["./configuration.rq"]0.060
git_based_historyCodeLens button to open idea git historythere should be a code lens button for viewing an idea history through git. Should accept close matches and likeley file moves should consume the same state as the [context_scope] Dates come from indexed [git_idea_timeline_analysis] state filled by [git_dates_background_indexing].0.045
git_date_inlayhintstrueShould show references and date created per [git_based_history]. Creation dates must come from already-indexed git dates via [git_dates_background_indexing], not a synchronous git walk on inlay render.0.040
language_server_rustMove/delete and barrel-page host planners still call Langium DI. Finish those off napi/index/LSP.in-progressA Rust binary replaces the Langium language-server process. The extension launches `reqlan-lsp` over stdio. Open `.rq` buffers parse with [parser_rust]. The open sequence is ["open-file-sequencing.rq".open_file_algorithm]. Workspace names and rename targets come from the ideas index under [application_memory]. Inbound hints wait for the host snapshot of that index. The inbound inlay hover is markdown. It lists each referencer as a file link. An idea hover shows styled idea content when ["../syntax/features-syntax.rq".idea_content_tooltip] is on. A closed file has no retained syntax tree. Go-to-definition cost is ["../syntax/features-syntax-highlighting.rq".reference_goto_definition_speed]. When the engine is `rust`, the server also serves `rq:[…]` document links, go-to-definition, and missing-idea diagnostics in non- `.rq` comments. One resolution supplies the link, the definition target, and the underline. The host strips file document links; Ctrl + click uses definition ( ["../syntax/features-syntax-highlighting.rq".editor_reference_activation] ). The host serves those links when the engine is `node`. Host commands prefer LSP custom requests, napi extract, and the ideas index. Move / delete planners still use Langium until index-backed planners land. The setting `reqlan.languageServer.engine` selects the binary. The default is `rust`. `node` remains only when the setting says so, or when the binary is not on disk yet. A local extension build compiles this binary with the napi addon ( [extension_host_native_stage] ). The extension launches `bin/reqlan-lsp`, else that release build. It never launches a debug build, because a debug build is slow and the extension build does not refresh it. Code actions match ["../vsc-primitives.rq".code_actions]: ignore, create below, import fixes, search or wrap, idea move and delete, and barrel page. Attribute and name catalogs drive completion. Rename and find-references use open buffers plus the ideas index. Inlay hints honour `reqlan.referencesInlayHints.enabled` and the host inbound snapshot. An import link uses the parser token span ( [import_from] ). The path links to the file. An imported idea name and its alias each link to that declaration. A namespace reference links the alias and the idea as separate names. A missing leaf reports an unresolved idea on that name. Related: [language_server], [grammar_and_parser], [analytical_rust_port], [vsix_export].0.580
comment_backlink_sequenceA change to a .rq file still republishes every comment buffer in the background pass, and unqualified lookup can call list_all_ideas.in-progress`rq:[idea]` and `rq:["path".idea]` in code comments use one resolution for the link and the underline. A qualified path reads that `.rq` file, parses idea names, then links or errors. That read belongs to the comment file. Opening a different `.rq` buffer must not re-resolve every comment buffer. An unqualified name searches open `.rq` buffers first. The index snapshot may add a match later ( [lazy_features_after_outbound] ). Do not call `list_all_ideas` for that search. Do not create a document link when the idea is not confirmed. Related: [comment_reference_resolution_error_state].0.103
open_file_hot_pathUnqualified comment lookup can still fall back to the name catalog when no open buffer matches.in-progressOpen-file work stays on the one parse of this buffer plus one parse per imported file. Reuse that model for document links, go-to-definition, hover, and diagnostics until the text or the import-root mapping changes. Keep that model, and the import name lists, only for open editors ( [native_cache_retention] ). Look up an open import by URI. Do not match on file basename. Do not read SQLite. Do not call `list_all_ideas`. At parse time, publish lex and parse diagnostics with same-file and import errors. The editor must not wait for a workspace link phase to see a broken parse. Handlers on this path read the open model. They do not build a workspace link graph. Related: [open_file_algorithm], [outbound_one_hop], [ast_lifecycle], [comment_backlink_sequence].0.186
unresolved_reference_diagnosticsThe qualified file link before idea confirmation is still open on ["../support/open-file-sequencing.rq".missing_reference_colour_sequence].in-progressUnresolved idea references must report a linking error diagnostic. A same-file miss and an import-target miss have an error and no document link. A qualified reference may link to its file before the idea line is confirmed. After confirmation, a missing idea has an error and no document link ( ["../support/open-file-sequencing.rq".missing_reference_colour_sequence] ). A false idea link looked like a happy reference while Ctrl + click could not navigate. Missing file references stay on ["./features-syntax.rq".file_references] / ["../support/language-server-errors.rq".file_reference_errors] ( error, no document link ). Related: [reference_rendering], [non_web_reference_navigation].0.117
refernce_lists_pane_reference_tieringtrueInbound refernces may be direct, or via ideaset references. The [reference_lists_pane] should tier the references based on the reference type. Design must keep in mind that that the ideaset refernces are likely more numerous and lower signal.0.040
overview_pagedeep links into HTML export pages when an export existsFirst tab: a workspace overview for the active base — product-facing copy ( not index / debug jargon ). - At a glance: idea count, reference count, issues, bases, and a friendly readiness status. - Coverage: collapsible [overview_coverage_scores] ( lazy, non-blocking ). - Search: live cross-surface search over ideas, ideasets, attributes, and references for the active base; results group by surface with sample hits and actions to open the matching tab with the query applied ( [overview_search] ). - Export: buttons that open [features_export.export_webview] with HTML, Markdown, JSON, CSV, or PDF pre-selected ( or the form without a format override ). - Links: project site, support / email, GitHub. - Recent index / analyse activity preview ( idea names when available ) with a link to [timeline_page] for idea git history — this preview is not a git surface.0.057
indexer_rustsurface per-file timing diagnostics from Rust sync into IndexDiagnosticsStorein-progressThe [index] engine ( parse-for-index → extract → SQLite persist → incremental sync ) should be written in Rust. Crate: `reqlan-index` over `reqlan-parse` per ["../core_analysis/rust_port.rq".rust_crate_layout]. Extractor ports ["../../crates/reqlan-index/src/extract.rs"] including [wildcard_reference_edges]. Store ports schema v4 ( ["../../packages/analytical/src/index-store/schema.ts"] ) via rusqlite; diagnostics live in `index-diagnostics.sqlite` on the same engine. Sync keeps [nonblocking_index]: per-file upsert, mtime skip, hard rebuild, cancellable progress. Not the Langium LSP. Comment-file indexing: [index_code_files].0.172
attribute_namespaceingtruean idea's attributes should be referenceable in links. an idea should be able to access `[attribute_namespacing.example]` Links should link appropriately the parser, lexer,... extension, html...0.040
code-comment-syntax-errorstrueany time a comment line contains `rq:[*]`, or common patterns it should be parsed, and be considered in `reqlan check`...0.040
empty-attributestrueit should be perfectly acceptable to have empty attributes e. g.: This should not break the parsing of the file. ( Including in extension errors as well as parser / lexer / tokenizer errors )0.040
html-export-changestrueThe print page should be aware of the [idea-leading-whitespace]0.040
idea-leading-whitespacetrueBlock ideas often have leading whitespace The base level should be decided by the first line, subsequent lines should not be fully trimmed THis line has 4 spaces ( same as first line ). It should parse with no leading whitespace This line has 8 spaces ( 4 more than first line ) it should parse with 4 spaces as part of the content.0.045
reqlan-check-glob-patternstrueWhen running `reqlan check` it should be possible to specify - - glob patterns to check specific files. It should be possible to specify multiple glob patterns. If the targets are outside of the glob, they should be checked, but, not recursively.0.040
closing_nested_curly_bracesfix this - it's currently not working as expected. in theif, for some reason, there is a prose block containing only closing curly braces, they should be escaped and allowed \ } like this.0.040
pageranktrueSearch algorithm from google based on the graph structure?0.067
atlasspecify atlas persistence and UI relative to ["./extension/workspace-summary/ideas_summary/graphical_graph.rq".graphical_graph]draftA 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
roadmap_sectionrefresh items when product priorities shiftdoneLanding page section `#roadmap` after example and before links. Compact vertical scaled-center carousel ( snap + distance-based scale / opacity peeks ). Flat Now / Next / Later items — one focused at a time; neighbours peek smaller. Copy lives in ["../../site/src/content/roadmap.ts"] ( per [copy] ); nav and sticky page graph include the section. Keep the list honest and thin — no fake dates, no wall of tickets.0.091