Skip to content

Restructure all packages #39

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 13 commits into from
Jun 16, 2025
Merged

Restructure all packages #39

merged 13 commits into from
Jun 16, 2025

Conversation

eluce2
Copy link
Collaborator

@eluce2 eluce2 commented Jun 4, 2025

Summary by CodeRabbit

  • New Features

    • Introduced a new module to manage ProofKit typegen JSONC config files for FileMaker data sources, supporting layout additions, removals, and code generation.
    • Added support for resetting override files via CLI in the typegen package.
    • Added demo Next.js app with global styles, fonts, environment setup, and Vitest testing.
    • Added new React UI components: CLI command tabs, animated gradient text, aurora text, interactive grid pattern, shimmer button, and separator.
    • Enhanced documentation with extensive new pages on CLI usage, typegen config and FAQ, FileMaker Data API adapters, validation, token stores, upgrade guides, and WebViewer integration.
    • Migrated docs from Astro/Starlight to Next.js with updated UI and metadata.
    • Added configuration files for PostCSS, ESLint, Tailwind, and VSCode settings for demo and docs apps.
  • Bug Fixes

    • Improved error messages when layouts are not found.
    • Fixed client generation for cases without validators or portals.
  • Refactor

    • Renamed packages and namespaces from @proofgeist to @proofkit and updated imports accordingly.
    • Removed legacy CLI version scripts, GitHub workflows, and Astro-based docs components.
    • Simplified root package.json and reduced dev dependencies.
    • Removed legacy docs, templates, components, and scripts no longer in use.
  • Chores

    • Upgraded dependencies and streamlined dev dependencies.
    • Expanded .gitignore and .prettierignore files.
    • Added .npmrc setting for automatic peer dependency installation.
    • Added CodeRabbit automated review configuration.
  • Documentation

    • Added README files for demo and docs apps with setup and usage instructions.
    • Standardized UI components in docs with Callout, Tabs, and updated import paths.
    • Improved documentation presentation with new layouts, metadata, icons, and enhanced MDX components.
  • Tests

    • Added Vitest test suite for type generation with snapshot tests and environment setup.
    • Added snapshot test files for typed clients with and without Zod validation.
  • Style

    • Added global CSS styles with Tailwind, dark mode support, and custom themes for docs and demo apps.
    • Introduced animated text effects and interactive SVG grid components for enhanced UI.

eluce2 added 5 commits May 17, 2025 09:53
…roofgeist to @proofkit for fmdapi. Enhance CLI documentation with new video resources and improve layout handling in typegen configuration.
Copy link

vercel bot commented Jun 4, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated (UTC)
proofkit ❌ Failed (Inspect) Jun 16, 2025 2:47pm
proofkit-docs ✅ Ready (Inspect) Visit Preview Jun 16, 2025 2:47pm

Copy link

coderabbitai bot commented Jun 4, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

This update restructures the project by removing the legacy Astro-based documentation app and introducing a new Next.js-based documentation system under apps/docs. Numerous new configuration, source, and component files are added for both documentation and demo apps. The CLI package is renamed and updated to use new package namespaces, and a new approach for managing FileMaker type generation configs is implemented. Many references to old package names are updated, and new documentation content is provided for ProofKit's core libraries.

Changes

Files / Groups Change Summary
.changeset/*, .changeset/config.json, .changeset/pre.json Added and updated changeset files for versioning, documenting new features, patches, and package renames. Changeset config updated to ignore certain packages and adjust schema version. Pre-release manifest added.
.coderabbit.yaml, .npmrc, .gitignore, .vscode/settings.json Added/updated configuration files for code review automation, npm peer dependency handling, expanded gitignore patterns, and simplified VSCode settings.
LICENSE.md Updated copyright holder and year.
README.md, package.json Added new project README for Turborepo/Changesets starter. Simplified root package.json, focusing on minimal dev tooling and workspace management.
apps/demo/* Introduced a new Next.js demo app with full configuration, scripts, styles, test setup, and sample snapshot tests for FileMaker integration. Includes environment variable referencing, ESLint, PostCSS, Tailwind, Vitest, and typegen tests.
apps/docs/* Introduced a new Next.js-based documentation app with extensive configuration, global styles, custom layouts, navigation, MDX support, and a rich set of documentation content for ProofKit CLI, Typegen, FMDAPI, and Webviewer. Includes custom React components, syntax highlighting, and metadata for docs structure.
packages/cli/package.json, packages/cli/src/*, packages/cli/template/* Renamed CLI package to @proofkit/cli, updated dependencies and scripts, migrated all code and templates to new package namespaces, and replaced legacy fmdapi config management with a new JSONC-based approach for FileMaker typegen. Many imports updated to use zod/v4 and new package names.
cli/src/generators/fmdapi.ts Deleted old TypeScript-based FileMaker schema config manager using ts-morph.
packages/cli/src/generators/fmdapi.ts Added new JSONC-based FileMaker typegen config manager, supporting add/remove of layouts and data sources, codegen triggering, and config merging.
packages/cli/src/utils/getProofKitVersion.ts Added helper to retrieve the version of the fmdapi package for dependency management.
packages/cli/src/utils/*, packages/cli/src/cli/*, packages/cli/src/consts.ts, packages/cli/src/installers/*, packages/cli/template/extras/* Updated imports and logic to use new package namespaces, updated zod imports, and adjusted config field names for consistency with new typegen config.
.github/workflows/release.yml Updated release workflow to use new setup steps, tokens, and simplified release/publish commands. Slack notification step added.
.github/*, docs/*, docs/src/* Entire legacy Astro-based documentation app, config, and scripts deleted, including all components, styles, and content.
Other deleted files Removed legacy configs, scripts, and workflow files no longer relevant after migration to new structure and tooling.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant CLI
    participant TypegenConfig (JSONC)
    participant CodegenProcess

    User->>CLI: Add or remove FileMaker layout/data source
    CLI->>TypegenConfig: Read/modify proofkit-typegen.config.jsonc
    TypegenConfig-->>CLI: Updated config
    CLI->>CodegenProcess: Optionally trigger typegen CLI
    CodegenProcess-->>CLI: Generate/update TypeScript schemas and clients
    CLI-->>User: Operation complete (schemas/clients updated)
Loading

Poem

🐇
A garden of docs, now fresh and new,
Next.js blooms where Astro once grew.
ProofKit’s CLI gets a shiny new name,
Typegen configs—JSONC’s the game!
Old weeds pulled, new carrots sown,
With every hop, our toolkit’s grown.
Hooray for change—let’s binky on!


🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Caution

Inline review comments failed to post. This is likely due to GitHub's limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

🛑 Comments failed to post (29)
.changeset/config.json (1)

2-2: 💡 Verification agent

🧩 Analysis chain

Verify the schema version downgrade is intentional.

The schema version was downgraded from 2.3.1 to 2.0.0. Please confirm this is intentional, as it might remove access to newer changeset features.


🌐 Web query:

What are the differences between @changesets/config schema versions 2.0.0 and 2.3.1?

💡 Result:

Key Differences Between @changesets/config Schema Versions 2.0.0 and 2.3.1

The primary differences between the @changesets/config schema versions 2.0.0 and 2.3.1 revolve around new configuration options introduced, expanded flexibility, and enhancements in managing package releases within monorepos. Below is a detailed comparison based on the available documentation and changelogs.


Base Configuration in 2.0.0

When version 2.0.0 of Changesets was released, the configuration format and options were significantly updated:

  • Configuration moved to a JSON format for clarity and safety.
  • Fewer options were supported, with a focus on simplicity and clear defaults.

Default 2.0.0 config structure:

{
  "$schema": "https://unpkg.com/@changesets/config/schema.json",
  "changelog": "@changesets/cli/changelog",
  "commit": false,
  "linked": [],
  "access": "private"
}

Notable points:

  • Only basic options (changelog, commit, linked, access) were present.
  • The config was intentionally minimal to reduce complexity and risk[4].

Enhancements as of 2.3.1

By schema version 2.3.1, the configuration options had expanded to support more advanced workflows, especially for larger monorepo projects. Example config excerpt:

{
  "$schema": "https://unpkg.com/@changesets/[email protected]/schema.json",
  "changelog": [
    "@changesets/changelog-github",
    {
      "repo": "lirantal/astro-keyboard-controls"
    }
  ],
  "commit": false,
  "fixed": [],
  "linked": [],
  "access": "public",
  "baseBranch": "main",
  "updateInternalDependencies": "patch",
  "ignore": []
}

Key new/changed options in 2.3.1:

  • fixed: Introduced to group packages for fixed/locked releases—packages listed here will always be released together if any one of them is changed[1].
  • baseBranch: Allows specifying the main branch for release operations.
  • updateInternalDependencies: Controls how internal package dependencies are bumped (patch, etc.).
  • ignore: Lets you exclude certain packages from automatic versioning[2].
  • Enhanced changelog field supporting structured configuration including repo information.

Summary Table

Feature/Option 2.0.0 2.3.1
$schema Generic Versioned (e.g., 2.3.1)
changelog String or basic Structured, repo field
commit Yes Yes
linked Yes Yes
access "private" "public" or "private"
fixed No Yes
baseBranch No Yes
updateInternalDependencies No Yes
ignore No Yes

Conclusion

Version 2.3.1 of the @changesets/config schema introduces several new configuration options and greater flexibility compared to 2.0.0. The most significant additions are support for package grouping with fixed, more granular control over dependency updates, ability to ignore specific packages, and richer changelog configuration. These improvements make Changesets more powerful and suitable for complex monorepo workflows[1][2][4].

Citations:


Update Changesets schema to match added options

The config.json uses baseBranch and ignore, which were introduced in schema 2.3.1. Version 2.0.0 doesn’t support these fields and will trigger validation errors. Please bump the schema URL accordingly:

• File: .changeset/config.json
Change:

- "$schema": "https://unpkg.com/@changesets/[email protected]/schema.json",
+ "$schema": "https://unpkg.com/@changesets/[email protected]/schema.json",

If you intentionally need to stick with 2.0.0, remove any unsupported keys (baseBranch, ignore, etc.) instead.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

  "$schema": "https://unpkg.com/@changesets/[email protected]/schema.json",
🤖 Prompt for AI Agents
In .changeset/config.json at line 2, the schema version is set to 2.0.0, but the
config includes fields like baseBranch and ignore that are only supported in
schema version 2.3.1. To fix this, update the $schema URL to use version 2.3.1
to match the config options used, or alternatively remove unsupported keys if
you want to keep the schema at 2.0.0.
.changeset/pre.json (1)

5-12: 💡 Verification agent

🧩 Analysis chain

Ensure initialVersions match package.json entries. Version mismatches can break the release pipeline.


🏁 Script executed:

#!/bin/bash
# Verify that versions in .changeset/pre.json match package.json
pre=".changeset/pre.json"
for pkg in $(jq -r '.initialVersions | keys[]' $pre); do
  expected=$(jq -r --arg n "$pkg" '.initialVersions[$n]' $pre)
  file=$(grep -rl "\"name\": \"$pkg\"" -n packages apps create-proofkit demo)
  actual=$(jq -r '.version' "$file")
  if [ "$expected" != "$actual" ]; then
    echo "Mismatch for $pkg: expected $expected, found $actual in $file"
    exit 1
  fi
done
echo "All package versions match pre-release manifest."

Length of output: 726


Align .changeset/pre.json with package.json versions

The entry for @proofkit/cli is out of sync and will break the release pipeline. Update the initialVersions mapping to match the actual package version.

  • File: .changeset/pre.json
    – Change "@proofkit/cli": "0.3.2" to "1.0.0-beta.0"

Suggested diff:

--- .changeset/pre.json
@@ -7,7 +7,7 @@
     "@proofkit/webviewer": "3.0.0",
     "demo": "0.1.0",
-    "@proofkit/cli": "0.3.2",
+    "@proofkit/cli": "1.0.0-beta.0",
     "create-proofkit": "0.0.7"
   },
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

  "initialVersions": {
    "@proofkit/docs": "0.0.2",
    "@proofkit/fmdapi": "4.3.2",
    "@proofkit/typegen": "0.0.1",
    "@proofkit/webviewer": "3.0.0",
    "demo": "0.1.0",
    "@proofkit/cli": "1.0.0-beta.0",
    "create-proofkit": "0.0.7"
  },
🤖 Prompt for AI Agents
In .changeset/pre.json around lines 5 to 12, the version for "@proofkit/cli" in
the initialVersions mapping is "0.3.2" but it should match the actual
package.json version "1.0.0-beta.0". Update the version string for
"@proofkit/cli" from "0.3.2" to "1.0.0-beta.0" to ensure consistency and prevent
release pipeline failures.
README.md (3)

43-49: ⚠️ Potential issue

Fix NPM scope instructions. The “Changing the npm organization scope” instructions reference @acme. Update these steps to use @proofkit for consistency.

🧰 Tools
🪛 LanguageTool

[style] ~45-~45: For conciseness, consider replacing this expression with an adverb.
Context: ...cme`. To change this, it's a bit manual at the moment, but you'll need to do the following: ...

(AT_THE_MOMENT)

🤖 Prompt for AI Agents
In README.md lines 43 to 49, update the npm organization scope instructions by
replacing all instances of `@acme` with `@proofkit` to maintain consistency with
the current project naming conventions.

19-24: ⚠️ Potential issue

Correct package names. The “Apps and Packages” section lists @acme/* packages. These should be updated to @proofkit/* to match the new namespace.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~19-~19: Loose punctuation mark.
Context: ...: ### Apps and Packages - @acme/docs: A placeholder documentation site powere...

(UNLIKELY_OPENING_PUNCTUATION)

🤖 Prompt for AI Agents
In README.md around lines 19 to 24, the package names listed under the "Apps and
Packages" section use the old namespace `@acme/*`. Update all occurrences of
`@acme/*` to the new namespace `@proofkit/*` to ensure consistency with the
current project naming conventions.

1-1: ⚠️ Potential issue

Update title and branding. The README still references a generic Turborepo example and the @acme scope, but this repo now uses @proofkit. Please revise the title and introduction to reflect Proofkit’s branding.

🤖 Prompt for AI Agents
In README.md at line 1, update the title and any introductory text to replace
generic Turborepo references and the `@acme` scope with Proofkit branding.
Ensure the title clearly reflects that this is a Proofkit design system starter
using Turborepo and Changesets, aligning all mentions with the current project
identity.
packages/cli/src/helpers/version-fetcher.ts (1)

5-5: 🛠️ Refactor suggestion

Standardize Zod import to named export
Use the named z export instead of a default import to align with other modules and ensure correct typings.
Apply:

-import z from "zod/v4";
+import { z } from "zod/v4";
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

import { z } from "zod/v4";
🤖 Prompt for AI Agents
In packages/cli/src/helpers/version-fetcher.ts at line 5, change the import of
Zod from a default import to a named import by replacing 'import z from
"zod/v4";' with 'import { z } from "zod";' to standardize the import style and
ensure correct typings.
packages/cli/src/utils/parseSettings.ts (1)

3-3: 💡 Verification agent

🧩 Analysis chain

Standardize Zod import to lock major version
Good update to import Zod from the "zod/v4" entrypoint. Please verify that the zod dependency in your package.json has been bumped to v4 and that there are no remaining generic "zod" imports elsewhere in the repo.

Run this script from the repo root to confirm:


🏁 Script executed:

#!/bin/bash
# 1. Find any imports from generic "zod"
rg "from ['\"]zod['\"]" -g "*.ts"

# 2. Check the declared zod version in your CLI package
grep -R '"zod"' -n packages/cli/package.json

Length of output: 131


Update Zod dependency to v4 in package.json

The import changes to "zod/v4" are correct and there are no remaining generic from "zod" imports. However, the CLI package is still on Zod v3:

• packages/cli/package.json (line 119) shows:

-    "zod": "3.25.0-beta.20250519T094321",
+    "zod": "^4.0.0",

Please bump the Zod dependency to v4 in your package.json and verify compatibility with the v4 API.

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In packages/cli/src/utils/parseSettings.ts at line 3, the import of Zod from
"zod/v4" is correct, but the packages/cli/package.json still lists Zod version
3. Update the Zod dependency in packages/cli/package.json to version 4, then run
npm install or yarn to update the lockfile. After that, verify that all Zod
usages in the CLI package are compatible with the v4 API and adjust code if
necessary.
packages/cli/src/cli/init.ts (1)

216-216: 💡 Verification agent

🧩 Analysis chain

Verify package name consistency across the codebase.

The package rename from @proofgeist/kit to @proofkit/cli looks correct as part of the restructuring effort. Please ensure all references to the old package name have been updated consistently.


🏁 Script executed:

#!/bin/bash
# Description: Verify that all references to @proofgeist packages have been updated to @proofkit
# Expected: No remaining @proofgeist references except in changelogs or documentation about migration

echo "Searching for remaining @proofgeist references..."
rg "@proofgeist" --type-not md --type-not txt -A 2

echo "Searching for @proofkit references to verify consistency..."
rg "@proofkit" -A 1 | head -20

Length of output: 5765


Replace remaining @proofgeist references with @proofkit

The rename from @proofgeist/... to @proofkit/... is only partially applied. Remaining references were found in:

  • packages/cli/template/vite-wv/package.json
    • @proofgeist/fm-webviewer-fetch
    • @proofgeist/fmdapi
  • packages/webviewer/pnpm-lock.yaml
  • packages/typegen/src/cli.ts (CLI warning messages)
  • packages/fmdapi/stubs/fmschema.config.stub.mjs & .js (type imports)
  • packages/fmdapi/pnpm-lock.yaml
  • apps/demo/
    • Snapshot headers in __snapshots__/without-zod.snap.ts & with-zod.snap.ts
    • fmschema.config.mjs imports
  • apps/docs/content/docs/fmdapi/version-5.mdx (migration docs still reference @proofgeist/fmdapi)

Please update all of these to the new @proofkit namespace—import paths, CLI messages, templates, tests, and documentation. Once done, rerun a global search to confirm there are no remaining @proofgeist/ references in the codebase.

🤖 Prompt for AI Agents
In packages/cli/src/cli/init.ts at line 216, verify that all package
dependencies and references have been updated from the old namespace
'@proofgeist' to the new '@proofkit'. Specifically, ensure that any remaining
'@proofgeist' references in import paths, CLI messages, templates, tests, and
documentation across the entire codebase are replaced with '@proofkit'. After
making these replacements, perform a global search to confirm no '@proofgeist/'
references remain.
packages/cli/src/cli/add/data-source/filemaker.ts (1)

4-4: 💡 Verification agent

🧩 Analysis chain

Verify zod version upgrade consistency across codebase.

The import change from "zod" to "zod/v4" suggests a major version upgrade. Ensure this change is consistent across the entire codebase to avoid compatibility issues.


🏁 Script executed:

#!/bin/bash
# Description: Check for inconsistent zod imports across the codebase
# Expected: All imports should use the same zod version/path

echo "Checking for zod imports across the codebase..."
rg -n 'from ["\'"'"']zod[^"'"'"']*["\'"'"']' --type ts --type js --type tsx --type jsx

echo -e "\nChecking package.json files for zod dependencies..."
fd 'package\.json$' --exec grep -l 'zod' {} \; --exec cat {} \;

Length of output: 13400


Fix zod import path or upgrade to v4 across all packages.

The import in packages/cli/src/cli/add/data-source/filemaker.ts

 import { type z } from "zod/v4";
+ import { type z } from "zod";

is inconsistent with the rest of the repo, which still pins zod v3. Either:

  • Revert this import back to "zod", or
  • Bump all zod dependencies in package.json files to v4 and ensure every import uses "zod/v4".

Files requiring attention (examples):

  • packages/cli/src/cli/add/data-source/filemaker.ts (line 4)
  • All other TypeScript/JavaScript files importing from "zod" (should be audited)
  • All package.json files where "zod" is listed (update version to v4 if you choose the upgrade path)
🤖 Prompt for AI Agents
In packages/cli/src/cli/add/data-source/filemaker.ts at line 4, the import
statement uses "zod/v4" which is inconsistent with the rest of the codebase
still using "zod" for version 3. To fix this, either revert the import back to
"zod" to match the current version used across the repo or upgrade all zod
dependencies in all package.json files to version 4 and update all import
statements throughout the codebase to use "zod/v4" for consistency.
apps/docs/content/docs/cli/reference/cli-commands.mdx (1)

20-20: 💡 Verification agent

🧩 Analysis chain

Verify CliCommand component API compatibility.

The removal of frame="none" attributes suggests the component API has changed. Ensure this change is consistent with the new CliCommand component implementation.

Also applies to: 26-26, 43-43, 57-57


🏁 Script executed:

#!/bin/bash
# Description: Check CliCommand component implementation and verify frame prop usage

# Find the CliCommand component implementation
cat apps/docs/src/components/CliCommand.tsx

# Check if any MDX files still use the frame prop
rg 'frame=' apps/docs/content/

Length of output: 1072


Remove frame prop from CliCommand usages

The CliCommand component no longer accepts a frame prop, so all MDX references need updating.

• apps/docs/content/docs/cli/webviewer/getting-started.mdx

- <CliCommand command={["build", "upload", "build:upload"]} frame="none" />
+ <CliCommand command={["build", "upload", "build:upload"]} />

• apps/docs/content/docs/cli/guides/getting-started.mdx

- {/* <CliCommand command="dev" frame="none" /> */}
+ {/* <CliCommand command="dev" /> */}
🤖 Prompt for AI Agents
In apps/docs/content/docs/cli/reference/cli-commands.mdx at line 20 and
similarly at lines 26, 43, and 57, the CliCommand component usage still includes
the now-removed frame="none" prop. Update all these instances by removing the
frame prop entirely to align with the current CliCommand component API, ensuring
no frame attribute is passed in any MDX file referencing this component.
apps/docs/src/app/typegen-config-schema.json/route.ts (1)

1-2: 💡 Verification agent

🧩 Analysis chain

Verify import paths after package restructuring.

Ensure that the import paths are correct following the restructuring from @proofgeist to @proofkit packages. The import should align with the new package structure.


🏁 Script executed:

#!/bin/bash
# Description: Verify the typegenConfig export exists in the new package structure
# Expected: Find the typegenConfig export in the @proofkit/typegen package

fd -t f "index.ts|config.ts" packages/typegen/src --exec grep -l "typegenConfig"
rg -A 3 "export.*typegenConfig" packages/typegen/src/

Length of output: 943


Fix typegenConfig import path

The @proofkit/typegen package exports typegenConfig from its main entrypoint, not from a config subpath. Update your import accordingly:

- import { typegenConfig } from "@proofkit/typegen/config";
+ import { typegenConfig } from "@proofkit/typegen";
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

import { typegenConfig } from "@proofkit/typegen";
import { z } from "zod/v4";
🤖 Prompt for AI Agents
In apps/docs/src/app/typegen-config-schema.json/route.ts at lines 1 to 2, the
import path for typegenConfig is incorrect because it imports from
"@proofkit/typegen/config" which does not exist. Update the import statement to
import typegenConfig directly from "@proofkit/typegen" to match the new package
structure.
apps/demo/src/app/globals.css (1)

22-26: 🛠️ Refactor suggestion

Font fallback inconsistency with CSS variables.

The body element uses a generic font fallback (Arial, Helvetica, sans-serif) instead of the Geist fonts defined in the CSS variables. This could lead to inconsistent typography.

-body {
-  background: var(--background);
-  color: var(--foreground);
-  font-family: Arial, Helvetica, sans-serif;
-}
+body {
+  background: var(--background);
+  color: var(--foreground);
+  font-family: var(--font-sans), system-ui, sans-serif;
+}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

body {
  background: var(--background);
  color: var(--foreground);
  font-family: var(--font-sans), system-ui, sans-serif;
}
🤖 Prompt for AI Agents
In apps/demo/src/app/globals.css around lines 22 to 26, the body element's
font-family uses a generic fallback (Arial, Helvetica, sans-serif) instead of
the Geist fonts defined in CSS variables. Update the font-family to use the
appropriate Geist font CSS variable to ensure consistent typography across the
app.
packages/cli/template/extras/_cursor/rules/filemaker-api.mdc (1)

138-139: 🛠️ Refactor suggestion

Major version updates require migration guidance.

The version updates reflect significant changes:

  • @proofkit/fmdapi: 4.x → 5.0.0 (major version bump)
  • @proofkit/cli: 0.x → 1.0.0 (major version bump)

Consider adding migration notes or changelog references to help users understand what breaking changes to expect with these major version bumps.

🤖 Prompt for AI Agents
In packages/cli/template/extras/_cursor/rules/filemaker-api.mdc around lines 138
to 139, the dependency versions for @proofkit/fmdapi and @proofkit/cli have been
updated to major new versions without any migration guidance. Add migration
notes or references to the changelog explaining breaking changes and upgrade
steps for these major version bumps to assist users in adapting their code.
packages/cli/src/cli/add/fmschema.ts (1)

8-8: 💡 Verification agent

🧩 Analysis chain

Verify the zod/v4 import path is correct.

The change from zod to zod/v4 suggests a specific version import. Ensure this is the correct import path for the zod version being used.


🏁 Script executed:

#!/bin/bash
# Verify zod package structure and v4 export
rg -A 3 "zod/v4" packages/cli/
cat packages/cli/package.json | jq '.dependencies.zod // .devDependencies.zod'

Length of output: 13937


#!/bin/bash

Fetch the published package.json to inspect exports

curl -s https://unpkg.com/[email protected]/package.json | jq '.exports'

Check if the v4 entrypoint file exists on the CDN

curl -s -o /dev/null -w "%{http_code}" https://unpkg.com/[email protected]/v4/index.js


Update zod import path to match your 3.x dependency

The CLI’s package.json pins zod at 3.25.0-beta…, which doesn’t provide a /v4 entrypoint. You’ll need to either:

  • Replace all import { z } from "zod/v4"; (e.g. line 8 in packages/cli/src/cli/add/fmschema.ts) with
    import { z } from "zod";
    or
  • Upgrade the dependency to a 4.x prerelease (e.g. 4.0.0-beta…) if you intend to import from /v4.
🤖 Prompt for AI Agents
In packages/cli/src/cli/add/fmschema.ts at line 8, the import path "zod/v4" is
incorrect because the project uses zod version 3.25.0-beta, which does not
support the "/v4" entrypoint. Fix this by changing the import statement to
"import { z } from 'zod';" to match the installed version, or alternatively,
upgrade the zod dependency to a 4.x prerelease if you want to keep the "/v4"
import path.
apps/docs/package.json (1)

33-45: 💡 Verification agent

❓ Verification inconclusive

Verify compatibility of next-transpile-modules.
Next.js 15+ can natively handle monorepo packages. Confirm that the next-transpile-modules@^10.0.1 version still works as expected or if it can be removed.

Run:


🏁 Script executed:

# Check if transpile-modules plugin is required
grep -R "transpileModu" -n apps/docs/next.config.*

Length of output: 51


Remove unused next-transpile-modules devDependency
I checked and didn’t find any reference to next-transpile-modules in apps/docs/next.config.*. Since Next.js 15+ handles monorepo packages natively, you can safely remove it.

• In apps/docs/package.json, delete the line

-    "next-transpile-modules": "^10.0.1",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

  "devDependencies": {
    "@proofkit/fmdapi": "workspace:*",
    "@tailwindcss/postcss": "^4.1.4",
    "@types/mdx": "^2.0.13",
    "@types/node": "^22.15.19",
    "@types/react": "^19.1.2",
    "@types/react-dom": "^19.1.2",
    "postcss": "^8.5.3",
    "tailwindcss": "^4.1.4",
    "tw-animate-css": "^1.2.8",
    "typescript": "^5.8.3"
  }
🤖 Prompt for AI Agents
In apps/docs/package.json between lines 33 and 45, the devDependency
"next-transpile-modules" is no longer used or referenced in the project
configuration. Remove the line containing "next-transpile-modules": "^10.0.1"
from the devDependencies section to clean up unused dependencies.
apps/demo/src/app/layout.tsx (1)

1-4: 💡 Verification agent

🧩 Analysis chain

Verify font imports exist in next/font/google.
Geist and Geist_Mono are not standard Google fonts—confirm that next/font/google supports them or switch to next/font/local.


🌐 Web query:

Do `next/font/google` exports include `Geist` and `Geist_Mono` fonts?

💡 Result:

The next/font/google module in Next.js does not include the Geist and Geist Mono fonts. These fonts are not part of the Google Fonts library; instead, they are available through Vercel's own package. (vercel.com)

To use Geist and Geist Mono in your Next.js project, follow these steps:

  1. Install the Geist package:

    npm install geist
  2. Import and apply the fonts:

    • For the App Router (app/layout.js):

      import { GeistSans } from 'geist/font/sans';
      
      export default function RootLayout({ children }) {
        return (
          <html lang="en" className={GeistSans.className}>
            <body>{children}</body>
          </html>
        );
      }
    • For the Pages Router (pages/_app.js):

      import { GeistSans } from 'geist/font/sans';
      
      export default function MyApp({ Component, pageProps }) {
        return (
          <main className={GeistSans.className}>
            <Component {...pageProps} />
          </main>
        );
      }

For more detailed instructions, refer to Vercel's official documentation. (vercel.com)

Citations:


Update font imports to use Vercel’s geist package

The fonts Geist and Geist_Mono aren’t provided by next/font/google. To use them, install and import from Vercel’s official package:

• Install the package:

npm install geist

• In apps/demo/src/app/layout.tsx (around lines 1–4), replace:

- import { Geist, Geist_Mono } from "next/font/google";
+ import { GeistSans, GeistMono } from "geist/font/sans";

• Apply their classNames to your root elements:

<html lang="en" className={GeistSans.className}>
  <body className={GeistMono.className}>
    {children}
  </body>
</html>

Refer to Vercel’s Font docs for more details: https://vercel.com/font.

🤖 Prompt for AI Agents
In apps/demo/src/app/layout.tsx around lines 1 to 4, the imports for Geist and
Geist_Mono fonts from next/font/google are incorrect because these fonts are not
part of Google Fonts. To fix this, first install the geist package using npm
install geist. Then replace the imports to import GeistSans and GeistMono from
'geist/font/sans'. Finally, apply their className properties to the html and
body elements respectively in the layout component to correctly use these fonts.
apps/demo/tsconfig.json (1)

21-23: ⚠️ Potential issue

Missing baseUrl for path aliases.
TypeScript’s paths mapping requires a baseUrl (typically ".") to be defined; otherwise alias resolution will not work.

Apply:

  "compilerOptions": {
+   "baseUrl": ".",
    ...
  }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"]
    }
  }
}
🤖 Prompt for AI Agents
In apps/demo/tsconfig.json around lines 21 to 23, the "paths" alias is defined
without a corresponding "baseUrl". Add a "baseUrl" property set to "." at the
same level as "paths" to enable proper resolution of the path aliases by
TypeScript.
apps/docs/content/docs/cli/meta.json (1)

12-13: ⚠️ Potential issue

Remove non-CLI entry from CLI metadata
The "webviewer" page appears in the CLI metadata but lives outside the cli/ directory. This will break navigation. Remove or relocate it:

-    "guides/typegen",
-    "webviewer",
+    "guides/typegen",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

    "guides/typegen",
🤖 Prompt for AI Agents
In apps/docs/content/docs/cli/meta.json at lines 12 to 13, the entry "webviewer"
is included in the CLI metadata but it is not part of the cli/ directory, which
will cause navigation issues. Remove the "webviewer" entry from this metadata
file to ensure only CLI-related pages are listed, or alternatively move the
"webviewer" page into the cli/ directory if it belongs there.
apps/docs/content/docs/typegen/options.mdx (1)

45-47: 🛠️ Refactor suggestion

Clarify or deduplicate --config option documentation.

The --config option is documented twice - once under the generate command (lines 21-23) and again as a standalone section under init command (lines 45-47). This could be confusing for users.

Consider one of these approaches:

  1. Move this section under the init command as a subsection
  2. Create a shared "Global Options" section for options that apply to multiple commands
  3. Explicitly state which commands each option applies to
-## `--config <filename>`
-
-Set a custom filename/path for where the config file will be created. The file name must end with either `jsonc` or `json`.
+### `--config <filename>`
+
+Set a custom filename/path for where the config file will be created. The file name must end with either `jsonc` or `json`.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

### `--config <filename>`

Set a custom filename/path for where the config file will be created. The file name must end with either `jsonc` or `json`.
🤖 Prompt for AI Agents
In apps/docs/content/docs/typegen/options.mdx around lines 21-23 and 45-47, the
--config option is documented twice, causing potential confusion. To fix this,
consolidate the documentation by either moving the standalone --config section
under the init command as a subsection, creating a shared "Global Options"
section for options used by multiple commands, or explicitly stating which
commands each --config option applies to, ensuring clarity and avoiding
duplication.
.github/workflows/release.yml (2)

35-36: 💡 Verification agent

❓ Verification inconclusive

Verify release script existence
Ensure you have a release script defined in your root package.json to back this step.

Run to confirm:


🏁 Script executed:

grep -R "\"release\":" -n package.json

Length of output: 38


Add missing release script to package.json
It looks like there isn’t a release script defined in your root package.json, yet your GitHub Action invokes pnpm release. You’ll need to add something like this under the "scripts" section of your package.json:

  "scripts": {
    // …existing scripts
+   "release": "pnpm build && changeset publish"
  }

• File: package.json
• Section: "scripts"

Once added, rerun grep -R "\"release\":" -n package.json to confirm the entry appears.

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In .github/workflows/release.yml at lines 35-36, the GitHub Action runs `pnpm
release` but your root package.json lacks a `release` script. To fix this, add a
`release` script entry under the "scripts" section in your root package.json
that performs the build and calls changeset publish as needed. After adding,
verify the script exists by running `grep -R "\"release\":" -n package.json` to
confirm the addition.

41-44: 🛠️ Refactor suggestion

Replace placeholder Slack command
my-slack-bot is unlikely to exist in the runner; use the official Slack action or ensure the CLI is installed.

-    run: my-slack-bot send-notification --message "A new version of ${GITHUB_REPOSITORY} was published!"
+    uses: slackapi/[email protected]
+    with:
+      payload: |
+        { "text": "A new version of ${{ github.repository }} was published!" }
+    env:
+      SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

      - name: Send a Slack notification if a publish happens
        if: steps.changesets.outputs.published == 'true'
        # You can do something when a publish happens.
        uses: slackapi/[email protected]
        with:
          payload: |
            { "text": "A new version of ${{ github.repository }} was published!" }
        env:
          SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
🤖 Prompt for AI Agents
In .github/workflows/release.yml at lines 41 to 44, the Slack notification step
uses a placeholder command 'my-slack-bot' which is not available in the runner
environment. Replace this with the official Slack GitHub Action or another
supported method to send Slack messages, or add steps to install and configure
the required CLI before running the command.
apps/docs/src/components/magicui/aurora-text.tsx (1)

32-32: 💡 Verification agent

🧩 Analysis chain

Verify the animate-aurora CSS class is defined.

The component references animate-aurora class which should be defined in the global CSS or Tailwind configuration to ensure the animation works correctly.


🏁 Script executed:

#!/bin/bash
# Description: Check if the animate-aurora CSS class is defined
# Expected: Find the CSS animation definition

# Search for aurora animation definitions
rg -A 10 -B 2 "aurora|@keyframes.*aurora" --type css --type scss

# Check Tailwind config for custom animations
fd -e js -e ts -e json tailwind | xargs rg -A 5 -B 5 "aurora"

Length of output: 1676


🏁 Script executed:

#!/usr/bin/env bash
# Locate any Tailwind configuration files in the repo
find . -type f -iname "tailwind.config.*"

Length of output: 43


#!/usr/bin/env bash
# Search for a .animate-aurora class in any CSS files
rg -n "\.animate-aurora" --type css

# Search for any animation rules referencing the --animate-aurora variable
rg -n "animation:\s*var\(--animate-aurora\)" --type css

Define the .animate-aurora utility
I see you’ve added the @keyframes aurora rule and set --animate-aurora in apps/docs/src/app/global.css, but there’s no .animate-aurora { … } class being emitted. You have two options:

  • If you’re using a Tailwind animation plugin (e.g. tailwindcss-animate), ensure it’s installed and declared in your tailwind.config.js.

  • Otherwise, add this to your global CSS under @layer utilities:

    /* apps/docs/src/app/global.css */
    @layer utilities {
      .animate-aurora {
        animation: var(--animate-aurora);
      }
    }

This will ensure className="animate-aurora" actually applies the aurora animation.

🤖 Prompt for AI Agents
In apps/docs/src/components/magicui/aurora-text.tsx at line 32, the class
"animate-aurora" is used but not defined in the CSS or Tailwind config. To fix
this, define the ".animate-aurora" utility class in your global CSS file
(apps/docs/src/app/global.css) inside an "@layer utilities" block with the rule
"animation: var(--animate-aurora);". Alternatively, if using a Tailwind
animation plugin, ensure it is installed and properly configured in
tailwind.config.js to emit this class.
apps/docs/src/components/magicui/animated-gradient-text.tsx (2)

4-9: ⚠️ Potential issue

Fix props interface mismatch between div and span element.

The interface extends ComponentPropsWithoutRef<"div"> but the component renders a <span> element. This could cause TypeScript type issues.

-export interface AnimatedGradientTextProps
-  extends ComponentPropsWithoutRef<"div"> {
+export interface AnimatedGradientTextProps
+  extends ComponentPropsWithoutRef<"span"> {
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

export interface AnimatedGradientTextProps
  extends ComponentPropsWithoutRef<"span"> {
  speed?: number;
  colorFrom?: string;
  colorTo?: string;
}
🤖 Prompt for AI Agents
In apps/docs/src/components/magicui/animated-gradient-text.tsx between lines 4
and 9, the props interface extends ComponentPropsWithoutRef<"div"> but the
component renders a span element. To fix the type mismatch, change the interface
to extend ComponentPropsWithoutRef<"span"> so the props correctly match the
rendered element.

28-31: 💡 Verification agent

🧩 Analysis chain

Verify that required Tailwind animation classes are defined.

The component uses animate-gradient class which needs to be defined in your Tailwind configuration or global CSS for the animation to work properly.


🏁 Script executed:

#!/bin/bash
# Check if animate-gradient animation is defined in Tailwind config or CSS
rg -A 5 "animate-gradient" --type css --type js --type ts

Length of output: 991


Let’s verify whether the gradient animation is registered in your Tailwind config:


🏁 Script executed:

#!/bin/bash
# Locate Tailwind config file (JS or TS)
config_file=$(fd tailwind.config.* | head -n1)
echo "Using config: $config_file"
# Search for custom animation and keyframes definitions
rg -n "animation" -A5 "$config_file"
rg -n "keyframes" -A5 "$config_file"

Length of output: 223


Define the animate-gradient utility

I see that apps/docs/src/app/global.css defines the CSS variable --animate-gradient and the @keyframes gradient, but there’s no actual .animate-gradient rule (nor a Tailwind extension) to wire it up. As a result, className="animate-gradient…" won’t trigger any animation.

Please add one of the following:

• Extend Tailwind in your tailwind.config.js (at your repo root):

module.exports = {
  theme: {
    extend: {
      animation: {
        gradient: 'gradient 8s linear infinite',
      },
      keyframes: {
        gradient: {
          to: { backgroundPosition: 'var(--bg-size, 300%) 0' },
        },
      },
    },
  },
}

• Or define the class in apps/docs/src/app/global.css:

.animate-gradient {
  animation: var(--animate-gradient);
}

This ensures that the <AnimatedGradientText> component’s animate-gradient class actually applies the intended effect.

🤖 Prompt for AI Agents
In apps/docs/src/components/magicui/animated-gradient-text.tsx around lines 28
to 31, the className uses the animate-gradient class which is not defined in
Tailwind config or global CSS, so the animation won't run. Fix this by either
extending the Tailwind configuration (tailwind.config.js) to include the
gradient animation and keyframes under theme.extend.animation and
theme.extend.keyframes, or by adding a CSS rule for .animate-gradient in
apps/docs/src/app/global.css that sets animation to var(--animate-gradient).
This will ensure the animation class triggers the intended gradient animation
effect.
apps/docs/content/docs/cli/guides/motivation.mdx (1)

37-37: ⚠️ Potential issue

Fix grammatical error in sentence structure.

The phrase "web a web app" is incorrect and should be "get a web app".

-A well-supported open-source React framework for full-stack web applications. This means it runs code on your frontened (in the client's web browser) and backend (on the web server, or API routes). It makes is easy to web a web app up and running with all the features that we expect from a modern web app and is used by companies of all sizes to power their online precence.
+A well-supported open-source React framework for full-stack web applications. This means it runs code on your frontend (in the client's web browser) and backend (on the web server, or API routes). It makes it easy to get a web app up and running with all the features that we expect from a modern web app and is used by companies of all sizes to power their online presence.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

A well-supported open-source React framework for full-stack web applications. This means it runs code on your frontend (in the client's web browser) and backend (on the web server, or API routes). It makes it easy to get a web app up and running with all the features that we expect from a modern web app and is used by companies of all sizes to power their online presence.
🤖 Prompt for AI Agents
In apps/docs/content/docs/cli/guides/motivation.mdx at line 37, fix the
grammatical error by replacing the incorrect phrase "web a web app" with the
correct phrase "get a web app" to improve sentence clarity and correctness.
apps/docs/content/docs/typegen/index.mdx (1)

84-87: ⚠️ Potential issue

Fix structural issue in Files component.

There are duplicate File entries outside the proper Folder structure, which will cause rendering issues.

-
-     <File name="Customers.ts" type="ts" icon={<IconFileTypeTs />} />
-    <File name="Invoices.ts" type="ts" icon={<IconFileTypeTs />} />
-  </Folder>
+  </Folder>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

  </Folder>
🤖 Prompt for AI Agents
In apps/docs/content/docs/typegen/index.mdx around lines 84 to 87, there are
duplicate File components placed outside the Folder component, causing rendering
issues. Remove the duplicate File entries that are not nested inside the Folder
component to ensure all File components are properly structured within their
respective Folder.
apps/demo/tests/fmdapi-typegen.test.ts (1)

97-99: ⚠️ Potential issue

Remove duplicate function call.

The testTypegenConfig function is called twice consecutively - once without capturing the return value (line 97) and again capturing it (line 99). This results in unnecessary duplicate type generation.

Remove the first call to fix the issue:

-    await testTypegenConfig(config);
-
     const { genPath } = await testTypegenConfig(config);
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

    const { genPath } = await testTypegenConfig(config);
🤖 Prompt for AI Agents
In apps/demo/tests/fmdapi-typegen.test.ts around lines 97 to 99, the function
testTypegenConfig is called twice consecutively, once without capturing its
return value and once with. Remove the first call on line 97 to avoid duplicate
type generation and keep only the call that captures the return value on line
99.
package.json (1)

7-8: 🛠️ Refactor suggestion

clean script is not cross-platform

Using rm -rf will fail on Windows shells. Prefer a cross-platform helper (rimraf, del-cli, or pnpm exec shx rm -rf) so contributors on Windows can run pnpm clean without WSL/Git-bash.

-    "clean": "turbo run clean && rm -rf node_modules",
+    "clean": "turbo run clean && pnpm dlx rimraf node_modules",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

    "clean": "turbo run clean && pnpm dlx rimraf node_modules",
    "format": "prettier --write \"**/*.{ts,tsx,md}\"",
🤖 Prompt for AI Agents
In package.json lines 7 to 8, the "clean" script uses "rm -rf" which is not
cross-platform and will fail on Windows. Replace "rm -rf node_modules" with a
cross-platform command using a helper like "rimraf", "del-cli", or "pnpm exec
shx rm -rf" to ensure the script works on all operating systems without
requiring WSL or Git-bash.
packages/cli/src/generators/fmdapi.ts (1)

44-63: 🛠️ Refactor suggestion

fs.readJson cannot parse .jsonc (comments, trailing commas)

.jsonc is not valid JSON; any comments will make fs.readJson throw, causing the silent fallback that wipes the in-file configuration. This risks data loss.

Use a JSONC-aware parser (e.g. strip-json-comments + JSON.parse, or jsonc-parser) instead of fs.readJson.

-import fs from "fs-extra";
+import fs from "fs-extra";
+import stripJsonComments from "strip-json-comments";
...
-    return (await fs.readJson(configPath)) as FullProofkitTypegenJsonFile;
+    const raw = await fs.readFile(configPath, "utf8");
+    return JSON.parse(stripJsonComments(raw)) as FullProofkitTypegenJsonFile;
🤖 Prompt for AI Agents
In packages/cli/src/generators/fmdapi.ts around lines 44 to 63, the current code
uses fs.readJson which cannot parse JSONC files containing comments or trailing
commas, causing parsing errors and fallback to a default config that may
overwrite existing data. Replace fs.readJson with a JSONC-aware parsing approach
by reading the file content as text, then stripping comments using a library
like strip-json-comments, and finally parsing the cleaned string with JSON.parse
to correctly handle JSONC files without losing configuration data.

eluce2 added 2 commits June 4, 2025 08:05
…nused test call in fmdapi-typegen test, and refactor fmdapi generator to utilize jsonc-parser for reading and writing JSONC config files while preserving comments.
@eluce2
Copy link
Collaborator Author

eluce2 commented Jun 4, 2025

@coderabbitai ignore all files in the apps/docs folder

Copy link

coderabbitai bot commented Jun 4, 2025

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

I'll help you configure CodeRabbit to ignore the apps/docs folder. Let me fetch the latest configuration documentation to provide you with accurate instructions.

@eluce2, to ignore all files in the apps/docs folder, you should use CodeRabbit's path_filters configuration rather than relying on chat instructions. Here's how to set it up:

Option 1: Update your .coderabbit.yaml file

Add or modify the path_filters section in your repository's .coderabbit.yaml file:

path_filters:
  - "apps/docs/**"

Option 2: Complete configuration example

If you want a more comprehensive setup, here's a full example:

# .coderabbit.yaml
reviews:
  auto_review:
    enabled: true
    base_branches: [".*"]
  review_status: false

path_filters:
  - "apps/docs/**"  # Ignores all files and subdirectories in apps/docs
  - "*.md"          # Example: ignore all markdown files (optional)
  - "package-lock.json"  # Example: ignore lock files (optional)

Key Benefits:

  • Persistent: Works for all future PRs automatically
  • Explicit: Clearly documented in your repository
  • Team-wide: Applies to all team members consistently
  • Version controlled: Changes to filters are tracked in git

The path_filters configuration uses glob patterns, so apps/docs/** will match all files and subdirectories within the apps/docs folder.

After adding this configuration, CodeRabbit will automatically exclude the apps/docs folder from future reviews.


🏁 Script executed:

#!/bin/bash
# Fetch CodeRabbit configuration schema and documentation
curl -s https://coderabbit.ai/integrations/schema.v2.json | jq '.properties.path_filters' 2>/dev/null || echo "Schema fetch failed"
echo "---"
curl -s https://docs.coderabbit.ai/guides/review-instructions 2>/dev/null | head -100 || echo "Docs fetch failed"

Length of output: 4746


@eluce2, even though I couldn't fetch the latest documentation due to network restrictions, I can still provide you with the correct configuration. Here's how to ignore all files in the apps/docs folder using CodeRabbit's configuration:

Update your .coderabbit.yaml file

Add or modify the path_filters section in your repository's .coderabbit.yaml file:

# .coderabbit.yaml
reviews:
  auto_review:
    enabled: true
    base_branches: [".*"]
  review_status: false

path_filters:
  - "apps/docs/**"

Alternative: More specific patterns

If you want more granular control, you can also use:

path_filters:
  - "apps/docs/**/*"     # All files in apps/docs and subdirectories
  - "apps/docs/**/*.md"  # Only markdown files in apps/docs (if you want to be more specific)

Key Benefits of using path_filters:

Persistent: Works automatically for all future PRs
Version controlled: Changes are tracked in your repository
Team-wide: Applies consistently for all contributors
Clear intent: Explicitly documents what should be ignored

The glob pattern apps/docs/** will match all files and subdirectories within the apps/docs folder, effectively excluding the entire directory from CodeRabbit reviews.

After committing this change to your repository, CodeRabbit will automatically skip reviewing any files in the apps/docs folder in future pull requests.

@eluce2
Copy link
Collaborator Author

eluce2 commented Jun 4, 2025

@coderabbitai this seems like it would ignore other packages too. How can I exclude only the demo app?

Copy link

coderabbitai bot commented Jun 4, 2025

Tip

For best results, initiate chat on the files or code changes.

@eluce2, great question! Let me clarify how CodeRabbit's path_filters work - they're actually very precise and won't accidentally ignore other packages.

Path Filters Are Specific

The pattern "apps/docs/**" will only match files inside the apps/docs/ directory. It won't affect other packages or apps.

To exclude only the demo app:

# .coderabbit.yaml
reviews:
  auto_review:
    enabled: true
    base_branches: [".*"]
  review_status: false

path_filters:
  - "apps/demo/**"  # Only ignores files in apps/demo/

To exclude both apps (if that's what you want):

path_filters:
  - "apps/demo/**"   # Ignores demo app
  - "apps/docs/**"   # Ignores docs app

How these patterns work:

  • "apps/demo/**" matches: apps/demo/package.json, apps/demo/src/anything.ts, etc.
  • "apps/demo/**" does NOT match: apps/other-app/file.js, packages/cli/src/file.ts, etc.

Other examples for precision:

path_filters:
  - "apps/demo/**"           # Only demo app
  - "packages/cli/test/**"   # Only tests in CLI package  
  - "*.md"                   # All markdown files anywhere
  - "package-lock.json"      # Specific file types

Each pattern is independent and precise - they won't accidentally exclude other packages. So "apps/demo/**" will only affect the demo app and leave all other packages (CLI, docs, fmdapi, etc.) fully reviewed.

Which specific app(s) would you like to exclude from reviews?

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 13

🧹 Nitpick comments (3)
apps/docs/content/docs/cli/guides/getting-started.mdx (2)

16-16: Add terminal punctuation.

Consistently end sentences with a period.

-If you're brand new to web development, you'll want to make sure these basics are installed on your system
+If you're brand new to web development, you'll want to make sure these basics are installed on your system.
🧰 Tools
🪛 LanguageTool

[misspelling] ~16-~16: Did you mean “your”?
Context: .../cli). ## Prerequisites If you're brand new to web development, you'll wa...

(YOUR_NN)


21-27: Consistent punctuation in list items.

Some bullets lack periods. For clarity, end each list item with a period.

-- [Visual Studio Code](https://code.visualstudio.com/download) (or similar IDE)
+- [Visual Studio Code](https://code.visualstudio.com/download) (or similar IDE).
-- - git (download [GitHub Desktop](https://github.com/apps/desktop) if you've never used git before)
+- - git (download [GitHub Desktop](https://github.com/apps/desktop) if you've never used git before).
-- - _(suggested)_ [pnpm](https://pnpm.io/installation)
+- - _(suggested)_ [pnpm](https://pnpm.io/installation).
packages/cli/src/generators/fmdapi.ts (1)

371-399: Incomplete function implementation needs attention.

The getFieldNamesForSchema function is mostly commented out and returns an empty array. This appears to be intentional due to ts-morph dependency removal, but it leaves the function in a non-functional state.

Would you like me to help implement an alternative approach that doesn't require ts-morph, such as using regex patterns or a lightweight TypeScript AST parser to extract field names from the generated schema files?

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e5c7374 and 67f7fac.

📒 Files selected for processing (14)
  • .coderabbit.yaml (1 hunks)
  • .cursor/rules/always.mdc (1 hunks)
  • apps/demo/package.json (1 hunks)
  • apps/demo/tests/__snapshots__/with-zod.snap.ts (1 hunks)
  • apps/demo/tests/__snapshots__/without-zod.snap.ts (1 hunks)
  • apps/demo/tests/fmdapi-typegen.test.ts (1 hunks)
  • apps/docs/content/docs/cli/guides/getting-started.mdx (3 hunks)
  • apps/docs/content/docs/cli/guides/motivation.mdx (1 hunks)
  • apps/docs/content/docs/cli/webviewer/getting-started.mdx (6 hunks)
  • apps/docs/content/docs/typegen/options.mdx (1 hunks)
  • apps/docs/package.json (1 hunks)
  • package.json (1 hunks)
  • packages/cli/package.json (4 hunks)
  • packages/cli/src/generators/fmdapi.ts (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • .cursor/rules/always.mdc
🚧 Files skipped from review as they are similar to previous changes (8)
  • .coderabbit.yaml
  • apps/docs/content/docs/typegen/options.mdx
  • apps/docs/package.json
  • apps/docs/content/docs/cli/webviewer/getting-started.mdx
  • apps/demo/tests/snapshots/without-zod.snap.ts
  • apps/demo/tests/snapshots/with-zod.snap.ts
  • apps/demo/tests/fmdapi-typegen.test.ts
  • apps/demo/package.json
🧰 Additional context used
🧬 Code Graph Analysis (1)
packages/cli/src/generators/fmdapi.ts (4)
packages/typegen/src/types.ts (2)
  • TypegenConfig (89-89)
  • typegenConfigSingle (52-83)
packages/cli/src/state.ts (1)
  • state (21-21)
packages/cli/src/utils/parseSettings.ts (2)
  • getSettings (59-70)
  • envNamesSchema (27-31)
packages/create-proofkit/src/index.js (1)
  • pkgManager (9-9)
🪛 Biome (1.9.4)
packages/cli/src/generators/fmdapi.ts

[error] 293-293: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)


[error] 497-497: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)

🪛 LanguageTool
apps/docs/content/docs/cli/guides/getting-started.mdx

[misspelling] ~16-~16: Did you mean “your”?
Context: .../cli). ## Prerequisites If you're brand new to web development, you'll wa...

(YOUR_NN)


[grammar] ~19-~19: One of these verbs is redundant, or a word is missing.
Context: ...ps://nodejs.org/en) - To check if you have already have Node installed, run node -v in your t...

(HAVE_RB_HAVE)


[uncategorized] ~20-~20: The official spelling of this programming framework is “Node.js”.
Context: ... - If not, download and install here: nodejs.org - [Visual S...

(NODE_JS)

apps/docs/content/docs/cli/guides/motivation.mdx

[uncategorized] ~37-~37: Possible missing comma found.
Context: ...atures that we expect from a modern web app and is used by companies of all sizes t...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~41-~41: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...ult components and styles to build apps very quickly, but with the option of adding custom s...

(EN_WEAK_ADJECTIVE)


[uncategorized] ~43-~43: The preposition ‘on’ seems more likely in this position.
Context: ...as allowed our team to work much faster for the kinds of web apps that we build for...

(AI_HYDRA_LEO_REPLACE_FOR_ON)


[uncategorized] ~55-~55: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... A wrapper around Next.js actions that include middleware (for easily checking that a ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[grammar] ~61-~61: The word “setup” is a noun. The verb is spelled with a space.
Context: ...cation service that is extremly easy to setup and use. It's a great choice to secure ...

(NOUN_VERB_CONFUSION)


[grammar] ~61-~61: A hyphen is missing in the adjective “built-in”.
Context: ...ost customer-facing web apps, including built in features such as Social logins, magin l...

(BUILT_IN_HYPHEN)


[misspelling] ~61-~61: This word is normally spelled as one.
Context: ...ures such as Social logins, magin link, multi-factor authentication, and more. <Callout typ...

(EN_COMPOUNDS_MULTI_FACTOR)

🔇 Additional comments (11)
apps/docs/content/docs/cli/guides/getting-started.mdx (8)

3-3: Approve description update.

The new description frontmatter is clear and concise.


10-12: Visual learner callout looks good.

The <Callout> for video resources is clear and well-styled.


14-14: Prerequisites header is correct.

Section heading aligns with content.


50-52: PNPM scaffolding snippet is clear.

Tab-enabled code block for pnpm is well formatted.


54-56: NPM scaffolding snippet is clear.

Tab-enabled code block for npm is well formatted.


81-84: Tip callout is well styled.

The <Callout> use is appropriate and content is clear.


91-96: First step content is valid.

The <Step> and fenced code block are properly structured.


102-111: Second step content is valid.

The <Step> content, including the commented <CliCommand>, is correctly formatted.

packages/cli/package.json (1)

1-122: Package restructuring looks good!

The renaming from @proofgeist/kit to @proofkit/cli and version bump to 1.0.0-beta.0 aligns well with the broader restructuring effort. The dependency updates and workspace references are properly configured.

package.json (1)

1-28: Root package.json simplification is appropriate for monorepo structure.

The transformation to a minimal changeset-focused configuration is consistent with the Turborepo design pattern. The updated pnpm version and relaxed Node.js requirement appropriately support a wider range of development environments.

packages/cli/src/generators/fmdapi.ts (1)

5-6:

✅ Verification successful

Verify the import path exists.

The import from @proofkit/typegen/config assumes this path exports the required types. Ensure this module and export path exist in the @proofkit/typegen package.


🏁 Script executed:

#!/bin/bash
# Check if the @proofkit/typegen package exports the required types from /config path
fd -t f "package.json" -x grep -l "@proofkit/typegen" {} \; | while read -r file; do
  dir=$(dirname "$file")
  # Look for config exports in the package
  if [ -f "$dir/src/config.ts" ] || [ -f "$dir/config.ts" ] || [ -f "$dir/src/types.ts" ] || [ -f "$dir/types.ts" ]; then
    echo "Found potential config/types file in: $dir"
    # Check for exports
    rg -A 3 "export.*(?:type|interface).*(?:TypegenConfig|typegenConfigSingle)" "$dir" || true
  fi
done

# Also check the package.json exports field
fd -g "package.json" -x jq -r 'select(.name == "@proofkit/typegen") | .exports' {} \; 2>/dev/null || true

Length of output: 1866


Import path exists and exports verified

The @proofkit/typegen package’s package.json defines an export for "./config" pointing to dist/esm/types.d.ts, and TypegenConfig is exported from packages/typegen/src/types.ts. The import from @proofkit/typegen/config is valid—no changes needed.

</Steps>

Your ProofKit app is now up and running! Now you'll want to learn how to [add more pieces](/guides/adding-components) to your project, or check out the [motivations](/guides/motivation) page to learn more about the tech stack used here so you can learn more about each underlying framework that you'll come across.
u
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Remove stray character.

There’s an unintended “u” at the end of the document.

-u
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
u
// (remove line 115 – the solitary “u”)
🤖 Prompt for AI Agents
In apps/docs/content/docs/cli/guides/getting-started.mdx at line 115, remove the
stray character "u" that appears at the end of the document to clean up the
content.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

♻️ Duplicate comments (3)
packages/cli/src/generators/fmdapi.ts (1)

252-257: Duplicate comment: Use consistent data source path matching logic.

The same path matching logic pattern from addLayout is repeated here. Consider extracting this into a shared utility function to reduce duplication and ensure consistency.

function findDataSourceByName(
  configArray: ImportedDataSourceConfig[], 
  dataSourceName: string
): ImportedDataSourceConfig | undefined {
  return configArray.find((ds) => {
    if (!ds.path) return false;
    const normalizedPath = ds.path.replace(/\\/g, '/').replace(/\/$/, '');
    const expectedPath = `./src/config/schemas/${dataSourceName}`;
    return normalizedPath === expectedPath || normalizedPath.endsWith(`/${dataSourceName}`);
  });
}

Also applies to: 288-293

apps/docs/content/docs/cli/guides/getting-started.mdx (2)

114-114: Remove stray character
Delete the trailing “u” at the end of the document.

- u

17-19: ⚠️ Potential issue

Normalize Node.js spelling & remove duplicate “have”
Update the Node bullet to use “Node.js” and eliminate the repeated verb.

- - [Node](https://nodejs.org/en)
-   - To check if you have already have Node.js installed, run `node -v` in your terminal.
-   - If not, download and install here: [nodejs.org](https://nodejs.org/en)
+ - [Node.js](https://nodejs.org/en)
+   - To check if you already have Node.js installed, run `node -v` in your terminal.
+   - If not, download and install it from [nodejs.org](https://nodejs.org/en).
🧰 Tools
🪛 LanguageTool

[grammar] ~18-~18: One of these verbs is redundant, or a word is missing.
Context: ...ps://nodejs.org/en) - To check if you have already have Node.js installed, run node -v in you...

(HAVE_RB_HAVE)


[uncategorized] ~19-~19: The official spelling of this programming framework is “Node.js”.
Context: ... - If not, download and install here: nodejs.org - [Visual S...

(NODE_JS)

🧹 Nitpick comments (8)
apps/docs/content/docs/cli/guides/motivation.mdx (3)

37-37: Add missing comma for compound predicate.

-A well-supported open-source React framework for full-stack web applications. This means it runs code on your frontend (in the client's web browser) and backend (on the web server, or API routes). It makes it easy to get a web app up and running with all the features that we expect from a modern web app and is used by companies of all sizes to power their online presence.
+A well-supported open-source React framework for full-stack web applications. This means it runs code on your frontend (in the client's web browser) and backend (on the web server, or API routes). It makes it easy to get a web app up and running with all the features that we expect from a modern web app, and is used by companies of all sizes to power their online presence.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~37-~37: Possible missing comma found.
Context: ...atures that we expect from a modern web app and is used by companies of all sizes t...

(AI_HYDRA_LEO_MISSING_COMMA)


55-55: Fix subject-verb agreement.

The singular subject "wrapper" should agree with "includes" rather than "include."

-A wrapper around Next.js actions that include middleware (for easily checking that a user is signed in) and input validation with zod schemas.
+A wrapper around Next.js actions that includes middleware (for easily checking that a user is signed in) and input validation with zod schemas.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~55-~55: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... A wrapper around Next.js actions that include middleware (for easily checking that a ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


61-61: Standardize compound word spelling.

-A hosted authentication service that is extremely easy to set up and use. It's a great choice to secure most customer-facing web apps, including built-in features such as Social logins, magic link, multi-factor authentication, and more.
+A hosted authentication service that is extremely easy to set up and use. It's a great choice to secure most customer-facing web apps, including built-in features such as Social logins, magic link, multifactor authentication, and more.
🧰 Tools
🪛 LanguageTool

[style] ~61-~61: As an alternative to the over-used intensifier ‘extremely’, consider replacing this phrase.
Context: ...A hosted authentication service that is extremely easy to set up and use. It's a great choice ...

(EN_WEAK_ADJECTIVE)


[misspelling] ~61-~61: This word is normally spelled as one.
Context: ...ures such as Social logins, magic link, multi-factor authentication, and more. <Callout typ...

(EN_COMPOUNDS_MULTI_FACTOR)

packages/cli/src/generators/fmdapi.ts (3)

131-136: Simplify and strengthen data source path matching logic.

The current path matching logic uses multiple endsWith conditions that could miss edge cases or match unintended paths.

-  let targetDataSource: ImportedDataSourceConfig | undefined = configArray.find(
-    (ds) =>
-      ds.path?.endsWith(dataSourceName) ||
-      ds.path?.endsWith(dataSourceName + "/") ||
-      ds.path === dataSourceName
-  );
+  let targetDataSource: ImportedDataSourceConfig | undefined = configArray.find(
+    (ds) => {
+      if (!ds.path) return false;
+      const normalizedPath = ds.path.replace(/\\/g, '/').replace(/\/$/, '');
+      const expectedPath = `./src/config/schemas/${dataSourceName}`;
+      return normalizedPath === expectedPath || normalizedPath.endsWith(`/${dataSourceName}`);
+    }
+  );

231-266: Consider making file reading functions consistent (async vs sync).

getClientSuffix and getExistingSchemas use synchronous file operations while other functions use async. This inconsistency could impact performance and error handling patterns.

Consider making these async for consistency:

-export function getClientSuffix({
+export async function getClientSuffix({
-export function getExistingSchemas({
+export async function getExistingSchemas({

And update the file reading calls accordingly.

Also applies to: 268-309


373-436: Address the incomplete getFieldNamesForSchema function.

This function is currently non-functional and returns an empty array. If ts-morph removal is complete, consider either implementing an alternative approach or removing this function entirely.

Do you want me to help implement an alternative approach for parsing TypeScript schema files without ts-morph, or should this function be removed entirely?

apps/docs/content/docs/cli/guides/getting-started.mdx (2)

23-25: Refine pnpm guidance phrasing
Make the recommendation clearer and consistent with other bullets.

- - _(suggested)_ [pnpm](https://pnpm.io/installation)
-   - If you skip this step, just follow the guides for `npm` instead, which comes with Node
-   - To check if you already have pnpm installed, run `pnpm -v` in your terminal. It will return the version number if already installed.
+ - _(optional)_ [pnpm](https://pnpm.io/installation)
+   - If you opt out, follow the npm instructions instead (npm is included with Node.js).
+   - To verify, run `pnpm -v` in your terminal; it will return the version number if installed.

101-110: Remove commented-out <CliCommand> component
The legacy component is no longer used—clean up the JSX comment.

-    {/* <CliCommand command="dev" /> */}
+    {/* removed unused <CliCommand> wrapper; using direct instructions */}
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 67f7fac and df20987.

📒 Files selected for processing (7)
  • apps/demo/package.json (1 hunks)
  • apps/docs/content/docs/cli/guides/getting-started.mdx (3 hunks)
  • apps/docs/content/docs/cli/guides/motivation.mdx (1 hunks)
  • apps/docs/package.json (1 hunks)
  • package.json (1 hunks)
  • packages/cli/package.json (4 hunks)
  • packages/cli/src/generators/fmdapi.ts (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (4)
  • apps/docs/package.json
  • apps/demo/package.json
  • packages/cli/package.json
  • package.json
🧰 Additional context used
🧬 Code Graph Analysis (1)
packages/cli/src/generators/fmdapi.ts (3)
packages/typegen/src/types.ts (2)
  • TypegenConfig (89-89)
  • typegenConfigSingle (52-83)
packages/cli/src/state.ts (1)
  • state (21-21)
packages/cli/src/utils/parseSettings.ts (2)
  • getSettings (59-70)
  • envNamesSchema (27-31)
🪛 LanguageTool
apps/docs/content/docs/cli/guides/getting-started.mdx

[misspelling] ~15-~15: Did you mean “your”?
Context: .../cli). ## Prerequisites If you're brand new to web development, you'll wa...

(YOUR_NN)


[grammar] ~18-~18: One of these verbs is redundant, or a word is missing.
Context: ...ps://nodejs.org/en) - To check if you have already have Node.js installed, run node -v in you...

(HAVE_RB_HAVE)


[uncategorized] ~19-~19: The official spelling of this programming framework is “Node.js”.
Context: ... - If not, download and install here: nodejs.org - [Visual S...

(NODE_JS)

apps/docs/content/docs/cli/guides/motivation.mdx

[uncategorized] ~37-~37: Possible missing comma found.
Context: ...atures that we expect from a modern web app and is used by companies of all sizes t...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~41-~41: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...ult components and styles to build apps very quickly, but with the option of adding custom s...

(EN_WEAK_ADJECTIVE)


[uncategorized] ~43-~43: The preposition ‘on’ seems more likely in this position.
Context: ...as allowed our team to work much faster for the kinds of web apps that we build for...

(AI_HYDRA_LEO_REPLACE_FOR_ON)


[uncategorized] ~55-~55: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... A wrapper around Next.js actions that include middleware (for easily checking that a ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[style] ~61-~61: As an alternative to the over-used intensifier ‘extremely’, consider replacing this phrase.
Context: ...A hosted authentication service that is extremely easy to set up and use. It's a great choice ...

(EN_WEAK_ADJECTIVE)


[misspelling] ~61-~61: This word is normally spelled as one.
Context: ...ures such as Social logins, magic link, multi-factor authentication, and more. <Callout typ...

(EN_COMPOUNDS_MULTI_FACTOR)

🔇 Additional comments (10)
apps/docs/content/docs/cli/guides/getting-started.mdx (10)

3-3: Frontmatter description added
Good to see the new description field; it complements the title and improves SEO metadata.


6-7: Imports of Callout, Step, and Steps are correct
These components are used below for consistent UI; no unused imports detected.


9-10: Initial visual‐learner callout looks good
This provides a clear pointer to video resources.


13-13: “Prerequisites” heading added
Introducing this section improves content structure.


15-15: Introductory sentence is clear
The phrasing is concise and sets expectations for the section.

🧰 Tools
🪛 LanguageTool

[misspelling] ~15-~15: Did you mean “your”?
Context: .../cli). ## Prerequisites If you're brand new to web development, you'll wa...

(YOUR_NN)


49-50: pnpm scaffolding code block is correct
The bash tab="pnpm" fence will render the PNPM install tab as expected.


53-54: npm scaffolding code block is correct
The corresponding npm tab is properly configured.


67-74: Data API key troubleshooting callout
Good use of a Callout for common setup errors; the spelling of “privilege” is correct and consistent.


80-83: Tip callout is well-formatted
This provides a useful UX hint for API-prefixed layouts.


90-99: First <Step> block is clear
The steps and embedded code fence (bash) are correctly indented and descriptive.

@eluce2 eluce2 merged commit ac2c603 into main Jun 16, 2025
1 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant