From cc7aab0650afe833718d8955ac344156934c0ee3 Mon Sep 17 00:00:00 2001 From: y2hlbg Date: Sun, 31 May 2026 14:27:30 +0800 Subject: [PATCH] fix(docs): align canonical host to www --- .gitignore | 3 +++ apps/docs/public/llms.txt | 40 +++++++++++++++++++-------------------- apps/docs/src/lib/seo.ts | 2 +- apps/docs/vercel.json | 13 +++++++++++++ vercel.json | 13 +++++++++++++ 5 files changed, 50 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index 27468e3..0154d85 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,9 @@ go-dist/ *.test .golangci-cache/ +# seo-cli local state +.seo/ + # Bundled go:embed sources — regenerated by `task sync-bundled` (cheap # cp from packages/templates/ + packages/skills/) and `task sync-web` # (pnpm install + vite build of apps/dashboard/). Both run as deps of diff --git a/apps/docs/public/llms.txt b/apps/docs/public/llms.txt index a83a0f6..1392ea0 100644 --- a/apps/docs/public/llms.txt +++ b/apps/docs/public/llms.txt @@ -2,7 +2,7 @@ > One CLI is a Go-based scaffolding and governance tool for AI-native monorepo workspaces. -Canonical site: https://1cli.dev/ +Canonical site: https://www.1cli.dev/ ## What it is @@ -12,14 +12,14 @@ Use it when a coding agent or engineer needs a predictable workspace contract in ## Core documentation -- Quick start: https://1cli.dev/en/docs/quick-start/ -- Installation: https://1cli.dev/en/docs/installation/ -- CLI overview: https://1cli.dev/en/docs/cli-overview/ -- Manifest reference: https://1cli.dev/en/docs/manifest/ -- Templates: https://1cli.dev/en/docs/templates/ -- Template examples: https://1cli.dev/en/templates/ -- Agent skills: https://1cli.dev/en/docs/skills/ -- Error codes: https://1cli.dev/en/docs/error-codes/ +- Quick start: https://www.1cli.dev/en/docs/quick-start/ +- Installation: https://www.1cli.dev/en/docs/installation/ +- CLI overview: https://www.1cli.dev/en/docs/cli-overview/ +- Manifest reference: https://www.1cli.dev/en/docs/manifest/ +- Templates: https://www.1cli.dev/en/docs/templates/ +- Template examples: https://www.1cli.dev/en/templates/ +- Agent skills: https://www.1cli.dev/en/docs/skills/ +- Error codes: https://www.1cli.dev/en/docs/error-codes/ ## Key concepts @@ -40,17 +40,17 @@ The site explains how agents should work from `one.manifest.json`, prefer JSON o Recommended entry points for AI summarizers: -- https://1cli.dev/en/docs/ai-native/ -- https://1cli.dev/en/docs/skills/ -- https://1cli.dev/en/blog/ai-native-monorepo-cli/ -- https://1cli.dev/en/blog/coding-agent-workspace-setup/ -- https://1cli.dev/en/blog/json-cli-contracts-for-agents/ -- https://1cli.dev/en/blog/monorepo-scaffold-manifest/ -- https://1cli.dev/en/blog/template-governance-for-ai-workspaces/ -- https://1cli.dev/en/blog/one-cli-vs-general-scaffolding/ -- https://1cli.dev/en/blog/agent-skill-context/ -- https://1cli.dev/en/blog/manifest-as-contract/ -- https://1cli.dev/en/blog/preset-id-boundary/ +- https://www.1cli.dev/en/docs/ai-native/ +- https://www.1cli.dev/en/docs/skills/ +- https://www.1cli.dev/en/blog/ai-native-monorepo-cli/ +- https://www.1cli.dev/en/blog/coding-agent-workspace-setup/ +- https://www.1cli.dev/en/blog/json-cli-contracts-for-agents/ +- https://www.1cli.dev/en/blog/monorepo-scaffold-manifest/ +- https://www.1cli.dev/en/blog/template-governance-for-ai-workspaces/ +- https://www.1cli.dev/en/blog/one-cli-vs-general-scaffolding/ +- https://www.1cli.dev/en/blog/agent-skill-context/ +- https://www.1cli.dev/en/blog/manifest-as-contract/ +- https://www.1cli.dev/en/blog/preset-id-boundary/ ## Languages diff --git a/apps/docs/src/lib/seo.ts b/apps/docs/src/lib/seo.ts index e919556..57a8834 100644 --- a/apps/docs/src/lib/seo.ts +++ b/apps/docs/src/lib/seo.ts @@ -1,7 +1,7 @@ import type { Metadata } from "next"; import { htmlLang, type Locale } from "@/i18n"; -export const siteUrl = "https://1cli.dev"; +export const siteUrl = "https://www.1cli.dev"; export const siteName = "One CLI"; export const defaultDescription = "One CLI is a scaffolding and governance tool for AI-native monorepo workspaces, templates, manifests, local configuration, and agent-ready command flows."; diff --git a/apps/docs/vercel.json b/apps/docs/vercel.json index f08a459..fca9d8d 100644 --- a/apps/docs/vercel.json +++ b/apps/docs/vercel.json @@ -3,6 +3,19 @@ "framework": "nextjs", "installCommand": "pnpm install --frozen-lockfile", "buildCommand": "pnpm build", + "redirects": [ + { + "source": "/:path*", + "has": [ + { + "type": "host", + "value": "1cli.dev" + } + ], + "destination": "https://www.1cli.dev/:path*", + "permanent": true + } + ], "headers": [ { "source": "/install.sh", diff --git a/vercel.json b/vercel.json index 40e5263..60b4c05 100644 --- a/vercel.json +++ b/vercel.json @@ -3,6 +3,19 @@ "framework": "nextjs", "installCommand": "pnpm --dir apps/docs install --frozen-lockfile", "buildCommand": "pnpm --dir apps/docs build", + "redirects": [ + { + "source": "/:path*", + "has": [ + { + "type": "host", + "value": "1cli.dev" + } + ], + "destination": "https://www.1cli.dev/:path*", + "permanent": true + } + ], "headers": [ { "source": "/install.sh",