Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Summary by CodeRabbit
WalkthroughReplaces 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
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Disabled knowledge base sources:
📒 Files selected for processing (4)
🧰 Additional context used📓 Path-based instructions (5)**/*.{ts,tsx,js,jsx}📄 CodeRabbit inference engine (.github/copilot-instructions.md)
Files:
apps/framework-docs-v2/src/**/*.{ts,tsx}📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)
Files:
**/*.{ts,tsx}📄 CodeRabbit inference engine (AGENTS.md)
Files:
apps/framework-docs-v2/content/**/*.mdx📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)
Files:
apps/framework-docs-v2/content/guides/**/*.mdx📄 CodeRabbit inference engine (apps/framework-docs-v2/CLAUDE.md)
Files:
🧠 Learnings (16)📚 Learning: 2026-01-22T19:02:52.316ZApplied to files:
📚 Learning: 2026-01-22T19:02:52.316ZApplied to files:
📚 Learning: 2026-01-22T19:02:52.316ZApplied to files:
📚 Learning: 2026-01-15T19:41:53.563ZApplied to files:
📚 Learning: 2026-01-22T19:02:52.316ZApplied to files:
📚 Learning: 2026-01-27T17:36:29.854ZApplied to files:
📚 Learning: 2026-01-15T19:41:53.563ZApplied to files:
📚 Learning: 2026-01-27T17:36:29.854ZApplied to files:
📚 Learning: 2026-01-28T14:50:00.978ZApplied to files:
📚 Learning: 2026-01-28T14:55:13.411ZApplied to files:
📚 Learning: 2026-01-22T19:02:52.316ZApplied to files:
📚 Learning: 2026-01-22T19:02:52.316ZApplied to files:
📚 Learning: 2026-02-01T23:07:12.361ZApplied to files:
📚 Learning: 2026-01-27T17:36:29.854ZApplied to files:
📚 Learning: 2026-01-22T19:02:52.316ZApplied to files:
📚 Learning: 2026-01-08T18:32:03.114ZApplied to files:
🔇 Additional comments (6)
✏️ Tip: You can disable this entire section by setting 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. Comment |
There was a problem hiding this comment.
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.
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (5)
apps/framework-docs-v2/src/app/(guides)/guides/page.tsxapps/framework-docs-v2/src/components/guides/guide-card.tsxapps/framework-docs-v2/src/components/guides/guide-icons.tsapps/framework-docs-v2/src/components/guides/guide-section-grid.tsxapps/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.tsapps/framework-docs-v2/src/config/navigation.tsapps/framework-docs-v2/src/components/guides/guide-section-grid.tsxapps/framework-docs-v2/src/app/(guides)/guides/page.tsxapps/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.tsapps/framework-docs-v2/src/config/navigation.tsapps/framework-docs-v2/src/components/guides/guide-section-grid.tsxapps/framework-docs-v2/src/app/(guides)/guides/page.tsxapps/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.tsapps/framework-docs-v2/src/config/navigation.tsapps/framework-docs-v2/src/components/guides/guide-section-grid.tsxapps/framework-docs-v2/src/app/(guides)/guides/page.tsxapps/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
generateStaticParamsfor 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.tsapps/framework-docs-v2/src/config/navigation.tsapps/framework-docs-v2/src/components/guides/guide-section-grid.tsxapps/framework-docs-v2/src/app/(guides)/guides/page.tsxapps/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.tsapps/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.tsxapps/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.tsxapps/framework-docs-v2/src/app/(guides)/guides/page.tsxapps/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 confirmIconFileCodeexists in the pinned@tabler/icons-reactversion 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-reactversion.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.
There was a problem hiding this comment.
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: RedundantmaxWidthprop can be dropped.
BulletPointCardalready 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: Thevariantprop is unused.The
variantprop is declared but never applied to the styling logic. The component now uses fixedbg-muted border-border text-muted-foregroundregardless 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, andtagsare loaded but no longer passed toGuideCard(which now only usesiconName). 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.
📒 Files selected for processing (21)
apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsxapps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsxapps/framework-docs-v2/src/app/(docs)/layout.tsxapps/framework-docs-v2/src/app/(guides)/guides/page.tsxapps/framework-docs-v2/src/app/(guides)/layout.tsxapps/framework-docs-v2/src/app/components/page.tsxapps/framework-docs-v2/src/app/layout.tsxapps/framework-docs-v2/src/app/page.tsxapps/framework-docs-v2/src/app/templates/layout.tsxapps/framework-docs-v2/src/app/templates/page.tsxapps/framework-docs-v2/src/components/guides/guide-card.tsxapps/framework-docs-v2/src/components/guides/guide-form.tsxapps/framework-docs-v2/src/components/guides/guide-section-grid.tsxapps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsxapps/framework-docs-v2/src/components/mdx/bullet-points-card.tsxapps/framework-docs-v2/src/components/mdx/feature-cards.tsxapps/framework-docs-v2/src/components/mdx/icon-badge.tsxapps/framework-docs-v2/src/components/ui/alert.tsxapps/framework-docs-v2/src/components/ui/sidebar.tsxapps/framework-docs-v2/src/styles/globals.cssapps/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.tsxapps/framework-docs-v2/src/components/mdx/feature-cards.tsxapps/framework-docs-v2/src/app/(guides)/guides/page.tsxapps/framework-docs-v2/src/app/(docs)/layout.tsxapps/framework-docs-v2/src/components/guides/guide-form.tsxapps/framework-docs-v2/src/components/mdx/icon-badge.tsxapps/framework-docs-v2/tailwind.config.tsapps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsxapps/framework-docs-v2/src/components/guides/guide-card.tsxapps/framework-docs-v2/src/components/ui/alert.tsxapps/framework-docs-v2/src/app/layout.tsxapps/framework-docs-v2/src/app/templates/page.tsxapps/framework-docs-v2/src/app/page.tsxapps/framework-docs-v2/src/app/components/page.tsxapps/framework-docs-v2/src/components/mdx/bullet-points-card.tsxapps/framework-docs-v2/src/app/templates/layout.tsxapps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsxapps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsxapps/framework-docs-v2/src/app/(guides)/layout.tsxapps/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.tsxapps/framework-docs-v2/src/components/mdx/feature-cards.tsxapps/framework-docs-v2/src/app/(guides)/guides/page.tsxapps/framework-docs-v2/src/app/(docs)/layout.tsxapps/framework-docs-v2/src/components/guides/guide-form.tsxapps/framework-docs-v2/src/components/mdx/icon-badge.tsxapps/framework-docs-v2/tailwind.config.tsapps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsxapps/framework-docs-v2/src/components/guides/guide-card.tsxapps/framework-docs-v2/src/components/ui/alert.tsxapps/framework-docs-v2/src/app/layout.tsxapps/framework-docs-v2/src/app/templates/page.tsxapps/framework-docs-v2/src/app/page.tsxapps/framework-docs-v2/src/app/components/page.tsxapps/framework-docs-v2/src/components/mdx/bullet-points-card.tsxapps/framework-docs-v2/src/app/templates/layout.tsxapps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsxapps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsxapps/framework-docs-v2/src/app/(guides)/layout.tsxapps/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.tsxapps/framework-docs-v2/src/components/mdx/feature-cards.tsxapps/framework-docs-v2/src/app/(guides)/guides/page.tsxapps/framework-docs-v2/src/app/(docs)/layout.tsxapps/framework-docs-v2/src/components/guides/guide-form.tsxapps/framework-docs-v2/src/components/mdx/icon-badge.tsxapps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsxapps/framework-docs-v2/src/components/guides/guide-card.tsxapps/framework-docs-v2/src/components/ui/alert.tsxapps/framework-docs-v2/src/app/layout.tsxapps/framework-docs-v2/src/app/templates/page.tsxapps/framework-docs-v2/src/app/page.tsxapps/framework-docs-v2/src/app/components/page.tsxapps/framework-docs-v2/src/components/mdx/bullet-points-card.tsxapps/framework-docs-v2/src/app/templates/layout.tsxapps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsxapps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsxapps/framework-docs-v2/src/app/(guides)/layout.tsxapps/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
generateStaticParamsfor static site generation (SSG)
Files:
apps/framework-docs-v2/src/app/(guides)/guides/page.tsxapps/framework-docs-v2/src/app/templates/page.tsxapps/framework-docs-v2/src/app/page.tsxapps/framework-docs-v2/src/app/components/page.tsxapps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsxapps/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.tsxapps/framework-docs-v2/src/app/(docs)/layout.tsxapps/framework-docs-v2/src/components/ui/alert.tsxapps/framework-docs-v2/src/app/layout.tsxapps/framework-docs-v2/src/app/components/page.tsxapps/framework-docs-v2/src/app/templates/layout.tsxapps/framework-docs-v2/src/app/(guides)/layout.tsxapps/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.tsxapps/framework-docs-v2/src/components/mdx/feature-cards.tsxapps/framework-docs-v2/src/app/(guides)/guides/page.tsxapps/framework-docs-v2/src/app/(docs)/layout.tsxapps/framework-docs-v2/src/components/guides/guide-form.tsxapps/framework-docs-v2/src/components/mdx/icon-badge.tsxapps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsxapps/framework-docs-v2/src/components/guides/guide-card.tsxapps/framework-docs-v2/src/components/ui/alert.tsxapps/framework-docs-v2/src/app/layout.tsxapps/framework-docs-v2/src/app/templates/page.tsxapps/framework-docs-v2/src/app/page.tsxapps/framework-docs-v2/src/app/components/page.tsxapps/framework-docs-v2/src/components/mdx/bullet-points-card.tsxapps/framework-docs-v2/src/app/templates/layout.tsxapps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsxapps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsxapps/framework-docs-v2/src/app/(guides)/layout.tsxapps/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.tsxapps/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.tsxapps/framework-docs-v2/src/components/guides/guide-card.tsxapps/framework-docs-v2/src/app/templates/page.tsxapps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsxapps/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.tsxapps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsxapps/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.tsxapps/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.tsxapps/framework-docs-v2/src/app/components/page.tsxapps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsxapps/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-foregroundandshadowaligns 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-fullis 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:
getGuideIconlookup 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-foregroundheader 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-autois 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-0toSidebarInsetis 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-slatealigns with the global prose theming, andoverflow-x-automatches 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-0prevents flex overflow,overflow-hiddenon outer container withoverflow-x-hiddenon inner content wrapper provides proper containment.SidebarInsetusage aligns with shadcn/ui guidelines.apps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsx (2)
119-133: LGTM!
min-w-0andoverflow-x-autoadditions 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:
prosewrapper 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-betweenwith breadcrumbs + menu) mirrors guides pages.MarkdownMenuintegration 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.
- 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.
1e0b4b5 to
2d949a4
Compare
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.
There was a problem hiding this comment.
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 | 🔵 TrivialRemove unused import
Cardis imported on line 4 but never referenced—replace with styleddiv/Linkelements.-import { Card } from "@/components/ui/card";apps/framework-docs-v2/src/app/templates/layout.tsx (1)
11-13: 🛠️ Refactor suggestion | 🟠 MajorAdd 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 | 🟠 MajorAdd 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 | 🟠 MajorAdd 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 | 🟠 MajorAdd explicit return types to exported React components.
CTACardandCTACardsare 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.
📒 Files selected for processing (44)
apps/framework-docs-v2/content/guides/chat-in-your-app.mdxapps/framework-docs-v2/content/guides/customer-data-platform.mdxapps/framework-docs-v2/content/guides/data-warehouses.mdxapps/framework-docs-v2/content/guides/performant-dashboards.mdxapps/framework-docs-v2/content/guides/static-report-generation.mdxapps/framework-docs-v2/content/moosestack/contribution/documentation.mdxapps/framework-docs-v2/content/moosestack/getting-started/from-clickhouse.mdxapps/framework-docs-v2/content/moosestack/getting-started/quickstart.mdxapps/framework-docs-v2/content/moosestack/index.mdxapps/framework-docs-v2/content/moosestack/olap/model-table.mdxapps/framework-docs-v2/content/moosestack/quickstart.mdxapps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsxapps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsxapps/framework-docs-v2/src/app/(docs)/layout.tsxapps/framework-docs-v2/src/app/(guides)/guides/page.tsxapps/framework-docs-v2/src/app/(guides)/layout.tsxapps/framework-docs-v2/src/app/components/page.tsxapps/framework-docs-v2/src/app/layout.tsxapps/framework-docs-v2/src/app/page.tsxapps/framework-docs-v2/src/app/templates/layout.tsxapps/framework-docs-v2/src/app/templates/page.tsxapps/framework-docs-v2/src/components/guides/guide-card.tsxapps/framework-docs-v2/src/components/guides/guide-constants.tsapps/framework-docs-v2/src/components/guides/guide-form.tsxapps/framework-docs-v2/src/components/guides/guide-header.tsxapps/framework-docs-v2/src/components/guides/guide-icons.tsapps/framework-docs-v2/src/components/guides/guide-preview.tsxapps/framework-docs-v2/src/components/guides/guide-section-grid.tsxapps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsxapps/framework-docs-v2/src/components/mdx-renderer.tsxapps/framework-docs-v2/src/components/mdx/bullet-points-card.tsxapps/framework-docs-v2/src/components/mdx/cta-card.tsxapps/framework-docs-v2/src/components/mdx/feature-cards.tsxapps/framework-docs-v2/src/components/mdx/icon-badge.tsxapps/framework-docs-v2/src/components/mdx/index.tsapps/framework-docs-v2/src/components/mdx/zoom-img.tsxapps/framework-docs-v2/src/components/navigation/top-nav.tsxapps/framework-docs-v2/src/components/navigation/utility-controls.tsxapps/framework-docs-v2/src/components/ui/alert.tsxapps/framework-docs-v2/src/components/ui/sidebar.tsxapps/framework-docs-v2/src/config/navigation.tsapps/framework-docs-v2/src/lib/content-types.tsapps/framework-docs-v2/src/styles/globals.cssapps/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 usingexperimentalTernaries: true; auto-formats on commit via Husky + lint-staged
Files:
apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsxapps/framework-docs-v2/src/components/guides/guide-icons.tsapps/framework-docs-v2/src/components/guides/guide-form.tsxapps/framework-docs-v2/src/app/page.tsxapps/framework-docs-v2/src/components/mdx/bullet-points-card.tsxapps/framework-docs-v2/src/app/templates/page.tsxapps/framework-docs-v2/src/components/mdx/zoom-img.tsxapps/framework-docs-v2/src/app/layout.tsxapps/framework-docs-v2/src/components/navigation/utility-controls.tsxapps/framework-docs-v2/src/components/mdx/index.tsapps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsxapps/framework-docs-v2/src/app/templates/layout.tsxapps/framework-docs-v2/src/components/mdx/feature-cards.tsxapps/framework-docs-v2/src/components/guides/guide-section-grid.tsxapps/framework-docs-v2/src/app/components/page.tsxapps/framework-docs-v2/src/components/guides/guide-card.tsxapps/framework-docs-v2/src/components/guides/guide-constants.tsapps/framework-docs-v2/src/config/navigation.tsapps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsxapps/framework-docs-v2/src/components/mdx-renderer.tsxapps/framework-docs-v2/src/app/(guides)/layout.tsxapps/framework-docs-v2/src/components/navigation/top-nav.tsxapps/framework-docs-v2/src/components/mdx/cta-card.tsxapps/framework-docs-v2/src/components/mdx/icon-badge.tsxapps/framework-docs-v2/src/app/(docs)/layout.tsxapps/framework-docs-v2/src/components/ui/sidebar.tsxapps/framework-docs-v2/src/components/guides/guide-header.tsxapps/framework-docs-v2/src/app/(guides)/guides/page.tsxapps/framework-docs-v2/src/components/ui/alert.tsxapps/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
generateStaticParamsfor static site generation (SSG)
Files:
apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsxapps/framework-docs-v2/src/app/page.tsxapps/framework-docs-v2/src/app/templates/page.tsxapps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsxapps/framework-docs-v2/src/app/components/page.tsxapps/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.tsxapps/framework-docs-v2/src/components/guides/guide-icons.tsapps/framework-docs-v2/src/components/guides/guide-form.tsxapps/framework-docs-v2/src/app/page.tsxapps/framework-docs-v2/src/components/mdx/bullet-points-card.tsxapps/framework-docs-v2/src/app/templates/page.tsxapps/framework-docs-v2/src/components/mdx/zoom-img.tsxapps/framework-docs-v2/src/app/layout.tsxapps/framework-docs-v2/src/components/navigation/utility-controls.tsxapps/framework-docs-v2/src/components/mdx/index.tsapps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsxapps/framework-docs-v2/src/app/templates/layout.tsxapps/framework-docs-v2/src/components/mdx/feature-cards.tsxapps/framework-docs-v2/src/components/guides/guide-section-grid.tsxapps/framework-docs-v2/src/app/components/page.tsxapps/framework-docs-v2/src/components/guides/guide-card.tsxapps/framework-docs-v2/src/components/guides/guide-constants.tsapps/framework-docs-v2/src/config/navigation.tsapps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsxapps/framework-docs-v2/src/components/mdx-renderer.tsxapps/framework-docs-v2/src/app/(guides)/layout.tsxapps/framework-docs-v2/src/components/navigation/top-nav.tsxapps/framework-docs-v2/src/components/mdx/cta-card.tsxapps/framework-docs-v2/src/components/mdx/icon-badge.tsxapps/framework-docs-v2/src/app/(docs)/layout.tsxapps/framework-docs-v2/src/components/ui/sidebar.tsxapps/framework-docs-v2/src/components/guides/guide-header.tsxapps/framework-docs-v2/src/app/(guides)/guides/page.tsxapps/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.tsxapps/framework-docs-v2/src/components/guides/guide-icons.tsapps/framework-docs-v2/src/components/guides/guide-form.tsxapps/framework-docs-v2/src/app/page.tsxapps/framework-docs-v2/src/components/mdx/bullet-points-card.tsxapps/framework-docs-v2/src/app/templates/page.tsxapps/framework-docs-v2/src/components/mdx/zoom-img.tsxapps/framework-docs-v2/src/app/layout.tsxapps/framework-docs-v2/src/components/navigation/utility-controls.tsxapps/framework-docs-v2/src/components/mdx/index.tsapps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsxapps/framework-docs-v2/src/app/templates/layout.tsxapps/framework-docs-v2/src/components/mdx/feature-cards.tsxapps/framework-docs-v2/src/components/guides/guide-section-grid.tsxapps/framework-docs-v2/src/app/components/page.tsxapps/framework-docs-v2/src/components/guides/guide-card.tsxapps/framework-docs-v2/src/components/guides/guide-constants.tsapps/framework-docs-v2/src/config/navigation.tsapps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsxapps/framework-docs-v2/src/components/mdx-renderer.tsxapps/framework-docs-v2/src/app/(guides)/layout.tsxapps/framework-docs-v2/src/components/navigation/top-nav.tsxapps/framework-docs-v2/src/components/mdx/cta-card.tsxapps/framework-docs-v2/src/components/mdx/icon-badge.tsxapps/framework-docs-v2/src/app/(docs)/layout.tsxapps/framework-docs-v2/src/components/ui/sidebar.tsxapps/framework-docs-v2/src/components/guides/guide-header.tsxapps/framework-docs-v2/src/app/(guides)/guides/page.tsxapps/framework-docs-v2/src/components/ui/alert.tsxapps/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 viaprocessIncludes()during build
Validate code snippets in documentation with the@testdirective 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.mdxapps/framework-docs-v2/content/moosestack/getting-started/from-clickhouse.mdxapps/framework-docs-v2/content/moosestack/index.mdxapps/framework-docs-v2/content/guides/data-warehouses.mdxapps/framework-docs-v2/content/moosestack/getting-started/quickstart.mdxapps/framework-docs-v2/content/guides/customer-data-platform.mdxapps/framework-docs-v2/content/guides/static-report-generation.mdxapps/framework-docs-v2/content/guides/performant-dashboards.mdxapps/framework-docs-v2/content/moosestack/contribution/documentation.mdxapps/framework-docs-v2/content/guides/chat-in-your-app.mdxapps/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.mdxapps/framework-docs-v2/content/guides/customer-data-platform.mdxapps/framework-docs-v2/content/guides/static-report-generation.mdxapps/framework-docs-v2/content/guides/performant-dashboards.mdxapps/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.tsxapps/framework-docs-v2/src/app/page.tsxapps/framework-docs-v2/src/app/templates/page.tsxapps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsxapps/framework-docs-v2/src/app/components/page.tsxapps/framework-docs-v2/content/guides/static-report-generation.mdxapps/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.tsxapps/framework-docs-v2/content/moosestack/getting-started/from-clickhouse.mdxapps/framework-docs-v2/src/app/templates/page.tsxapps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsxapps/framework-docs-v2/content/moosestack/getting-started/quickstart.mdxapps/framework-docs-v2/src/components/mdx-renderer.tsxapps/framework-docs-v2/content/guides/static-report-generation.mdxapps/framework-docs-v2/content/guides/performant-dashboards.mdxapps/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.tsxapps/framework-docs-v2/src/components/guides/guide-icons.tsapps/framework-docs-v2/src/components/mdx/index.tsapps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsxapps/framework-docs-v2/src/components/guides/guide-section-grid.tsxapps/framework-docs-v2/src/components/guides/guide-card.tsxapps/framework-docs-v2/src/components/guides/guide-constants.tsapps/framework-docs-v2/src/config/navigation.tsapps/framework-docs-v2/src/app/(guides)/layout.tsxapps/framework-docs-v2/content/guides/customer-data-platform.mdxapps/framework-docs-v2/content/guides/static-report-generation.mdxapps/framework-docs-v2/src/components/guides/guide-header.tsxapps/framework-docs-v2/src/app/(guides)/guides/page.tsxapps/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.tsxapps/framework-docs-v2/content/moosestack/getting-started/from-clickhouse.mdxapps/framework-docs-v2/src/components/mdx/index.tsapps/framework-docs-v2/src/components/guides/guide-section-grid.tsxapps/framework-docs-v2/content/moosestack/getting-started/quickstart.mdxapps/framework-docs-v2/content/guides/customer-data-platform.mdxapps/framework-docs-v2/content/guides/performant-dashboards.mdxapps/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.tsxapps/framework-docs-v2/src/components/guides/guide-form.tsxapps/framework-docs-v2/src/app/page.tsxapps/framework-docs-v2/src/components/mdx/bullet-points-card.tsxapps/framework-docs-v2/src/app/templates/page.tsxapps/framework-docs-v2/src/components/mdx/zoom-img.tsxapps/framework-docs-v2/src/app/layout.tsxapps/framework-docs-v2/src/components/navigation/utility-controls.tsxapps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsxapps/framework-docs-v2/src/app/templates/layout.tsxapps/framework-docs-v2/src/components/mdx/feature-cards.tsxapps/framework-docs-v2/src/components/guides/guide-section-grid.tsxapps/framework-docs-v2/src/app/components/page.tsxapps/framework-docs-v2/src/components/guides/guide-card.tsxapps/framework-docs-v2/src/components/guides/guide-steps-wrapper.tsxapps/framework-docs-v2/src/components/mdx-renderer.tsxapps/framework-docs-v2/src/app/(guides)/layout.tsxapps/framework-docs-v2/src/components/navigation/top-nav.tsxapps/framework-docs-v2/src/components/mdx/cta-card.tsxapps/framework-docs-v2/src/components/mdx/icon-badge.tsxapps/framework-docs-v2/src/app/(docs)/layout.tsxapps/framework-docs-v2/src/components/ui/sidebar.tsxapps/framework-docs-v2/src/components/guides/guide-header.tsxapps/framework-docs-v2/src/app/(guides)/guides/page.tsxapps/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.tsapps/framework-docs-v2/src/components/guides/guide-form.tsxapps/framework-docs-v2/src/app/page.tsxapps/framework-docs-v2/src/app/layout.tsxapps/framework-docs-v2/src/components/navigation/utility-controls.tsxapps/framework-docs-v2/src/app/templates/layout.tsxapps/framework-docs-v2/src/app/components/page.tsxapps/framework-docs-v2/src/components/mdx-renderer.tsxapps/framework-docs-v2/src/app/(guides)/layout.tsxapps/framework-docs-v2/src/components/navigation/top-nav.tsxapps/framework-docs-v2/src/components/ui/sidebar.tsxapps/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.mdxapps/framework-docs-v2/content/moosestack/getting-started/from-clickhouse.mdxapps/framework-docs-v2/src/components/mdx/index.tsapps/framework-docs-v2/content/moosestack/index.mdxapps/framework-docs-v2/src/components/mdx/feature-cards.tsxapps/framework-docs-v2/content/moosestack/getting-started/quickstart.mdxapps/framework-docs-v2/src/components/guides/guide-card.tsxapps/framework-docs-v2/src/components/mdx-renderer.tsxapps/framework-docs-v2/src/app/(guides)/layout.tsxapps/framework-docs-v2/src/components/navigation/top-nav.tsxapps/framework-docs-v2/src/components/mdx/cta-card.tsxapps/framework-docs-v2/src/app/(docs)/layout.tsxapps/framework-docs-v2/content/guides/customer-data-platform.mdxapps/framework-docs-v2/content/guides/static-report-generation.mdxapps/framework-docs-v2/content/guides/performant-dashboards.mdxapps/framework-docs-v2/content/moosestack/contribution/documentation.mdxapps/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.mdxapps/framework-docs-v2/content/moosestack/getting-started/from-clickhouse.mdxapps/framework-docs-v2/content/moosestack/index.mdxapps/framework-docs-v2/content/moosestack/getting-started/quickstart.mdxapps/framework-docs-v2/src/components/mdx-renderer.tsxapps/framework-docs-v2/src/app/(docs)/layout.tsxapps/framework-docs-v2/content/guides/performant-dashboards.mdxapps/framework-docs-v2/content/moosestack/contribution/documentation.mdxapps/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.mdxapps/framework-docs-v2/content/moosestack/index.mdxapps/framework-docs-v2/src/app/(docs)/layout.tsxapps/framework-docs-v2/content/guides/static-report-generation.mdxapps/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.mdxapps/framework-docs-v2/content/moosestack/getting-started/from-clickhouse.mdxapps/framework-docs-v2/content/moosestack/index.mdxapps/framework-docs-v2/content/guides/data-warehouses.mdxapps/framework-docs-v2/content/moosestack/getting-started/quickstart.mdxapps/framework-docs-v2/content/guides/customer-data-platform.mdxapps/framework-docs-v2/content/guides/static-report-generation.mdxapps/framework-docs-v2/content/guides/performant-dashboards.mdxapps/framework-docs-v2/content/moosestack/contribution/documentation.mdxapps/framework-docs-v2/content/guides/chat-in-your-app.mdxapps/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.mdxapps/framework-docs-v2/src/components/mdx/index.tsapps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsxapps/framework-docs-v2/content/guides/data-warehouses.mdxapps/framework-docs-v2/src/components/guides/guide-section-grid.tsxapps/framework-docs-v2/src/components/guides/guide-card.tsxapps/framework-docs-v2/src/components/mdx-renderer.tsxapps/framework-docs-v2/content/guides/customer-data-platform.mdxapps/framework-docs-v2/content/guides/static-report-generation.mdxapps/framework-docs-v2/content/guides/performant-dashboards.mdxapps/framework-docs-v2/src/app/(guides)/guides/page.tsxapps/framework-docs-v2/content/guides/chat-in-your-app.mdxapps/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.mdxapps/framework-docs-v2/content/moosestack/index.mdxapps/framework-docs-v2/content/moosestack/getting-started/quickstart.mdxapps/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.mdxapps/framework-docs-v2/content/moosestack/getting-started/quickstart.mdxapps/framework-docs-v2/content/guides/customer-data-platform.mdxapps/framework-docs-v2/content/guides/static-report-generation.mdxapps/framework-docs-v2/content/moosestack/contribution/documentation.mdxapps/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.mdxapps/framework-docs-v2/content/moosestack/index.mdxapps/framework-docs-v2/src/components/mdx-renderer.tsxapps/framework-docs-v2/src/app/(docs)/layout.tsxapps/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.tsxapps/framework-docs-v2/src/app/(docs)/guides/[...slug]/page.tsxapps/framework-docs-v2/src/config/navigation.tsapps/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.tsxapps/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.mdxapps/framework-docs-v2/content/guides/customer-data-platform.mdxapps/framework-docs-v2/content/guides/static-report-generation.mdxapps/framework-docs-v2/content/guides/performant-dashboards.mdxapps/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.tsxapps/framework-docs-v2/src/components/guides/guide-card.tsxapps/framework-docs-v2/src/config/navigation.tsapps/framework-docs-v2/src/app/(guides)/layout.tsxapps/framework-docs-v2/src/app/(docs)/layout.tsxapps/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.mdxapps/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-autocombination 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, andtext-card-foregroundunify 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-0correctly 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-fullapplied 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-0andoverflow-hidden/overflow-x-hiddento 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-mutedandtext-foregroundinstead of hardcoded green/destructive colors makes the icons theme-aware.
130-140: Card width and shadow updates align with PR objectives.Default
w-fullandshadowprovide 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: clipon html/body prevents horizontal scrollbar from overflowing content.min-width: 0on body is standard fix for flex children.
97-99: Container width narrowed intentionally.Changed from
max-w-7xltomax-w-5xl lg:max-w-6xlper 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-autoon 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.tsxandgithub-button-group.tsxare located insrc/components/(not innavigation/), andSidebarTriggercorrectly 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
titleanddescriptionfields.GuideBadgesimport 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
GuideIconandgetGuideMetadataBySlugare 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
undefinedgracefully if slug not found in navigation config.
124-139: LGTM!Layout improvements for dynamic guides:
min-w-0prevents flex children from overflowingoverflow-x-autoon article handles wide content (code blocks, tables)GuideIconplacement 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-20for 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
outlinevariant 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!
groupedprop 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-0for 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) matchesGuideSectionGridpattern. Slack icon correctly hasaria-hidden="true"(past feedback addressed). Button withasChildproperly 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.Elementreturn type added (past feedback addressed).
15-22: LGTM!Layout refinements:
overflow-hiddenon outer container prevents horizontal scrollbar at page leveloverflow-x-hiddenon inner wrapper catches any remaining overflowmin-w-0throughout ensures flex children respect container boundsmax-w-5xl lg:max-w-6xlprovides responsive width constraintsapps/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
There was a problem hiding this comment.
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.
📒 Files selected for processing (2)
apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsxapps/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 usingexperimentalTernaries: true; auto-formats on commit via Husky + lint-staged
Files:
apps/framework-docs-v2/src/app/(docs)/[...slug]/page.tsxapps/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
generateStaticParamsfor 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.tsxapps/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.tsxapps/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.tsxapps/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-0on the wrapper andoverflow-x-autoon 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.
There was a problem hiding this comment.
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} />} |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
📒 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 usingexperimentalTernaries: 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
generateStaticParamsfor 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.
| // 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); |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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 | 🟡 MinorUpdate 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.
📒 Files selected for processing (4)
apps/framework-docs-v2/content/guides/performant-dashboards.mdxapps/framework-docs-v2/src/components/mdx-renderer.tsxapps/framework-docs-v2/src/components/mdx/index.tsapps/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 usingexperimentalTernaries: true; auto-formats on commit via Husky + lint-staged
Files:
apps/framework-docs-v2/src/components/mdx/index.tsapps/framework-docs-v2/src/config/navigation.tsapps/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.tsapps/framework-docs-v2/src/config/navigation.tsapps/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.tsapps/framework-docs-v2/src/config/navigation.tsapps/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 viaprocessIncludes()during build
Validate code snippets in documentation with the@testdirective 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.tsapps/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.tsapps/framework-docs-v2/content/guides/performant-dashboards.mdxapps/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.tsapps/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.tsapps/framework-docs-v2/content/guides/performant-dashboards.mdxapps/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.mdxapps/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.mdxapps/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.
|
I think I resolved the conflicts |


Summary
Standardizes UI styles across docs, guides, and templates pages.
Core Styling Changes
Guides Overview Changes (can be reviewed separately)
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 unifiedprosetypography setup (plus Tailwind typography tokenization and globaloverflow-x: clip).Refreshes guide UX by replacing preview-image based guide cards with compact icon cards showing language/tag badges, adding
GuideIconon guide detail pages, and introducing MDX-usableGuideBadges(also updating several guide MDX files to render them).Unifies component styling across cards/badges/media: replaces
IconBadgeusage in getting-started docs with standardBadge, adds grouped/stackedCTACardsmode matching guide-card styling, applies consistent rounded/bordered image styling inMDXRenderer/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.