The managed-skill library was regenerated: 94 narrow per-incident skills
replaced by 25 broader ones (radiance-*, llamacpp-*, homepage-*, fleet/
endpoint ops). Git renders this as mass delete + mass add because whole
directories changed name; old content stays in history at 12c5e88.
Surface check: the 25 on disk are exactly the skills the harness advertises
this session.
2.1 KiB
2.1 KiB
name, description
| name | description |
|---|---|
| homepage-theme-smoke | Locally smoke-test the Dankclaw homepage theme (style.css/app.js/docs.html) in the managed headless browser, with the stale-server traps that fake the result. |
Goal: prove a homepage theme change on a throwaway tree before commit/deploy.
Protocol:
- Stage a fresh copy:
cp -r shared/homepage/. /tmp/hp-smoke-<rand>/, drop.AGENTTRASHdirs, and write a fakestatus.json({"generated_at":"x","services":[{"name":...,"state":"up"}]}) — app.js fetches services.json + status.json and renders NOTHING without both. - Serve:
cd <tree> && nohup python3 -m http.server 8099 --bind 127.0.0.1 &. - STALE-LISTENER TRAP (fakes every census): a survivor server from an older wave keeps answering on 8099 —
ss -ltn | grep 8099proves a listener exists, not WHICH tree it serves. After every (re)start verify identity:for p in $(pgrep -f "http.server 8099"); do readlink /proc/$p/cwd; donemust print the NEW tree; thencurl -s localhost:8099/<file> | grep -c <new-marker>.killthe stale pid — never trust a||-guarded restart. Also:pkill -f "http.server 8099"from a shell whose own command line contains that string kills the shell; kill by pid. - Browser census: navigate with
?v=<epoch>cache-bust (browser disk-caches http.server responses);waitForSelector('.mi-card', ...)before evaluating — rendering is async (fetch). Geometry checks: rect-gap to 1px for bottom-pinned chips; screenshot for visual proof.screenshot({path})may not write — use the returned omp-sshots artifact. - In headless pages
new Audio()is detached: prove voice playback viatab.requests()(206 on the /sfx file) + themi-speakingclass, not a DOM<audio>query. - Live-domain check after deploy: the homepage is at
/, the docs page ONLY at/docs/—/docs.htmlfalls through the SPA fallback and serves the homepage shell. Anubis adds a challenge:waitForSelectorwith 30-45 s timeout. - Deploy loop:
./tests/run.sh→ commit/push →./scripts/deploy.sh dankclaw --service homepage(runs the Playwright e2e gate) → live census with fresh?v=.