Skip to main content

monitor-website

Audit and sync the public site (grahama.co, site/) against the repo README. Report-only audit detects drift between README's curated projects/inventory and site/content.json, plus live-site health; apply regenerates content.json from the README. Use for "is the website current", "sync the site with the README", "website drift", or after editing the README project cards or At a Glance table.

Zur Installation springen

Quellinformationen

Repository
grahama1970/agent-skills
Letzte Quellaktivität
11. August 2026 um 21:21
Erkannte Sprache von SKILL.md
Englisch
Sterne
5
Forks
2

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
21 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
monitor-website
description
Audit and sync the public site (grahama.co, site/) against the repo README. Report-only audit detects drift between README's curated projects/inventory and site/content.json, plus live-site health; apply regenerates content.json from the README. Use for "is the website current", "sync the site with the README", "website drift", or after editing the README project cards or At a Glance table.
triggers
["monitor website","website drift","sync the site","is the website current"]
allowed-tools
["Bash"]
provides
["monitor-website"]
composes
["best-practices-bespoke-design","best-practices-font","agentic-evals"]
complies
["best-practices-skills"]
disciplines
["observability-operations","content-creation"]
domains
["marketing"]
# monitor-website `RESUME.md` is the source of truth for grahama.co/resume: `gen_resume.py` parses it into `site/resume.json` and copies the PDF and Markdown exports into `site/public/`, so the page, `/resume.pdf`, and `/resume.md` are one commit's content. The digest check below catches an edited resume whose surface was never regenerated. The public site (`site/`, served at https://grahama.co) mirrors two curated surfaces in `README.md`: the "Fun Stuff I'm Working On" project cards and the "At a Glance" inventory table. The README is the source of truth; the site reads `site/content.json`. This skill keeps them honest. ## Commands ```bash # Report-only: README vs content.json drift + live-site health. Exit 1 on drift. ./run.sh audit --json # Skip the live https://grahama.co probes (offline / pre-DNS use) ./run.sh audit --no-live --json # Regenerate site/content.json from the README (stats always; project set # add/remove by slug — existing blurbs are preserved, new projects take the # README card blurb). Does NOT commit or push. ./run.sh apply # Apply, then prove the site still builds and passes the qid gate. ./run.sh apply --build # Regenerate the generated surfaces (inventory.json, artifacts.json, # generated/battle-lineage.json, research-map.json) from current repo state, # gate on qid + build; --commit/--push are explicit. # battle-lineage.json is derived from the recorded battle-004 live fixture # and fails closed if that fixture drifts from its asserted shape. # research-map.json groups the projects into a DECLARED research-area taxonomy # (areas maintained in gen_research_map.py, not LLM-inferred) and counts # matching skills per area — the homepage mini-map is generated, not prose. # Copy (questions/blurbs/sections) is NEVER touched by refresh. ./run.sh refresh ./run.sh refresh --commit --push # Freeze section/page-state review units and serve a loopback capability URL. ./run.sh review-site prepare --url http://127.0.0.1:3003/ --out /tmp/grahama-review --json ./run.sh review-site verify --run-dir /tmp/grahama-review --json ./run.sh review-site serve --run-dir /tmp/grahama-review --bind 127.0.0.1 --port 43117 --json ./run.sh review-site stop --run-dir /tmp/grahama-review --json # Verify URL-first G11 reviewer transport without consuming a rater seat. ./run.sh design-review preflight --provider webgpt --review-url '<capability-url>' --expected-fingerprint '<sha256>' --json ./run.sh design-review submit --provider webgpt --review-url '<capability-url>' --expected-fingerprint '<sha256>' --prompt prompt.md --out /tmp/rater --json ./run.sh design-review verify --rater-dir /tmp/rater --json ``` A disabled-by-default nightly service is registered at `agents/website-maintainer/services.yaml` (repo convention: cron entries ship disabled; enable only when the scheduler environment is ready). ## Contract - **Report-only by default.** `audit` never mutates. `apply` writes only `site/content.json`; committing, pushing, and the Pages deploy remain the caller's explicit actions (push to main triggers `.github/workflows/site-deploy.yml`). - **Prose is not clobbered.** Site blurbs may be richer than README card captions; `apply` preserves existing blurbs for projects that remain, and only membership (slugs/hrefs) and stats are synced. - **Proof:** audit JSON reports each drift item; after an applied change lands on main, the receipt is a green `site-deploy` run plus a curl read-back of the changed values on https://grahama.co. - **Review URLs:** `review-site` separates deterministic `candidate_fingerprint` integrity from runtime-only `access_nonce` routing. It consumes the section-corpus manifest, copies canonical renders into the review bundle, serves loopback-only by default, and never treats the opaque URL as authentication for private, regulated, or ITAR material. - **Reviewer receipts:** `design-review` keeps transport, inspection, and rater states separate. A preflight can prove URL/fingerprint/unit/canonical-image access, but it never consumes a rater seat. A rater is usable only when raw provider output is preserved and echoes the expected fingerprint, unit ids, and review canary. ## What audit checks | Check | Source | Drift when | |---|---|---| | stats.skills / sanity / agents | README "At a Glance" table | numbers differ from content.json | | project membership | README project-card `<strong>` names + hrefs | slug present in one side only, or href changed | | live site | https://grahama.co, /sitemap.xml | non-200, or homepage missing a nav `data-qid` | | resume surface | `RESUME.md` vs `site/resume.json` | stamped commit != HEAD, or recorded `sourceSha256` != the real RESUME.md digest | | live resume | /resume, /resume.pdf, /resume.md | non-200, or the served file is not the expected page/PDF/Markdown | ## Design maintenance — bespoke visual-world contract (#1337) Design/visual-identity maintenance of grahama.co composes with `best-practices-bespoke-design` and `best-practices-font`. The site's visual world is locked in `site/design-world.yml` (machine source of truth) + `site/DESIGN_WORLD.md` (readable): a narrative premise, three non-color invariants, the full role grammar, and the prohibited structural AI-template residue. A visual redesign may **never** be reported ready from prose confidence. For normal local repair work, run the deterministic render lane: ```bash skills/monitor-website/run.sh design-render-check --json ``` It validates the source contract, source lock, deterministically-checkable prohibitions, type receipt, responsive section-crop geometry, and craft-render receipt. This lane may return `PASS`, but it explicitly **does not prove** formal bespoke-design READY, blind distinctiveness, competitor-swap resistance, accessibility completion, or field performance. Run the formal certification lane only when the current task is a final bespoke-design gate: ```bash skills/monitor-website/run.sh design-certify --json ``` `design-certify` includes the G11 blind-rater receipt and exits nonzero unless every gate is `PASS`. Missing current rater outputs are `NOT_TESTED`, not a site render failure. `design-world-check` remains as a compatibility alias for the formal checker; prefer the two explicit commands above. ## Voice contract (#1298) grahama.co's first-person human voice is locked in `site/VOICE.md` (contract) + `site/voice-anchors.yml` (signature lines). Automated jobs may validate, synchronize factual metadata, and publish approved notes, but may **not** rewrite site prose unless a human-authored source file changed. Report-only, deterministic: ```bash skills/monitor-website/run.sh copy-audit --json ``` It flags first-party `we`/`our`/`us`, AI-startup superlatives, placeholders/lorem, and any signature line that vanished from the copy. Evidence labels stay derived from structured metadata — prose cannot strengthen them.
Auf GitHub ansehen