---
name: ki-repo-website-cloudflare
ki-kind: governance
ki-applicability: detected
ki-shared-dependencies: [ki-repo-website:site-selection, ki-skills:rubric]
ki-depends-on: [ki-repo-website]
contributes: ['.gitignore']
description: >
  Govern Cloudflare Workers Static Assets hosting—not Pages—for either KI website implementation. Use for
  `wrangler.jsonc`, `dist/`, Workers Builds, workers.dev, domains, deploy scripts, or static-deployment
  diagnosis; site-generator choice remains independent.
argument-hint: 'audit <repo> | conform <repo> | educate <repo> | help | refresh'
---

# Knowledge Islands Cloudflare hosting standard

The keyless hosting table covers every core-selected site. A named multi-site repository may use only `sites = ["name"]` to select a non-empty subset; each selected site is audited independently.

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, branch previews behind Access, the guide, 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`.
