Skip to content
This repository was archived by the owner on May 29, 2026. It is now read-only.

feat(docs): AI-crawler-friendly defaults in the template scaffold#40

Merged
rubenvdlinde merged 1 commit into
developmentfrom
feat/docs-ai-baseline
May 18, 2026
Merged

feat(docs): AI-crawler-friendly defaults in the template scaffold#40
rubenvdlinde merged 1 commit into
developmentfrom
feat/docs-ai-baseline

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Summary

Every new Conduction app spun up from this template now inherits the AI-crawler baseline on first deploy. Combined with the centralised ConductionNL/.github workflow change (PR #73 there), this means a regression to the AI baseline blocks at PR review time, fleet-wide, for every app built from this scaffold.

What changed

  • docs/package.json: bumped @conduction/docusaurus-preset from ^2.6.1 to ^3.4.0. Preset 3.4.0 ships Organization + WebSite JSON-LD on every page, SoftwareApplication from <DetailHero>, FAQPage from <FAQ>, default og:image + twitter meta, sitemap options, and a postBuild plugin that emits a sensible default robots.txt when the site doesn't ship its own.
  • docs/package.json scripts: postbuild runs the validator after every docusaurus build. validate:ai-baseline alias for ad-hoc runs.
  • docs/scripts/validate-ai-baseline.mjs (new): generic 8-check validator. Asserts robots.txt exists with AI-bot allow lines + a Sitemap, sitemap.xml has >= 1 URL, homepage emits Organization + WebSite JSON-LD, og:image / og:type / twitter:* meta are present, and og:image resolves to a real file in the build. Exits 1 on regression so CI blocks.
  • docs/static/llms.txt (new): placeholder llmstxt.org index. App teams customise the {{APP_NAME}}, {{slug}}, {{ONE_SENTENCE_DESCRIPTION}} markers per app.

What app teams should customise

After spinning up a new app from this template:

  1. Replace the {{...}} markers in docs/static/llms.txt with the app's actual name, slug, and intro.
  2. (Optional) Drop a per-app docs/static/img/og-app.png at 1200x630 and set themeConfig.image: 'img/og-app.png' in docusaurus.config.js. Otherwise the preset's default Conduction-branded OG card is used.
  3. (Optional) Ship a docs/static/robots.txt to override the preset's open-posture default (e.g. for closed-customer portals).

Test plan

  • CI runs the new validate:ai-baseline check via the postbuild hook
  • cd docs && npm install && npm run build succeeds locally
  • Validator reports 8/8 passing after the preset bump
  • Spawning a new app from this template inherits the validator and the llms.txt placeholder

Every new Conduction app spun up from this template now inherits the
AI-baseline contract on first deploy:

- @conduction/docusaurus-preset bumped from ^2.6.1 to ^3.4.0. The
  3.4.0 release ships Organization + WebSite JSON-LD on every page,
  SoftwareApplication from <DetailHero>, FAQPage from <FAQ>, default
  og:image + twitter:* meta, sitemap options, and a postBuild plugin
  that emits a sensible default robots.txt when the site doesn't
  ship its own.
- docs/scripts/validate-ai-baseline.mjs: generic validator that
  checks the 8 universal AI-crawler contract items: robots.txt
  exists with AI-bot allow lines + a Sitemap, sitemap.xml has >= 1
  URL, homepage emits Organization + WebSite JSON-LD, og:image /
  og:type / twitter:* meta are present, and og:image resolves to
  a real file in the build. Exits 1 on regression so CI blocks.
- docs/package.json: postbuild npm script wires the validator into
  every `npm run build`, plus a validate:ai-baseline alias for
  ad-hoc runs.
- docs/static/llms.txt: placeholder llmstxt.org-format index that
  app teams customise per app. Markers ({{APP_NAME}}, {{slug}},
  {{ONE_SENTENCE_DESCRIPTION}}) make the TODO obvious.

Combined with the centralised ConductionNL/.github documentation
workflow change that runs build on every PR, this means a regression
to the AI baseline now blocks at PR review time, fleet-wide, for
every app built from this scaffold.

App teams: replace docs/static/llms.txt placeholders, optionally
drop a per-app docs/static/img/og-app.png and reference it via
themeConfig.image, and optionally ship a docs/static/robots.txt
to override the preset default.
@rubenvdlinde rubenvdlinde requested a review from Rem-Dam as a code owner May 18, 2026 17:42
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/nextcloud-app-template @ a01a512

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
composer ✅ 100/100
npm ✅ 428/428
PHPUnit
Newman
Playwright ⏭️

Coverage: 0% (0/3 statements)


Quality workflow — 2026-05-18 17:45 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde rubenvdlinde merged commit 2eeb8e2 into development May 18, 2026
26 checks passed
@rubenvdlinde rubenvdlinde deleted the feat/docs-ai-baseline branch May 18, 2026 18:04
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant