# Ki Repo Website Cloudflare

> Governs Cloudflare hosting for either Knowledge Islands website implementation using Workers Static Assets, never Pages as the deployment target. Audits `wrangler.jsonc`, rejects the legacy `pages_build_output_dir` marker and any `main` server entry, matches `assets.directory` to `dist/`, and covers Workers Builds, workers.dev, custom domains, and deploy scripts. Use when publishing a content site or interactive app on Cloudflare or diagnosing a static deployment failure. Depends only on the neutral `ki-repo-website` seam.

- Skill: `knowledgeislands/ki-repo-website-cloudflare` (Agent Skill, multi-file: 16 files)
- Install (CLI): `npx skillmds@latest add knowledgeislands/ki-repo-website-cloudflare`
- Raw SKILL.md: https://api.skillmd.com/api/skills/knowledgeislands/ki-repo-website-cloudflare/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: knowledgeislands (https://skillmd.com/u/knowledgeislands)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/knowledgeislands/ki-repo-website-cloudflare

---


# Knowledge Islands Cloudflare hosting standard

Apply the house convention for serving a built static site on **Cloudflare Workers Static Assets**: one site Worker points at the build's `dist/`, may expose custom domains, enables observability, and is reached through the `ki:site:*` script family.

This is a base-agnostic standard skill selected by `[skills.ki-repo-website-cloudflare]` in `.ki.toml`. It owns only the deploy/serve delta for the static-site Worker. `ki-repo-website` owns the build that emits `dist/`; `ki-engineering` owns the toolchain. Companion Workers and general Cloudflare or Wrangler concerns route to the `cloudflare` and `wrangler` skills.

Use these references progressively:

- [Cloudflare hosting standard](references/standards-cloudflare-hosting.md) — load for the normative model, seam, configuration, scripts, CI/CD, and ownership boundaries.
- [Generated rubric](references/rubric.md) — load when applying the mechanical and judgment criteria.
- [Source list](references/sources.md) — load during REFRESH to recheck volatile Cloudflare facts and review dates.
- [Worked exemplars](references/exemplars.md) — load only when a standard clause needs a concrete multi-artifact configuration or CI/CD illustration; examples do not define policy.

## Model at a glance

```jsonc
{
  "name": "<site-name>",
  "compatibility_date": "<YYYY-MM-DD>",
  "assets": { "directory": "./dist" },
  "observability": { "enabled": true }
}
```

Three rules define the boundary:

1. Use Workers Static Assets and `wrangler deploy`; Pages is not a deployment target for new projects.
2. Consume `[skills.ki-repo-website].site-root` (default `apps/site`) and treat its `dist/` as the build seam; the hosting table remains keyless.
3. Keep the site assets-only: no `main` means no server-side Worker code executes, making a published “no control plane” claim mechanically verifiable.

## Composition

Selecting this capability runs its declared `ki-repo-website` prerequisite first. `ki-engineering` is independently coverage-detected, and the unscoped repository audit includes it when declared:

```text
ki repo audit --skill ki-engineering --repo <repo>
ki repo audit --skill ki-repo-website --repo <repo>
ki repo audit --skill ki-repo-website-cloudflare --repo <repo>
```

The hosting catalogue reads repository evidence only. Cloudflare account and domain changes, Wrangler authentication or execution, Workers Builds configuration, preview, and deployment remain explicit report-only work outside hosted AUDIT and CONFORM.

## Operating modes

| Mode | Procedure |
| --- | --- |
| AUDIT | Read and follow [Mode AUDIT](references/mode-audit.md). |
| CONFORM | Read and follow [Mode CONFORM](references/mode-conform.md). |
| EDUCATE | Read and follow [Mode EDUCATE](references/mode-educate.md) for the one-time hosting scaffold. |
| REFRESH | Read and follow [Mode REFRESH](references/mode-refresh.md). |
| HELP | Explain the purpose, invocation, modes, and off-ramps, then stop without inspecting or changing repository. |

With no mode, show HELP and, in an interactive session only, offer the mode choice and request the target shown by `argument-hint`.

## Boundaries

- Shared `dist/` lifecycle → `ki-repo-website`; Eleventy content structure → `ki-repo-website-content`; React/Vite app structure → `ki-repo-website-app`.
- Companion Workers, APIs, Durable Objects, bindings, secrets, `wrangler dev`, deploy flags, KV/R2/D1, crons, and queues → `cloudflare` / `wrangler`.
- Bun, lint/dependency families, TypeScript, and Biome → `ki-engineering`.
- Universal repository files and repository configuration ownership → `ki-repo`.

