Cluster detail
site.rq
Ideas defined in reqlan rq/site/site.rq.
file
88 ideas
1 files
| Idea | File | Status | Summary | Katz |
|---|---|---|---|---|
| absorbed_and_dropped | reqlan rq/site/site.rq | Absorbed into the eleven: glue-semantics splits into [firmware_cloud_contract_showcase] and [module_surface_showcase]. agentic-planning and feature-tracking fold into [agent_context_showcase]. compliance becomes [audit_trail_showcase]. scattered-docs becomes [legacy_archaeology_showcase]. test-explanation upgrades into [test_proves_showcase]. arbitrary-attributes upgrades into [attribute_dialect_showcase]. static-connection upgrades into [firmware_cloud_contract_showcase]. data-not-ideas expands into [antipatterns_showcase]. graph-traversal upgrades into [graph_view_showcase]. control-system-sequencing upgrades into [interlock_showcase]. module-interface upgrades into [module_surface_showcase]. Dropped: todo-triage — too thin; triage is a byproduct of [agent_context_showcase], not a page. docs-attribute — sells tooling that does not exist; file refs to markdown belong inside other pages. | 0.040 | |
| accurate_rq_snippets_must_parse | reqlan rq/site/site.rq | done | Every site snippet that demonstrates accurate reqlan must parse against the Langium grammar. In scope: language- " rq " blocks ( landing syntax pairs, the example slice, the hero snippet, showcase `.rq` blocks ). Out of scope: ts / md / py snippets that only show `rq:` comment links. Invalid-on-purpose samples must not be labelled language- " rq ". Enforced by tests plus the content parse gate in ["../../site/scripts/validate-showcase-rq.mts"]. Showcases are a subset per [every_rq_block_must_parse] / [phase_1_parse_gate]. | 0.090 |
| agent_context_showcase | reqlan rq/site/site.rq | done | Flagship. Context for the agent, not the repo. An agent answers a question about session expiry. Show the repo-dump cost, then MCP click returning compact file context, then the plan the agent writes. Absorbs former agentic-planning and feature-tracking pages. | 0.050 |
| antipatterns_showcase | reqlan rq/site/site.rq | done | Depth. Three ways to write. rq badly. Data instead of pointers, prose restating code, one monolithic file. Showing negative space is a taste signal. Absorbs former data-not-ideas page; expands it. | 0.045 |
| assets | reqlan rq/site/site.rq | this site is published in in gh pages at the `/reqlan` path. Any assets in the / public folder should be referenced as `/reqlan/assets/...`. Embedded spec export hrefs follow the same base via [spec_html_export] / [html_export.html_export_url_base]. | 0.046 | |
| attribute_dialect_showcase | reqlan rq/site/site.rq | done | Depth. Attributes as a domain dialect. The full attribute grammar: flags, negated flags, block values, nested and named lists — forms nobody currently knows about. Absorbs former arbitrary-attributes page. | 0.045 |
| audit_trail_showcase | reqlan rq/site/site.rq | done | Depth. An audit trail you can export. Custom clause / evidence / verified_by attributes, then Completion Status showing the coverage gap, then HTML export as the auditor's deliverable. Domain: regulated software — IEC 62304 or SOC 2. Absorbs former compliance page. | 0.045 |
| bidirectional_comment_links | reqlan rq/site/site.rq | rq-comment refs in TS, Python, C, ST, etc. Code points back, with working document links. A product story bound this way is [story_codebase_showcase]. | 0.051 | |
| brand | reqlan rq/site/site.rq | must be aligned with ["../brand.rq"] | 0.059 | |
| broken_links_showcase | reqlan rq/site/site.rq | done | Flagship. Links that break loudly. Someone renames a file. Show the diagnostic, the quick-fix menu, and the rewritten refs. Then the same issue from ["../core_analysis/check.rq".check] ( `reqlan check`, exit 1 ) and that command as a CI step so a merge cannot land rot. This is the argument against a wiki. Domain: refactor safety, any stack. | 0.190 |
| claim_cycle | reqlan rq/site/site.rq | done | Show one claim at a time and cycle in order. Pause on hover or focus. Tracks jump to a claim. The active claim sits in the vertical centre of a slot sized for the longest claim, so shorter lines do not jump to the top. | 0.056 |
| claim_expand | reqlan rq/site/site.rq | done | A toggle expands every [elevator_pitch_section] claim into one list. The rotating cycle stays the default. Expanding pauses the cycle. Collapsing returns to the cycle. Reduced motion still starts on the list per [claim_reduced_motion]. | 0.056 |
| claim_progress | reqlan rq/site/site.rq | done | A track per claim shows hold-time state: past tracks are full, the current track fills left to right, later tracks stay empty. Pause holds the fill. The fill and the cycle share one clock so they do not drift. | 0.056 |
| claim_reduced_motion | reqlan rq/site/site.rq | done | When the visitor prefers reduced motion, show the full claim list with no cycle and no progress animation. | 0.064 |
| code_block_styling | reqlan rq/site/site.rq | Code blocks should be styled per language as a function of a classname; or by using an appropriate lightweight external dependency. Language ids live in ["../../site/src/content/types.ts"]. CodeLanguage —. rq,. ts,. md,. py, plus st / c / json / yaml for showcases. If using a dependency, it should parse at build, not in the browser. | 0.052 | |
| components | reqlan rq/site/site.rq | - sidebar per [sidebar_nav] - footer per [footer] - hero per [hero_section] - sticky page nav graph per [nav_graph] - links / contact per [links] - showcases - tutorials per [tutorials_section] - certification per [certs_reqs.certs] - FAQ per [faq_page] - support per [support_page_reqs.support_page] - content per [copy] - elevator pitch per [elevator_pitch_section] - featured-in social proof per [featured_in_section] - motivation per [motivation_section] - syntax per [syntax_section] - example per [example_section] - roadmap per [roadmap_section] - CTA: - install the extension and the CLI per [cta_icon] per [install_cli_menu] - GitHub star on the hero action row per [hero_github_star] - sticky draggable action buttons per [sticky_cta_node] - home-only quiz sticker edge tab per [quiz_sticker_tab] - 404 page ( just something silly / a redirect ) | 0.050 | |
| copy | reqlan rq/site/site.rq | done | Marketing copy lives in typed TS modules under ["../../site/src/content"], composed by ["../../site/src/content/site.ts"]. Shared types: ["../../site/src/content/types.ts"]. Copy stays decoupled from layout / styling. Copy should be really super minimal and concise if at all. ( show don't tell ) Copy should be user facing; not simply a description of the feature requirements. Production code doesn't have latent dev notes in visible components. Landing modules: [hero_section], [elevator_pitch_section], [featured_in_section], [motivation_section], [syntax_section], [example_section], [roadmap_section], [nav_graph], [faq_page], [sidebar_nav], [links], [footer], [sticky_cta_node], [quiz_sticker_tab]. | 0.336 |
| cta_icon | reqlan rq/site/site.rq | done | The hero has a separate " Install extension " menu button. The menu lists Cursor, VS Code, and Download VSIX. It must not include Open VSX. Open VSX stays on [quickstart_page]. It must not assume the user's editor or pre-select one silently. The CLI control is a separate button per [install_cli_menu]. Get-started CTA copy lives in ["../../site/src/content/hero.ts"] per [hero_section]. Each menu row shows the target's icon beside its full label; icons resolve through [phonebook_icon_registry] via the quickstart icon set / name refs in ["../../site/src/content/install-actions.ts"]. per [components] per [development_core.iconify_stack] | 0.078 |
| diagrams_are_never_dressed_as_code | reqlan rq/site/site.rq | ASCII arrow diagrams must not sit inside language- " rq " blocks. They get their own visually distinct block kind. aligns with [showcase_module] | 0.052 | |
| elevator_pitch_section | reqlan rq/site/site.rq | done | Landing `#elevator-pitch` after [hero_section] and before [featured_in_section]. This is the home " Why reqlan " destination: [sidebar_nav] child and [nav_graph] Why node use this id. One-line thesis plus rotating claims. Copy lives in ["../../site/src/content/meta.ts"] per [copy]. Thesis follows ["../constitution.rq".elevator_pitch]. Behaviours: [claim_cycle], [claim_progress], [claim_reduced_motion], [claim_expand]. Styling per [styling_architecture]. Must stay compatible with [simple_lightweight_and_static]. | 0.123 |
| every_rq_block_must_parse | reqlan rq/site/site.rq | Every language- " rq " block in showcase content files must parse against the langium grammar. Prefer enforcement via a build step that runs the real parser over content. Site-wide ( landing + showcases ): [accurate_rq_snippets_must_parse]. aligns with [phase_1_parse_gate] | 0.057 | |
| every_showcase_ends_in_a_payoff | reqlan rq/site/site.rq | A diagnostic, a query response, a coverage report, or a graph. If there is no tooling output, it is not a showcase. | 0.051 | |
| example_section | reqlan rq/site/site.rq | done | Landing `#example`: one worked graph slice ( imports, file anchors, wildcards, status, tags, tests ). Copy lives in ["../../site/src/content/example.ts"] per [copy]. The slice must parse as accurate reqlan per [accurate_rq_snippets_must_parse]. | 0.091 |
| faq_drift | reqlan rq/site/site.rq | done | The FAQ includes this question: How do you keep `.rq` files from drifting once the code moves on? `.rq` files are code. They are the source of truth. They are not a document. Specify material work as an idea first. Implementation and tests point back with rq-comments per [development_core.code_comment_references] and [development_core.testing]. A check requires each test to serve a requirement. Agents see only the ideas that attach to the files they touch. Mark a replaced idea deprecated and point to the new idea. The indexer flags missing references like a compile check. Copy lives in ["../../site/src/content/faq.ts"] ( item id `drift` ) per [copy] and [faq_page]. The sidebar nests this question as a same-page child per [sidebar_nav]. | 0.057 |
| faq_page | reqlan rq/site/site.rq | done | The site exposes `/faq/` as a statically generated page answering a short set of common questions. Copy lives in ["../../site/src/content/faq.ts"] and stays minimal per [copy]. Support answers point at [support_page_reqs.support_page] and at phonebook surfaces ( GitHub stars, marketplace stars, issues / contribution, GitHub Sponsors, Discord ) rather than inventing URLs. Required topics: - how reqlan supports token efficiency - whether reqlan is the de facto standard for efficient developer-centric context management and semantic mapping - when to use reqlan - how `.rq` files stay in sync with code per [faq_drift] - how to support reqlan ( GitHub stars, GitHub Sponsors, VS Marketplace stars, Discord, contribution, bug reporting ) Sidebar nests FAQ question anchors as same-page children per [sidebar_nav]. Landing nav graph includes FAQ as a page node. | 0.132 |
| featured_in_section | reqlan rq/site/site.rq | done | Landing `#featured-in` after [elevator_pitch_section] and before [motivation_section]. Rolling social-proof banner: label " As featured in: " plus catalogue cards that scroll slowly in a continuous loop. Each card shows an icon and an outbound link label. Required listings ( labels match the catalogue names ): - agentlanguages. dev → https://agentlanguages.dev/languages/reqlan/ - awesome-spec-driven-development → https://github.com/Engineering4AI/awesome-spec-driven-development - awesome-docs → https://github.com/testthedocs/awesome-docs Copy and icons live in ["../../site/src/content/featured.ts"] per [copy]. Icons resolve through [phonebook_icon_component] / [icon_registry]. Links open in a new tab with `rel="noopener noreferrer"`. Pause the scroll on hover or focus. When the visitor prefers reduced motion, show a static row of the same cards with no scroll. Do not put these URLs in the phonebook footer / contact list. Styling per [styling_architecture]. Must stay compatible with [simple_lightweight_and_static]. | 0.122 |
| features_not_demonstrated | reqlan rq/site/site.rq | Deliberately not demonstrated — they do not exist yet. Typed relation kinds, hover cards, autoformatting, JSON / CSV export palette commands, PDF binary, vector-embedding search. Keyword-scored search must not be marketed as semantic search / embeddings. | 0.040 | |
| features_tier_1 | reqlan rq/site/site.rq | The reasons to adopt. All verified as shipping today. | 0.040 | |
| features_tier_2 | reqlan rq/site/site.rq | The depth. Also shipping. | 0.040 | |
| firmware_cloud_contract_showcase | reqlan rq/site/site.rq | done | Flagship. The contract between firmware and cloud. A 10 Hz sample rate and a 50 ms ingest deadline: one invariant, two codebases, neither of which can express it alone. Absorbs half of former glue-semantics and static-connection. | 0.050 |
| footer | reqlan rq/site/site.rq | done | The site footer is on every page via ["../../site/src/components/SiteShell.tsx"]. Copyright copy lives in ["../../site/src/content/meta.ts"] per [copy]. The footer shows phonebook `links` where `show-in-footer` is not false per [phonebook_reqs.show_in_footer]. Icons render through [phonebook_icon_component]. | 0.109 |
| get_started_cta_motion | reqlan rq/site/site.rq | done | The get-started control on [hero_section] shows a moving colour wash on the border and on the button fill. The wash uses the aqua and rust brand colours. The border wash and the fill wash share one spin period and one spin direction. When the visitor prefers reduced motion, show a static fill and a static border. per [styling_architecture] | 0.058 |
| graph_view_showcase | reqlan rq/site/site.rq | done | Depth. See the whole graph. Needs real captured screenshots or a short loop from the actual Cytoscape view — not fake ASCII arrows dressed as. rq. Aligns with [diagrams_are_never_dressed_as_code]. | 0.050 |
| hero_github_star | reqlan rq/site/site.rq | done | The [hero_section] action row shows a Star on GitHub control next to get-started and the install controls. The control opens the GitHub repository from [phonebook_reqs.phonebook] in a new tab. The icon comes from [phonebook_icon_component]. Copy lives in ["../../site/src/content/hero.ts"] per [copy]. The hero control is in addition to [sticky_cta_node] and [support_page_reqs.support_page]. | 0.064 |
| hero_section | reqlan rq/site/site.rq | done | Landing `#hero`: mascot plus a short `.rq` snippet. Copy lives in ["../../site/src/content/hero.ts"] per [copy]. The snippet must parse as accurate reqlan per [accurate_rq_snippets_must_parse]. Install controls are [cta_icon] and [install_cli_menu]; get-started CTA href is `/quickstart` per [quickstart_page]. Get-started motion follows [get_started_cta_motion]. A GitHub star control sits in the action row per [hero_github_star]. | 0.135 |
| icon_registry | reqlan rq/site/site.rq | done | [phonebook_icon_registry] maps phonebook icon keys to bundled Iconify data for the site. A link or package can omit `icon`. If `icon` is present, it must have a matching registry entry. The module throws at startup if a present icon does not resolve. When you add or change an icon in ["../phonebook.json"], update the registry import for that slug. per [development_core.iconify_stack] per [development_core.phonebook_icon_keys] | 0.064 |
| images | reqlan rq/site/site.rq | The source logo is in the / public folder. A sharp dev script is used to generate pngs and favicons etc which should be executed if the svg source logo changes. The script also writes the Open Graph image `/og.png` ( 1200 × 630 ) per [meta_tags]. | 0.046 | |
| install_cli_menu | reqlan rq/site/site.rq | done | The hero has a separate " Install CLI " control. It must not nest inside [cta_icon]. The primary action copies the selected package manager command for [cli_package.cli_package] per [package_manager_preference]. A chevron menu lists npm, pnpm, yarn, and bun. Each command uses the CLI package name from [phonebook_reqs.npm_packages]. A click copies the selected command to the clipboard and stores the preference. The [quickstart_page] CLI and MCP install rows use the same package manager options and the same preference. A copy must not change the last-used editor. | 0.099 |
| interlock_showcase | reqlan rq/site/site.rq | done | Flagship. The interlock that must not fail. `["./plc/interlock.stL#41-58"]` A safety requirement bound to that PLC symbol and line range, line range, to a vitest case by test name, with an rq-comment in the ST source pointing back. Domain: industrial control / IEC 61131. | 0.050 |
| legacy_archaeology_showcase | reqlan rq/site/site.rq | done | Depth. Archaeology on inherited code. An undocumented function, an rq-comment seeded into it, @ deprecated on the old path, then Deprecation Impact listing everything that breaks. Absorbs former scattered-docs page. | 0.045 |
| link_icons | reqlan rq/site/site.rq | The contact link row in [contact_component] renders an icon beside each phonebook link label that has an icon. Footer links that have an icon render through [phonebook_icon_component] per [footer]. per [links] per [development_core.current_link_icons] | 0.057 | |
| links | reqlan rq/site/site.rq | per [phonebook_reqs.phonebook] per [phonebook_reqs.npm_packages] per [phonebook_reqs.show_in_footer] Contact copy lives in ["../../site/src/content/contact.ts"] per [copy]. Contact shows phonebook `links` that are not opted out of the footer, then a Packages subsection for phonebook `packages`. per [link_icons] per [package_icons] | 0.131 | |
| logo | reqlan rq/site/site.rq | - there is a logo in the sidebar. | 0.040 | |
| meta_tags | reqlan rq/site/site.rq | done | The site HTML head must include a document title, a description, a canonical URL, Open Graph tags, and Twitter card tags. Canonical origin is the phonebook `site` href per [phonebook_reqs.phonebook]. Default title and description live in ["../../site/src/content/meta.ts"] per [copy]. Root layout ["../../site/src/app/layout.tsx"] sets the shared metadata: title template `%s · reqlan`, description, icons, manifest, theme colour, Open Graph image, and Twitter `summary_large_image`. Each marketing page must set a title and a description. Showcase and tutorial detail pages use the item title and summary. Open Graph image is 1200 × 630 PNG at `/og.png`, generated with favicons per [images]. Compatible with [simple_lightweight_and_static]. Do not index the presentation player route per [presentation_player_route]. | 0.051 |
| module_surface_showcase | reqlan rq/site/site.rq | done | Depth. A module's published surface. billing / interface. rq exports an ideaset; checkout. rq imports only that; reaching past the boundary is an unresolved-import error. Ideasets-as-public-API is undemonstrated today. Absorbs half of former glue-semantics and module-interface. | 0.045 |
| motivation_section | reqlan rq/site/site.rq | done | Landing `#motivation` after [featured_in_section]: what / why slides for language, extension, CLI, and MCP. Copy lives in ["../../site/src/content/motivation.ts"] per [copy]. | 0.108 |
| nav_graph | reqlan rq/site/site.rq | done | Sticky landing page graph. Node / edge model and labels live in ["../../site/src/content/nav.ts"] per [copy] / [sidebar_nav]. Section nodes match home anchors; page nodes match top-level routes in [routes]. | 0.123 |
| one_worked_example_per_page | reqlan rq/site/site.rq | Consistent identifiers across every block on a page. The reader should trace one name from requirement to source to test to search result without re-orienting. | 0.051 | |
| package_icons | reqlan rq/site/site.rq | The contact Packages row in [contact_component] renders an icon beside each phonebook package label that has an icon. Package entries come from ["../phonebook.json"]. packages per [phonebook_reqs.npm_packages]. per [links] per [development_core.current_link_icons] | 0.070 | |
| package_manager_preference | reqlan rq/site/site.rq | done | The site keeps one global JavaScript package manager value: npm, pnpm, yarn, or bun. The default is npm. All CLI and MCP install commands read and write this one value. Do not keep a separate choice on each control. The value persists in the browser across pages and reloads. Surfaces: [install_cli_menu], [quickstart_page]. Compatible with [simple_lightweight_and_static]. | 0.068 |
| phase_0_honesty_audit | reqlan rq/site/site.rq | pending | In parallel with content rewrite. Fix what the honesty audit surfaced. | 0.040 |
| phase_1_parse_gate | reqlan rq/site/site.rq | done | Make dishonesty impossible. Add a build step that runs the Langium parser over every language- " rq " block in showcase content files and fails on parse errors or unresolved local refs. Do this first so the rewrite cannot reintroduce the current problem. Also expand Shiki language set per [showcase_languages]. | 0.071 |
| phase_2_content_schema | reqlan rq/site/site.rq | done | Extend ShowcaseBlock union and Showcase type per [showcase_module]. Presentation polish can follow in [phase_5_detail_layout]; schema first. | 0.040 |
| phase_3_reqs_as_truth | reqlan rq/site/site.rq | done | This file is the source of truth: one idea per showcase with mechanism, domain, and status; [showcase_set] listing them; refs into showcase content files. Reqlan's own showcase plan is tracked in reqlan. | 0.040 |
| phase_4_write_the_eleven | reqlan rq/site/site.rq | done | Write the eleven, one at a time, each validated by [phase_1_parse_gate] before moving on. Flagships first — [agent_context_showcase], [interlock_showcase], [broken_links_showcase], [firmware_cloud_contract_showcase] — so the format can be judged before committing to all eleven. | 0.040 |
| phase_5_detail_layout | reqlan rq/site/site.rq | done | Detail page layout: beats with captions, mechanism badges distinct from tags, and cross-block highlighting of the shared identifier. | 0.045 |
| phase_6_capture_media | reqlan rq/site/site.rq | done | Capture real media from the extension for [broken_links_showcase] ( diagnostics / quick-fix ) and [graph_view_showcase] ( Cytoscape ). | 0.040 |
| phonebook_icon_component | reqlan rq/site/site.rq | [phonebook_icon_tsx_component] is the site's single render entry point for phonebook icons ( `@iconify/react` ). It accepts an optional phonebook `icon` ref. If the ref is absent, it renders nothing. If the ref is present, it renders an inline SVG with `aria-hidden`. Default sizing uses the `.phonebook-icon` class in ["../../site/src/styles/globals.css"]. Must remain compatible with static export per [simple_lightweight_and_static]. per [development_core.iconify_stack] | 0.102 | |
| presentation_player_route | reqlan rq/site/site.rq | done | `/presentations/player/` is a statically exported Next page that loads runtime deck JSON from `/presentations/decks/` and Reveal from `/presentations/vendor/reveal.js/`. Runtime JSON is generated from authored JSONC by [sync_presentations]. It must not use SiteShell; it is iframe-hosted by tutorial detail pages. Do not place `public/presentations/player/index.html` — that path is owned by the App Router export. | 0.068 |
| quickstart_page | reqlan rq/site/site.rq | done | The site exposes `/quickstart/` as the install / get-started page. Primary path: editor install chooser. Also explains headless [cli_package.cli_package] ( `@reqlan/cli` ) and ["../core-architecture.rq".mcp_package] ( `@reqlan/mcp` ) on the same `.reqlan` index. Package npm hrefs come from [phonebook_reqs.npm_packages], not hardcoded URLs. CLI and MCP install commands offer npm, pnpm, yarn, and bun per [install_cli_menu]. They share one stored preference per [package_manager_preference]. After install steps, it links onward to Tutorials, Showcases, and FAQ so visitors can continue without returning to the home nav. Related link copy lives in ["../../site/src/content/quickstart.ts"] per [copy]. Sidebar nests Extension / CLI / MCP as same-page children per [sidebar_nav]. | 0.113 |
| quiz_sticker_tab | reqlan rq/site/site.rq | done | Home only: a right-edge tab on the home page. It does not mount in root layout or on other routes. Collapsed: a vertical label and the [phonebook_reqs.phonebook] `sticker-form` icon. Open: a short panel. The CTA is a link to [certs_reqs.assessment_page] through ["../../site/src/lib/certs-paths.ts"]. It is not an in-place quiz. Copy lives in ["../../site/src/content/quiz-sticker.ts"] per [copy]. Style with CSS modules per [styling_architecture] and [brand]. Use theme colour tokens. Hide on narrow viewports so it does not cover content. Keep it compatible with [simple_lightweight_and_static] and [sticky_cta_node]. No looping decorative motion. Open and close may change width once. When the visitor prefers reduced motion, do not animate. | 0.101 |
| roadmap_section | reqlan rq/site/site.rq | done | Landing 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 |
| routes | reqlan rq/site/site.rq | Marketing routes are statically generated App Router pages under ["../../site/src/app"]. Home `/` hosts landing sections; other top-level pages include quickstart per [quickstart_page], tutorials, showcase, FAQ per [faq_page], support per [support_page_reqs.support_page], certification per [certs_reqs.certs], and the embedded `/spec` export. per [sidebar_nav] per [faq_page] per [quickstart_page] per [support_page_reqs.support_page] per [certs_reqs.certs] | 0.056 | |
| showcase | reqlan rq/site/site.rq | done | Every showcase demonstrates a mechanism, not a metaphor. Domain problem, the. rq that binds it, the real artifact in another language it binds to, and the thing the tooling hands back. Content is authored in TS objects per [showcase_module], not generated from this file at runtime. This file is the source of truth for intent, ordering, and editorial rules. | 0.040 |
| showcase_languages | reqlan rq/site/site.rq | . rq blocks use the custom site tokenizer. Non-. rq blocks need Shiki coverage beyond today's ts / md / py — add st, c, json, yaml for the flagship domains. aligns with [phase_1_parse_gate] | 0.049 | |
| showcase_module | reqlan rq/site/site.rq | done | Showcases are standardised and typed in TS content objects. Types live in ["../../site/src/content/showcases/types.ts"]. Each showcase is its own file under ["../../site/src/content/showcases"]. ["../../site/src/content/showcases/index.ts"] composes them in [showcase_set] order. Each showcase file carries rq: comment references to its showcase idea and to the product ideas it demonstrates. Short version ( list card ): id, title, summary, tags, mechanism badge. Long version ( detail page ): full blocks array including payoff. Exist as a list page and as a full page per slug. Routes: `/showcase/` and `/showcase/[slug]/` — static export. Block kinds needed beyond today's code | features union: callout — the one-sentence point of the page exchange — query + response, terminal-styled diagnostic — editor-style error with quick-fixes diagram — visually distinct from code; never language- " rq " caption / mechanism fields on the showcase object Copy stays minimal and show-don ' t-tell, aligned with site copy rules. | 0.057 |
| showcase_plan | reqlan rq/site/site.rq | Ideaset (showcase_plan) | 0.040 | |
| showcase_problems | reqlan rq/site/site.rq | Three concrete failures of the current set: Invalid reqlan. Samples use illegal attribute forms ( colon-list tags, pipe-scalar plans, nested reference objects ) that do not parse against the langium grammar. For a language project, shipping invalid samples on the marketing site is an own-goal. Prose dressed as semantics. A file ref followed by the word " implements " and an idea ref reads like a typed relation, but " implements " is body text. Reqlan has five edge kinds ( references, wildcard_reference, file_reference, ideaset_member, import, comment_link ) and none are user-declared. We imply a feature that does not exist while hiding the ones that do. Vapor features. Graph showcase tells people to run Reqlan: Export JSON, which is not registered. The docs-attribute page is built around an attribute with no special tooling. | 0.040 | |
| showcase_rules | reqlan rq/site/site.rq | Four editorial rules. Enforced in content and, where possible, at build time. See [every_rq_block_must_parse], [every_showcase_ends_in_a_payoff], [one_worked_example_per_page], [diagrams_are_never_dressed_as_code]. | 0.040 | |
| showcase_rules_set | reqlan rq/site/site.rq | Ideaset (showcase_rules_set) | 0.040 | |
| showcase_set | reqlan rq/site/site.rq | Ideaset (showcase_set) | 0.053 | |
| showcase_thesis | reqlan rq/site/site.rq | Current showcases demonstrate the syntax, not the toolset. A reader who finishes them thinks: you can write sentences in curly brackets. Nothing shows what you get back — no query and answer, no diagnostic, no graph, no round trip. The upgrade thesis: every showcase demonstrates one mechanism against a real domain problem. Code in, artifact out. No showcase ships without a payoff block. | 0.040 | |
| sidebar_nav | reqlan rq/site/site.rq | done | The site sidebar is a hierarchical page nav, not a flat list of mixed anchors and routes. Top-level entries are pages ( or the home hub ). Same-page section anchors nest as children under their parent page. Children render only while the visitor is on that parent page — off-page section lists stay collapsed so the sidebar reflects the current route. Until pathname is known after mount, children stay closed ( do not default to Home ) so static HTML / hydration does not flash a mismatched hierarchy. The active page uses `aria-current="page"`; the in-view same-page section uses `aria-current="location"` when known. Nav model and labels live in ["../../site/src/content/nav.ts"] per [copy]; the Sidebar client reads pathname ( and hash / section when on home ) to decide expansion and current markers. FAQ is a top-level page entry per [faq_page]. Support is a top-level page entry per [support_page_reqs.support_page]. Sidebar nests Support section anchors as same-page children. | 0.187 |
| simple_lightweight_and_static | reqlan rq/site/site.rq | must be fully statically exported for GitHub Pages. All routes, including showcase detail pages, are generated at build time. The deploy workflow must upload only static HTML, JS, and assets from site / out. Build also embeds the workspace requirement graph under `/spec` per [spec_html_export]. | 0.116 | |
| site | reqlan rq/site/site.rq | the / site folder contains a static Next. js App Router landing page for reqlan. should align with [brand] Copy modules: [copy] Document head: [meta_tags] | 0.040 | |
| spec_html_export | reqlan rq/site/site.rq | done | The site static build exports the workspace requirement graph ( excluding `*.secret.rq` ) under `out/spec/` via `reqlan export`. It must pass [html_export.html_export_url_base] for `/spec` ( honouring `SITE_BASE_PATH`, e. g. `/reqlan/spec` in production ) so `/spec` loads with or without a trailing slash. It must pass [html_export.html_export_header_link] pointing at the marketing site home so readers can leave the embedded spec and return to the parent site. Embedded `/spec` graph pages inherit [html_export.html_export_graph_background_load] so large workspace graphs do not freeze the page while settling. Pipeline: ["../../site/scripts/build-static.mts"] → ["../../site/scripts/export-spec.mts"] → ["../../site/scripts/verify-static-export.mts"]. Host options come from [html_export.html_export] / CLI [cli_package.commands], including native CLI export via ["../core_analysis/rust_port.rq".native_bridge]. CI must build / stage host `reqlan-napi` before this pipeline ( [distribution_reqs.site_distribution] ); the loader probes repo-root `crates/target`, not `packages/crates`. | 0.142 |
| sticky_cta_node | reqlan rq/site/site.rq | done | Root layout ["../../site/src/app/layout.tsx"] hosts a sticky, draggable button tray on marketing pages. The tray stays in the viewport. Drag starts from a dedicated handle only — action links must not capture pointer or begin a drag. The drag / hit box is the button tray only ( `width` / `height`: fit-content ). Labels and tooltips overlay outside that box; they must not enlarge it. Compact state is icon-only. Hover / focus expands the matching label as a tooltip beside ( web ) or above ( mobile ) the icon, flipped if the tray is near that viewport edge. Narrow ( mobile ) viewports show one action: star the GitHub repository. Wider ( web ) viewports also show " Try the extension ", which opens [quickstart_page]. GitHub href and icons come from [phonebook_reqs.phonebook] / [phonebook_icon_component], not hardcoded URLs or ad-hoc glyphs. Copy lives in ["../../site/src/content/sticky-cta.ts"] per [copy]. Do not show the tray on the presentation player route per [presentation_player_route]. | 0.114 |
| story_codebase_showcase | reqlan rq/site/site.rq | done | Flagship. A story that ships with the code. Write the feature as one idea. Bind source with @ implementation. Bind proof with @ tests. Point back with rq: comments. Click on that name returns the bound files — not a ticket outside the repo. Domain: product delivery. One worked name across every block per [one_worked_example_per_page]. Payoff is click output per [every_showcase_ends_in_a_payoff] and ["../cli/click.rq".click]. Uses [development_core.code_comment_references] and [development_core.testing]. Demonstrates [sub_file_binding] and [bidirectional_comment_links]. | 0.046 |
| styling_architecture | reqlan rq/site/site.rq | styling should be handled primarily at the compoenent level with co-located css module files that are imported in the react components. | 0.094 | |
| sub_file_binding | reqlan rq/site/site.rq | Symbol refs `["auth.ts".login]`, line ranges ["adc.cL#41-58"], and test-name anchors ["x.test.ts:rejects expired token"]. Requirements attach to code at symbol granularity, in any language. | 0.051 | |
| sync_config_schema | reqlan rq/site/site.rq | done | `scripts/sync-config-schema.mts` copies the canonical base config JSON Schema from ["../../packages/extension/schemas/config.schema.json"] into `public/schemas/v1/config.schema.json`. Public URL: `https://reqlan.com/schemas/v1/config.schema.json` ( path `v1` is schema compatibility; not site package semver ). Canonical authoring and `$id`: ["../extension/host/configuration.rq".configuration_schema_file]. Init seed `$schema`: ["../extension/host/installation.rq".base_config_seed]. Wired into site `predev` and `build-static` ( same pattern as [sync_presentations] ). Deployed with existing `site/v*` pipeline. Synced artifact is not a second authoring source; do not edit under `public/schemas/`. | 0.054 |
| sync_presentations | reqlan rq/site/site.rq | done | `scripts/sync-presentations.mts` reads authored `*.jsonc` decks and `manifest.jsonc`, emits comment-free `*.json` for the static player, and syncs assets / vendor into `public/presentations/`. | 0.067 |
| syntax_section | reqlan rq/site/site.rq | done | Landing `#syntax`: self-explanatory rule + practical snippet pairs ( show, don't tell ). Copy lives in ["../../site/src/content/syntax.ts"] per [copy]. Highlighting languages follow [code_block_styling]. language- " rq " pairs must parse per [accurate_rq_snippets_must_parse]. | 0.091 |
| test_proves_showcase | reqlan rq/site/site.rq | done | Depth. What this test actually proves. Keep the intent of the former test-explanation page; upgrade it with a real test-name anchor and the reverse direction from test file back to intent. | 0.045 |
| tutorial_location_crumb | reqlan rq/site/site.rq | done | Tutorial detail chrome shows a compact location trail: catalog → course → lesson → slide. Hierarchy must be obvious without a wide single-line title dump. Layout: each tier is a stacked chip — role ( and optional completion control ) on the top row; title / index value muted underneath. Titles colour up on hover, focus-within, or when the peer menu is open. **Folder navigation: ** each tier acts like a path segment / folder. Hover or focus reveals a peer menu for that level of the tree so the user can jump without using the transport row: - catalog → courses ( enter first lesson of the chosen course, or the catalog index ) - course → peer courses - lesson → peer lessons in the active course - slide → peer slides in the active lesson ( updates the embedded player / `?slide=` ) Current peer is marked; menus stay keyboard-reachable via focus-within. **Sizing: ** the crumb container grows to fit text; wrap before truncating. Ellipsis only as a last resort on very narrow viewports — do not cap chip width so aggressively that titles ellipsize while space remains. Course deep-links also exist at `/tutorials/#course-<series>`; catalog at `/tutorials/`. Slide shows `n/total` and updates live with the embedded player. Completion toggles stay on the role row. The crumb lesson tier always shows the **current** lesson only — it must not share hover / preview state with the transport lesson step dots. Step-dot hover may preview a title near the dots, never in the crumb. | 0.046 |
| tutorial_player_transport | reqlan rq/site/site.rq | done | The `<` control must show the previous slide when the player can go back. When the player cannot go back, `<` must open the previous lesson if that lesson exists. Open that lesson on the last slide. The `>` control must show the next slide when the player can go forward. When the player cannot go forward, `>` must open the next lesson if that lesson exists. Open that lesson on the first slide. The Left Arrow key and the Right Arrow key must do the same as `<` and `>`. Shift + Left Arrow and Shift + Right Arrow must open the adjacent lesson from any slide. The `<<` and `>>` controls must continue to open the adjacent lesson. After the current lesson player is ready, the shell must start to load the next lesson player in the background. The shell must prefetch the next lesson page. The shell must ignore state messages from the background player. | 0.046 |
| tutorials_section | reqlan rq/site/site.rq | done | The site exposes `/tutorials` and `/tutorials/[slug]/` as statically generated pages. Catalog and deck ids come from authored ["../../presentations/manifest.jsonc"]. Each detail page embeds the Reveal player iframe at `/presentations/player/?deck=<id>` using [assets] / SITE_BASE_PATH-aware `sitePath`. Each detail page hosts a unified transport chrome ( `<<` `<` steps `>` `>>` ) that drives slide nav in the embedded player via postMessage, plus lesson jumps ( [tutorial_player_transport] ). Location hierarchy chrome: [tutorial_location_crumb]. Blurb and try-this live on the catalog and inside the slides, not as page chrome. The player is an App Router page ( [presentation_player_route] ) so it static-exports under `trailingSlash` without colliding with `public/` HTML. Sync ( [sync_presentations] ) converts authored deck / catalog JSONC under ["../../presentations/"] into runtime JSON under `public/presentations/`, and copies assets plus vendored Reveal. js ( player shell excluded ). The catalog links to [certs_reqs.assessment_page] for certification. | 0.046 |
| workflow | reqlan rq/site/site.rq | Site deployment runs when an `site/v*` tag is pushed. Tags are created automatically on main by the release workflow per [distribution_reqs.deployment_flow]. The site workflow does not deploy on ordinary commits. per [distribution_reqs.site_distribution] | 0.040 |
Cluster graph
Initialising graph…