v7#12
Open
qisthidev wants to merge 14 commits into
Open
Conversation
Introduce the first v7 documentation section alongside the existing v6 content. - Rewrite the landing page to position Laravolt v7 as an AI-ready Laravel application platform and link into the v7 entry points. - Add pages: - /v7/introduction - /v7/getting-started/installation - /v7/core-concepts/ai-ready-platform - /v7/forms/overview - /v7/forms/validation - /v7/forms/input-masking - /v7/upgrade-guide - Update navigation so v7 is the primary section and v6 is preserved under clearly labelled legacy groups. Content is grounded in the Laravolt source (PrelineForm API, mask presets, FormRequest-driven client validation). APIs that still need confirmation before the June release are flagged with explicit 'TODO: verify API' markers instead of invented behaviour.
Teach the build to emit an LLM-friendly static snapshot of the docs site, following the llmstxt.org convention and the SSG-MD pattern popularised by Rspress (https://rspress.rs/guide/basic/ssg-md). - Add scripts/generate-llms.mjs which walks src/app/**/page.md and writes: public/llms.txt index with titles + descriptions public/llms-full.txt every page concatenated public/<route>.md raw markdown mirror of each page The script uses only fast-glob and js-yaml, both already installed. - Wire the script into package.json via prebuild and predev hooks so next build and next dev regenerate artifacts automatically. A standalone 'bun run llms' alias is also available. - Ignore the generated artifacts in git (public/llms*.txt and the per-page .md mirrors under public/v6 and public/v7). The .md mirrors use the same path as the page route with a .md suffix, e.g. /v7/forms/overview -> public/v7/forms/overview.md, so the UI can fetch them without a route handler.
Render a 'Copy Markdown' control on every docs page, styled after the Rspress SSG-MD UI (https://rspress.rs/guide/basic/ssg-md#ui-display). The primary button fetches the current route's /<route>.md mirror (produced by scripts/generate-llms.mjs) and places its raw markdown on the clipboard. A Headless UI dropdown exposes three additional actions: - Copy Markdown link Copy the fully-qualified .md URL of the current page. - Open in ChatGPT Open chatgpt.com with a prompt that asks ChatGPT to read the .md. - Open in Claude Same, targeting claude.ai/new. The component follows the existing ThemeSelector pattern (Headless UI v2 Menu, Tailwind styling, dark-mode aware) and is placed in DocsLayout between DocsHeader and Prose so every docs page gets it for free. Click state flashes Copying -> Copied / Copy failed and reverts after two seconds; all interactive elements carry aria-labels.
Add a reference page covering the LLM-friendly publishing pipeline: - What artifacts the build emits (llms.txt, llms-full.txt, per-page .md mirrors) and where they live under /public. - Which pathname maps to which /<route>.md file. - How the Copy Markdown button, Copy Markdown link, Open in ChatGPT, and Open in Claude actions behave, plus the exact prompt sent to ChatGPT and Claude. - How to run the generator ad hoc (bun run llms) and which files to edit when customising the behaviour. - Known limitations (Markdoc tags passed through verbatim; regen only on build/dev boot). Expose the page via a new 'Reference' section in navigation.ts so it is discoverable from the sidebar.
Previously the sidebar interleaved v7 sections with seven legacy v6
sections prefixed 'v6 · ...'. The result was a long, mixed sidebar that
made it hard to focus on either version.
Give each major version its own navigation tree and put a compact
segmented switcher at the top of the sidebar. Readers now see only the
version they are reading; switching versions jumps to that version's
home page.
- src/lib/navigation.ts
- Split into v7Navigation and v6Navigation arrays.
- Export versions[] metadata (id, label, description, homeHref,
pathPrefix, navigation) so the UI can iterate.
- Add getVersionForPath(pathname) helper. Defaults to v7 so the
landing page and any new top-level routes surface current docs.
- Keep a union 'navigation' export so Search and other global
lookups still work without per-version branching.
- src/components/Navigation.tsx
- Determine the active version from the URL.
- Render a segmented VersionSwitcher (Laravolt v7 / Laravolt v6)
above the section list. The active tab is highlighted; clicking
either tab navigates to that version's home page.
- Render only the active version's sections beneath the switcher.
- src/components/PrevNextLinks.tsx & DocsHeader.tsx
- Use getVersionForPath so prev/next and the section breadcrumb are
scoped to the active version. This prevents 'Next' on the last
v7 page from jumping into v6 content.
MobileNavigation already renders <Navigation /> internally, so the
mobile sidebar picks up the switcher without changes. Search continues
to index both versions' pages via the union export.
Build: 39/39 static pages generated, lint + typecheck clean.
Relocate the documentation version switcher from the sidebar to the top-right of the header, next to the theme toggle. The sidebar keeps a small non-interactive label so readers still see which version they are browsing, but without a duplicate control. - Add src/components/VersionSelector.tsx. Compact Headless UI Menu rendered as a 'Laravolt v7 v' pill. Clicking opens a dropdown listing every documented version with its description (Current / Legacy) and a check mark next to the active one; picking an entry navigates to that version's home page. - Mount <VersionSelector /> in Layout.tsx before <ThemeSelector />, matching the other header controls in height, shadow, and dark-mode styling. - Simplify Navigation.tsx: replace the in-sidebar segmented switcher with a short 'Laravolt v7 · Current' label so the sidebar focuses on section links. Switching versions is the header's job now. Build: 39/39 static pages, lint + typecheck clean.
Deploying docs with
|
| Latest commit: |
82f92e5
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://b950ac70.docs-lst.pages.dev |
| Branch Preview URL: | https://docs-v7-ai-ready.docs-lst.pages.dev |
There was a problem hiding this comment.
Pull request overview
Adds Laravolt v7 documentation alongside the existing v6 docs, introduces a version-aware navigation model + UI selector, and adds an LLM-friendly export pipeline (llms.txt, llms-full.txt, and per-page markdown mirrors) with an in-page “Copy Markdown” control.
Changes:
- Split navigation into per-version structures (
v7Navigation,v6Navigation) and introducedversions+getVersionForPathfor version-aware rendering. - Added
VersionSelectorin the header and updated docs UI components to render navigation/prev-next/header context based on the active version. - Added
scripts/generate-llms.mjs+ UI (LlmsCopyButton) to generate and expose LLM-friendly artifacts and per-page.mdmirrors.
Reviewed changes
Copilot reviewed 19 out of 20 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/lib/navigation.ts | Introduces versioned navigation/metadata and helpers; updates global navigation export. |
| src/components/VersionSelector.tsx | New header dropdown to switch between v7/v6 doc versions. |
| src/components/PrevNextLinks.tsx | Prev/next navigation now uses the active version’s link list. |
| src/components/Navigation.tsx | Sidebar navigation now renders sections for the active version and shows version metadata. |
| src/components/LlmsCopyButton.tsx | New “Copy Markdown” + dropdown actions (copy link, open in LLM tools). |
| src/components/Layout.tsx | Adds VersionSelector next to the theme toggle in the header. |
| src/components/DocsLayout.tsx | Renders LlmsCopyButton under the page header in docs pages. |
| src/components/DocsHeader.tsx | Section title lookup is now version-aware. |
| src/app/v7/upgrade-guide/page.md | Adds v6→v7 upgrade guide content. |
| src/app/v7/reference/llms-txt/page.md | Documents the llms.txt / mirrors feature and how to regenerate it. |
| src/app/v7/introduction/page.md | Adds v7 introduction page. |
| src/app/v7/getting-started/installation/page.md | Adds v7 installation guide. |
| src/app/v7/forms/validation/page.md | Adds v7 form validation documentation. |
| src/app/v7/forms/overview/page.md | Adds v7 forms overview documentation. |
| src/app/v7/forms/input-masking/page.md | Adds v7 input masking documentation. |
| src/app/v7/core-concepts/ai-ready-platform/page.md | Adds v7 “AI-ready platform” concept page. |
| src/app/page.md | Updates the landing page to be v7-focused while noting v6 availability. |
| scripts/generate-llms.mjs | New generator for llms artifacts and per-page .md mirrors under /public. |
| package.json | Adds predev, prebuild, and llms scripts to run the generator. |
| .gitignore | Ignores generated llms artifacts and .md mirrors under /public. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+149
to
+150
| if (pathname && pathname.startsWith('/v6')) return versions[1] | ||
| return versions[0] |
Comment on lines
+54
to
+56
| <p className="px-2 pt-1 pb-2 font-display text-xs font-semibold tracking-wide text-slate-500 uppercase dark:text-slate-400"> | ||
| Documentation version | ||
| </p> |
Comment on lines
+154
to
+161
| // Write per-page .md mirrors. | ||
| let mirrorCount = 0 | ||
| for (const page of pages) { | ||
| const target = toPublicMdPath(page.route) | ||
| await fs.mkdir(path.dirname(target), { recursive: true }) | ||
| await fs.writeFile(target, page.source, 'utf8') | ||
| mirrorCount += 1 | ||
| } |
Expand the v7 docs with workflow, AI-ready development, table, configuration, package, and command references so teams have clearer extension points for the June release. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Document the VoltProcure MVP evidence as a workflow-sharing capability so the v7 docs can be previewed with a concrete stakeholder demo narrative. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Document Thunderclap as the default schema-driven module scaffolding path for Laravolt v7 so admin workflows start from predictable generated code. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Phase 1 - AI Workflow Pages: - AI Coding Quickstart - Thunderclap Recipes - AI Task Patterns Phase 2 - Forms, UI, Workflow Reference: - Custom Fields & Form Layouts - Buttons, Cards, Modals - Approval Flows & Notifications - Updated navigation with new sections - Regenerated /llms-full.txt (15,980 lines, 474 KB) - Total: 10 new pages, 2,413+ lines of AI-ready content
…nd Reference Phase 3 completes the Laravolt v7 documentation with production-ready content: New Pages (6): - Troubleshooting: Common issues with symptom→diagnosis→solution→verification pattern - Advanced: Multi-tenancy patterns (database-per-tenant, shared DB, schema-per-tenant) - Advanced: API integration (Sanctum auth, resources, rate limiting, versioning) - Advanced: Custom Thunderclap generators (stubs, hooks, domain-specific generators) - Reference: Complete configuration reference (all config files + env vars) - Reference: Performance optimization (database, caching, assets, Octane, monitoring) Navigation Updates: - Added 'Troubleshooting' section with 1 page - Added 'Advanced patterns' section with 3 pages - Expanded 'Reference' section with 2 new pages (now 5 total) Documentation Stats: - Total v7 pages: 36 (was 30) - llms-full.txt: 15,980 lines - All pages follow AI-ready patterns with concrete examples and verification commands Related: Phase 1 (AI workflow pages), Phase 2 (Forms & UI components)
New page at /v7/admin-workflows/business-actions documenting the v7
stable pattern for non-CRUD operations on top of Thunderclap-generated
modules:
- when to use a single-action invokable class vs the workflow engine
- folder convention (app/Actions/{Domain}/{Verb}Action.php)
- routing with permission gate + policy authorization
- thin controller + FormRequest for action input
- Blade trigger patterns (button form, modal form)
- Pest test recipe for both the action class and the route
- regen-safe recipe for adding actions on top of Thunderclap
- when to graduate to WorkflowService / Camunda
Adds the page to navigation under Admin workflows and links it from
the admin-workflows overview "What to read next" list.
Refs: v7-stable-issues-from-voltprocure.md P1-6
Adds two new canonical AI-agent docs pages: - /v7/ai-context — entry point describing Laravolt's structure (key concepts: Suitable, TableView, PrelineForm, Thunderclap, ACL), conventions, stack versions, how to consume the docs as agent context (full dump / targeted pages / llms.txt), and common agent pitfalls to avoid. - /v7/task-recipes — copy-paste recipes for common post-generation tasks: add a business action, add a permission, customize a form field, add an index filter, register a sidebar menu entry, write a browser smoke test, re-baseline screenshot snapshots. Both pages link to existing /v7/ai-coding-quickstart, /v7/ai-task-patterns, /v7/admin-workflows/business-actions, and /v7/thunderclap-recipes. Navigation updated under 'AI-ready development' section. llms.txt / llms-full.txt are regenerated at build time by scripts/generate-llms.mjs and automatically pick up the new pages. Verified locally: 67 page mirrors written, both new pages indexed. Refs: v7-stable-issues-from-voltprocure.md P2-10
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.