Ideas 12
Values 12

Value distribution

ValueDistributionIdeasShare
{ id title transition fade background brand-dark kicker Advanced · 01 heading Imports and ideasets body One file is a start. Real graphs span files — imports keep links honest. asset logo notes One file is a great start. Real projects become a web of files. }, { id split transition fade background brand-panel heading Split before sprawl body Auth ideas in auth.rq. Product ideas stay in product.rq. code_lang rq code login_api { Bound by [session_policy]. } notes Each file is its own ideaspace. Moving ideas changes where the handle lives. }, { id from-import transition none background brand-panel heading From-import one idea body Pull a single neighbour when that is all the call site needs. code_lang rq code from "./auth.rq" import login_api notes From-import pulls one idea into scope. }, { id namespace transition fade background brand-panel heading Namespace the file body Alias the whole module when several ideas travel together. code_lang rq code import "./auth.rq" as auth · [auth.session_policy] notes If you reference three ideas from auth, namespace usually reads cleaner. }, { id ideaset transition fade background brand-panel heading Ideasets as namespaces body Group related ideas without a heavier module system. code_lang rq code auth_core ( login_api, session_policy ) notes Ideasets document membership. Imports still control what this file can link to. }, { id judgement transition none background brand-contrast heading Import the smallest surface body Six from-imports vs one namespace — pick readability, not completeness. code_lang rq code from "./auth.rq" import a, b, c, d… vs import "./auth.rq" as auth notes Common mistake: import everything just in case. }, { id base-boundary transition fade background brand-panel heading Imports respect base boundaries body Cross-file links stay inside the active base graph. code_lang txt code demo/.reqlan/ · auth.rq + product.rq same base notes Imports do not cross nested base boundaries — same discipline as get-started. }, { id try-this transition fade background brand-dark heading Try this body Move password_rules into auth.rq. Fix product.rq with the smallest import that works. fragments Next — Attributes without bloat notes Pick the import shape that keeps call sites readable. } 1 8.3%
{ id title transition fade background brand-dark kicker Advanced · Overview heading Beyond one file body Same language. Better judgement about names, links, bases, and prompt size. asset logo notes You already know the loop. Advanced reqlan is judgement about how graphs scale without becoming noise. }, { id loop-recap transition fade background brand-panel heading Carry the loop forward body Name · link · base · neighbourhood · small AI slice · stitch to code. asset montage-ide notes Advanced is not a second install tour. It is craft on top of verbs you already felt. }, { id map transition slide background brand-panel heading Eight themes ahead body Imports · attributes · graph maps · context · comment links · HTML export · CLI/MCP · modelling patterns code_lang rq code from "./auth.rq" import login_api · @status in-progress · Ideas Summary graph · rq:[password_rules] notes Each theme has its own deck. Ontology, extension map, and CLI live in Concepts. }, { id bases-craft transition none background brand-contrast heading Bases as craft body One active base. Know the graph boundary. Nested bases stay separate. code_lang txt code demo/.reqlan/ · active base picker · CLI selects one base per run notes No create-base lesson here — boundary discipline for export, CLI, and context. }, { id discipline transition fade background brand-panel heading Carry the discipline forward body Small slices. Maps you choose. Attributes that drive a view — or delete them. code_lang rq code login_api { POST /login… @status in-progress @tags ( auth ) } notes Token discipline and cartographic focus carry forward from get-started. }, { id general-purpose transition fade background brand-panel heading General-purpose graphs body Software is the common case — not the only case. One non-software vignette in the series. code_lang rq code issue_brief { June theme… cite [interview_lee]. } notes Editorial briefs and ops checklists are still named ideas with neighbours. }, { id next transition fade background brand-dark heading Start with imports body Split ideas across files. Pick from-import or namespace alias — whatever stays readable. fragments Next — Imports and ideasets asset logo notes Pick your first deep dive. We recommend imports before the graph outgrows one document. } 1 8.3%
{ id title transition fade background brand-dark kicker Concepts · 01 heading The building blocks body Names for the things you already used — one per beat. asset logo notes Now let's name the things you used, so you and your teammates talk about them the same way. }, { id idea transition none background brand-panel heading Idea body Named handle plus prose. One-liner or block — both are ideas. code_lang rq code welcome_flow { New users land on a welcome screen… } notes The first free text is the body attribute. You do not type @body. }, { id ideaset transition fade background brand-panel heading Ideaset body Parentheses group names into a namespace container. code_lang rq code auth_core ( login_api, session_policy ) notes A lightweight module boundary — not a second syntax world. }, { id file transition fade background brand-panel heading File body A .rq file stores ideas and implicitly forms an ideaset. code_lang txt code reqs/auth.rq → login_api · session_policy · auth_core notes The file is part of the ontology, not merely a disk path. }, { id base transition none background brand-panel heading Base body Graph boundary. Owns .reqlan. Nested bases are separate graphs. code_lang txt code reqlan-tutorials-demo/.reqlan/ · packages/lib/.reqlan/ notes Day-to-day you live in one active base. Parent index stops at child boundary. }, { id reference transition fade background brand-panel heading Reference body Links ideas, files, folders, and symbols. Non-.rq files stay in the index. code_lang rq code Bound by [session_policy] · Implementation: ["./src/login.ts"] notes Square brackets are the habit you already felt in get-started. }, { id attribute transition fade background brand-panel heading Attribute body Optional @ metadata you opt into — not the main prose. code_lang rq code @status in-progress · @tags ( auth ) notes Base config and extension settings are different scopes — do not conflate them. }, { id map transition fade background brand-panel heading The map body A focused map view — filtered, centred, depth-limited. asset montage-ide notes A view you build around one question. Advanced goes deeper on map craft. }, { id try-this transition fade background brand-dark heading Try this body On scrap-ontology.rq, one sentence per name — in your own words. fragments Next — Extension tour notes If a sentence needs a second clause, the idea is still fuzzy. } 1 8.3%
{ id title transition fade background brand-dark kicker Concepts · 02 heading Extension tour body Five surfaces — one job each. Map, not a laundry list. asset logo notes You named the nouns. This episode maps where they live in the product. }, { id language transition fade background brand-panel heading Language support body Open when authoring or navigating .rq source. code_lang rq code welcome_flow { … Success continues into [onboarding_checklist]. } notes Ideas and references live in files — not in a sidebar form. }, { id activity-bar transition none background brand-panel heading Activity bar body Open when the question is "what sits near this idea?" asset activity-bar notes Neighbourhood inside the active base — sync, hop depth, copy slice. }, { id ideas-summary transition fade background brand-panel heading Ideas Summary body Open when you need a catalog, table, or cartographic map. asset montage-ide notes Author in the editor; browse in Summary when the question changed. }, { id agents-palette transition fade background brand-panel heading Chat, skills, MCP, palette body Open when running a focused graph operation. asset chat-search code_lang txt code @reqlan /rq-search · Reqlan: · rq-search skill notes Same token discipline as get-started. Palette when you forgot the slash command. }, { id export-cli transition fade background brand-panel heading Export and CLI body Open when the graph must leave the editor. code_lang bash code Reqlan: Export HTML · npx reqlan search "…" notes Shared analytical core. Next concepts pack walks the CLI; Advanced covers craft and CI. }, { id recovery transition none background brand-contrast heading Recovery body Mid-edit in Ideas Summary? Pay navigation tax. Return to source. notes If you live in Summary while typing prose, the question changed — switch surfaces. }, { id quiz transition fade background brand-dark heading Try this — surface quiz body Neighbourhood copy · draft filter · meaning search — name the surface aloud. fragments Answers: activity bar · Ideas Summary · chat/palette notes Hesitated on draft filter? That is Ideas Summary tables — not the activity bar. }, { id end transition fade background brand-dark heading Map first. Terminal next. body Name the CLI surface — then Advanced when you are ready to craft. asset logo fragments Next — CLI notes Concepts · 03 walks init, search, analyse, parse, and export on the same index. } 1 8.3%
{ id title transition fade background brand-dark kicker Concepts · 03 heading CLI body Same graph API — terminal, scripts, and CI. asset logo notes The extension tour named five surfaces. This pack is surface five up close. }, { id install transition fade background brand-panel heading Install the binary body npx for a one-shot. Global install when the terminal is daily. code_lang bash code npx @reqlan/cli --help notes Binary names: reqlan and rq. Marketplace install is a different layer. }, { id init transition none background brand-contrast heading init = Create Base body Seeds the same .reqlan marker the editor uses. code_lang bash code npx reqlan init notes Extension install ≠ base create. CLI init only owns the marker path. }, { id search-analyse transition fade background brand-panel heading Search and analyse body Concise hits. One idea expanded — not a whole-graph dump. code_lang bash code npx reqlan search "empty password" / analyse --idea login_api notes Same llm-first discipline as chat search. }, { id parse-export transition fade background brand-panel heading Parse and export body Parse gates CI. Export shares the HTML pipeline with the extension form. code_lang bash code npx reqlan parse reqs/ --fail-on-diagnostics / export --out ./docs-site notes Form for exploration. CLI for scripts and pipelines. }, { id cwd-json transition none background brand-contrast heading Pin the base body --cwd / REQLAN_WORKSPACE. --json for machines. One base per run. code_lang bash code npx reqlan --cwd reqlan-tutorials-demo search "empty password" notes Nested bases are separate runs — not folders you merge by accident. }, { id wrong-folder transition fade background brand-panel heading Wrong folder trap body Empty or weird results? Fix cwd before blaming the graph. code_lang txt code CLI vs chat disagree → cwd or active base notes Two hosts, one analytical core. }, { id try-this transition fade background brand-dark heading Try this body Run parse on reqs/ with --fail-on-diagnostics — then picture that line in CI. fragments Next — Advanced overview notes Headless CI, local scripts, and the editor share one index under .reqlan. } 1 8.3%
{ id title transition fade background brand-dark kicker Get started · 01 heading Why requirements as code asset logo notes If you work with language models on real projects, you already write requirements — you just write them into the chat window, over and over. }, { id problem transition fade background brand-panel heading Context drift is familiar body You paste the same intent into chat again and again. notes Every new thread starts from scratch unless you rebuild context by hand. }, { id contrast transition none background brand-contrast heading Chat dump vs named ideas body Left: bloated prose paste. Right: three named ideas. code_lang rq code login must reject empty passwords / session expires after inactivity / audit_log records failed attempts notes reqlan turns that intent into a graph of named ideas — requirements as code. }, { id loop transition fade background brand-panel heading Name, prose, neighbours asset montage-ide body Editor language support · activity bar neighbourhood · optional graph map. notes Day one is name the idea, write the prose, point at related work. }, { id misconception transition none background brand-contrast heading Not another notes app body Notes store paragraphs. reqlan stores handles you can link and search. notes You do not need a schema on day one — you need names your tools can reuse. }, { id install transition slide background brand-panel heading Install the extension body Marketplace or Open VSX → Install → Open Folder. notes Open a workspace folder even if it is empty. The welcome webview appears on first launch. }, { id onboarding transition fade background brand-panel heading Welcome, not base yet body Keep docs and marketplace links from the onboarding page. notes Creating a base with .reqlan comes after you have written a few ideas. }, { id end transition fade background brand-dark heading Your first idea is next body Install · Docs · then write your first idea. fragments Next: Your first idea asset logo notes Next: write your first idea in under a minute. } 1 8.3%
{ id title transition fade background brand-dark kicker Get started · 02 heading Your first idea asset logo notes A reqlan file is just text with a .rq suffix. Start with a name, then the thought. }, { id new-file transition fade background brand-panel heading Create reqs/product.rq body New folder, new file, .rq suffix — that is the whole setup. notes No base marker yet. The extension works on plain text in an open folder. }, { id one-liner transition none background brand-panel heading Name, then thought code_lang rq code product_name reqlan tutorials demo notes That one line is already an idea. The name is a handle you will reference later. }, { id block transition fade background brand-panel heading Open a block when you need room code_lang rq code welcome_flow { New users land on a welcome screen with one primary action: create an account. } notes Inside the braces, the first free text is the main description. No required metadata yet. }, { id language transition fade background brand-panel heading Language mode and highlighting body Status bar: reqlan. Problems empty. Save to persist. notes Language support arrives immediately when the extension is active — not a separate compile step. }, { id misconception transition none background brand-contrast heading No schema required body One-liners and blocks are valid on their own. Attributes wait until you need them. notes You do not need YAML front matter or imports before your first idea exists. }, { id try-this transition fade background brand-dark heading Try this body Rename welcome_flow to match your product. Rewrite the sentence in your voice. fragments Next: Link ideas notes Save again so highlighting and index pick up the new name. }, { id end transition fade background brand-dark heading Two ideas, one file asset logo notes Next: connect ideas with references. } 1 8.3%
{ id title transition fade background brand-dark kicker Get started · 03 heading Link ideas asset logo notes Ideas earn power when they point at each other. }, { id brackets transition none background brand-panel heading Square brackets name a neighbour code_lang rq code Success continues into [onboarding_checklist]. notes The target can live in the same file or another — the syntax is the same. }, { id navigate transition fade background brand-panel heading Go-to-definition and peek body F12 or Ctrl/Cmd-click to jump. Alt+F12 to peek without losing your place. notes Follow the link — you are navigating a graph, not scrolling a document. }, { id wikilink transition none background brand-panel heading Wikilinks with an alias code_lang rq code Prefer [[welcome_flow|the welcome screen]] as the way back. notes The alias is for reading; the target is still the idea name. }, { id misconception transition fade background brand-contrast heading Same graph, two spellings body Brackets for a quick hop. Wikilinks when prose needs a readable label. notes Both resolve to the same idea — not a separate link system. }, { id optional-graph transition fade background brand-panel heading Optional local graph body Command Palette: Reqlan: Show Local Graph — if you want a picture. notes Stay in the editor if you prefer; the graph is optional on day one. }, { id try-this transition fade background brand-dark heading Try this body Add account_model and link welcome_flow and onboarding_checklist to it once each. fragments Next: Your first base notes A third idea gives you a small triangle to walk through. }, { id end transition fade background brand-dark heading A graph, not a scroll asset logo notes Next: mark the folder as a base. } 1 8.3%
{ id title transition fade background brand-dark kicker Get started · 04 heading Your first base asset logo notes Installing the extension puts reqlan in the editor. It does not create a base. }, { id two-layers transition none background brand-contrast heading Extension install ≠ base create body Extension: language support in the editor. Base: .reqlan marker + ideas index boundary. notes Until the folder has a marker, neighbourhood views have nothing to bind to. }, { id create transition slide background brand-panel heading Create Base at workspace root body Command Palette: Reqlan: Create Base — or accept the activity-bar CTA. notes Accept at reqlan-tutorials-demo root, not a subfolder. }, { id marker transition fade background brand-panel heading A base owns .reqlan body config.json and .rqignore are yours. ideas-index.sqlite is tooling memory. code_lang txt code reqlan-tutorials-demo/.reqlan/ notes Do not hand-edit the index file — the tooling rebuilds it from your .rq sources. }, { id same-ideas transition fade background brand-panel heading Same ideas, now indexed body Reopen product.rq. Counts and neighbourhood views wake up. notes You did not rewrite anything — you marked the graph boundary. }, { id cli-parity transition none background brand-panel heading CLI parity code_lang bash code npx reqlan init body Seeds the same .reqlan tree in any empty folder. notes Editor and CLI share the same marker path. }, { id nested-teaser transition fade background brand-contrast heading Nested bases — later body One base is enough for day one. Child bases are separate graphs. notes We name nested boundaries in Concepts — do not create one on camera. }, { id try-this transition fade background brand-dark heading Try this body Confirm .reqlan exists. Open product.rq. Leave caret on an idea. fragments Next: Activity bar notes Watch the activity bar populate once the index activates. } 1 8.3%
{ id title transition fade background brand-dark kicker Get started · 05 heading Neighbourhood in the activity bar asset logo notes The activity bar is your neighbourhood view inside the active base — not a dump of the whole workspace. }, { id open transition fade background brand-panel heading Open the activity bar asset activity-bar body Click the reqlan icon. Caret on welcome_flow. Confirm active base. notes Context binds to the active base index — not a merged global graph. }, { id sync transition fade background brand-panel heading Sync and hop depth body Sync follows the caret. Hop depth widens or tightens references. notes Keep hop depth at 1 while you are learning. }, { id misconception transition none background brand-contrast heading Not every edit needs Ideas Summary body Activity bar = local while editing. Ideas Summary = broader map when you choose it. notes Glance and leave — do not treat the graph as a mandatory dashboard. }, { id copy-slice transition none background brand-panel heading Copy a focused slice body Copy as Markdown into a scratch file — not the whole reqs folder. notes Copy the neighbourhood into chat — not the whole folder. }, { id ideas-summary transition fade background brand-panel heading Ideas Summary — glance and leave body Command Palette: Reqlan: Ideas Summary. Pan once. Close. asset montage-ide notes Use it when you are lost or need a table — not on every keystroke. }, { id try-this transition fade background brand-dark heading Try this body Turn sync off, pin welcome_flow, click around, then turn sync back on. fragments Next: Ask @reqlan notes Pinning keeps one idea in view while you explore elsewhere. }, { id end transition fade background brand-dark heading Local context first asset logo notes Next: ask the graph with a small slice. } 1 8.3%
{ id title transition fade background brand-dark kicker Get started · 06 heading Ask @reqlan asset logo notes reqlan meets AI through focused tools — not by shoving the whole graph into the prompt. }, { id fixture transition fade background brand-panel heading Add password_rules code_lang rq code password_rules { Passwords must be at least twelve characters… } notes Empty submissions are a hard fail on welcome_flow — body text search will find this later. }, { id search-vscode transition none background brand-panel heading VS Code Chat search asset chat-search body @reqlan /rq-search password empty notes Slash commands use the rq- prefix. Results stay compact on purpose. }, { id search-cursor transition fade background brand-panel heading Cursor alternate body Skill: /rq-search password empty — same index, same discipline. notes Skills mirror chat commands when recording in Cursor. }, { id misconception transition none background brand-contrast heading Search, then slice — not paste body Meaning search finds the handle. Add-to-context ships the neighbourhood. notes Search beats scrolling when the keyword lives in body prose, not the idea name. }, { id context transition fade background brand-panel heading Add only what you need body Add password_rules to context. Leave the rest in the index. notes The .rq file remains the source of truth — the model proposes, you keep ownership. }, { id build-optional transition fade background brand-panel heading Optional: build a requirement body /rq-build-requirement rate-limit failed logins → named idea in product.rq notes Fifteen seconds on camera — skip if the surface is not ready; note preview on screen. }, { id try-this transition fade background brand-dark heading Try this body Search for twelve — a body word, not an idea name. fragments Next: Point ideas at code notes Meaning search should return password_rules without you remembering the handle. } 1 8.3%
{ id title transition fade background brand-dark kicker Get started · 07 heading Point ideas at code asset logo notes Requirements earn their keep when they touch reality. }, { id create-files transition fade background brand-panel heading Create auth.rq and login.ts body reqs/auth.rq + src/login.ts stub — small and readable. notes Keep the demo tree minimal; one API idea and one implementation file. }, { id file-ref transition none background brand-panel heading File references asset file-link code_lang rq code Implementation: ["./src/login.ts"] notes The path lives in brackets like any other link. Ctrl/Cmd-click to open. }, { id link-idea transition fade background brand-panel heading Link back to requirements code_lang rq code Rejects empty passwords per [password_rules]. notes Ideas and files share one graph — cross-link freely. }, { id reverse transition fade background brand-panel heading Stand in the implementation body Caret in login.ts. Activity bar shows related requirements. asset activity-bar notes Context scope works on any workspace file, not only .rq sources. }, { id misconception transition none background brand-contrast heading Not a one-way arrow body File refs from requirements. Scope from code back to requirements. notes The reverse path is the point — traceability in both directions. }, { id recap transition slide background brand-panel heading Get-started loop complete body Name · link · base · neighbourhood · small AI slice · stitch to code. notes Seven episodes — same discipline throughout. }, { id try-this transition fade background brand-dark heading Try this body Link one more source file your welcome flow depends on. fragments Concepts series next — name the building blocks notes When you are ready to put names to what you did, Concepts starts there. }, { id end transition fade background brand-dark heading Concepts next body The building blocks, the extension map, then the CLI. asset logo notes Next: names for the building blocks you just used. } 1 8.3%

Ideas with this attribute

IdeaValueStatusTagsSummary
adv_01_imports_ideasets { id title transition fade background brand-dark kicker Advanced · 01 heading Imports and ideasets body One file is a start. Real graphs span files — imports keep links honest. asset logo notes One file is a great start. Real projects become a web of files. }, { id split transition fade background brand-panel heading Split before sprawl body Auth ideas in auth.rq. Product ideas stay in product.rq. code_lang rq code login_api { Bound by [session_policy]. } notes Each file is its own ideaspace. Moving ideas changes where the handle lives. }, { id from-import transition none background brand-panel heading From-import one idea body Pull a single neighbour when that is all the call site needs. code_lang rq code from "./auth.rq" import login_api notes From-import pulls one idea into scope. }, { id namespace transition fade background brand-panel heading Namespace the file body Alias the whole module when several ideas travel together. code_lang rq code import "./auth.rq" as auth · [auth.session_policy] notes If you reference three ideas from auth, namespace usually reads cleaner. }, { id ideaset transition fade background brand-panel heading Ideasets as namespaces body Group related ideas without a heavier module system. code_lang rq code auth_core ( login_api, session_policy ) notes Ideasets document membership. Imports still control what this file can link to. }, { id judgement transition none background brand-contrast heading Import the smallest surface body Six from-imports vs one namespace — pick readability, not completeness. code_lang rq code from "./auth.rq" import a, b, c, d… vs import "./auth.rq" as auth notes Common mistake: import everything just in case. }, { id base-boundary transition fade background brand-panel heading Imports respect base boundaries body Cross-file links stay inside the active base graph. code_lang txt code demo/.reqlan/ · auth.rq + product.rq same base notes Imports do not cross nested base boundaries — same discipline as get-started. }, { id try-this transition fade background brand-dark heading Try this body Move password_rules into auth.rq. Fix product.rq with the smallest import that works. fragments Next — Attributes without bloat notes Pick the import shape that keeps call sites readable. } Audience: builders with a single-file graph who feel reference sprawl or duplicate idea names across files. Outcome: split ideas across files; use `from` / `import` and namespace import; group with ideasets; resolve qualified references without breaking call-site readability. Runtime: 9 – 10 min. Demo: advanced baseline open on `reqs/product.rq`; `reqs/auth.rq` exists with `login_api` and `session_policy` but `product.rq` still references them without imports — caret on a broken or unresolved link. Related: [import_from] [import_namespace] [ideaset] [file] [reference]
adv_overview { id title transition fade background brand-dark kicker Advanced · Overview heading Beyond one file body Same language. Better judgement about names, links, bases, and prompt size. asset logo notes You already know the loop. Advanced reqlan is judgement about how graphs scale without becoming noise. }, { id loop-recap transition fade background brand-panel heading Carry the loop forward body Name · link · base · neighbourhood · small AI slice · stitch to code. asset montage-ide notes Advanced is not a second install tour. It is craft on top of verbs you already felt. }, { id map transition slide background brand-panel heading Eight themes ahead body Imports · attributes · graph maps · context · comment links · HTML export · CLI/MCP · modelling patterns code_lang rq code from "./auth.rq" import login_api · @status in-progress · Ideas Summary graph · rq:[password_rules] notes Each theme has its own deck. Ontology, extension map, and CLI live in Concepts. }, { id bases-craft transition none background brand-contrast heading Bases as craft body One active base. Know the graph boundary. Nested bases stay separate. code_lang txt code demo/.reqlan/ · active base picker · CLI selects one base per run notes No create-base lesson here — boundary discipline for export, CLI, and context. }, { id discipline transition fade background brand-panel heading Carry the discipline forward body Small slices. Maps you choose. Attributes that drive a view — or delete them. code_lang rq code login_api { POST /login… @status in-progress @tags ( auth ) } notes Token discipline and cartographic focus carry forward from get-started. }, { id general-purpose transition fade background brand-panel heading General-purpose graphs body Software is the common case — not the only case. One non-software vignette in the series. code_lang rq code issue_brief { June theme… cite [interview_lee]. } notes Editorial briefs and ops checklists are still named ideas with neighbours. }, { id next transition fade background brand-dark heading Start with imports body Split ideas across files. Pick from-import or namespace alias — whatever stays readable. fragments Next — Imports and ideasets asset logo notes Pick your first deep dive. We recommend imports before the graph outgrows one document. } Audience: viewers who finished get-started and concepts ( or equivalent ) and want the map of craft themes before committing to a deep dive. Outcome: name the eight advanced themes, understand how they connect to get-started discipline, and pick a first episode. Runtime: 3 – 4 min. Demo: `reqlan-tutorials-demo` at advanced baseline — multi-file graph, `.reqlan` present, no new files typed; montage only. Related: [advanced_series_brief] [general_purpose] [llm_first] [concepts_series] [base] [multi_base_environment]
con_01_ontology { id title transition fade background brand-dark kicker Concepts · 01 heading The building blocks body Names for the things you already used — one per beat. asset logo notes Now let's name the things you used, so you and your teammates talk about them the same way. }, { id idea transition none background brand-panel heading Idea body Named handle plus prose. One-liner or block — both are ideas. code_lang rq code welcome_flow { New users land on a welcome screen… } notes The first free text is the body attribute. You do not type @body. }, { id ideaset transition fade background brand-panel heading Ideaset body Parentheses group names into a namespace container. code_lang rq code auth_core ( login_api, session_policy ) notes A lightweight module boundary — not a second syntax world. }, { id file transition fade background brand-panel heading File body A .rq file stores ideas and implicitly forms an ideaset. code_lang txt code reqs/auth.rq → login_api · session_policy · auth_core notes The file is part of the ontology, not merely a disk path. }, { id base transition none background brand-panel heading Base body Graph boundary. Owns .reqlan. Nested bases are separate graphs. code_lang txt code reqlan-tutorials-demo/.reqlan/ · packages/lib/.reqlan/ notes Day-to-day you live in one active base. Parent index stops at child boundary. }, { id reference transition fade background brand-panel heading Reference body Links ideas, files, folders, and symbols. Non-.rq files stay in the index. code_lang rq code Bound by [session_policy] · Implementation: ["./src/login.ts"] notes Square brackets are the habit you already felt in get-started. }, { id attribute transition fade background brand-panel heading Attribute body Optional @ metadata you opt into — not the main prose. code_lang rq code @status in-progress · @tags ( auth ) notes Base config and extension settings are different scopes — do not conflate them. }, { id map transition fade background brand-panel heading The map body A focused map view — filtered, centred, depth-limited. asset montage-ide notes A view you build around one question. Advanced goes deeper on map craft. }, { id try-this transition fade background brand-dark heading Try this body On scrap-ontology.rq, one sentence per name — in your own words. fragments Next — Extension tour notes If a sentence needs a second clause, the idea is still fuzzy. } Audience: viewers who finished get-started ( or equivalent ) and want shared vocabulary without repeating the install loop. Outcome: define each core ontology noun in one sentence; place [base] as graph boundary ( including nesting ); distinguish [attribute_body] from optional `@` metadata; name [cartographic_map] as a chosen cut, not a mandatory dump. Runtime: 10 – 12 min. Demo: `reqlan-tutorials-demo` at get-started end state — `.reqlan/` present; `reqs/product.rq`, `reqs/auth.rq`, `src/login.ts`; caret starts on `welcome_flow` in `product.rq`. Related: [idea] [ideaset] [file] [base] [base_detail] [reference] [attribute] [attribute_body] [cartographic_map] [referenced_files] [configuration] [base_nesting] [multi_base_environment]
con_02_extension_tour { id title transition fade background brand-dark kicker Concepts · 02 heading Extension tour body Five surfaces — one job each. Map, not a laundry list. asset logo notes You named the nouns. This episode maps where they live in the product. }, { id language transition fade background brand-panel heading Language support body Open when authoring or navigating .rq source. code_lang rq code welcome_flow { … Success continues into [onboarding_checklist]. } notes Ideas and references live in files — not in a sidebar form. }, { id activity-bar transition none background brand-panel heading Activity bar body Open when the question is "what sits near this idea?" asset activity-bar notes Neighbourhood inside the active base — sync, hop depth, copy slice. }, { id ideas-summary transition fade background brand-panel heading Ideas Summary body Open when you need a catalog, table, or cartographic map. asset montage-ide notes Author in the editor; browse in Summary when the question changed. }, { id agents-palette transition fade background brand-panel heading Chat, skills, MCP, palette body Open when running a focused graph operation. asset chat-search code_lang txt code @reqlan /rq-search · Reqlan: · rq-search skill notes Same token discipline as get-started. Palette when you forgot the slash command. }, { id export-cli transition fade background brand-panel heading Export and CLI body Open when the graph must leave the editor. code_lang bash code Reqlan: Export HTML · npx reqlan search "…" notes Shared analytical core. Next concepts pack walks the CLI; Advanced covers craft and CI. }, { id recovery transition none background brand-contrast heading Recovery body Mid-edit in Ideas Summary? Pay navigation tax. Return to source. notes If you live in Summary while typing prose, the question changed — switch surfaces. }, { id quiz transition fade background brand-dark heading Try this — surface quiz body Neighbourhood copy · draft filter · meaning search — name the surface aloud. fragments Answers: activity bar · Ideas Summary · chat/palette notes Hesitated on draft filter? That is Ideas Summary tables — not the activity bar. }, { id end transition fade background brand-dark heading Map first. Terminal next. body Name the CLI surface — then Advanced when you are ready to craft. asset logo fragments Next — CLI notes Concepts · 03 walks init, search, analyse, parse, and export on the same index. } Audience: viewers who know the ontology nouns and want a calm map of where they appear in the product. Outcome: name the primary [extension] surfaces and which job each owns; know where not to dig on day two. Runtime: 8 – 10 min. Demo: full get-started end state of `reqlan-tutorials-demo` ( `.reqlan`, `reqs/product.rq`, `reqs/auth.rq`, `src/login.ts` ); activity bar closed; Ideas Summary closed; chat available. Related: [extension] [activity_bar] [ideas_summary] [command_palette] [ai_integration] [html_export] [graph_view] [local_graph_view] [simple_views] [chat_skill_naming] [installation] [mcp_tools] [cli_package] [commands]
con_03_cli { id title transition fade background brand-dark kicker Concepts · 03 heading CLI body Same graph API — terminal, scripts, and CI. asset logo notes The extension tour named five surfaces. This pack is surface five up close. }, { id install transition fade background brand-panel heading Install the binary body npx for a one-shot. Global install when the terminal is daily. code_lang bash code npx @reqlan/cli --help notes Binary names: reqlan and rq. Marketplace install is a different layer. }, { id init transition none background brand-contrast heading init = Create Base body Seeds the same .reqlan marker the editor uses. code_lang bash code npx reqlan init notes Extension install ≠ base create. CLI init only owns the marker path. }, { id search-analyse transition fade background brand-panel heading Search and analyse body Concise hits. One idea expanded — not a whole-graph dump. code_lang bash code npx reqlan search "empty password" / analyse --idea login_api notes Same llm-first discipline as chat search. }, { id parse-export transition fade background brand-panel heading Parse and export body Parse gates CI. Export shares the HTML pipeline with the extension form. code_lang bash code npx reqlan parse reqs/ --fail-on-diagnostics / export --out ./docs-site notes Form for exploration. CLI for scripts and pipelines. }, { id cwd-json transition none background brand-contrast heading Pin the base body --cwd / REQLAN_WORKSPACE. --json for machines. One base per run. code_lang bash code npx reqlan --cwd reqlan-tutorials-demo search "empty password" notes Nested bases are separate runs — not folders you merge by accident. }, { id wrong-folder transition fade background brand-panel heading Wrong folder trap body Empty or weird results? Fix cwd before blaming the graph. code_lang txt code CLI vs chat disagree → cwd or active base notes Two hosts, one analytical core. }, { id try-this transition fade background brand-dark heading Try this body Run parse on reqs/ with --fail-on-diagnostics — then picture that line in CI. fragments Next — Advanced overview notes Headless CI, local scripts, and the editor share one index under .reqlan. } Audience: viewers who finished the extension tour and want the headless twin named — CI, scripts, and agents without living in the editor. Outcome: install and run `reqlan` / `rq`; [init] a [base]; run search, analyse, and parse; know `--cwd` / `--json` and one-base-per-run; know export shares [html_export] with the extension. Runtime: 9 – 11 min. Demo: advanced get-started end state of `reqlan-tutorials-demo` — `.reqlan` indexed, `reqs/product.rq` + `reqs/auth.rq` present; integrated terminal at workspace root; extension idle in background ( not the focus ). Related: [cli_package] [commands] [init] [html_export] [base] [multi_base_environment] [llm_first] [function_parity]
gs_01_why_reqlan { id title transition fade background brand-dark kicker Get started · 01 heading Why requirements as code asset logo notes If you work with language models on real projects, you already write requirements — you just write them into the chat window, over and over. }, { id problem transition fade background brand-panel heading Context drift is familiar body You paste the same intent into chat again and again. notes Every new thread starts from scratch unless you rebuild context by hand. }, { id contrast transition none background brand-contrast heading Chat dump vs named ideas body Left: bloated prose paste. Right: three named ideas. code_lang rq code login must reject empty passwords / session expires after inactivity / audit_log records failed attempts notes reqlan turns that intent into a graph of named ideas — requirements as code. }, { id loop transition fade background brand-panel heading Name, prose, neighbours asset montage-ide body Editor language support · activity bar neighbourhood · optional graph map. notes Day one is name the idea, write the prose, point at related work. }, { id misconception transition none background brand-contrast heading Not another notes app body Notes store paragraphs. reqlan stores handles you can link and search. notes You do not need a schema on day one — you need names your tools can reuse. }, { id install transition slide background brand-panel heading Install the extension body Marketplace or Open VSX → Install → Open Folder. notes Open a workspace folder even if it is empty. The welcome webview appears on first launch. }, { id onboarding transition fade background brand-panel heading Welcome, not base yet body Keep docs and marketplace links from the onboarding page. notes Creating a base with .reqlan comes after you have written a few ideas. }, { id end transition fade background brand-dark heading Your first idea is next body Install · Docs · then write your first idea. fragments Next: Your first idea asset logo notes Next: write your first idea in under a minute. } Audience: developers or knowledge workers who already talk to LLMs about their project and feel context drift. Outcome: viewer can explain reqlan in one sentence and knows where install / docs live. Runtime: 4 – 5 min. Demo: cold open on a fresh machine or reset profile. Folder `reqlan-tutorials-demo` does not exist yet — or an empty folder with only `README.md`. No `.rq` files. reqlan extension not installed ( or disabled ) until the install beat. Related: [mission_statement] [llm_first] [inspiration] [installation_event] [installation] [extension_installation]
gs_02_first_idea { id title transition fade background brand-dark kicker Get started · 02 heading Your first idea asset logo notes A reqlan file is just text with a .rq suffix. Start with a name, then the thought. }, { id new-file transition fade background brand-panel heading Create reqs/product.rq body New folder, new file, .rq suffix — that is the whole setup. notes No base marker yet. The extension works on plain text in an open folder. }, { id one-liner transition none background brand-panel heading Name, then thought code_lang rq code product_name reqlan tutorials demo notes That one line is already an idea. The name is a handle you will reference later. }, { id block transition fade background brand-panel heading Open a block when you need room code_lang rq code welcome_flow { New users land on a welcome screen with one primary action: create an account. } notes Inside the braces, the first free text is the main description. No required metadata yet. }, { id language transition fade background brand-panel heading Language mode and highlighting body Status bar: reqlan. Problems empty. Save to persist. notes Language support arrives immediately when the extension is active — not a separate compile step. }, { id misconception transition none background brand-contrast heading No schema required body One-liners and blocks are valid on their own. Attributes wait until you need them. notes You do not need YAML front matter or imports before your first idea exists. }, { id try-this transition fade background brand-dark heading Try this body Rename welcome_flow to match your product. Rewrite the sentence in your voice. fragments Next: Link ideas notes Save again so highlighting and index pick up the new name. }, { id end transition fade background brand-dark heading Two ideas, one file asset logo notes Next: connect ideas with references. } Audience: freshly installed users who finished gs_01 or equivalent. Outcome: create a `.rq` file; write a one-liner and a block idea; save; see syntax highlighting and language mode. Runtime: 5 min. Demo: folder `reqlan-tutorials-demo` open in VS Code. Extension installed; onboarding seen once. Explorer shows empty tree or `README.md` only — no `reqs/` folder yet, no `.reqlan`. Related: [idea] [simple_idea] [block_idea] [simplicity] [file]
gs_03_link_ideas { id title transition fade background brand-dark kicker Get started · 03 heading Link ideas asset logo notes Ideas earn power when they point at each other. }, { id brackets transition none background brand-panel heading Square brackets name a neighbour code_lang rq code Success continues into [onboarding_checklist]. notes The target can live in the same file or another — the syntax is the same. }, { id navigate transition fade background brand-panel heading Go-to-definition and peek body F12 or Ctrl/Cmd-click to jump. Alt+F12 to peek without losing your place. notes Follow the link — you are navigating a graph, not scrolling a document. }, { id wikilink transition none background brand-panel heading Wikilinks with an alias code_lang rq code Prefer [[welcome_flow|the welcome screen]] as the way back. notes The alias is for reading; the target is still the idea name. }, { id misconception transition fade background brand-contrast heading Same graph, two spellings body Brackets for a quick hop. Wikilinks when prose needs a readable label. notes Both resolve to the same idea — not a separate link system. }, { id optional-graph transition fade background brand-panel heading Optional local graph body Command Palette: Reqlan: Show Local Graph — if you want a picture. notes Stay in the editor if you prefer; the graph is optional on day one. }, { id try-this transition fade background brand-dark heading Try this body Add account_model and link welcome_flow and onboarding_checklist to it once each. fragments Next: Your first base notes A third idea gives you a small triangle to walk through. }, { id end transition fade background brand-dark heading A graph, not a scroll asset logo notes Next: mark the folder as a base. } Audience: users with at least one idea file from gs_02. Outcome: use bracket references and a wikilink; peek definition and go-to-definition; understand ideas as a navigable graph. Runtime: 6 min. Demo: `reqlan-tutorials-demo/reqs/product.rq` open. Caret inside `welcome_flow`. File contains `product_name` one-liner and `welcome_flow` block only — no links yet, no `account_model`, no `.reqlan`. Related: [reference] [reference_brackets] [reference_wikilink] [idea]
gs_04_first_base { id title transition fade background brand-dark kicker Get started · 04 heading Your first base asset logo notes Installing the extension puts reqlan in the editor. It does not create a base. }, { id two-layers transition none background brand-contrast heading Extension install ≠ base create body Extension: language support in the editor. Base: .reqlan marker + ideas index boundary. notes Until the folder has a marker, neighbourhood views have nothing to bind to. }, { id create transition slide background brand-panel heading Create Base at workspace root body Command Palette: Reqlan: Create Base — or accept the activity-bar CTA. notes Accept at reqlan-tutorials-demo root, not a subfolder. }, { id marker transition fade background brand-panel heading A base owns .reqlan body config.json and .rqignore are yours. ideas-index.sqlite is tooling memory. code_lang txt code reqlan-tutorials-demo/.reqlan/ notes Do not hand-edit the index file — the tooling rebuilds it from your .rq sources. }, { id same-ideas transition fade background brand-panel heading Same ideas, now indexed body Reopen product.rq. Counts and neighbourhood views wake up. notes You did not rewrite anything — you marked the graph boundary. }, { id cli-parity transition none background brand-panel heading CLI parity code_lang bash code npx reqlan init body Seeds the same .reqlan tree in any empty folder. notes Editor and CLI share the same marker path. }, { id nested-teaser transition fade background brand-contrast heading Nested bases — later body One base is enough for day one. Child bases are separate graphs. notes We name nested boundaries in Concepts — do not create one on camera. }, { id try-this transition fade background brand-dark heading Try this body Confirm .reqlan exists. Open product.rq. Leave caret on an idea. fragments Next: Activity bar notes Watch the activity bar populate once the index activates. } Audience: users with a small linked graph who have not yet marked a base. Outcome: create a [base] ( `.reqlan` ); explain that a base is the boundary of one ideas graph and owns the ideas index; know extension install ≠ base create. Runtime: 5 – 6 min. Demo: `reqlan-tutorials-demo` with `reqs/product.rq` containing linked `welcome_flow` ↔ `onboarding_checklist` ( and optional `account_model` ). No `.reqlan` folder. Activity bar or Ideas Summary shows empty / create-base prompt. Caret on any idea in `product.rq`. Related: [base] [base_detail] [create_base_onboarding] [base_installation] [installation] [extension_installation]
gs_05_activity_bar { id title transition fade background brand-dark kicker Get started · 05 heading Neighbourhood in the activity bar asset logo notes The activity bar is your neighbourhood view inside the active base — not a dump of the whole workspace. }, { id open transition fade background brand-panel heading Open the activity bar asset activity-bar body Click the reqlan icon. Caret on welcome_flow. Confirm active base. notes Context binds to the active base index — not a merged global graph. }, { id sync transition fade background brand-panel heading Sync and hop depth body Sync follows the caret. Hop depth widens or tightens references. notes Keep hop depth at 1 while you are learning. }, { id misconception transition none background brand-contrast heading Not every edit needs Ideas Summary body Activity bar = local while editing. Ideas Summary = broader map when you choose it. notes Glance and leave — do not treat the graph as a mandatory dashboard. }, { id copy-slice transition none background brand-panel heading Copy a focused slice body Copy as Markdown into a scratch file — not the whole reqs folder. notes Copy the neighbourhood into chat — not the whole folder. }, { id ideas-summary transition fade background brand-panel heading Ideas Summary — glance and leave body Command Palette: Reqlan: Ideas Summary. Pan once. Close. asset montage-ide notes Use it when you are lost or need a table — not on every keystroke. }, { id try-this transition fade background brand-dark heading Try this body Turn sync off, pin welcome_flow, click around, then turn sync back on. fragments Next: Ask @reqlan notes Pinning keeps one idea in view while you explore elsewhere. }, { id end transition fade background brand-dark heading Local context first asset logo notes Next: ask the graph with a small slice. } Audience: users with a small linked graph inside a [base]. Outcome: open the reqlan activity bar; follow editor focus with sync; adjust hop depth; copy a slice as markdown; glance at Ideas Summary without treating it as a full dump. Runtime: 6 – 7 min. Demo: `reqlan-tutorials-demo` is a [base] — `.reqlan/` present and index active. `reqs/product.rq` with linked `welcome_flow`, `onboarding_checklist`, optional `account_model`. Caret inside `welcome_flow`. Activity bar closed or on a non-reqlan view. Related: [activity_bar] [local_graph_view] [ideas_summary] [llm_first] [implied_context] [base]
gs_06_chat_search { id title transition fade background brand-dark kicker Get started · 06 heading Ask @reqlan asset logo notes reqlan meets AI through focused tools — not by shoving the whole graph into the prompt. }, { id fixture transition fade background brand-panel heading Add password_rules code_lang rq code password_rules { Passwords must be at least twelve characters… } notes Empty submissions are a hard fail on welcome_flow — body text search will find this later. }, { id search-vscode transition none background brand-panel heading VS Code Chat search asset chat-search body @reqlan /rq-search password empty notes Slash commands use the rq- prefix. Results stay compact on purpose. }, { id search-cursor transition fade background brand-panel heading Cursor alternate body Skill: /rq-search password empty — same index, same discipline. notes Skills mirror chat commands when recording in Cursor. }, { id misconception transition none background brand-contrast heading Search, then slice — not paste body Meaning search finds the handle. Add-to-context ships the neighbourhood. notes Search beats scrolling when the keyword lives in body prose, not the idea name. }, { id context transition fade background brand-panel heading Add only what you need body Add password_rules to context. Leave the rest in the index. notes The .rq file remains the source of truth — the model proposes, you keep ownership. }, { id build-optional transition fade background brand-panel heading Optional: build a requirement body /rq-build-requirement rate-limit failed logins → named idea in product.rq notes Fifteen seconds on camera — skip if the surface is not ready; note preview on screen. }, { id try-this transition fade background brand-dark heading Try this body Search for twelve — a body word, not an idea name. fragments Next: Point ideas at code notes Meaning search should return password_rules without you remembering the handle. } Audience: users ready to involve AI without abandoning the graph. Outcome: invoke `@reqlan /rq-search` ( VS Code Chat ) or Cursor skill `rq-search`; find an idea by meaning; add to context; optionally build a requirement from intent. Runtime: 6 min. Demo: same base and `reqs/product.rq` as gs_05. Add `password_rules` if missing — otherwise type it live at cold open. No chat thread open yet. `.reqlan` index active. Related: [ai_integration] [chat_skill_naming] [ai_add_to_context] [ai_build_requirement] [mcp_tools] [command_palette]
gs_07_link_code { id title transition fade background brand-dark kicker Get started · 07 heading Point ideas at code asset logo notes Requirements earn their keep when they touch reality. }, { id create-files transition fade background brand-panel heading Create auth.rq and login.ts body reqs/auth.rq + src/login.ts stub — small and readable. notes Keep the demo tree minimal; one API idea and one implementation file. }, { id file-ref transition none background brand-panel heading File references asset file-link code_lang rq code Implementation: ["./src/login.ts"] notes The path lives in brackets like any other link. Ctrl/Cmd-click to open. }, { id link-idea transition fade background brand-panel heading Link back to requirements code_lang rq code Rejects empty passwords per [password_rules]. notes Ideas and files share one graph — cross-link freely. }, { id reverse transition fade background brand-panel heading Stand in the implementation body Caret in login.ts. Activity bar shows related requirements. asset activity-bar notes Context scope works on any workspace file, not only .rq sources. }, { id misconception transition none background brand-contrast heading Not a one-way arrow body File refs from requirements. Scope from code back to requirements. notes The reverse path is the point — traceability in both directions. }, { id recap transition slide background brand-panel heading Get-started loop complete body Name · link · base · neighbourhood · small AI slice · stitch to code. notes Seven episodes — same discipline throughout. }, { id try-this transition fade background brand-dark heading Try this body Link one more source file your welcome flow depends on. fragments Concepts series next — name the building blocks notes When you are ready to put names to what you did, Concepts starts there. }, { id end transition fade background brand-dark heading Concepts next body The building blocks, the extension map, then the CLI. asset logo notes Next: names for the building blocks you just used. } Audience: users with application source beside `reqs/` who completed gs_01 – 06. Outcome: add a file reference from an idea to implementation; open the file from the requirement; see reverse scope when standing in code; recap the get-started loop into Concepts. Runtime: 6 – 7 min. Demo: base active. `reqs/product.rq` with linked ideas and `password_rules`. No `reqs/auth.rq` yet. No `src/` folder. Caret in `product.rq`. Explorer shows only `reqs/` and `.reqlan/`. Related: [any_file_scope] [context_scope] [reference] [referenced_files] [file]