Skip to content

v7#12

Open
qisthidev wants to merge 14 commits into
mainfrom
docs/v7-ai-ready
Open

v7#12
qisthidev wants to merge 14 commits into
mainfrom
docs/v7-ai-ready

Conversation

@qisthidev
Copy link
Copy Markdown
Member

No description provided.

qisthidev added 6 commits May 13, 2026 02:46
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.
Copilot AI review requested due to automatic review settings May 12, 2026 20:02
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented May 12, 2026

Deploying docs with  Cloudflare Pages  Cloudflare Pages

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

View logs

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

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 introduced versions + getVersionForPath for version-aware rendering.
  • Added VersionSelector in 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 .md mirrors.

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 thread src/lib/navigation.ts
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 thread scripts/generate-llms.mjs
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
}
qisthidev and others added 8 commits May 13, 2026 20:31
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
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.

2 participants