TokenMax Fleet Orchestrator
Use this skill above tokenmax-site-factory. The site factory discovers and
generates one site; this skill sequences many sites and records what actually
passed, shipped, and reached production.
Start
- Read the target repo's deploy manual and its existing TokenMax/fleet files.
- Inspect active processes, worktrees, schedules, disk, and available memory.
- Read
references/stage-contract.md and validate the fleet YAML against
references/fleet-config.schema.json.
- Run a dry plan before any mutation:
python scripts/fleet_controller.py --config /path/to/fleet.yaml validate-config
python scripts/fleet_controller.py --config /path/to/fleet.yaml init
python scripts/fleet_controller.py --config /path/to/fleet.yaml run-next --dry-run
- Forward-test one unproven site through production before installing a
recurring timer.
Controller
The controller is generic. Fleet-specific behavior belongs in YAML stage
commands and a versioned repo driver. Commands receive site/stage context via
environment variables and write an optional JSON stage result.
python scripts/fleet_controller.py --config /path/to/fleet.yaml status
python scripts/fleet_controller.py --config /path/to/fleet.yaml run-next --max-sites 1
python scripts/fleet_controller.py --config /path/to/fleet.yaml resume --site <id>
python scripts/fleet_controller.py --config /path/to/fleet.yaml retry --site <id>
python scripts/fleet_controller.py --config /path/to/fleet.yaml pause
python scripts/fleet_controller.py --config /path/to/fleet.yaml index-queue
Required Gates
- One clean, isolated worktree per site.
- Scan/profile confidence before content writes.
- A small rendered pilot before the full batch.
- Per-page and full-batch word, uniqueness, fact, structure, and prohibited
claim validation.
- Exact app build before any commit or deploy.
- Rendered HTTP, canonical, JSON-LD, internal-link, text/HTML, robots, and
sitemap validation.
- Scoped staging and the target platform's required commit identity.
- Merge current remote base and rerun affected gates before pushing.
- Production content and sitemap proof after deploy.
Pre-deploy quality failures may block one site while leaving the remaining
queue eligible. Any uncertain post-push or live-production state freezes the
fleet. Search Console quota exhaustion defers indexing and never weakens the
build or production gates.
Indexing Boundary
Automate sitemap submission when an authorized Search Console write client is
available. For ordinary pages, create a ranked top-URL queue for a persistent
browser worker; do not misuse Google's restricted Indexing API. Browser quota,
authentication, or UI drift is a deferred operation, not proof that a deploy
failed.
Scheduling
Use the bundled systemd templates only after the canary passes. Keep one site
per invocation by default, retain the process lock, and inspect existing
timers before installation. A monitor may report status from another machine,
but generation and builds remain on the configured server.
Rules
- Never place secrets in fleet YAML, command arguments, logs, or state JSON.
- Do not deploy from the generation skill; shipping is a separate stage here.
- Retries are for transient failures. Quality failures retain evidence and
stop after their configured rewrite budget.
- Do not trust stale completion lists. Reconcile repo artifacts, live routes,
sitemap state, and deployment evidence.
- Do not claim rankings, indexing, or production state from a successful local
build.
1---2name: tokenmax-fleet-orchestrator3description: Run multiple TokenMax SEO/GEO sites as a resumable, fail-closed fleet. Use when Codex needs to audit a site queue, execute one isolated site at a time, preserve deterministic quality/build/deploy gates, resume interrupted runs, install a server-side scheduler, or report production and indexing state without hard-coding one website into the controller.4---56# TokenMax Fleet Orchestrator78Use this skill above `tokenmax-site-factory`. The site factory discovers and9generates one site; this skill sequences many sites and records what actually10passed, shipped, and reached production.1112## Start13141. Read the target repo's deploy manual and its existing TokenMax/fleet files.152. Inspect active processes, worktrees, schedules, disk, and available memory.163. Read `references/stage-contract.md` and validate the fleet YAML against17 `references/fleet-config.schema.json`.184. Run a dry plan before any mutation:1920```bash21python scripts/fleet_controller.py --config /path/to/fleet.yaml validate-config22python scripts/fleet_controller.py --config /path/to/fleet.yaml init23python scripts/fleet_controller.py --config /path/to/fleet.yaml run-next --dry-run24```25265. Forward-test one unproven site through production before installing a27 recurring timer.2829## Controller3031The controller is generic. Fleet-specific behavior belongs in YAML stage32commands and a versioned repo driver. Commands receive site/stage context via33environment variables and write an optional JSON stage result.3435```bash36python scripts/fleet_controller.py --config /path/to/fleet.yaml status37python scripts/fleet_controller.py --config /path/to/fleet.yaml run-next --max-sites 138python scripts/fleet_controller.py --config /path/to/fleet.yaml resume --site <id>39python scripts/fleet_controller.py --config /path/to/fleet.yaml retry --site <id>40python scripts/fleet_controller.py --config /path/to/fleet.yaml pause41python scripts/fleet_controller.py --config /path/to/fleet.yaml index-queue42```4344## Required Gates4546- One clean, isolated worktree per site.47- Scan/profile confidence before content writes.48- A small rendered pilot before the full batch.49- Per-page and full-batch word, uniqueness, fact, structure, and prohibited50 claim validation.51- Exact app build before any commit or deploy.52- Rendered HTTP, canonical, JSON-LD, internal-link, text/HTML, robots, and53 sitemap validation.54- Scoped staging and the target platform's required commit identity.55- Merge current remote base and rerun affected gates before pushing.56- Production content and sitemap proof after deploy.5758Pre-deploy quality failures may block one site while leaving the remaining59queue eligible. Any uncertain post-push or live-production state freezes the60fleet. Search Console quota exhaustion defers indexing and never weakens the61build or production gates.6263## Indexing Boundary6465Automate sitemap submission when an authorized Search Console write client is66available. For ordinary pages, create a ranked top-URL queue for a persistent67browser worker; do not misuse Google's restricted Indexing API. Browser quota,68authentication, or UI drift is a deferred operation, not proof that a deploy69failed.7071## Scheduling7273Use the bundled systemd templates only after the canary passes. Keep one site74per invocation by default, retain the process lock, and inspect existing75timers before installation. A monitor may report status from another machine,76but generation and builds remain on the configured server.7778## Rules7980- Never place secrets in fleet YAML, command arguments, logs, or state JSON.81- Do not deploy from the generation skill; shipping is a separate stage here.82- Retries are for transient failures. Quality failures retain evidence and83 stop after their configured rewrite budget.84- Do not trust stale completion lists. Reconcile repo artifacts, live routes,85 sitemap state, and deployment evidence.86- Do not claim rankings, indexing, or production state from a successful local87 build.