This skill should be used when validating the documentation build and preparing for Cloudflare Pages deployment. It runs the Eleventy build, validates output, checks component counts, and provides deployment instructions.
Installs into .claude/skills of the current project.
Are you the author of Deploy Docs?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/jikig-ai-deploy-docs)
---
name: deploy-docs
description: "This skill should be used when validating the documentation build and preparing for Cloudflare Pages deployment. It runs the Eleventy build, validates output, checks component counts, and provides deployment instructions."
---
<!-- grok-harness-invoke:start -->
**Grok Build (`plugins/soleur/lib/harness.ts` `invokeSkill()`):** Read this SKILL.md in this process and run it to completion. A one-segment `soleur:<name>` in this document names a SKILL — on Grok Build, Read `plugins/soleur/skills/<name>/SKILL.md` in this process; it is not a nested tool_use. A multi-segment id such as `soleur:<domain>:<name>` names an AGENT: spawn it, never Read it, and on Grok Build spawn_subagent takes the id with its colons replaced by hyphens (`agentIdToGrokSubagentType`). **Claude Code:** Skill tool for a skill (`soleur:<name>`), Task tool with `subagent_type` for an agent. Forbidden is executing a subset, not the Read.
<!-- grok-harness-invoke:end -->
# Deploy Documentation Command
Validate the documentation build and prepare it for Cloudflare Pages deployment.
## Step 1: Build and Validate
```bash
# Install dependencies (if needed)
npm ci --ignore-scripts
# Run Eleventy build
npx @11ty/eleventy
# Verify build output
test -f _site/index.html && echo "OK index.html"
test -f "_site/pages/agents.html" && echo "OK agents.html"
test -f "_site/pages/skills.html" && echo "OK skills.html"
test -f "_site/pages/changelog.html" && echo "OK changelog.html"
test -f "_site/pages/getting-started.html" && echo "OK getting-started.html"
test -f _site/404.html && echo "OK 404.html"
test -f _site/css/style.css && echo "OK style.css"
test -f _site/CNAME && echo "OK CNAME"
test -f _site/sitemap.xml && echo "OK sitemap.xml"
```
## Step 2: Verify Component Counts
Use Grep to count occurrences of `component-card` in `_site/pages/agents.html` and `_site/pages/skills.html`.
Then compare with source counts using Glob:
- Agent files: count `.md` files (excluding README.md) under `plugins/soleur/agents/`
- Skill files: count `SKILL.md` files under `plugins/soleur/skills/`
Cards in the output must match source file counts exactly.
## Step 3: Check for Uncommitted Changes
```bash
git status --porcelain plugins/soleur/docs/ eleventy.config.js package.json
```
If there are uncommitted changes, warn the user to commit first.
## Step 4: Deployment
Deployment is automated via `.github/workflows/deploy-docs.yml`:
- **Trigger:** Push to `main` that changes docs, agents, skills, commands, plugin.json, or eleventy.config.js
- **Manual:** Go to Actions > "Deploy Documentation to Cloudflare Pages" > "Run workflow"
The workflow:
1. Checks out the repo
2. Installs Node.js 20 and npm dependencies
3. Runs `npx @11ty/eleventy` to build
4. Verifies all required files are present
5. Stamps `_site/version.txt` with the commit SHA
6. Deploys `_site/` to the `soleur-docs` Cloudflare Pages project with wrangler
7. Fetches `version.txt` back and fails the job unless it matches the SHA just built
## Step 5: Report Status
Provide a summary:
```
## Deployment Readiness
OK All HTML pages present
OK CSS and fonts present
OK Component counts match source
OK CNAME and sitemap present
### Next Steps
- [ ] Commit any pending changes
- [ ] Push to main branch
- [ ] Verify deployment at https://soleur.ai/ (the live apex)
> **The ADR-194 cutover is COMPLETE (2026-09-03).** `https://soleur.ai/` is
> served by Cloudflare Pages and DOES advance with these deploys — verify at the
> apex, not at `pages.dev`. Until PR4b this block said the opposite and sent the
> operator to the `pages.dev` hostname; that was correct then and is misdirection
> now. `soleur-docs.pages.dev` still resolves and is still a useful
> origin-vs-edge discriminator, but it is not where a deploy is confirmed. See
> `knowledge-base/engineering/operations/runbooks/cloudflare-pages-cutover.md`.
```