Skip to content

UI Fixes: Consistent styling and layouts#3416

Open
asl677 wants to merge 39 commits intomainfrom
fix/guides-page-ui-styles
Open

UI Fixes: Consistent styling and layouts#3416
asl677 wants to merge 39 commits intomainfrom
fix/guides-page-ui-styles

Conversation

@asl677
Copy link
Collaborator

@asl677 asl677 commented Jan 29, 2026

Summary

Standardizes UI styles across docs, guides, and templates pages.


Core Styling Changes

  • Consistent prose typography - Standardized h1, body text, and list styles
  • Unified card styles - All cards use rounded-xl border bg-card shadow pattern
  • Badge standardization - Replace IconBadge with standard Badge component
  • Consistent max-widths - Aligned page widths across docs, templates, and guides
  • Mobile nav z-index fix - Fixed mobile menu overlay issue
  • Image/video borders - Added consistent borders and radii to media components
  • CTACards grouped mode - New stacked card layout matching guide cards
  • Breadcrumb cleanup - Removed from top-level index pages

Guides Overview Changes (can be reviewed separately)

  • Icon-based cards - Replaced large preview images with compact icon cards
  • Language/tag badges on cards - Show TypeScript/Python badges between title and description
  • GuideIcon above titles - Display icon from navigation config on detail pages
  • GuideBadges below titles - Standard badges from frontmatter on detail pages

All changes are on this branch. The guides overview changes can be reverted independently if needed.


Note

Low Risk
Primarily presentational changes (layout/typography/navigation UI) with minimal logic; risk is limited to regressions in docs page rendering and guide navigation display.

Overview
Standardizes docs, guides, and templates page presentation: updates layouts to use consistent widths (max-w-5xl/6xl), min-w-0/overflow-x-* to prevent horizontal overflow, and a unified prose typography setup (plus Tailwind typography tokenization and global overflow-x: clip).

Refreshes guide UX by replacing preview-image based guide cards with compact icon cards showing language/tag badges, adding GuideIcon on guide detail pages, and introducing MDX-usable GuideBadges (also updating several guide MDX files to render them).

Unifies component styling across cards/badges/media: replaces IconBadge usage in getting-started docs with standard Badge, adds grouped/stacked CTACards mode matching guide-card styling, applies consistent rounded/bordered image styling in MDXRenderer/ZoomImg, refactors top-nav utility controls into a reusable component, and hides breadcrumbs on top-level index pages (removing templates breadcrumbs entirely).

Written by Cursor Bugbot for commit b7e1671. This will update automatically on new commits. Configure here.

Cursor Bugbot reviewed your changes and found no issues for commit b7e1671

@vercel
Copy link

vercel bot commented Jan 29, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs-v2 Ready Ready Preview, Comment Feb 4, 2026 10:46pm

Request Review

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 29, 2026

Summary by CodeRabbit

  • New Features

    • Icons on guide cards for quicker recognition
    • Guide metadata badges (languages & tags) displayed in guides
    • Grouped option for call-to-action cards (compact horizontal layout)
    • Consolidated utility controls in the header
  • Improvements

    • Refined, theme-aware typography and prose styling
    • Updated card, badge, alert, and image visuals for consistency
    • Site-wide responsive width/centering and improved overflow handling
    • Horizontal scrolling enabled for wide content blocks
  • Bug Fixes

    • Resolved various overflow and container width issues across pages

Walkthrough

Replaces image-based guide previews with icon-driven cards and badges; removes preview frontmatter and GuidePreview; adds GuideIcon/GuideBadges, guide metadata lookup, CTACards grouped mode, UtilityControls, and multiple layout/typography/styling adjustments across the docs app.

Changes

Cohort / File(s) Summary
Guides pages & layouts
apps/framework-docs-v2/src/app/(guides)/guides/page.tsx, apps/framework-docs-v2/src/app/(guides)/layout.tsx, apps/framework-docs-v2/src/app/(docs)/.../page.tsx, apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx, apps/framework-docs-v2/src/app/(docs)/layout.tsx, apps/framework-docs-v2/src/app/page.tsx, apps/framework-docs-v2/src/app/layout.tsx, apps/framework-docs-v2/src/app/templates/*
Semantic header and container adjustments; added min-w-0, horizontal overflow handling, conditional breadcrumb hiding, padding and max-width refinements.
Guide card & grid
apps/framework-docs-v2/src/components/guides/guide-card.tsx, apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx, apps/framework-docs-v2/src/components/guides/guide-form.tsx, apps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsx
Removed preview props/logic; added iconName?: string; cards now render icons via getGuideIcon; adjusted typography, spacing, and read action placement; grid passes iconName.
Guide icons, header components & navigation
apps/framework-docs-v2/src/components/guides/guide-icons.ts, apps/framework-docs-v2/src/components/guides/guide-header.tsx, apps/framework-docs-v2/src/config/navigation.ts, apps/framework-docs-v2/src/components/guides/guide-constants.ts
Added IconFileCode mapping; new GuideIcon and GuideBadges components and LANGUAGE_DISPLAY_NAMES; removed preview fields from serialized guides; added getGuideMetadataBySlug and icon-name serialization.
MDX renderer, exports & content
apps/framework-docs-v2/src/components/mdx-renderer.tsx, apps/framework-docs-v2/src/components/mdx/index.ts, apps/framework-docs-v2/content/guides/*.mdx
Registered/exported GuideBadges and added an img MDX renderer; many guide MDX files now include <GuideBadges />.
CTACards & MDX cards
apps/framework-docs-v2/src/components/mdx/cta-card.tsx, apps/framework-docs-v2/src/components/mdx/*
Added grouped rendering mode (grouped?: boolean) and internal _grouped flag; new HorizontalCardContent helper and grouped container with dividers for horizontal grouping.
Badges & content replacements
apps/framework-docs-v2/src/components/ui/badge, apps/framework-docs-v2/content/moosestack/*, apps/framework-docs-v2/content/*
Replaced IconBadge usages with new Badge (outline variant) across moosestack docs; adjusted spacing and wrappers.
Removed preview component & frontmatter
apps/framework-docs-v2/src/components/guides/guide-preview.tsx, apps/framework-docs-v2/src/lib/content-types.ts
Deleted GuidePreview and related types; removed previewVariant and previewImageIndexFile from frontmatter types.
UI primitives & styling
apps/framework-docs-v2/src/components/ui/alert.tsx, apps/framework-docs-v2/src/components/ui/sidebar.tsx, apps/framework-docs-v2/src/components/page.tsx, apps/framework-docs-v2/src/components/mdx/*, apps/framework-docs-v2/src/styles/globals.css, apps/framework-docs-v2/tailwind.config.ts
Visual updates: larger radii/shadows, alert typography tweaks, image borders/rounding, global overflow-x clipping, and extensive prose/typography theming in Tailwind config.
Navigation header / utility controls
apps/framework-docs-v2/src/components/navigation/top-nav.tsx, apps/framework-docs-v2/src/components/navigation/utility-controls.tsx
Consolidated desktop controls into UtilityControls; restructured mobile header panel to use UtilityControls and reorganized mobile menu items.
MDX component barrel
apps/framework-docs-v2/src/components/mdx/index.ts
Re-exported GuideBadges for MDX usage.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Suggested reviewers

  • callicles
  • oatsandsugar
  • 03cranec

Poem

Icons take the spotlight, previews fade,
Badges bloom above each guide displayed.
Cards grouped neat, controls combined,
Prose reborn and layouts aligned.
A little polish — docs serenely made. ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 37.50% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main changes: standardized UI styling and layouts across multiple documentation pages.
Description check ✅ Passed The description is comprehensive and directly related to the changeset, covering core styling changes, guides overview changes, and architectural improvements.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/guides-page-ui-styles

📜 Recent review details

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 76ccbfb and b7e1671.

📒 Files selected for processing (4)
  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/src/config/navigation.ts
🧰 Additional context used
📓 Path-based instructions (5)
**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Run linting checks before submitting PRs for TypeScript/JavaScript code

**/*.{ts,tsx,js,jsx}: Group imports by external dependencies, internal modules, and types; use named exports from barrel files (index.ts)
Use camelCase for variables and functions, PascalCase for types/classes/components, UPPER_SNAKE_CASE for constants in TypeScript/JavaScript
Prefix unused variables with underscore (e.g., _unusedParam) to bypass linting errors in TypeScript/JavaScript
Format TypeScript/JavaScript code with Prettier using experimentalTernaries: true; auto-formats on commit via Husky + lint-staged

Files:

  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/src/config/navigation.ts
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
apps/framework-docs-v2/src/**/*.{ts,tsx}

📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)

Component library must use shadcn/ui components located in src/components/ui/

Files:

  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/src/config/navigation.ts
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Prefer interfaces for objects, types for unions/intersections in TypeScript; explicit return types on public APIs

Files:

  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/src/config/navigation.ts
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
apps/framework-docs-v2/content/**/*.mdx

📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)

apps/framework-docs-v2/content/**/*.mdx: Use {{ include "shared/path.mdx" }} directives to reuse content fragments, which are processed via processIncludes() during build
Validate code snippets in documentation with the @test directive for TypeScript and Python code blocks
TypeScript code snippets in documentation should be validated for syntax with brace matching; Python snippets should be validated for indentation

Files:

  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
apps/framework-docs-v2/content/guides/**/*.mdx

📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)

Guide MDX files in content/guides/ must include frontmatter with title and description fields

Files:

  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
🧠 Learnings (16)
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Add new guides to `guidesNavigationConfig` in `src/config/navigation.ts` with required fields: type, slug, title, icon, languages, and status (start as 'draft')

Applied to files:

  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/src/config/navigation.ts
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/content/guides/**/*.mdx : Guide MDX files in `content/guides/` must include frontmatter with title and description fields

Applied to files:

  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Use Vercel Toolbar feature flags for visibility control: `show-draft-guides`, `show-beta-guides`, `show-hosting-section`, `show-ai-section`, `show-copy-as-markdown`, `show-linear-integration`

Applied to files:

  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
📚 Learning: 2026-01-15T19:41:53.563Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: examples/cdp-analytics/CLAUDE.md:0-0
Timestamp: 2026-01-15T19:41:53.563Z
Learning: Applies to examples/cdp-analytics/web-app/src/features/dashboard/*.tsx : Dashboard components should follow React hooks patterns: use useState for local data, useEffect for data fetching, handle errors with fallback data, and wrap visualizations in Card/CardHeader/CardContent from Radix UI

Applied to files:

  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/content/**/*.mdx : Use `{{ include "shared/path.mdx" }}` directives to reuse content fragments, which are processed via `processIncludes()` during build

Applied to files:

  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
📚 Learning: 2026-01-27T17:36:29.854Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: examples/nextjs-moose/CLAUDE.md:0-0
Timestamp: 2026-01-27T17:36:29.854Z
Learning: Applies to examples/nextjs-moose/components/dashboard/**/*.ts : Dashboard hooks must call server actions (not moose functions directly) to decouple React components from ClickHouse implementation details

Applied to files:

  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
📚 Learning: 2026-01-15T19:41:53.563Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: examples/cdp-analytics/CLAUDE.md:0-0
Timestamp: 2026-01-15T19:41:53.563Z
Learning: For slow dashboard queries (>500ms) that aggregate across multiple tables or need cohort-based breakdowns, implement a materialized view instead of real-time queries

Applied to files:

  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
📚 Learning: 2026-01-27T17:36:29.854Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: examples/nextjs-moose/CLAUDE.md:0-0
Timestamp: 2026-01-27T17:36:29.854Z
Learning: The moose query layer represents a two-step OLAP migration pattern: Step 1 (not shown) shifts just-in-time joins to write-time via Materialized Views; Step 2 (this demo) accelerates endpoint creation with the query layer. This architecture assumes MVs/OLAP tables already exist and focuses on the read-time query selection and filtering layer

Applied to files:

  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
📚 Learning: 2026-01-28T14:50:00.978Z
Learnt from: cjus
Repo: 514-labs/moosestack PR: 3407
File: apps/framework-docs-v2/content/guides/static-report-generation.mdx:1402-1406
Timestamp: 2026-01-28T14:50:00.978Z
Learning: When reviewing WebApp implementations that run in a Node.js backend, prefer Node.js-specific types (e.g., Buffer) and avoid browser-focused cross-platform compatibility considerations. This guideline applies to MDX documentation and code examples across the repository where backend/runtime code is discussed; ensure reviewers distinguish server-side context from frontend/browser constraints and validate type usage accordingly.

Applied to files:

  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
📚 Learning: 2026-01-28T14:55:13.411Z
Learnt from: cjus
Repo: 514-labs/moosestack PR: 3407
File: apps/framework-docs-v2/content/guides/static-report-generation.mdx:1585-1616
Timestamp: 2026-01-28T14:55:13.411Z
Learning: In documentation and tutorial files under apps/framework-docs-v2/content/guides/, prefer explicit, self-contained code examples that may duplicate small snippets for clarity over abstracting with DRY helpers. Ensure examples are easy to understand in isolation, even if it means a bit of repetition, to aid learning and reduce cognitive load for readers.

Applied to files:

  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Navigation configuration must be manually maintained in `src/config/navigation.ts` and not auto-generated from file structure

Applied to files:

  • apps/framework-docs-v2/src/config/navigation.ts
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Guide promotion workflow: start guides with `status: "draft"` in navigation config, then progress to `status: "beta"`, finally remove status field for public release

Applied to files:

  • apps/framework-docs-v2/src/config/navigation.ts
📚 Learning: 2026-02-01T23:07:12.361Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-01T23:07:12.361Z
Learning: Applies to **/*.{ts,tsx} : Prefer interfaces for objects, types for unions/intersections in TypeScript; explicit return types on public APIs

Applied to files:

  • apps/framework-docs-v2/src/config/navigation.ts
📚 Learning: 2026-01-27T17:36:29.854Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: examples/nextjs-moose/CLAUDE.md:0-0
Timestamp: 2026-01-27T17:36:29.854Z
Learning: Applies to examples/nextjs-moose/app/actions.ts : Server actions must import query functions from the moose package and wrap them, serving as the bridge between frontend React components and backend moose query functions

Applied to files:

  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/src/**/*.{ts,tsx} : Component library must use shadcn/ui components located in `src/components/ui/`

Applied to files:

  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
📚 Learning: 2026-01-08T18:32:03.114Z
Learnt from: DatGuyJonathan
Repo: 514-labs/moosestack PR: 3170
File: apps/framework-docs-v2/src/components/copy-page-button.tsx:36-38
Timestamp: 2026-01-08T18:32:03.114Z
Learning: Enforce the following multiline ternary formatting for conditional JSX without parentheses: place the condition and the '?' on the first line, place the true branch on the next indented line, and place the ':' plus the false branch on the third line. This pattern is commonly used for copy/check icon toggles in the moosestack repository (apps/framework-docs-v2). Apply this style to all TSX files under apps/framework-docs-v2/src/**/*.tsx to ensure consistency and readability.

Applied to files:

  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
🔇 Additional comments (6)
apps/framework-docs-v2/src/components/mdx/index.ts (1)

50-50: Export wiring looks correct.

apps/framework-docs-v2/src/components/mdx-renderer.tsx (2)

1-6: Import change is fine.


120-124: GuideBadges exposure in MDX components looks good.

apps/framework-docs-v2/content/guides/performant-dashboards.mdx (1)

7-23: GuideBadges import + placement are consistent.

apps/framework-docs-v2/src/config/navigation.ts (2)

1717-1737: IconFileCode mapping looks good.


1827-1832: Confirm lint checks ran for these TS changes.
As per coding guidelines, run linting checks before submitting PRs for TypeScript/JavaScript code.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@asl677 asl677 changed the title refactor(docs): simplify guides page UI styles Guides: Simplify Overview page UI styles Jan 29, 2026
@asl677 asl677 changed the title Guides: Simplify Overview page UI styles Guides Polish: Simplify Overview page UI styles Jan 29, 2026
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@apps/framework-docs-v2/src/app/`(guides)/guides/page.tsx:
- Around line 87-89: The Slack icon rendered by IconBrandSlack is decorative and
should be hidden from screen readers; add aria-hidden="true" to the
IconBrandSlack element so the ARIA attribute is forwarded to the underlying SVG
(update the JSX where IconBrandSlack is used to include aria-hidden="true").
Ensure you only modify the IconBrandSlack component instance and do not change
surrounding semantics or visible text.

In `@apps/framework-docs-v2/src/components/guides/guide-card.tsx`:
- Around line 47-52: The Button component is currently rendering a <button>
inside a Link (<a>), causing invalid HTML—update the Button usage in
guide-card.tsx to use the asChild prop so it will render the provided Link
element instead of a nested button; specifically, wrap the existing Link (or
change the Link to be the child) and pass asChild to the Button component
(referencing the Button component instance and the surrounding Link element in
guide-card.tsx) so the DOM outputs a single anchor with button styling and
preserves accessibility.
📜 Review details

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 88efa91 and 4bd4c92.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (5)
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
  • apps/framework-docs-v2/src/components/guides/guide-icons.ts
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
  • apps/framework-docs-v2/src/config/navigation.ts
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Run linting checks before submitting PRs for TypeScript/JavaScript code

**/*.{ts,tsx,js,jsx}: Group imports by external dependencies, internal modules, and types; use named exports from barrel files (index.ts)
Use camelCase for variables and functions, PascalCase for types/classes/components, UPPER_SNAKE_CASE for constants in TypeScript/JavaScript
Prefix unused variables with underscore (e.g., _unusedParam) to bypass linting errors in TypeScript/JavaScript

Files:

  • apps/framework-docs-v2/src/components/guides/guide-icons.ts
  • apps/framework-docs-v2/src/config/navigation.ts
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Prefer interfaces for objects, types for unions/intersections; use explicit return types on public APIs in TypeScript

Files:

  • apps/framework-docs-v2/src/components/guides/guide-icons.ts
  • apps/framework-docs-v2/src/config/navigation.ts
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
apps/framework-docs-v2/src/**/*.{ts,tsx}

📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)

Component library must use shadcn/ui components located in src/components/ui/

Files:

  • apps/framework-docs-v2/src/components/guides/guide-icons.ts
  • apps/framework-docs-v2/src/config/navigation.ts
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
apps/framework-docs-v2/src/app/**/page.tsx

📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)

All pages in the documentation site must use generateStaticParams for static site generation (SSG)

Files:

  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
🧠 Learnings (6)
📓 Common learnings
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Add new guides to `guidesNavigationConfig` in `src/config/navigation.ts` with required fields: type, slug, title, icon, languages, and status (start as 'draft')
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Use Vercel Toolbar feature flags for visibility control: `show-draft-guides`, `show-beta-guides`, `show-hosting-section`, `show-ai-section`, `show-copy-as-markdown`, `show-linear-integration`
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Guide promotion workflow: start guides with `status: "draft"` in navigation config, then progress to `status: "beta"`, finally remove status field for public release
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Add new guides to `guidesNavigationConfig` in `src/config/navigation.ts` with required fields: type, slug, title, icon, languages, and status (start as 'draft')

Applied to files:

  • apps/framework-docs-v2/src/components/guides/guide-icons.ts
  • apps/framework-docs-v2/src/config/navigation.ts
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/src/**/*.{ts,tsx} : Component library must use shadcn/ui components located in `src/components/ui/`

Applied to files:

  • apps/framework-docs-v2/src/components/guides/guide-icons.ts
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Navigation configuration must be manually maintained in `src/config/navigation.ts` and not auto-generated from file structure

Applied to files:

  • apps/framework-docs-v2/src/config/navigation.ts
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/content/guides/**/*.mdx : Guide MDX files in `content/guides/` must include frontmatter with title and description fields

Applied to files:

  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
📚 Learning: 2026-01-08T18:32:03.114Z
Learnt from: DatGuyJonathan
Repo: 514-labs/moosestack PR: 3170
File: apps/framework-docs-v2/src/components/copy-page-button.tsx:36-38
Timestamp: 2026-01-08T18:32:03.114Z
Learning: Enforce the following multiline ternary formatting for conditional JSX without parentheses: place the condition and the '?' on the first line, place the true branch on the next indented line, and place the ':' plus the false branch on the third line. This pattern is commonly used for copy/check icon toggles in the moosestack repository (apps/framework-docs-v2). Apply this style to all TSX files under apps/framework-docs-v2/src/**/*.tsx to ensure consistency and readability.

Applied to files:

  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
🧬 Code graph analysis (2)
apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx (1)
apps/framework-docs-v2/src/components/guides/guide-card.tsx (1)
  • GuideCard (16-57)
apps/framework-docs-v2/src/components/guides/guide-card.tsx (1)
apps/framework-docs-v2/src/components/guides/guide-icons.ts (1)
  • getGuideIcon (49-54)
🔇 Additional comments (4)
apps/framework-docs-v2/src/config/navigation.ts (2)

1712-1732: IconFileCode serialization mapping looks good.
Please confirm IconFileCode exists in the pinned @tabler/icons-react version to avoid runtime import errors.


1784-1788: “Popular” header addition is clear.

apps/framework-docs-v2/src/components/guides/guide-icons.ts (1)

1-47: IconFileCode is wired into the public icon map.
Please confirm the icon is exported by the current @tabler/icons-react version.

apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx (1)

8-35: Compact section styling and iconName wiring look good.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
apps/framework-docs-v2/src/components/mdx/bullet-points-card.tsx (1)

271-281: Redundant maxWidth prop can be dropped.
BulletPointCard already defaults to "w-full".

Proposed cleanup
-    <BulletPointCard className={className} compact={compact} maxWidth="w-full">
+    <BulletPointCard className={className} compact={compact}>
apps/framework-docs-v2/src/components/mdx/icon-badge.tsx (1)

11-31: The variant prop is unused.

The variant prop is declared but never applied to the styling logic. The component now uses fixed bg-muted border-border text-muted-foreground regardless of variant value. If variants are intentionally removed, consider removing the prop from the interface to avoid confusion.

♻️ Remove unused prop if variants are deprecated
 interface IconBadgeProps {
   Icon?:
     | React.ComponentType<IconProps>
     | React.FC<React.SVGProps<SVGSVGElement>>
     | string;
   label: string;
-  variant?: "moose" | "boreal" | "sloan" | "default";
   rounded?: "md" | "full";
   className?: string;
 }

 export function IconBadge({
   Icon,
   label,
-  variant = "moose",
   rounded = "md",
   className,
 }: IconBadgeProps) {
apps/framework-docs-v2/src/app/(guides)/guides/page.tsx (1)

39-45: Remove unused frontmatter properties.

previewVariant, previewImageIndexFile, languages, and tags are loaded but no longer passed to GuideCard (which now only uses iconName). This is dead code adding unnecessary processing.

♻️ Proposed cleanup
           try {
             const content = await parseMarkdownContent(guide.slug);
             return {
               ...guide,
-              previewVariant: content.frontMatter.previewVariant,
-              previewImageIndexFile: content.frontMatter.previewImageIndexFile,
-              languages: content.frontMatter.languages,
-              tags: content.frontMatter.tags,
             };
           } catch (error) {
🤖 Fix all issues with AI agents
In `@apps/framework-docs-v2/src/components/ui/alert.tsx`:
- Line 64: Replace the inline style usage style={{ color: "var(--tw-prose-body)"
}} in the Alert component with a Tailwind utility to keep styling consistent;
update the element in apps/framework-docs-v2/src/components/ui/alert.tsx (the
JSX node that currently uses style) to use either
className="text-[color:var(--tw-prose-body)]" or a custom utility class (e.g.,
add a .text-prose-body in your CSS and use className="text-prose-body") so the
color is applied via className rather than inline style.

In `@apps/framework-docs-v2/src/styles/globals.css`:
- Around line 101-116: Add a CSS config block to biome.json enabling Tailwind
directives so Biome will parse globals.css (which uses `@layer` and `@apply`);
specifically, in biome.json add or update the "css" section with
"tailwindDirectives": true (ensuring the config targets globals.css) so the
Tailwind directives used in the .container and .prose rules are recognized and
linting won’t fail.
- Around line 82-98: Enable Biome's Tailwind directive support to silence lint
warnings for the `@apply` rules used in the global CSS (e.g., the body selector
using "@apply bg-background text-foreground" and other `@apply` occurrences).
Update the Biome config to enable the CSS linter and Tailwind directives support
(add a "css": { "linter": { "enabled": true } } block and enable
tailwindDirectives / Tailwind parser integration per Biome docs) so the linter
recognizes `@apply` instead of flagging false positives.
📜 Review details

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 4bd4c92 and e0a6120.

📒 Files selected for processing (21)
  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/layout.tsx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
  • apps/framework-docs-v2/src/app/(guides)/layout.tsx
  • apps/framework-docs-v2/src/app/components/page.tsx
  • apps/framework-docs-v2/src/app/layout.tsx
  • apps/framework-docs-v2/src/app/page.tsx
  • apps/framework-docs-v2/src/app/templates/layout.tsx
  • apps/framework-docs-v2/src/app/templates/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
  • apps/framework-docs-v2/src/components/guides/guide-form.tsx
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
  • apps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsx
  • apps/framework-docs-v2/src/components/mdx/bullet-points-card.tsx
  • apps/framework-docs-v2/src/components/mdx/feature-cards.tsx
  • apps/framework-docs-v2/src/components/mdx/icon-badge.tsx
  • apps/framework-docs-v2/src/components/ui/alert.tsx
  • apps/framework-docs-v2/src/components/ui/sidebar.tsx
  • apps/framework-docs-v2/src/styles/globals.css
  • apps/framework-docs-v2/tailwind.config.ts
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Run linting checks before submitting PRs for TypeScript/JavaScript code

**/*.{ts,tsx,js,jsx}: Group imports by external dependencies, internal modules, and types; use named exports from barrel files (index.ts)
Use camelCase for variables and functions, PascalCase for types/classes/components, UPPER_SNAKE_CASE for constants in TypeScript/JavaScript
Prefix unused variables with underscore (e.g., _unusedParam) to bypass linting errors in TypeScript/JavaScript

Files:

  • apps/framework-docs-v2/src/components/ui/sidebar.tsx
  • apps/framework-docs-v2/src/components/mdx/feature-cards.tsx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/layout.tsx
  • apps/framework-docs-v2/src/components/guides/guide-form.tsx
  • apps/framework-docs-v2/src/components/mdx/icon-badge.tsx
  • apps/framework-docs-v2/tailwind.config.ts
  • apps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
  • apps/framework-docs-v2/src/components/ui/alert.tsx
  • apps/framework-docs-v2/src/app/layout.tsx
  • apps/framework-docs-v2/src/app/templates/page.tsx
  • apps/framework-docs-v2/src/app/page.tsx
  • apps/framework-docs-v2/src/app/components/page.tsx
  • apps/framework-docs-v2/src/components/mdx/bullet-points-card.tsx
  • apps/framework-docs-v2/src/app/templates/layout.tsx
  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/(guides)/layout.tsx
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Prefer interfaces for objects, types for unions/intersections; use explicit return types on public APIs in TypeScript

Files:

  • apps/framework-docs-v2/src/components/ui/sidebar.tsx
  • apps/framework-docs-v2/src/components/mdx/feature-cards.tsx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/layout.tsx
  • apps/framework-docs-v2/src/components/guides/guide-form.tsx
  • apps/framework-docs-v2/src/components/mdx/icon-badge.tsx
  • apps/framework-docs-v2/tailwind.config.ts
  • apps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
  • apps/framework-docs-v2/src/components/ui/alert.tsx
  • apps/framework-docs-v2/src/app/layout.tsx
  • apps/framework-docs-v2/src/app/templates/page.tsx
  • apps/framework-docs-v2/src/app/page.tsx
  • apps/framework-docs-v2/src/app/components/page.tsx
  • apps/framework-docs-v2/src/components/mdx/bullet-points-card.tsx
  • apps/framework-docs-v2/src/app/templates/layout.tsx
  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/(guides)/layout.tsx
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
apps/framework-docs-v2/src/**/*.{ts,tsx}

📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)

Component library must use shadcn/ui components located in src/components/ui/

Files:

  • apps/framework-docs-v2/src/components/ui/sidebar.tsx
  • apps/framework-docs-v2/src/components/mdx/feature-cards.tsx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/layout.tsx
  • apps/framework-docs-v2/src/components/guides/guide-form.tsx
  • apps/framework-docs-v2/src/components/mdx/icon-badge.tsx
  • apps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
  • apps/framework-docs-v2/src/components/ui/alert.tsx
  • apps/framework-docs-v2/src/app/layout.tsx
  • apps/framework-docs-v2/src/app/templates/page.tsx
  • apps/framework-docs-v2/src/app/page.tsx
  • apps/framework-docs-v2/src/app/components/page.tsx
  • apps/framework-docs-v2/src/components/mdx/bullet-points-card.tsx
  • apps/framework-docs-v2/src/app/templates/layout.tsx
  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/(guides)/layout.tsx
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
apps/framework-docs-v2/src/app/**/page.tsx

📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)

All pages in the documentation site must use generateStaticParams for static site generation (SSG)

Files:

  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
  • apps/framework-docs-v2/src/app/templates/page.tsx
  • apps/framework-docs-v2/src/app/page.tsx
  • apps/framework-docs-v2/src/app/components/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
🧠 Learnings (8)
📓 Common learnings
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Add new guides to `guidesNavigationConfig` in `src/config/navigation.ts` with required fields: type, slug, title, icon, languages, and status (start as 'draft')
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Guide promotion workflow: start guides with `status: "draft"` in navigation config, then progress to `status: "beta"`, finally remove status field for public release
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Use Vercel Toolbar feature flags for visibility control: `show-draft-guides`, `show-beta-guides`, `show-hosting-section`, `show-ai-section`, `show-copy-as-markdown`, `show-linear-integration`
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/src/**/*.{ts,tsx} : Component library must use shadcn/ui components located in `src/components/ui/`

Applied to files:

  • apps/framework-docs-v2/src/components/ui/sidebar.tsx
  • apps/framework-docs-v2/src/app/(docs)/layout.tsx
  • apps/framework-docs-v2/src/components/ui/alert.tsx
  • apps/framework-docs-v2/src/app/layout.tsx
  • apps/framework-docs-v2/src/app/components/page.tsx
  • apps/framework-docs-v2/src/app/templates/layout.tsx
  • apps/framework-docs-v2/src/app/(guides)/layout.tsx
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
📚 Learning: 2026-01-08T18:32:03.114Z
Learnt from: DatGuyJonathan
Repo: 514-labs/moosestack PR: 3170
File: apps/framework-docs-v2/src/components/copy-page-button.tsx:36-38
Timestamp: 2026-01-08T18:32:03.114Z
Learning: Enforce the following multiline ternary formatting for conditional JSX without parentheses: place the condition and the '?' on the first line, place the true branch on the next indented line, and place the ':' plus the false branch on the third line. This pattern is commonly used for copy/check icon toggles in the moosestack repository (apps/framework-docs-v2). Apply this style to all TSX files under apps/framework-docs-v2/src/**/*.tsx to ensure consistency and readability.

Applied to files:

  • apps/framework-docs-v2/src/components/ui/sidebar.tsx
  • apps/framework-docs-v2/src/components/mdx/feature-cards.tsx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/layout.tsx
  • apps/framework-docs-v2/src/components/guides/guide-form.tsx
  • apps/framework-docs-v2/src/components/mdx/icon-badge.tsx
  • apps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
  • apps/framework-docs-v2/src/components/ui/alert.tsx
  • apps/framework-docs-v2/src/app/layout.tsx
  • apps/framework-docs-v2/src/app/templates/page.tsx
  • apps/framework-docs-v2/src/app/page.tsx
  • apps/framework-docs-v2/src/app/components/page.tsx
  • apps/framework-docs-v2/src/components/mdx/bullet-points-card.tsx
  • apps/framework-docs-v2/src/app/templates/layout.tsx
  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/(guides)/layout.tsx
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
📚 Learning: 2026-01-15T19:41:53.563Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: examples/cdp-analytics/CLAUDE.md:0-0
Timestamp: 2026-01-15T19:41:53.563Z
Learning: Applies to examples/cdp-analytics/web-app/src/features/dashboard/*.tsx : Dashboard components should follow React hooks patterns: use useState for local data, useEffect for data fetching, handle errors with fallback data, and wrap visualizations in Card/CardHeader/CardContent from Radix UI

Applied to files:

  • apps/framework-docs-v2/src/components/mdx/feature-cards.tsx
  • apps/framework-docs-v2/src/app/(guides)/layout.tsx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/content/guides/**/*.mdx : Guide MDX files in `content/guides/` must include frontmatter with title and description fields

Applied to files:

  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
  • apps/framework-docs-v2/src/app/templates/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Add new guides to `guidesNavigationConfig` in `src/config/navigation.ts` with required fields: type, slug, title, icon, languages, and status (start as 'draft')

Applied to files:

  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/content/**/*.mdx : Use `{{ include "shared/path.mdx" }}` directives to reuse content fragments, which are processed via `processIncludes()` during build

Applied to files:

  • apps/framework-docs-v2/src/app/templates/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/src/app/**/page.tsx : All pages in the documentation site must use `generateStaticParams` for static site generation (SSG)

Applied to files:

  • apps/framework-docs-v2/src/app/templates/page.tsx
  • apps/framework-docs-v2/src/app/components/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
🧬 Code graph analysis (3)
apps/framework-docs-v2/src/app/(docs)/layout.tsx (2)
apps/framework-docs-v2/src/components/navigation/side-nav-server.tsx (1)
  • SideNavServer (48-53)
apps/framework-docs-v2/src/components/ui/sidebar.tsx (1)
  • SidebarInset (784-784)
apps/framework-docs-v2/src/app/templates/page.tsx (2)
apps/framework-docs-v2/src/components/navigation/doc-breadcrumbs.tsx (1)
  • DocBreadcrumbs (19-51)
apps/framework-docs-v2/src/components/markdown-menu.tsx (1)
  • MarkdownMenu (26-96)
apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx (1)
apps/framework-docs-v2/src/components/guides/guide-card.tsx (1)
  • GuideCard (16-57)
🪛 Biome (2.3.13)
apps/framework-docs-v2/src/styles/globals.css

[error] 94-94: Tailwind-specific syntax is disabled.

Enable tailwindDirectives in the css parser options, or remove this if you are not using Tailwind CSS.

(parse)


[error] 103-103: Tailwind-specific syntax is disabled.

Enable tailwindDirectives in the css parser options, or remove this if you are not using Tailwind CSS.

(parse)


[error] 115-115: Tailwind-specific syntax is disabled.

Enable tailwindDirectives in the css parser options, or remove this if you are not using Tailwind CSS.

(parse)

🔇 Additional comments (22)
apps/framework-docs-v2/src/components/mdx/bullet-points-card.tsx (3)

66-74: Icon styling update looks consistent.
Muted background + foreground icon pairing is clean.


126-145: Card width/shadow changes look fine.
No functional concerns.


162-166: Title typography tweak looks good.
No issues.

apps/framework-docs-v2/src/components/guides/guide-form.tsx (1)

116-116: LGTM!

Styling update aligns with the broader shadow/border-radius standardization across the guides UI.

apps/framework-docs-v2/src/components/mdx/feature-cards.tsx (1)

27-28: LGTM!

Adding text-card-foreground and shadow aligns with the standardized card styling across the documentation site.

apps/framework-docs-v2/src/app/layout.tsx (1)

44-45: LGTM!

Adding min-w-0 w-full is the correct fix for flex container overflow issues, ensuring content respects boundaries and doesn't blow out the layout.

apps/framework-docs-v2/src/app/components/page.tsx (1)

64-69: LGTM!

Layout and prose container adjustments align with the broader typography standardization. The responsive padding (sm:px-6 lg:px-8) and tiered max-width (max-w-5xl lg:max-w-6xl) provide better responsive behavior.

apps/framework-docs-v2/src/components/guides/guide-card.tsx (1)

22-35: LGTM!

Clean implementation: getGuideIcon lookup with graceful null handling via the conditional render. The compact icon-based layout is well-structured.

apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx (1)

22-34: LGTM!

Styling updates are consistent with the new icon-based card design. The text-muted-foreground header and card shadow align with the PR's visual refresh objectives.

apps/framework-docs-v2/src/app/(guides)/guides/page.tsx (1)

69-77: LGTM!

Clean prose-based header. The layout and typography align with the simplified UI direction.

apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx (1)

113-127: LGTM!

min-w-0 + overflow-x-auto is the correct pattern to prevent wide content (tables, code blocks) from breaking flex layouts.

apps/framework-docs-v2/src/components/ui/sidebar.tsx (1)

340-350: LGTM!

Adding min-w-0 to SidebarInset is consistent with the PR-wide overflow handling improvements.

apps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsx (1)

59-61: LGTM!

Removal of prose-slate aligns with the global prose theming, and overflow-x-auto matches the PR-wide pattern for step content scrolling.

apps/framework-docs-v2/src/components/ui/alert.tsx (1)

6-11: LGTM!

Updated alert styling with rounded-xl, shadow, and card-based default variant aligns with the broader UI refresh.

apps/framework-docs-v2/src/app/(guides)/layout.tsx (1)

12-19: LGTM!

Layout structure is sound: min-w-0 prevents flex overflow, overflow-hidden on outer container with overflow-x-hidden on inner content wrapper provides proper containment. SidebarInset usage aligns with shadcn/ui guidelines.

apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx (2)

119-133: LGTM!

min-w-0 and overflow-x-auto additions correctly handle wide content (code blocks, tables) within flex layouts. Pattern applied consistently to both dynamic and static guide article containers.


200-227: Consistent styling applied to static guide steps.

Same overflow handling pattern (min-w-0, overflow-x-auto) applied to the static guide section, maintaining parity with dynamic guides above.

apps/framework-docs-v2/src/app/page.tsx (1)

80-85: LGTM!

Clean refactor: prose wrapper for header text simplifies styling. Max-width (5xl/6xl) aligns with docs layout for visual consistency across the site.

apps/framework-docs-v2/src/app/(docs)/layout.tsx (1)

14-23: LGTM!

Layout follows the same pattern as guides and templates layouts. minmax(0,1fr) in grid definition correctly allows content to shrink, preventing TOC from being pushed off-screen on narrow viewports.

apps/framework-docs-v2/src/app/templates/page.tsx (1)

49-61: LGTM!

Header pattern (flex items-center justify-between with breadcrumbs + menu) mirrors guides pages. MarkdownMenu integration provides consistent copy functionality across documentation sections.

apps/framework-docs-v2/src/app/templates/layout.tsx (1)

16-25: LGTM!

Templates layout mirrors docs layout structure exactly (max-widths, overflow handling, TOC grid reservation). Consistency across layouts ensures predictable behavior site-wide.

apps/framework-docs-v2/tailwind.config.ts (1)

95-241: Typography tokenization looks cohesive; please verify with a lint/build run.
No issues spotted here. Per TS/JS guidelines, run linting to confirm the generated typography CSS matches expectations.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

asl677 added 14 commits February 4, 2026 07:33
- Fix duplicate React keys in GuideCard by using type-prefixed keys
- Add aria-hidden to decorative IconBrandSlack icon
- Fix invalid button-inside-anchor HTML by using asChild pattern
- Extract LANGUAGE_DISPLAY_NAMES to shared constants file
- Fix button-inside-link in CTACard horizontal and vertical variants
GuideCard now uses iconName prop instead of previewVariant/previewImageIndexFile.
GuidePreview and PreviewVariant are no longer imported anywhere.
- Remove previewVariant and previewImageIndexFile from SerializableGuideItem interface
- Remove these fields from FrontMatter type in content-types.ts
- Stop extracting these unused props in guides/page.tsx
- Remove previewVariant from chat-in-your-app.mdx and performant-dashboards.mdx frontmatter

The GuideCard component now uses iconName instead of preview images,
making the preview system dead code.
Add React.JSX.Element return type to conform to project typing guidelines.
Define and export a named GuideMetadata interface for better reuse
and extensibility, replacing the inline object type in getGuideMetadataBySlug.
Create reusable UtilityControls component that renders ThemeToggle,
SidebarTrigger, and GitHubButtonGroup. Supports desktop and mobile
variants for different layout needs. Future updates to these controls
only need to be changed in one place.
Replace <article> with <header> for the page introduction block,
as it's a page header rather than a self-contained article.
Remove direct text-muted-foreground overrides on .prose selectors
and redundant --tw-prose-body CSS variable. The typography plugin
in tailwind.config.ts already properly defines --tw-prose-body and
applies it to prose elements.
The prose-invert class uses different CSS variables for dark mode.
Add the invert variant configuration to ensure dark mode prose text
uses the same theme-aware CSS variables as light mode.
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (5)
apps/framework-docs-v2/src/components/mdx/feature-cards.tsx (1)

4-4: 🧹 Nitpick | 🔵 Trivial

Remove unused import

Card is imported on line 4 but never referenced—replace with styled div/Link elements.

-import { Card } from "@/components/ui/card";
apps/framework-docs-v2/src/app/templates/layout.tsx (1)

11-13: 🛠️ Refactor suggestion | 🟠 Major

Add explicit return type to TemplatesLayout.

Exported async function lacks return type annotation.

Proposed fix
 export default async function TemplatesLayout({
   children,
-}: TemplatesLayoutProps) {
+}: TemplatesLayoutProps): Promise<React.JSX.Element> {
apps/framework-docs-v2/src/components/mdx-renderer.tsx (1)

92-92: ⚠️ Potential issue | 🟠 Major

Add explicit return type for MDXRenderer.

Public async component should declare its return type.

🛠️ Suggested fix
-export async function MDXRenderer({ source }: MDXRendererProps) {
+export async function MDXRenderer(
+  { source }: MDXRendererProps,
+): Promise<JSX.Element> {
apps/framework-docs-v2/src/components/navigation/top-nav.tsx (1)

25-25: 🛠️ Refactor suggestion | 🟠 Major

Add explicit return type to TopNav component.
Public components must declare return types per guidelines.

Fix
-export function TopNav({ stars, showHosting, showAi }: TopNavProps) {
+export function TopNav(
+  { stars, showHosting, showAi }: TopNavProps,
+): JSX.Element {
apps/framework-docs-v2/src/components/mdx/cta-card.tsx (1)

85-97: ⚠️ Potential issue | 🟠 Major

Add explicit return types to exported React components.
CTACard and CTACards are public exports returning JSX elements; add explicit return types per TypeScript guidelines for public APIs.

♻️ Proposed change
-export function CTACard({
+export function CTACard({
   title,
   description,
   ctaLink,
   ctaLabel = "Learn more",
   Icon,
   badge,
   className = "",
   variant = "default",
   orientation = "vertical",
   isMooseModule = false,
   _grouped = false,
-}: CTACardProps) {
+}: CTACardProps): React.JSX.Element {
-export function CTACards({
+export function CTACards({
   children,
   columns = 2,
   rows = 1,
   grouped = false,
-}: CTACardsProps) {
+}: CTACardsProps): React.JSX.Element {
🤖 Fix all issues with AI agents
In `@apps/framework-docs-v2/src/app/`(docs)/[...slug]/page.tsx:
- Around line 111-131: The current conditional using isTopLevelIndex hides both
DocBreadcrumbs and the MarkdownMenu; change it so only DocBreadcrumbs is
conditionally rendered: keep the parent row (<div className="flex items-center
justify-between">) and render DocBreadcrumbs inside it only when
!isTopLevelIndex, while always rendering the right-side MarkdownMenu when
showCopyButton is true (pass content.content and content.isMDX as before).
Update references: isTopLevelIndex, DocBreadcrumbs, MarkdownMenu,
showCopyButton, content.content, content.isMDX.

In `@apps/framework-docs-v2/src/components/guides/guide-card.tsx`:
- Around line 46-49: The decorative Guide icon (IconComponent) should be hidden
from assistive tech: update the wrapper div and the rendered icon invocation so
they are non-interactive for screen readers — add aria-hidden="true" to the
surrounding div and ensure the SVG itself is non-focusable (e.g., pass
focusable={false} to IconComponent or otherwise ensure the rendered SVG has
focusable="false") while keeping the existing className and strokeWidth props;
locate the IconComponent usage in guide-card.tsx and apply these attributes to
make the icon purely visual.
📜 Review details

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 1e0b4b5 and ca687a6.

📒 Files selected for processing (44)
  • apps/framework-docs-v2/content/guides/chat-in-your-app.mdx
  • apps/framework-docs-v2/content/guides/customer-data-platform.mdx
  • apps/framework-docs-v2/content/guides/data-warehouses.mdx
  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
  • apps/framework-docs-v2/content/guides/static-report-generation.mdx
  • apps/framework-docs-v2/content/moosestack/contribution/documentation.mdx
  • apps/framework-docs-v2/content/moosestack/getting-started/from-clickhouse.mdx
  • apps/framework-docs-v2/content/moosestack/getting-started/quickstart.mdx
  • apps/framework-docs-v2/content/moosestack/index.mdx
  • apps/framework-docs-v2/content/moosestack/olap/model-table.mdx
  • apps/framework-docs-v2/content/moosestack/quickstart.mdx
  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/layout.tsx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
  • apps/framework-docs-v2/src/app/(guides)/layout.tsx
  • apps/framework-docs-v2/src/app/components/page.tsx
  • apps/framework-docs-v2/src/app/layout.tsx
  • apps/framework-docs-v2/src/app/page.tsx
  • apps/framework-docs-v2/src/app/templates/layout.tsx
  • apps/framework-docs-v2/src/app/templates/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
  • apps/framework-docs-v2/src/components/guides/guide-constants.ts
  • apps/framework-docs-v2/src/components/guides/guide-form.tsx
  • apps/framework-docs-v2/src/components/guides/guide-header.tsx
  • apps/framework-docs-v2/src/components/guides/guide-icons.ts
  • apps/framework-docs-v2/src/components/guides/guide-preview.tsx
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
  • apps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
  • apps/framework-docs-v2/src/components/mdx/bullet-points-card.tsx
  • apps/framework-docs-v2/src/components/mdx/cta-card.tsx
  • apps/framework-docs-v2/src/components/mdx/feature-cards.tsx
  • apps/framework-docs-v2/src/components/mdx/icon-badge.tsx
  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/src/components/mdx/zoom-img.tsx
  • apps/framework-docs-v2/src/components/navigation/top-nav.tsx
  • apps/framework-docs-v2/src/components/navigation/utility-controls.tsx
  • apps/framework-docs-v2/src/components/ui/alert.tsx
  • apps/framework-docs-v2/src/components/ui/sidebar.tsx
  • apps/framework-docs-v2/src/config/navigation.ts
  • apps/framework-docs-v2/src/lib/content-types.ts
  • apps/framework-docs-v2/src/styles/globals.css
  • apps/framework-docs-v2/tailwind.config.ts
💤 Files with no reviewable changes (2)
  • apps/framework-docs-v2/src/lib/content-types.ts
  • apps/framework-docs-v2/src/components/guides/guide-preview.tsx
🧰 Additional context used
📓 Path-based instructions (6)
**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Run linting checks before submitting PRs for TypeScript/JavaScript code

**/*.{ts,tsx,js,jsx}: Group imports by external dependencies, internal modules, and types; use named exports from barrel files (index.ts)
Use camelCase for variables and functions, PascalCase for types/classes/components, UPPER_SNAKE_CASE for constants in TypeScript/JavaScript
Prefix unused variables with underscore (e.g., _unusedParam) to bypass linting errors in TypeScript/JavaScript
Format TypeScript/JavaScript code with Prettier using experimentalTernaries: true; auto-formats on commit via Husky + lint-staged

Files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-icons.ts
  • apps/framework-docs-v2/src/components/guides/guide-form.tsx
  • apps/framework-docs-v2/src/app/page.tsx
  • apps/framework-docs-v2/src/components/mdx/bullet-points-card.tsx
  • apps/framework-docs-v2/src/app/templates/page.tsx
  • apps/framework-docs-v2/src/components/mdx/zoom-img.tsx
  • apps/framework-docs-v2/src/app/layout.tsx
  • apps/framework-docs-v2/src/components/navigation/utility-controls.tsx
  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/templates/layout.tsx
  • apps/framework-docs-v2/src/components/mdx/feature-cards.tsx
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
  • apps/framework-docs-v2/src/app/components/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
  • apps/framework-docs-v2/src/components/guides/guide-constants.ts
  • apps/framework-docs-v2/src/config/navigation.ts
  • apps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
  • apps/framework-docs-v2/src/app/(guides)/layout.tsx
  • apps/framework-docs-v2/src/components/navigation/top-nav.tsx
  • apps/framework-docs-v2/src/components/mdx/cta-card.tsx
  • apps/framework-docs-v2/src/components/mdx/icon-badge.tsx
  • apps/framework-docs-v2/src/app/(docs)/layout.tsx
  • apps/framework-docs-v2/src/components/ui/sidebar.tsx
  • apps/framework-docs-v2/src/components/guides/guide-header.tsx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
  • apps/framework-docs-v2/src/components/ui/alert.tsx
  • apps/framework-docs-v2/tailwind.config.ts
apps/framework-docs-v2/src/app/**/page.tsx

📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)

All pages in the documentation site must use generateStaticParams for static site generation (SSG)

Files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/page.tsx
  • apps/framework-docs-v2/src/app/templates/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/components/page.tsx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
apps/framework-docs-v2/src/**/*.{ts,tsx}

📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)

Component library must use shadcn/ui components located in src/components/ui/

Files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-icons.ts
  • apps/framework-docs-v2/src/components/guides/guide-form.tsx
  • apps/framework-docs-v2/src/app/page.tsx
  • apps/framework-docs-v2/src/components/mdx/bullet-points-card.tsx
  • apps/framework-docs-v2/src/app/templates/page.tsx
  • apps/framework-docs-v2/src/components/mdx/zoom-img.tsx
  • apps/framework-docs-v2/src/app/layout.tsx
  • apps/framework-docs-v2/src/components/navigation/utility-controls.tsx
  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/templates/layout.tsx
  • apps/framework-docs-v2/src/components/mdx/feature-cards.tsx
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
  • apps/framework-docs-v2/src/app/components/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
  • apps/framework-docs-v2/src/components/guides/guide-constants.ts
  • apps/framework-docs-v2/src/config/navigation.ts
  • apps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
  • apps/framework-docs-v2/src/app/(guides)/layout.tsx
  • apps/framework-docs-v2/src/components/navigation/top-nav.tsx
  • apps/framework-docs-v2/src/components/mdx/cta-card.tsx
  • apps/framework-docs-v2/src/components/mdx/icon-badge.tsx
  • apps/framework-docs-v2/src/app/(docs)/layout.tsx
  • apps/framework-docs-v2/src/components/ui/sidebar.tsx
  • apps/framework-docs-v2/src/components/guides/guide-header.tsx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
  • apps/framework-docs-v2/src/components/ui/alert.tsx
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Prefer interfaces for objects, types for unions/intersections in TypeScript; explicit return types on public APIs

Files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-icons.ts
  • apps/framework-docs-v2/src/components/guides/guide-form.tsx
  • apps/framework-docs-v2/src/app/page.tsx
  • apps/framework-docs-v2/src/components/mdx/bullet-points-card.tsx
  • apps/framework-docs-v2/src/app/templates/page.tsx
  • apps/framework-docs-v2/src/components/mdx/zoom-img.tsx
  • apps/framework-docs-v2/src/app/layout.tsx
  • apps/framework-docs-v2/src/components/navigation/utility-controls.tsx
  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/templates/layout.tsx
  • apps/framework-docs-v2/src/components/mdx/feature-cards.tsx
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
  • apps/framework-docs-v2/src/app/components/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
  • apps/framework-docs-v2/src/components/guides/guide-constants.ts
  • apps/framework-docs-v2/src/config/navigation.ts
  • apps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
  • apps/framework-docs-v2/src/app/(guides)/layout.tsx
  • apps/framework-docs-v2/src/components/navigation/top-nav.tsx
  • apps/framework-docs-v2/src/components/mdx/cta-card.tsx
  • apps/framework-docs-v2/src/components/mdx/icon-badge.tsx
  • apps/framework-docs-v2/src/app/(docs)/layout.tsx
  • apps/framework-docs-v2/src/components/ui/sidebar.tsx
  • apps/framework-docs-v2/src/components/guides/guide-header.tsx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
  • apps/framework-docs-v2/src/components/ui/alert.tsx
  • apps/framework-docs-v2/tailwind.config.ts
apps/framework-docs-v2/content/**/*.mdx

📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)

apps/framework-docs-v2/content/**/*.mdx: Use {{ include "shared/path.mdx" }} directives to reuse content fragments, which are processed via processIncludes() during build
Validate code snippets in documentation with the @test directive for TypeScript and Python code blocks
TypeScript code snippets in documentation should be validated for syntax with brace matching; Python snippets should be validated for indentation

Files:

  • apps/framework-docs-v2/content/moosestack/olap/model-table.mdx
  • apps/framework-docs-v2/content/moosestack/getting-started/from-clickhouse.mdx
  • apps/framework-docs-v2/content/moosestack/index.mdx
  • apps/framework-docs-v2/content/guides/data-warehouses.mdx
  • apps/framework-docs-v2/content/moosestack/getting-started/quickstart.mdx
  • apps/framework-docs-v2/content/guides/customer-data-platform.mdx
  • apps/framework-docs-v2/content/guides/static-report-generation.mdx
  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
  • apps/framework-docs-v2/content/moosestack/contribution/documentation.mdx
  • apps/framework-docs-v2/content/guides/chat-in-your-app.mdx
  • apps/framework-docs-v2/content/moosestack/quickstart.mdx
apps/framework-docs-v2/content/guides/**/*.mdx

📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)

Guide MDX files in content/guides/ must include frontmatter with title and description fields

Files:

  • apps/framework-docs-v2/content/guides/data-warehouses.mdx
  • apps/framework-docs-v2/content/guides/customer-data-platform.mdx
  • apps/framework-docs-v2/content/guides/static-report-generation.mdx
  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
  • apps/framework-docs-v2/content/guides/chat-in-your-app.mdx
🧠 Learnings (22)
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/src/app/**/page.tsx : All pages in the documentation site must use `generateStaticParams` for static site generation (SSG)

Applied to files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/page.tsx
  • apps/framework-docs-v2/src/app/templates/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/components/page.tsx
  • apps/framework-docs-v2/content/guides/static-report-generation.mdx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/content/**/*.mdx : Use `{{ include "shared/path.mdx" }}` directives to reuse content fragments, which are processed via `processIncludes()` during build

Applied to files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/content/moosestack/getting-started/from-clickhouse.mdx
  • apps/framework-docs-v2/src/app/templates/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
  • apps/framework-docs-v2/content/moosestack/getting-started/quickstart.mdx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
  • apps/framework-docs-v2/content/guides/static-report-generation.mdx
  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
  • apps/framework-docs-v2/content/moosestack/quickstart.mdx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Add new guides to `guidesNavigationConfig` in `src/config/navigation.ts` with required fields: type, slug, title, icon, languages, and status (start as 'draft')

Applied to files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-icons.ts
  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
  • apps/framework-docs-v2/src/components/guides/guide-constants.ts
  • apps/framework-docs-v2/src/config/navigation.ts
  • apps/framework-docs-v2/src/app/(guides)/layout.tsx
  • apps/framework-docs-v2/content/guides/customer-data-platform.mdx
  • apps/framework-docs-v2/content/guides/static-report-generation.mdx
  • apps/framework-docs-v2/src/components/guides/guide-header.tsx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
  • apps/framework-docs-v2/content/guides/chat-in-your-app.mdx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Use Vercel Toolbar feature flags for visibility control: `show-draft-guides`, `show-beta-guides`, `show-hosting-section`, `show-ai-section`, `show-copy-as-markdown`, `show-linear-integration`

Applied to files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/content/moosestack/getting-started/from-clickhouse.mdx
  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
  • apps/framework-docs-v2/content/moosestack/getting-started/quickstart.mdx
  • apps/framework-docs-v2/content/guides/customer-data-platform.mdx
  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
📚 Learning: 2026-01-08T18:32:03.114Z
Learnt from: DatGuyJonathan
Repo: 514-labs/moosestack PR: 3170
File: apps/framework-docs-v2/src/components/copy-page-button.tsx:36-38
Timestamp: 2026-01-08T18:32:03.114Z
Learning: Enforce the following multiline ternary formatting for conditional JSX without parentheses: place the condition and the '?' on the first line, place the true branch on the next indented line, and place the ':' plus the false branch on the third line. This pattern is commonly used for copy/check icon toggles in the moosestack repository (apps/framework-docs-v2). Apply this style to all TSX files under apps/framework-docs-v2/src/**/*.tsx to ensure consistency and readability.

Applied to files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-form.tsx
  • apps/framework-docs-v2/src/app/page.tsx
  • apps/framework-docs-v2/src/components/mdx/bullet-points-card.tsx
  • apps/framework-docs-v2/src/app/templates/page.tsx
  • apps/framework-docs-v2/src/components/mdx/zoom-img.tsx
  • apps/framework-docs-v2/src/app/layout.tsx
  • apps/framework-docs-v2/src/components/navigation/utility-controls.tsx
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/templates/layout.tsx
  • apps/framework-docs-v2/src/components/mdx/feature-cards.tsx
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
  • apps/framework-docs-v2/src/app/components/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
  • apps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
  • apps/framework-docs-v2/src/app/(guides)/layout.tsx
  • apps/framework-docs-v2/src/components/navigation/top-nav.tsx
  • apps/framework-docs-v2/src/components/mdx/cta-card.tsx
  • apps/framework-docs-v2/src/components/mdx/icon-badge.tsx
  • apps/framework-docs-v2/src/app/(docs)/layout.tsx
  • apps/framework-docs-v2/src/components/ui/sidebar.tsx
  • apps/framework-docs-v2/src/components/guides/guide-header.tsx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
  • apps/framework-docs-v2/src/components/ui/alert.tsx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/src/**/*.{ts,tsx} : Component library must use shadcn/ui components located in `src/components/ui/`

Applied to files:

  • apps/framework-docs-v2/src/components/guides/guide-icons.ts
  • apps/framework-docs-v2/src/components/guides/guide-form.tsx
  • apps/framework-docs-v2/src/app/page.tsx
  • apps/framework-docs-v2/src/app/layout.tsx
  • apps/framework-docs-v2/src/components/navigation/utility-controls.tsx
  • apps/framework-docs-v2/src/app/templates/layout.tsx
  • apps/framework-docs-v2/src/app/components/page.tsx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
  • apps/framework-docs-v2/src/app/(guides)/layout.tsx
  • apps/framework-docs-v2/src/components/navigation/top-nav.tsx
  • apps/framework-docs-v2/src/components/ui/sidebar.tsx
  • apps/framework-docs-v2/src/components/ui/alert.tsx
📚 Learning: 2026-01-15T19:41:53.563Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: examples/cdp-analytics/CLAUDE.md:0-0
Timestamp: 2026-01-15T19:41:53.563Z
Learning: Applies to examples/cdp-analytics/web-app/src/features/dashboard/*.tsx : Dashboard components should follow React hooks patterns: use useState for local data, useEffect for data fetching, handle errors with fallback data, and wrap visualizations in Card/CardHeader/CardContent from Radix UI

Applied to files:

  • apps/framework-docs-v2/content/moosestack/olap/model-table.mdx
  • apps/framework-docs-v2/content/moosestack/getting-started/from-clickhouse.mdx
  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/content/moosestack/index.mdx
  • apps/framework-docs-v2/src/components/mdx/feature-cards.tsx
  • apps/framework-docs-v2/content/moosestack/getting-started/quickstart.mdx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
  • apps/framework-docs-v2/src/app/(guides)/layout.tsx
  • apps/framework-docs-v2/src/components/navigation/top-nav.tsx
  • apps/framework-docs-v2/src/components/mdx/cta-card.tsx
  • apps/framework-docs-v2/src/app/(docs)/layout.tsx
  • apps/framework-docs-v2/content/guides/customer-data-platform.mdx
  • apps/framework-docs-v2/content/guides/static-report-generation.mdx
  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
  • apps/framework-docs-v2/content/moosestack/contribution/documentation.mdx
  • apps/framework-docs-v2/content/moosestack/quickstart.mdx
📚 Learning: 2026-01-27T17:36:29.854Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: examples/nextjs-moose/CLAUDE.md:0-0
Timestamp: 2026-01-27T17:36:29.854Z
Learning: Applies to examples/nextjs-moose/components/dashboard/**/*.ts : Dashboard hooks must call server actions (not moose functions directly) to decouple React components from ClickHouse implementation details

Applied to files:

  • apps/framework-docs-v2/content/moosestack/olap/model-table.mdx
  • apps/framework-docs-v2/content/moosestack/getting-started/from-clickhouse.mdx
  • apps/framework-docs-v2/content/moosestack/index.mdx
  • apps/framework-docs-v2/content/moosestack/getting-started/quickstart.mdx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
  • apps/framework-docs-v2/src/app/(docs)/layout.tsx
  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
  • apps/framework-docs-v2/content/moosestack/contribution/documentation.mdx
  • apps/framework-docs-v2/content/guides/chat-in-your-app.mdx
📚 Learning: 2026-01-27T17:36:29.854Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: examples/nextjs-moose/CLAUDE.md:0-0
Timestamp: 2026-01-27T17:36:29.854Z
Learning: Applies to examples/nextjs-moose/components/report-builder/**/*.ts : Report builder components must use `prepareModel()` to transform backend model definitions for frontend consumption, configuring UI input types and options

Applied to files:

  • apps/framework-docs-v2/content/moosestack/olap/model-table.mdx
  • apps/framework-docs-v2/content/moosestack/index.mdx
  • apps/framework-docs-v2/src/app/(docs)/layout.tsx
  • apps/framework-docs-v2/content/guides/static-report-generation.mdx
  • apps/framework-docs-v2/src/components/guides/guide-header.tsx
📚 Learning: 2026-01-28T14:50:00.978Z
Learnt from: cjus
Repo: 514-labs/moosestack PR: 3407
File: apps/framework-docs-v2/content/guides/static-report-generation.mdx:1402-1406
Timestamp: 2026-01-28T14:50:00.978Z
Learning: When reviewing WebApp implementations that run in a Node.js backend, prefer Node.js-specific types (e.g., Buffer) and avoid browser-focused cross-platform compatibility considerations. This guideline applies to MDX documentation and code examples across the repository where backend/runtime code is discussed; ensure reviewers distinguish server-side context from frontend/browser constraints and validate type usage accordingly.

Applied to files:

  • apps/framework-docs-v2/content/moosestack/olap/model-table.mdx
  • apps/framework-docs-v2/content/moosestack/getting-started/from-clickhouse.mdx
  • apps/framework-docs-v2/content/moosestack/index.mdx
  • apps/framework-docs-v2/content/guides/data-warehouses.mdx
  • apps/framework-docs-v2/content/moosestack/getting-started/quickstart.mdx
  • apps/framework-docs-v2/content/guides/customer-data-platform.mdx
  • apps/framework-docs-v2/content/guides/static-report-generation.mdx
  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
  • apps/framework-docs-v2/content/moosestack/contribution/documentation.mdx
  • apps/framework-docs-v2/content/guides/chat-in-your-app.mdx
  • apps/framework-docs-v2/content/moosestack/quickstart.mdx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/content/guides/**/*.mdx : Guide MDX files in `content/guides/` must include frontmatter with title and description fields

Applied to files:

  • apps/framework-docs-v2/content/moosestack/getting-started/from-clickhouse.mdx
  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
  • apps/framework-docs-v2/content/guides/data-warehouses.mdx
  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
  • apps/framework-docs-v2/content/guides/customer-data-platform.mdx
  • apps/framework-docs-v2/content/guides/static-report-generation.mdx
  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
  • apps/framework-docs-v2/content/guides/chat-in-your-app.mdx
  • apps/framework-docs-v2/content/moosestack/quickstart.mdx
📚 Learning: 2026-01-08T18:32:10.998Z
Learnt from: DatGuyJonathan
Repo: 514-labs/moosestack PR: 3170
File: apps/framework-docs-v2/src/components/copy-page-button.tsx:36-38
Timestamp: 2026-01-08T18:32:10.998Z
Learning: In the moosestack repository (apps/framework-docs-v2), ternary expressions for conditional JSX rendering follow a specific formatting style where the condition and `?` are on the first line, the true branch is indented on the next line, and the `:` and false branch are on the third line without parentheses. This pattern is especially common for copy/check icon toggles.

Applied to files:

  • apps/framework-docs-v2/content/moosestack/getting-started/from-clickhouse.mdx
  • apps/framework-docs-v2/content/moosestack/index.mdx
  • apps/framework-docs-v2/content/moosestack/getting-started/quickstart.mdx
  • apps/framework-docs-v2/content/moosestack/contribution/documentation.mdx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/content/**/*.mdx : Validate code snippets in documentation with the `test` directive for TypeScript and Python code blocks

Applied to files:

  • apps/framework-docs-v2/content/moosestack/getting-started/from-clickhouse.mdx
  • apps/framework-docs-v2/content/moosestack/getting-started/quickstart.mdx
  • apps/framework-docs-v2/content/guides/customer-data-platform.mdx
  • apps/framework-docs-v2/content/guides/static-report-generation.mdx
  • apps/framework-docs-v2/content/moosestack/contribution/documentation.mdx
  • apps/framework-docs-v2/content/moosestack/quickstart.mdx
📚 Learning: 2026-01-27T17:36:29.854Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: examples/nextjs-moose/CLAUDE.md:0-0
Timestamp: 2026-01-27T17:36:29.854Z
Learning: Applies to examples/nextjs-moose/app/actions.ts : Server actions must import query functions from the moose package and wrap them, serving as the bridge between frontend React components and backend moose query functions

Applied to files:

  • apps/framework-docs-v2/content/moosestack/getting-started/from-clickhouse.mdx
  • apps/framework-docs-v2/content/moosestack/index.mdx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
  • apps/framework-docs-v2/src/app/(docs)/layout.tsx
  • apps/framework-docs-v2/content/guides/chat-in-your-app.mdx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Navigation configuration must be manually maintained in `src/config/navigation.ts` and not auto-generated from file structure

Applied to files:

  • apps/framework-docs-v2/src/app/templates/page.tsx
  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
  • apps/framework-docs-v2/src/config/navigation.ts
  • apps/framework-docs-v2/src/components/navigation/top-nav.tsx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Guide promotion workflow: start guides with `status: "draft"` in navigation config, then progress to `status: "beta"`, finally remove status field for public release

Applied to files:

  • apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx
  • apps/framework-docs-v2/src/app/(guides)/guides/page.tsx
📚 Learning: 2026-01-28T14:55:13.411Z
Learnt from: cjus
Repo: 514-labs/moosestack PR: 3407
File: apps/framework-docs-v2/content/guides/static-report-generation.mdx:1585-1616
Timestamp: 2026-01-28T14:55:13.411Z
Learning: In documentation and tutorial files under apps/framework-docs-v2/content/guides/, prefer explicit, self-contained code examples that may duplicate small snippets for clarity over abstracting with DRY helpers. Ensure examples are easy to understand in isolation, even if it means a bit of repetition, to aid learning and reduce cognitive load for readers.

Applied to files:

  • apps/framework-docs-v2/content/guides/data-warehouses.mdx
  • apps/framework-docs-v2/content/guides/customer-data-platform.mdx
  • apps/framework-docs-v2/content/guides/static-report-generation.mdx
  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
  • apps/framework-docs-v2/content/guides/chat-in-your-app.mdx
📚 Learning: 2026-02-01T23:07:12.348Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-01T23:07:12.348Z
Learning: Applies to **/*.{ts,tsx} : Prefer interfaces for objects, types for unions/intersections in TypeScript; explicit return types on public APIs

Applied to files:

  • apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
  • apps/framework-docs-v2/src/config/navigation.ts
  • apps/framework-docs-v2/src/app/(guides)/layout.tsx
  • apps/framework-docs-v2/src/app/(docs)/layout.tsx
  • apps/framework-docs-v2/src/components/guides/guide-header.tsx
📚 Learning: 2025-12-16T23:08:31.521Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-16T23:08:31.521Z
Learning: Respect language-specific best practices and idioms for Rust, TypeScript/JavaScript, and Python

Applied to files:

  • apps/framework-docs-v2/src/components/guides/guide-constants.ts
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/content/**/*.mdx : TypeScript code snippets in documentation should be validated for syntax with brace matching; Python snippets should be validated for indentation

Applied to files:

  • apps/framework-docs-v2/content/guides/static-report-generation.mdx
  • apps/framework-docs-v2/content/moosestack/contribution/documentation.mdx
📚 Learning: 2026-01-15T19:41:53.563Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: examples/cdp-analytics/CLAUDE.md:0-0
Timestamp: 2026-01-15T19:41:53.563Z
Learning: For slow dashboard queries (>500ms) that aggregate across multiple tables or need cohort-based breakdowns, implement a materialized view instead of real-time queries

Applied to files:

  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
📚 Learning: 2026-01-27T17:36:29.854Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: examples/nextjs-moose/CLAUDE.md:0-0
Timestamp: 2026-01-27T17:36:29.854Z
Learning: The moose query layer represents a two-step OLAP migration pattern: Step 1 (not shown) shifts just-in-time joins to write-time via Materialized Views; Step 2 (this demo) accelerates endpoint creation with the query layer. This architecture assumes MVs/OLAP tables already exist and focuses on the read-time query selection and filtering layer

Applied to files:

  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
🧬 Code graph analysis (10)
apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx (2)
apps/framework-docs-v2/src/components/navigation/doc-breadcrumbs.tsx (1)
  • DocBreadcrumbs (19-51)
apps/framework-docs-v2/src/components/markdown-menu.tsx (1)
  • MarkdownMenu (26-96)
apps/framework-docs-v2/src/app/layout.tsx (1)
apps/framework-docs-v2/src/components/ui/sidebar.tsx (1)
  • SidebarProvider (795-795)
apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx (2)
apps/framework-docs-v2/src/config/navigation.ts (1)
  • getGuideMetadataBySlug (1831-1853)
apps/framework-docs-v2/src/components/guides/guide-header.tsx (1)
  • GuideIcon (12-24)
apps/framework-docs-v2/src/app/templates/layout.tsx (2)
apps/framework-docs-v2/src/app/templates/templates-side-nav.tsx (1)
  • TemplatesSideNav (23-306)
apps/framework-docs-v2/src/components/ui/sidebar.tsx (1)
  • SidebarInset (784-784)
apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx (1)
apps/framework-docs-v2/src/components/guides/guide-card.tsx (1)
  • GuideCard (20-86)
apps/framework-docs-v2/src/components/guides/guide-card.tsx (2)
apps/framework-docs-v2/src/components/guides/guide-icons.ts (1)
  • getGuideIcon (49-54)
apps/framework-docs-v2/src/components/guides/guide-constants.ts (1)
  • LANGUAGE_DISPLAY_NAMES (4-7)
apps/framework-docs-v2/src/app/(guides)/layout.tsx (1)
apps/framework-docs-v2/src/components/ui/sidebar.tsx (1)
  • SidebarInset (784-784)
apps/framework-docs-v2/src/components/navigation/top-nav.tsx (1)
apps/framework-docs-v2/src/components/navigation/utility-controls.tsx (1)
  • UtilityControls (14-38)
apps/framework-docs-v2/src/app/(docs)/layout.tsx (2)
apps/framework-docs-v2/src/components/navigation/side-nav-server.tsx (1)
  • SideNavServer (48-53)
apps/framework-docs-v2/src/components/ui/sidebar.tsx (1)
  • SidebarInset (784-784)
apps/framework-docs-v2/src/app/(guides)/guides/page.tsx (1)
apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx (1)
  • GuideSectionGrid (12-49)
🪛 Biome (2.3.13)
apps/framework-docs-v2/src/styles/globals.css

[error] 89-89: Tailwind-specific syntax is disabled.

Enable tailwindDirectives in the css parser options, or remove this if you are not using Tailwind CSS.

(parse)


[error] 98-98: Tailwind-specific syntax is disabled.

Enable tailwindDirectives in the css parser options, or remove this if you are not using Tailwind CSS.

(parse)

apps/framework-docs-v2/src/components/mdx/cta-card.tsx

[error] 206-206: Avoid using the index of an array as key property in an element.

This is the source of the key value.

The order of the items may change, and this also affects performances and component state.
Check the React documentation.

(lint/suspicious/noArrayIndexKey)

🔇 Additional comments (49)
apps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsx (1)

59-59: LGTM!

The min-w-0 overflow-x-auto combination correctly handles horizontal overflow in flex/grid children. This prevents wide content (code blocks, tables) from breaking the layout while enabling horizontal scroll when needed.

apps/framework-docs-v2/src/components/ui/alert.tsx (2)

7-11: LGTM!

Styling aligns with PR objectives: rounded-xl, shadow, bg-card, and text-card-foreground unify card presentation across the docs UI.


45-48: LGTM!

The monospace uppercase treatment gives alert titles a distinct, label-like appearance. Consistent with the broader typography standardization in this PR.

apps/framework-docs-v2/src/components/mdx/zoom-img.tsx (1)

28-33: Consistent non-zoom styling looks good.

The rounded-xl + border update aligns with the unified card/image style direction.

Also applies to: 51-56

apps/framework-docs-v2/src/components/mdx/icon-badge.tsx (1)

31-31: LGTM!

Good switch to theme tokens (bg-muted, border-border, text-muted-foreground) for proper light/dark mode support.

apps/framework-docs-v2/src/components/mdx/feature-cards.tsx (1)

28-28: LGTM!

Consistent card styling with theme tokens and shadow.

apps/framework-docs-v2/src/components/ui/sidebar.tsx (1)

343-343: LGTM!

min-w-0 correctly prevents flex children from overflowing—standard fix for wide content in flex containers.

apps/framework-docs-v2/src/app/layout.tsx (1)

44-45: LGTM!

min-w-0 w-full applied to both SidebarProvider and wrapper div ensures proper overflow containment throughout the layout hierarchy.

apps/framework-docs-v2/src/app/components/page.tsx (1)

64-69: LGTM!

Responsive container and prose wrapper align with PR's typography/layout standardization.

apps/framework-docs-v2/src/app/page.tsx (1)

80-85: LGTM!

Container structure and prose wrapper consistent with PR's layout standardization across pages.

apps/framework-docs-v2/src/components/guides/guide-icons.ts (1)

20-20: IconFileCode properly added to import and guideIconMap.

Verified bidirectional mapping in navigation.ts (line 1729: [IconFileCode, "IconFileCode"]). Icon is actively used in multiple guide entries.

apps/framework-docs-v2/src/app/(guides)/layout.tsx (1)

12-19: Layout structure with overflow handling looks good.

Proper use of min-w-0 and overflow-hidden/overflow-x-hidden to prevent flex children from causing horizontal overflow. SidebarInset usage is correct.

apps/framework-docs-v2/src/components/guides/guide-constants.ts (1)

1-7: LGTM.

Clean constant definition with proper naming convention and documentation.

apps/framework-docs-v2/src/components/mdx/bullet-points-card.tsx (2)

66-74: Improved theme consistency.

Using bg-muted and text-foreground instead of hardcoded green/destructive colors makes the icons theme-aware.


130-140: Card width and shadow updates align with PR objectives.

Default w-full and shadow provide consistent card styling across the docs.

apps/framework-docs-v2/src/styles/globals.css (2)

83-93: Overflow and min-width handling is correct.

overflow-x: clip on html/body prevents horizontal scrollbar from overflowing content. min-width: 0 on body is standard fix for flex children.


97-99: Container width narrowed intentionally.

Changed from max-w-7xl to max-w-5xl lg:max-w-6xl per PR objectives. No existing max-w-7xl references found in the codebase that could conflict with this change.

apps/framework-docs-v2/src/app/templates/page.tsx (1)

39-45: Breadcrumb removal and overflow handling look good.

Aligns with PR objective to remove breadcrumbs from top-level index pages. overflow-x-auto on article prevents content overflow issues.

apps/framework-docs-v2/src/components/navigation/utility-controls.tsx (2)

14-37: Clean extraction of utility controls.

Explicit return type, proper variant handling, and clear separation of desktop/mobile layouts. Good reusability.


1-3: Import paths are correct.

All referenced files exist at their imported paths: theme-toggle.tsx and github-button-group.tsx are located in src/components/ (not in navigation/), and SidebarTrigger correctly imports from @/components/ui/sidebar.

apps/framework-docs-v2/src/app/templates/layout.tsx (1)

16-27: Consistent layout structure with proper overflow handling.

Matches the guides layout pattern with min-w-0, overflow-hidden, and responsive max-widths. Good consistency across layouts.

apps/framework-docs-v2/src/components/mdx/index.ts (1)

50-50: LGTM — GuideBadges export is wired correctly.

apps/framework-docs-v2/tailwind.config.ts (1)

95-268: LGTM — typography tokens are consistently variable-driven.

apps/framework-docs-v2/src/components/mdx/cta-card.tsx (1)

187-192: Confirm linting ran for TS/JS changes.
Please verify linting was executed for this PR.

As per coding guidelines: /*.{ts,tsx,js,jsx}: Run linting checks before submitting PRs for TypeScript/JavaScript code.

apps/framework-docs-v2/content/guides/static-report-generation.mdx (1)

7-12: GuideBadges integration looks good.

apps/framework-docs-v2/content/guides/data-warehouses.mdx (1)

7-12: GuideBadges usage is consistent here.

apps/framework-docs-v2/src/components/guides/guide-form.tsx (1)

115-116: Card styling update looks good.

apps/framework-docs-v2/content/guides/customer-data-platform.mdx (1)

7-12: GuideBadges addition is fine.

apps/framework-docs-v2/content/moosestack/olap/model-table.mdx (1)

8-18: Badge migration and spacing updates look good.

apps/framework-docs-v2/content/moosestack/getting-started/from-clickhouse.mdx (1)

8-18: Badge replacement aligns with the new UI standard.

apps/framework-docs-v2/content/guides/performant-dashboards.mdx (1)

7-22: GuideBadges addition looks good.
Clear placement near the title and consistent with the language metadata.

apps/framework-docs-v2/content/moosestack/getting-started/quickstart.mdx (1)

9-18: Badge swap and spacing update look solid.
Consistent with the new badge styling across the docs.

apps/framework-docs-v2/src/components/guides/guide-section-grid.tsx (1)

10-34: Icon-based card wiring + container styling look good.
This aligns the section grid with the new compact guide card layout.

apps/framework-docs-v2/content/guides/chat-in-your-app.mdx (1)

1-14: LGTM!

Frontmatter includes required title and description fields. GuideBadges import and usage are correct, with props matching frontmatter values for consistent badge display.

apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx (4)

15-16: LGTM!

New imports for GuideIcon and getGuideMetadataBySlug are correctly grouped with internal modules. The metadata lookup integrates cleanly with the navigation config.


114-116: LGTM!

Metadata lookup correctly placed before the dynamic/static branch. Returns undefined gracefully if slug not found in navigation config.


124-139: LGTM!

Layout improvements for dynamic guides:

  • min-w-0 prevents flex children from overflowing
  • overflow-x-auto on article handles wide content (code blocks, tables)
  • GuideIcon placement before article is consistent with static path

206-227: LGTM!

Static guide path mirrors dynamic path layout. Step articles consistently apply overflow-x-auto scroll-mt-20 for scrollable content with proper scroll offset.

apps/framework-docs-v2/content/moosestack/contribution/documentation.mdx (1)

331-346: Badge documentation updated correctly.

Props and usage examples align with the shadcn Badge API. The outline variant with muted styling matches the pattern used across other MDX files in this PR.

apps/framework-docs-v2/content/moosestack/index.mdx (3)

8-9: LGTM!

Imports correctly updated: Badge from shadcn/ui, IconBadge removed. Grouped with other internal component imports.


15-19: LGTM!

Badge styling (variant="outline" + muted classes) consistent with the standardized pattern across this PR.


29-54: LGTM!

grouped prop on CTACards creates the stacked card layout. Horizontal orientation with icons provides clear visual hierarchy for the three getting-started paths.

apps/framework-docs-v2/src/app/(guides)/guides/page.tsx (2)

67-75: LGTM!

Container gains min-w-0 for overflow safety. Semantic <header> element appropriate for page introduction (past feedback addressed).


81-111: LGTM!

"More" section card styling (rounded-xl border bg-card shadow) matches GuideSectionGrid pattern. Slack icon correctly has aria-hidden="true" (past feedback addressed). Button with asChild properly wraps the external Link.

apps/framework-docs-v2/src/app/(docs)/layout.tsx (3)

1-1: LGTM!

Consolidated React import with type and Suspense on single line.


10-12: LGTM!

Explicit React.JSX.Element return type added (past feedback addressed).


15-22: LGTM!

Layout refinements:

  • overflow-hidden on outer container prevents horizontal scrollbar at page level
  • overflow-x-hidden on inner wrapper catches any remaining overflow
  • min-w-0 throughout ensures flex children respect container bounds
  • max-w-5xl lg:max-w-6xl provides responsive width constraints
apps/framework-docs-v2/content/moosestack/quickstart.mdx (2)

8-9: LGTM!

Badge import correctly sourced from shadcn/ui. IconBadge removed from mdx barrel import.


13-17: LGTM!

Badge styling consistent with standardized pattern across the PR. Tighter spacing (gap-2 mt-4 mb-4) matches other pages.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

- Keep MarkdownMenu visible even on top-level index pages
- Only conditionally hide DocBreadcrumbs based on isTopLevelIndex
- Add aria-hidden and focusable={false} to decorative guide icons
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@apps/framework-docs-v2/src/app/`(docs)/[...slug]/page.tsx:
- Around line 111-115: The isTopLevelIndex calculation incorrectly relies on a
dead !slug.includes("/") condition and only handles hosting/overview and
ai/overview; replace it with an explicit allowlist of known top-level section
pages and test membership against that list (e.g., include "moosestack/index",
"moosestack/overview", "hosting/index", "hosting/overview", "ai/index",
"ai/overview"), updating the isTopLevelIndex variable to check
allowlist.includes(slug) and remove the !slug.includes("/") branch so
breadcrumbs hide for the correct section index pages.
📜 Review details

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between ca687a6 and 9e795b5.

📒 Files selected for processing (2)
  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Run linting checks before submitting PRs for TypeScript/JavaScript code

**/*.{ts,tsx,js,jsx}: Group imports by external dependencies, internal modules, and types; use named exports from barrel files (index.ts)
Use camelCase for variables and functions, PascalCase for types/classes/components, UPPER_SNAKE_CASE for constants in TypeScript/JavaScript
Prefix unused variables with underscore (e.g., _unusedParam) to bypass linting errors in TypeScript/JavaScript
Format TypeScript/JavaScript code with Prettier using experimentalTernaries: true; auto-formats on commit via Husky + lint-staged

Files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
apps/framework-docs-v2/src/app/**/page.tsx

📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)

All pages in the documentation site must use generateStaticParams for static site generation (SSG)

Files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
apps/framework-docs-v2/src/**/*.{ts,tsx}

📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)

Component library must use shadcn/ui components located in src/components/ui/

Files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Prefer interfaces for objects, types for unions/intersections in TypeScript; explicit return types on public APIs

Files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
🧠 Learnings (8)
📓 Common learnings
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/content/guides/**/*.mdx : Guide MDX files in `content/guides/` must include frontmatter with title and description fields
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Add new guides to `guidesNavigationConfig` in `src/config/navigation.ts` with required fields: type, slug, title, icon, languages, and status (start as 'draft')
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Guide promotion workflow: start guides with `status: "draft"` in navigation config, then progress to `status: "beta"`, finally remove status field for public release
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/src/app/**/page.tsx : All pages in the documentation site must use `generateStaticParams` for static site generation (SSG)

Applied to files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Use Vercel Toolbar feature flags for visibility control: `show-draft-guides`, `show-beta-guides`, `show-hosting-section`, `show-ai-section`, `show-copy-as-markdown`, `show-linear-integration`

Applied to files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
📚 Learning: 2026-01-08T18:32:03.114Z
Learnt from: DatGuyJonathan
Repo: 514-labs/moosestack PR: 3170
File: apps/framework-docs-v2/src/components/copy-page-button.tsx:36-38
Timestamp: 2026-01-08T18:32:03.114Z
Learning: Enforce the following multiline ternary formatting for conditional JSX without parentheses: place the condition and the '?' on the first line, place the true branch on the next indented line, and place the ':' plus the false branch on the third line. This pattern is commonly used for copy/check icon toggles in the moosestack repository (apps/framework-docs-v2). Apply this style to all TSX files under apps/framework-docs-v2/src/**/*.tsx to ensure consistency and readability.

Applied to files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Add new guides to `guidesNavigationConfig` in `src/config/navigation.ts` with required fields: type, slug, title, icon, languages, and status (start as 'draft')

Applied to files:

  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/content/guides/**/*.mdx : Guide MDX files in `content/guides/` must include frontmatter with title and description fields

Applied to files:

  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
📚 Learning: 2026-02-01T23:07:12.361Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-01T23:07:12.361Z
Learning: Applies to **/*.{ts,tsx} : Prefer interfaces for objects, types for unions/intersections in TypeScript; explicit return types on public APIs

Applied to files:

  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
📚 Learning: 2026-01-15T19:41:53.563Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: examples/cdp-analytics/CLAUDE.md:0-0
Timestamp: 2026-01-15T19:41:53.563Z
Learning: Applies to examples/cdp-analytics/web-app/src/features/dashboard/*.tsx : Dashboard components should follow React hooks patterns: use useState for local data, useEffect for data fetching, handle errors with fallback data, and wrap visualizations in Card/CardHeader/CardContent from Radix UI

Applied to files:

  • apps/framework-docs-v2/src/components/guides/guide-card.tsx
🧬 Code graph analysis (2)
apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx (2)
apps/framework-docs-v2/src/components/navigation/doc-breadcrumbs.tsx (1)
  • DocBreadcrumbs (19-51)
apps/framework-docs-v2/src/components/markdown-menu.tsx (1)
  • MarkdownMenu (26-96)
apps/framework-docs-v2/src/components/guides/guide-card.tsx (2)
apps/framework-docs-v2/src/components/guides/guide-icons.ts (1)
  • getGuideIcon (49-54)
apps/framework-docs-v2/src/components/guides/guide-constants.ts (1)
  • LANGUAGE_DISPLAY_NAMES (4-7)
🔇 Additional comments (1)
apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx (1)

119-129: Layout hardening looks good.

min-w-0 on the wrapper and overflow-x-auto on the article should reduce horizontal overflow issues for wide content.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

Replace unreliable !slug.includes('/') condition with an explicit
allowlist of known top-level section pages for hiding breadcrumbs.
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

<div className="flex w-full min-w-0 flex-col gap-6 pt-4">
<div className="flex items-center justify-between">
<DocBreadcrumbs items={breadcrumbs} />
{!isTopLevelIndex && <DocBreadcrumbs items={breadcrumbs} />}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Menu shifts left when breadcrumbs are hidden

Low Severity

When isTopLevelIndex is true, the DocBreadcrumbs component is not rendered, leaving only the MarkdownMenu inside the flex container with justify-between. With a single child, flexbox positions it at the start (left side) rather than the end (right side). This causes the menu/copy button to unexpectedly shift from right to left on top-level index pages like /moosestack or /hosting/overview, creating visual inconsistency compared to other pages.

Fix in Cursor Fix in Web

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@apps/framework-docs-v2/src/app/`(docs)/[...slug]/page.tsx:
- Around line 111-120: topLevelIndexPages currently lists "ai/index" and
"hosting/index" but is missing the root entries "ai" and "hosting", so
breadcrumbs still appear for those index routes; update the topLevelIndexPages
array (used with isTopLevelIndex) to include the strings "ai" and "hosting" (in
addition to the existing "ai/index" and "hosting/index") so that
generateStaticParams entries like ["ai"] and ["hosting"] are recognized as
top‑level index pages and breadcrumbs are hidden.
📜 Review details

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 9e795b5 and 76ccbfb.

📒 Files selected for processing (1)
  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Run linting checks before submitting PRs for TypeScript/JavaScript code

**/*.{ts,tsx,js,jsx}: Group imports by external dependencies, internal modules, and types; use named exports from barrel files (index.ts)
Use camelCase for variables and functions, PascalCase for types/classes/components, UPPER_SNAKE_CASE for constants in TypeScript/JavaScript
Prefix unused variables with underscore (e.g., _unusedParam) to bypass linting errors in TypeScript/JavaScript
Format TypeScript/JavaScript code with Prettier using experimentalTernaries: true; auto-formats on commit via Husky + lint-staged

Files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
apps/framework-docs-v2/src/app/**/page.tsx

📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)

All pages in the documentation site must use generateStaticParams for static site generation (SSG)

Files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
apps/framework-docs-v2/src/**/*.{ts,tsx}

📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)

Component library must use shadcn/ui components located in src/components/ui/

Files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Prefer interfaces for objects, types for unions/intersections in TypeScript; explicit return types on public APIs

Files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
🧠 Learnings (6)
📓 Common learnings
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/content/guides/**/*.mdx : Guide MDX files in `content/guides/` must include frontmatter with title and description fields
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Add new guides to `guidesNavigationConfig` in `src/config/navigation.ts` with required fields: type, slug, title, icon, languages, and status (start as 'draft')
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Guide promotion workflow: start guides with `status: "draft"` in navigation config, then progress to `status: "beta"`, finally remove status field for public release
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/src/app/**/page.tsx : All pages in the documentation site must use `generateStaticParams` for static site generation (SSG)

Applied to files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Add new guides to `guidesNavigationConfig` in `src/config/navigation.ts` with required fields: type, slug, title, icon, languages, and status (start as 'draft')

Applied to files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Use Vercel Toolbar feature flags for visibility control: `show-draft-guides`, `show-beta-guides`, `show-hosting-section`, `show-ai-section`, `show-copy-as-markdown`, `show-linear-integration`

Applied to files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
📚 Learning: 2026-01-08T18:32:03.114Z
Learnt from: DatGuyJonathan
Repo: 514-labs/moosestack PR: 3170
File: apps/framework-docs-v2/src/components/copy-page-button.tsx:36-38
Timestamp: 2026-01-08T18:32:03.114Z
Learning: Enforce the following multiline ternary formatting for conditional JSX without parentheses: place the condition and the '?' on the first line, place the true branch on the next indented line, and place the ':' plus the false branch on the third line. This pattern is commonly used for copy/check icon toggles in the moosestack repository (apps/framework-docs-v2). Apply this style to all TSX files under apps/framework-docs-v2/src/**/*.tsx to ensure consistency and readability.

Applied to files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
📚 Learning: 2026-01-19T22:37:05.393Z
Learnt from: DatGuyJonathan
Repo: 514-labs/moosestack PR: 3282
File: apps/framework-cli-e2e/test/utils/llm-agent-utils.ts:613-742
Timestamp: 2026-01-19T22:37:05.393Z
Learning: In the LLM Documentation Automation test (`apps/framework-cli-e2e/test/llm-docs-automation.test.ts` and `apps/framework-cli-e2e/test/utils/llm-agent-utils.ts`), token limit failures are intentional. The test should fail if the agent exceeds Claude's context window, as this signals that documentation or task complexity needs improvement and represents what a real user would experience.

Applied to files:

  • apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx
🧬 Code graph analysis (1)
apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsx (2)
apps/framework-docs-v2/src/components/navigation/doc-breadcrumbs.tsx (1)
  • DocBreadcrumbs (19-51)
apps/framework-docs-v2/src/components/markdown-menu.tsx (1)
  • MarkdownMenu (26-96)

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

Comment on lines +111 to +120
// Hide breadcrumbs for top-level section index pages
const topLevelIndexPages = [
"moosestack",
"moosestack/index",
"hosting/overview",
"hosting/index",
"ai/overview",
"ai/index",
];
const isTopLevelIndex = topLevelIndexPages.includes(slug);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Include root /ai and /hosting in top‑level index allowlist.

generateStaticParams adds ["ai"] and ["hosting"], but topLevelIndexPages doesn’t include "ai" or "hosting", so breadcrumbs still show on those index routes.

✅ Proposed fix
 const topLevelIndexPages = [
   "moosestack",
   "moosestack/index",
+  "hosting",
   "hosting/overview",
   "hosting/index",
+  "ai",
   "ai/overview",
   "ai/index",
 ];
🤖 Prompt for AI Agents
In `@apps/framework-docs-v2/src/app/`(docs)/[...slug]/page.tsx around lines 111 -
120, topLevelIndexPages currently lists "ai/index" and "hosting/index" but is
missing the root entries "ai" and "hosting", so breadcrumbs still appear for
those index routes; update the topLevelIndexPages array (used with
isTopLevelIndex) to include the strings "ai" and "hosting" (in addition to the
existing "ai/index" and "hosting/index") so that generateStaticParams entries
like ["ai"] and ["hosting"] are recognized as top‑level index pages and
breadcrumbs are hidden.

Resolve conflict in performant-dashboards.mdx by including both
GuideBadges and CommunityCallout imports.
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
apps/framework-docs-v2/src/config/navigation.ts (1)

1751-1793: ⚠️ Potential issue | 🟡 Minor

Update the doc comment to match the new “Popular” header.
The comment still says top-level guides show with a null title, but the code now labels them “Popular”.

📝 Proposed doc fix
- * - Top-level guides (pages not inside a section) - shown first with null title
+ * - Top-level guides (pages not inside a section) - shown first under "Popular"
📜 Review details

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 76ccbfb and b7e1671.

📒 Files selected for processing (4)
  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/src/config/navigation.ts
🧰 Additional context used
📓 Path-based instructions (5)
**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Run linting checks before submitting PRs for TypeScript/JavaScript code

**/*.{ts,tsx,js,jsx}: Group imports by external dependencies, internal modules, and types; use named exports from barrel files (index.ts)
Use camelCase for variables and functions, PascalCase for types/classes/components, UPPER_SNAKE_CASE for constants in TypeScript/JavaScript
Prefix unused variables with underscore (e.g., _unusedParam) to bypass linting errors in TypeScript/JavaScript
Format TypeScript/JavaScript code with Prettier using experimentalTernaries: true; auto-formats on commit via Husky + lint-staged

Files:

  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/src/config/navigation.ts
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
apps/framework-docs-v2/src/**/*.{ts,tsx}

📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)

Component library must use shadcn/ui components located in src/components/ui/

Files:

  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/src/config/navigation.ts
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Prefer interfaces for objects, types for unions/intersections in TypeScript; explicit return types on public APIs

Files:

  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/src/config/navigation.ts
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
apps/framework-docs-v2/content/**/*.mdx

📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)

apps/framework-docs-v2/content/**/*.mdx: Use {{ include "shared/path.mdx" }} directives to reuse content fragments, which are processed via processIncludes() during build
Validate code snippets in documentation with the @test directive for TypeScript and Python code blocks
TypeScript code snippets in documentation should be validated for syntax with brace matching; Python snippets should be validated for indentation

Files:

  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
apps/framework-docs-v2/content/guides/**/*.mdx

📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)

Guide MDX files in content/guides/ must include frontmatter with title and description fields

Files:

  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
🧠 Learnings (16)
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Add new guides to `guidesNavigationConfig` in `src/config/navigation.ts` with required fields: type, slug, title, icon, languages, and status (start as 'draft')

Applied to files:

  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/src/config/navigation.ts
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/content/guides/**/*.mdx : Guide MDX files in `content/guides/` must include frontmatter with title and description fields

Applied to files:

  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Use Vercel Toolbar feature flags for visibility control: `show-draft-guides`, `show-beta-guides`, `show-hosting-section`, `show-ai-section`, `show-copy-as-markdown`, `show-linear-integration`

Applied to files:

  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
📚 Learning: 2026-01-15T19:41:53.563Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: examples/cdp-analytics/CLAUDE.md:0-0
Timestamp: 2026-01-15T19:41:53.563Z
Learning: Applies to examples/cdp-analytics/web-app/src/features/dashboard/*.tsx : Dashboard components should follow React hooks patterns: use useState for local data, useEffect for data fetching, handle errors with fallback data, and wrap visualizations in Card/CardHeader/CardContent from Radix UI

Applied to files:

  • apps/framework-docs-v2/src/components/mdx/index.ts
  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/content/**/*.mdx : Use `{{ include "shared/path.mdx" }}` directives to reuse content fragments, which are processed via `processIncludes()` during build

Applied to files:

  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
📚 Learning: 2026-01-27T17:36:29.854Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: examples/nextjs-moose/CLAUDE.md:0-0
Timestamp: 2026-01-27T17:36:29.854Z
Learning: Applies to examples/nextjs-moose/components/dashboard/**/*.ts : Dashboard hooks must call server actions (not moose functions directly) to decouple React components from ClickHouse implementation details

Applied to files:

  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
📚 Learning: 2026-01-15T19:41:53.563Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: examples/cdp-analytics/CLAUDE.md:0-0
Timestamp: 2026-01-15T19:41:53.563Z
Learning: For slow dashboard queries (>500ms) that aggregate across multiple tables or need cohort-based breakdowns, implement a materialized view instead of real-time queries

Applied to files:

  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
📚 Learning: 2026-01-27T17:36:29.854Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: examples/nextjs-moose/CLAUDE.md:0-0
Timestamp: 2026-01-27T17:36:29.854Z
Learning: The moose query layer represents a two-step OLAP migration pattern: Step 1 (not shown) shifts just-in-time joins to write-time via Materialized Views; Step 2 (this demo) accelerates endpoint creation with the query layer. This architecture assumes MVs/OLAP tables already exist and focuses on the read-time query selection and filtering layer

Applied to files:

  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
📚 Learning: 2026-01-28T14:50:00.978Z
Learnt from: cjus
Repo: 514-labs/moosestack PR: 3407
File: apps/framework-docs-v2/content/guides/static-report-generation.mdx:1402-1406
Timestamp: 2026-01-28T14:50:00.978Z
Learning: When reviewing WebApp implementations that run in a Node.js backend, prefer Node.js-specific types (e.g., Buffer) and avoid browser-focused cross-platform compatibility considerations. This guideline applies to MDX documentation and code examples across the repository where backend/runtime code is discussed; ensure reviewers distinguish server-side context from frontend/browser constraints and validate type usage accordingly.

Applied to files:

  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
📚 Learning: 2026-01-28T14:55:13.411Z
Learnt from: cjus
Repo: 514-labs/moosestack PR: 3407
File: apps/framework-docs-v2/content/guides/static-report-generation.mdx:1585-1616
Timestamp: 2026-01-28T14:55:13.411Z
Learning: In documentation and tutorial files under apps/framework-docs-v2/content/guides/, prefer explicit, self-contained code examples that may duplicate small snippets for clarity over abstracting with DRY helpers. Ensure examples are easy to understand in isolation, even if it means a bit of repetition, to aid learning and reduce cognitive load for readers.

Applied to files:

  • apps/framework-docs-v2/content/guides/performant-dashboards.mdx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Navigation configuration must be manually maintained in `src/config/navigation.ts` and not auto-generated from file structure

Applied to files:

  • apps/framework-docs-v2/src/config/navigation.ts
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Guide promotion workflow: start guides with `status: "draft"` in navigation config, then progress to `status: "beta"`, finally remove status field for public release

Applied to files:

  • apps/framework-docs-v2/src/config/navigation.ts
📚 Learning: 2026-02-01T23:07:12.361Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-01T23:07:12.361Z
Learning: Applies to **/*.{ts,tsx} : Prefer interfaces for objects, types for unions/intersections in TypeScript; explicit return types on public APIs

Applied to files:

  • apps/framework-docs-v2/src/config/navigation.ts
📚 Learning: 2026-01-27T17:36:29.854Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: examples/nextjs-moose/CLAUDE.md:0-0
Timestamp: 2026-01-27T17:36:29.854Z
Learning: Applies to examples/nextjs-moose/app/actions.ts : Server actions must import query functions from the moose package and wrap them, serving as the bridge between frontend React components and backend moose query functions

Applied to files:

  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
📚 Learning: 2026-01-22T19:02:52.316Z
Learnt from: CR
Repo: 514-labs/moosestack PR: 0
File: apps/framework-docs-v2/CLAUDE.md:0-0
Timestamp: 2026-01-22T19:02:52.316Z
Learning: Applies to apps/framework-docs-v2/src/**/*.{ts,tsx} : Component library must use shadcn/ui components located in `src/components/ui/`

Applied to files:

  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
📚 Learning: 2026-01-08T18:32:03.114Z
Learnt from: DatGuyJonathan
Repo: 514-labs/moosestack PR: 3170
File: apps/framework-docs-v2/src/components/copy-page-button.tsx:36-38
Timestamp: 2026-01-08T18:32:03.114Z
Learning: Enforce the following multiline ternary formatting for conditional JSX without parentheses: place the condition and the '?' on the first line, place the true branch on the next indented line, and place the ':' plus the false branch on the third line. This pattern is commonly used for copy/check icon toggles in the moosestack repository (apps/framework-docs-v2). Apply this style to all TSX files under apps/framework-docs-v2/src/**/*.tsx to ensure consistency and readability.

Applied to files:

  • apps/framework-docs-v2/src/components/mdx-renderer.tsx
🔇 Additional comments (6)
apps/framework-docs-v2/src/components/mdx/index.ts (1)

50-50: Export wiring looks correct.

apps/framework-docs-v2/src/components/mdx-renderer.tsx (2)

1-6: Import change is fine.


120-124: GuideBadges exposure in MDX components looks good.

apps/framework-docs-v2/content/guides/performant-dashboards.mdx (1)

7-23: GuideBadges import + placement are consistent.

apps/framework-docs-v2/src/config/navigation.ts (2)

1717-1737: IconFileCode mapping looks good.


1827-1832: Confirm lint checks ran for these TS changes.
As per coding guidelines, run linting checks before submitting PRs for TypeScript/JavaScript code.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

@asl677
Copy link
Collaborator Author

asl677 commented Feb 4, 2026

I think I resolved the conflicts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant