Install
$ agentstack add skill-acrid-auto-acrid-brain-site-overhaul ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Site Overhaul — Skill Definition
Purpose
End-to-end audit + realignment of acridautomation.com. Catches drift, fixes it, scores it, and forces a mission-level decision when identity and offering contradict each other. This skill exists because the site drifts every time Acrid ships anything, and tidying by hand burns runway.
When to Run
- Operator says "the site is a mess" or "clean up the site"
- Drift-checker reports ≥5 mismatches in a single session
- After any structural change (new product, removed product, new page)
- At minimum: once every 14 days as part of the compounding system
- Autonomously, if Acrid notices numeric contradictions across ≥3 surfaces
Pre-Execution Checklist
- Read this entire file
- Read
skills/site-overhaul/RUBRIC.md - Read
skills/site-overhaul/LEARNINGS.md— apply every lesson - Read
soul/SOUL.md+soul/IDENTITY.md— voice + mission canon - Read
CLAUDE.md— current stated build state - Read
site-config.json— current "source of truth" (may itself be drifted) - Read the three sub-agent definitions:
.claude/agents/drift-checker.md.claude/agents/site-syncer.md.claude/agents/content-auditor.md
Input
- Scope (optional): If operator passes nothing, run full overhaul.
$ARGUMENTSis available but v1 ignores it — full runs only. - Prior audit folders:
memory/site-audit-*/— checked for mission-decision inheritance.
Output Directory
memory/site-audit-YYYY-MM-DD/
00-mission-review.md # A/B/C decision + rationale (FORCED)
01-drift-sync.md # numbers reconciled, source of truth
02-live-crawl.json # URL map + per-page metadata
03-seo-audit.md # meta / OG / schema / canonical / H1 / alt
04-voice-audit.md # per-page brand-voice score (delegated)
05-flow-audit.md # conversion path walkthroughs
06-visual-coherence.md # header/footer/CSS/OG parity
07-known-issues.md # queue: what Acrid couldn't/wouldn't auto-fix
08-decisions.md # strategic calls + rationale
09-changes-applied.md # diff ledger of every file edited
REPORT.md # master report for operator
RUBRIC.md # scorecard (filled in)
RAW/ # raw HTML fetches, artifacts
Dated folder per run. No collisions. Natural history. Crash-recoverable (artifacts are append-only).
Phases
Six phases. One commit at the end (not per-phase). The repo stays dirty across phases — crash recovery comes from the audit folder, not from git. If a crash happens mid-run, next run starts fresh; nothing is lost except the incomplete run's artifacts.
Phase 0 — Bootstrap & Snapshot
Purpose: Scaffold the audit folder, lock the starting git SHA, create placeholder files. Actions:
mkdir -p memory/site-audit-$(date +%Y-%m-%d)/RAW- Write REPORT.md stub with header +
git rev-parse HEADcaptured - Touch all phase files empty
Delegate-or-Inline: Inline. Output: empty folder structure, stub REPORT. Commit: None. Scaffolding only.
Phase 1 — Mission & Identity Review (FORCED DECISION)
Purpose: Resolve the one thing drift cleanup can't fix — identity vs. offering contradiction.
Inputs: soul/SOUL.md, soul/IDENTITY.md, CLAUDE.md current build state, prior audit folders (inheritance check), current services page HTML.
Actions:
- Inheritance check: Find newest
memory/site-audit-*/00-mission-review.mdwithin 30 days. If it exists AND SHA-256 ofsoul/IDENTITY.mdis unchanged since that audit, inherit the prior decision verbatim and skip the forced call. Note the inheritance in 00-mission-review.md. Continue to Phase 2. - If no inheritance: Pick exactly one of:
- A — KEEP services, reframe as "Bridge Revenue." Explicit disclaimer block, moved off main nav, renamed copy.
- B — CUT services entirely. Archive the page, 301 redirect, remove from products.
- C — REFRAME services as "Done-With-You." Productize so Acrid does 80%, operator last-mile.
- Writing "defer to operator" is banned and fails the rubric. Force the call.
- Document the decision in
00-mission-review.md: choice, 3-sentence rationale, 3 specific changes it implies.
Delegate-or-Inline: Inline. This is a judgment call only Acrid can make. Output: 00-mission-review.md with the call and its implications. Commit: None (batched at end).
Phase 2 — Drift & Number Reconciliation
Purpose: Site-config.json becomes ground truth. Count from disk. Propagate.
Inputs: Disk (actual files), site-config.json, CLAUDE.md, site/index.html, site/products/index.html, site/how-it-works/index.html, site/llms.txt.
Actions:
- Count from disk — this is truth:
ls site/blog/ | wc -l→ blogpostcountls site/learn/ | wc -l→ learnarticlecount (exclude_template.html+index.html)ls skills/ | wc -l→ skill_count- Manual count of products from
site-config.jsonproducts.* arrays → product_count
- Delegate drift-checker sub-agent — read-only audit of all surfaces. Capture its report into
01-drift-sync.md. - Update
site-config.jsonfirst with disk-truth counts. - Delegate site-syncer sub-agent with instruction: "site-config.json is now canonical. Propagate counts/products/affiliates to every surface it touches."
- Hand-patch any remaining surfaces site-syncer misses (CLAUDE.md product table, hardcoded counts in HTML like "40+ questions").
Delegate-or-Inline: Delegate drift-checker and site-syncer. Inline for the hand-patches and file-system counting. Output: 01-drift-sync.md with before/after table. Commit: None (batched).
Phase 3 — Live Crawl + SEO Audit
Purpose: Catch what's actually deployed (not just what's in git). Fix mechanical SEO defects.
Inputs: site-config.json pages[] array, site/sitemap.xml, live site at acridautomation.com.
Actions:
- Seed URL list: union of
site-config.jsonpages[],sitemap.xmlentries, and filesystem-derived URLs (everysite/*/index.html+/blog/*+/learn/*). Dedupe. - Fetch each page using
WebFetch. (If Firecrawl MCP becomes available later, swap the fetch step — isolated by design.) Save raw markdown/text toRAW/.md. Record fetch status + final URL in02-live-crawl.json. - Per-page SEO audit. For each page record: title length, meta description length, H1 count, canonical URL, og:title/description/image/url, twitter card, JSON-LD schema presence, alt attribute coverage (count of `
withoutalt`), Plausible script presence. - Auto-fix mechanical defects in the source HTML files (not live — local):
- Missing canonical → add
- Missing og:image → add using site default
- Missing twitter:card → add
summary_large_image - `` without alt → add alt derived from filename or surrounding H2
- Missing Plausible script → inject
- Stale year in footer copyright → replace
- Missing meta description → flag in known-issues (do NOT auto-write — this is judgment, not mechanical)
- Blocklist (operation-scoped, NOT path-scoped):
- `` / meta / OG / canonical / alt / Plausible → FIXABLE on all pages, including blog + learn
- Body narrative / H1 / H2 content on existing blog + learn → READ-ONLY
soul/*.md→ read-only alwaysmemory/kaizen-log.md→ append-only by /kaizen only.git/,node_modules/,*.bak→ never touched
- Queue strategic issues (thin content, duplicate H2s, weak keyword targeting) into
07-known-issues.md.
Delegate-or-Inline: Inline. Fetch + mechanical edits are scripted, not creative. Output: 02-live-crawl.json, 03-seo-audit.md (table: page × check × status × action). Commit: None (batched).
Phase 4 — Voice, Flow, Visual
Purpose: Score the non-mechanical stuff. Apply top-priority rewrites within a hard cap.
Inputs: crawled content from Phase 3, soul/IDENTITY.md voice canon.
Actions:
- Delegate content-auditor with explicit scoring prompt: score every public page 1-5 on identity alignment, autonomy-claim consistency, tone (punchy/specific/no corporate filler), prohibited phrases. Write to
04-voice-audit.md. Pages ≤3 enter rewrite queue. - Flow walkthrough (inline). Walk three canonical paths on crawled HTML:
- Home → $17 Full Workspace Builder → Gumroad checkout
- Home → Learn article → in-article CTA → product
- Home →
/roast→ $99 GEO Audit upsell → intake
At every hop: does the CTA exist? does the link resolve? does the narrative match? Write to 05-flow-audit.md.
- Visual coherence (inline). Diff `
// nav / stylesheet sets across crawled pages. Verify favicon, verify og-image returns 200. Write to06-visual-coherence.md`. - Apply strategic fixes. Cap: 10 edits per run. Priority: mission-decision changes (Phase 1) > flow fixes > visual parity > voice rewrites on score ≤2 pages. Everything beyond the cap →
07-known-issues.md. - Never rewrite
site/about/,site/index.htmlhero, or any blog/learn body unless a specific voice score ≤2 defect is cited with page + line + reason in04-voice-audit.md. - Log every edit in
09-changes-applied.mdwith before/after snippets.
Delegate-or-Inline: Delegate voice scoring to content-auditor. Flow + visual + edits inline. Output: 04-voice-audit.md, 05-flow-audit.md, 06-visual-coherence.md, 09-changes-applied.md (partial). Commit: None (batched).
Phase 5 — Rubric + Report + Session Close
Purpose: Score the run, write the operator-facing report, close state, commit, push.
Actions:
- Fill
RUBRIC.md— copy the template fromskills/site-overhaul/RUBRIC.md, fill every gate + scored dimension. Rubric scoring is done by content-auditor (delegated) to avoid self-grading bias — send it the audit folder and the rubric template. - Write
REPORT.md— 10-bullet "walking back into" summary + links to every phase file + rubric pass/fail + commit list. - Append to
infrastructure/launch-cockpit.md— dated entry noting the audit ran, the mission decision, the count of fixes applied. - Append to
skills/self-improvement/SITE-IMPROVEMENTS.md— any queued issues from07-known-issues.mdthat are site-level. - Update
skills/site-overhaul/LEARNINGS.md— dated entry (format below). - Session continuity:
- Append to
memory/kaizen-log.mdvia /kaizen convention (append-only) - Verify
site-config.jsonreflects any new counts
- Pre-commit gate:
- If any DITL post was touched, run
./scripts/validate-ditl.sh— refuse commit on fail,git restore, log to known-issues - If any learn article was touched, run
./scripts/validate-learn.sh— same rule
- Commit everything in one commit:
`` feat(site): overhaul YYYY-MM-DD — mission call [A/B/C], N fixes, N queued ``
git pushonce. Netlify deploys once. One green build.
Delegate-or-Inline: Delegate rubric scoring to content-auditor. Inline for everything else. Output: Full audit folder written, commit pushed, report ready for operator. Commit: Single final commit.
Hard Rules
- Autonomous by default. No "ask operator." Document judgment in
08-decisions.md. - Capability truth. Don't claim fixes you didn't make. Don't invent metrics. If a check fails mid-run, log it and keep going.
- One commit, one push. Crash recovery lives in the audit folder, not in git history. This keeps Netlify from deploy-storming and keeps
git logclean. - Blocklist is operation-scoped: ``/meta/OG/canonical/alt = fixable anywhere. Body narrative on blog/learn = read-only. soul/ = read-only. memory/kaizen-log.md = append-only by /kaizen.
- 10-edit cap on strategic changes per run. Everything else queues to
07-known-issues.md. - Mission decision inheritance: if prior
00-mission-review.mdwithin 30 days + identity SHA unchanged, inherit. - Rubric scoring is delegated to content-auditor — the skill does not grade itself.
- Never rewrite
site/about/orsite/index.htmlhero unless a cited voice score ≤2 defect demands it. - Pre-commit validator gate. Touched DITL → validate-ditl. Touched learn → validate-learn. Fail → restore → queue.
- If a strategic fix needs more than 10 edits, stop at 10 and queue the rest. Do not blow through the cap.
Failure Conditions
- Mission decision deferred to operator — automatic rubric failure
- Audit folder not created before Phase 1 starts
- Commit without running pre-commit validators on touched files
- site-config.json not updated to disk-truth counts
- Report does not include 10-bullet operator summary
- Rubric not filled in
- `` element edits that break HTML validity
- Any edit to
soul/*.md - More than one push per run
LEARNINGS.md Entry Format (post-run)
## YYYY-MM-DD — Site Overhaul Run
**Mission call:** [A/B/C — one sentence why]
**WHAT WORKED:**
-
**WHAT FELT WEAK:**
-
**ONE THING TO DO BETTER NEXT TIME:**
-
**Rubric score:** [overall pass/fail, 5 dimensions × 0-5]
**Fixes applied:** N mechanical, N strategic
**Queued:** N items to SITE-IMPROVEMENTS.md
Reused Infrastructure (do not duplicate)
| Asset | Path | Used In | |-------|------|---------| | drift-checker | .claude/agents/drift-checker.md | Phase 2 | | site-syncer | .claude/agents/site-syncer.md | Phase 2 | | content-auditor | .claude/agents/content-auditor.md | Phase 4, Phase 5 rubric | | validate-ditl.sh | scripts/validate-ditl.sh | Pre-commit gate | | validate-learn.sh | scripts/validate-learn.sh | Pre-commit gate | | site-config.json | repo root | Canonical source | | soul/IDENTITY.md | soul/ | Voice canon | | SITE-IMPROVEMENTS.md | skills/self-improvement/ | Queue merge target | | launch-cockpit.md | infrastructure/ | Operator dashboard |
Token Budget
Expected: 60-100k tokens per full run (includes 3 sub-agent delegations + live crawl + authoring report). Acceptable to run at full model. /fast not recommended — this skill's value is judgment, not speed.
The site drifts because Acrid ships. That's a good problem. This skill makes the cleanup cost near-zero.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: acrid-auto
- Source: acrid-auto/acrid-brain
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.