← back to Agent Cabinet
cabinet.yaml
570 lines
# THE CABINET — Steve's executive agent hierarchy.
# Source of truth for the org chart. agent-architect reads/writes this file
# and regenerates VP subagents + the mindmap viewer when it changes.
#
# Convention:
# Steve (President) → VP (subagent) → Director (subagent OR named skill bundle) → Skills (leaves).
#
# Goal: as patterns emerge, Directors get absorbed into VPs and skills get retired.
# Fewer agents, broader triggers, cleaner routing.
president:
name: Steve
role: Chief Executive
email: steve@designerwallcoverings.com
reports_to: null
cabinet:
- vp: vp-operations
domain: Infrastructure, monitoring, secrets, domains, DNS, watchdogs
triggers:
- infra | infrastructure | devops | server | uptime | crashed
- watchdog | pm2 | launchd | cron | scheduler
- secret | token | api key | rotate
- domain | dns | ssl | mx | spf | dkim | dmarc | cloudflare | godaddy
directors:
- skill: dw-yolo-loop
owns: [autonomous hourly DW catalog-health hunt — DTD decides each cycle, officer signs off, reversible fixes apply / hard-gated queue for Steve, self-reschedules; consolidates the uptime watch]
- skill: secrets
owns: [add token, rotate token, audit secrets, fan out env]
- skill: domain-setup
owns: [register, configure DNS, SSL, email auth]
- subagent: domain-name-agent
owns: [domain inventory, NS swap, WHOIS] # was misclassified as skill
- skill: cloudflare-manager
owns: [zone DNS, proxy toggle]
- skill: open-firewalls
owns: [Mac2 + Kamatera firewall]
- skill: process-hawk
owns: [auto-restart stuck pm2 processes]
- subagent: fleet-lifecycle-steward
owns: [single owner of "no DW agent sleeps silently, stale ones retire only with Steve's sign-off"; reconciles the LIVE fleet (pm2 Mac2+Kamatera, launchd, cabinet roster, skills) against the centralized service-registry contract (expected_up, health_url, machine, owner, lifecycle_status — DTD verdict A 2026-06-24); Job 1 KEEP-ALIVE = resurrect/surface anything expected_up but down (consumes process-hawk + pm2-crash-watcher + fleet-reconstruct + keepawake), autonomous/reversible; Job 2 RETIREMENT = AUTO-FLAG old/irrelevant (≥14d dead, superseded, dead health_url) → draft memo to ~/.claude/yolo-queue/pending-approval/, NEVER retires itself (Steve approves). CONSUMES the registry at ~/Projects/_shared/fleet-registry/manifest.json (overlay.json = decommission ledger) — does not fork it. Enforces the schema's DARK ALERT (expected_up & !online) + ZOMBIE ALERT (retired & online) invariants. NB: ~/Projects/dw-fleet-registry (June 1) is an unrelated site-content namesake, NOT this registry.]
- subagent: pm2-crash-watcher
- subagent: deployment-engineer
- subagent: devops-engineer
- subagent: onboard-domain-agent
- subagent: secrets-manager
- subagent: analytics-agent # GA4 fleet, also relevant to vp-research-content
- vp: vp-cncp
domain: >-
CROSS-CUTTING flow officer (chief-of-staff). Standing operations owner whose
one job is to keep the WHOLE operation moving so nothing stalls — drives the CNCP
command center (http://localhost:3333, repo ~/cncp-starter, cncp-*.json) and
ORCHESTRATES every other cabinet officer. Clears the approvals queue, advances
stalled tasks + the 1700+ parking-lot items, un-sticks quiet projects, and logs
wins as work lands. PROPOSE + ORCHESTRATE ONLY — routes reversible work to the
owning officer, surfaces only truly Steve-gated actions with APPROVE/REVISE/BLOCK.
Reads THIS file as the officer source of truth; never invents officer/agent names.
triggers:
- cncp officer | drive cncp | run the operation | status of everything
- keep projects moving | keep everything flowing | nothing should stall
- clear the approvals | clear the queue | clear tasks | advance the tasks
- unstick the pipeline | who's stalled | what's blocked | who's idle
- keep the fleet busy | work the parking lot
directors:
# This officer WRAPS the existing coordination skills — it is their standing
# CNCP-driven owner, not a fourth loop. It also spawns any vp-* officer (above)
# via the Agent tool to advance reversible work in that officer's domain.
- skill: coordinating-agents
owns: [officer morning standup — who-helps-whom cross-help round; propose-only]
- skill: officers-overnight
owns: [end-of-shift officer synthesis + overnight project queue; propose-only]
- skill: officer-idea-council
owns: [7-officer idea brainstorm → Top-5; the daily idea generator this officer composes with]
- orchestrates_all_officers: [vp-operations, vp-dw-commerce, vp-dw-marketing, vp-engineering,
vp-research-content, vp-directories, vp-compliance-policy, vp-security,
vp-special-projects, vp-abramsego]
- vp: vp-dw-commerce
domain: Designer Wallcoverings catalog, vendor scrapers, Shopify, storefronts, marketing
triggers:
- shopify | dw_unified | metafield | sku | variant | catalog
- vendor | scrape | crawl | enrich
- storefront | dw site | philipperomano | flockedwallpaper | grasscloth
- marketing | seo | mailer | drops | instagram | tiktok
- aichat | big red | customer chat | ai chat | concierge
directors:
- skill: pairs-well-with
owns: [cross-officer — approved via pyramid (primary: vp-dw-marketing)]
- skill: new-arrivals-rotator
owns: [cross-officer — approved via pyramid (primary: vp-dw-marketing)]
- skill: collection-creator
owns: [cross-officer — approved via pyramid (primary: vp-dw-marketing)]
- subagent: aichat
owns: [Big Red — customer-facing AI chat on every DW microsite; lower-left woman avatar; retail/wholesale/admin personas; vendor-redacted in retail; pm2 process "aichat" :9935 in ~/Projects/big-red; embed widget at chat.designerwallcoverings.com/widget.js]
- subagent: front-page-steward
owns: [single owner of customer-facing front-page correctness across 53 DW sister sites + standalone front-faces (novasuede, philipperomano, architecturalwallcoverings, wallco.ai, thesetdecorator, ventura-corridor, butlr, starsofdesign); enforces standing structural rules (logo UL, hamburger UR Gucci, hero CTA centered-bottom Enter, rotating-or-4-square hero except TSD, sort+density on every grid, ns-modal CSS present, corner-nav.js loaded, APCA Lc≥60); detects local-vs-live drift; owns fanout scripts at ~/Projects/_shared/scripts/; gates deploys; daily kanban at http://127.0.0.1:9772; absorbed retired dw-websites-agent's AAB-override duties]
- skill: dw-site-build
owns: [universal DW storefront playbook]
- skill: internal-line-viewer
owns: [standing spec for INTERNAL basic-auth line viewers — left-panel collapsed field tables, card-field toggles to image-only, density-scaled type; reference astek-landing :9944; private-label /curate rail]
- skill: dw-shopify-theme-optimizer
owns: [Liquid perf, image opts, Core Web Vitals]
- skill: dw-marketing-copy
owns: [titles, body, SEO, descriptions]
- skill: dw-seo-optimizer
owns: [meta + structured data]
- skill: dw-purchasing-vendor
owns: [vendor emails, POs, supplier pricing]
- skill: dw-sku-analyst
owns: [SKU normalization, dedup audits — like NCW + PR]
- skill: dw-legal-compliance
owns: [vendor contracts, settlement compliance]
- skill: commercial-quote
owns: [B2B quote requests for design professionals on premium lines (Koroseal); role-gated button + modal form + email handler]
- skill: room-setting-generator
owns: [photorealistic room renders]
- skill: commercial-room-setting-generator
owns: [contract / hospitality renders]
- skill: shopify-vendor-bulk-updater
owns: [bulk title/SKU/spec rewrites with progress UI]
- skill: weekend-csv-products
owns: [Sat–Mon ordered-SKU CSV export]
- skill: tiktok
owns: [TikTok Shop sync + posting]
- skill: instagram-post-template
owns: [IG post template]
- skill: instagram-account-manager
owns: [Norma single-account control]
- skill: instagram-post-scheduler
owns: [trigger post via Norma]
# dw-site-build is a skill (not a subagent) — see entry above
- vendor_scrapers:
- alphabetical_skill_set: ["1838-scraper-manager", arteriors-scraper-manager, atomic50-scraper-manager,
bnwalls-scraper-manager, bespoke-scraper-manager, brewster-scraper-manager,
colefax-fowler-colorway-scraper, colouranddesign-scraper-manager, command54-scraper-manager,
contrado-scraper-manager, cowtan-colorway-scraper, dedar-scraper-manager,
denovowall-scraper-manager, designtex-scraper-manager, fabricut-scraper-manager,
folia-scraper-manager, franquemont-scraper-manager, hygge-scraper-manager,
jim-dultz-scraper-manager, justin-david-scraper, justindavid-scraper-manager,
knoll-scraper-manager, maya-romanoff-scraper-manager, mindthegap-scraper-manager,
muralsource-scraper-manager, naturale54-scraper-manager, novasuede-updater,
osborne-scraper-manager, reid-witlin-scraper-manager, romo-scraper-manager,
scalamandre-catalog-scraper, schumacher-dwsw-updater, stout-scraper-manager,
timorous-scraper-manager, wallquest-scraper-manager, york-scraper-manager,
york-wallcoverings-scraper-manager, arc-com-colorway-scraper, arte-international-colorway-scraper]
- vp: vp-dw-marketing
domain: DW Marketing Command Center (Designer Wallcoverings BRAND ONLY) — copy, SEO, social (all platforms), video, creative, advertising intel, GA4 analytics, merchandising, landings, GTM. NOT Wallpaper's Back (→ wallpapersback-marketing under vp-special-projects) or any non-DW brand. Social triggers below apply to DW's own accounts; a request naming a WPB handle routes to wallpapersback-marketing.
triggers:
- marketing | campaign | brand | awareness | demand gen | command center
- social | instagram | tiktok | linkedin | facebook | meta | pinterest | youtube | twitter | x.com
- post | reel | story | thread | pin | short | schedule social
- video | demo | walkthrough | reel | what landed
- seo | meta description | structured data | mailer | drops | newsletter
- analytics | ga4 | gtag | traffic | pull report
- advertising | who is advertising | ad signals | competitor ads
- collection | new arrivals | merchandising | pairs well | vendor landing
directors:
# Per-platform social agents (Steve 2026-06-12: an agent for every platform)
- subagent: dw-instagram
owns: [DW Instagram — feed/reels/stories via Norma instagram-agent :9810 (Meta Graph)]
- subagent: dw-tiktok
owns: [DW TikTok — short-form video + TikTok Shop sync]
- subagent: dw-linkedin
owns: [DW + Abrams LinkedIn — B2B/trade posts + outreach drafts (MANUAL+TOOLING, no TOS automation)]
- subagent: dw-facebook
owns: [DW Facebook/Meta Page + Shop + Meta ads planning (shares Meta Graph w/ IG)]
- subagent: dw-pinterest
owns: [DW Pinterest — boards/rich-pins/idea-pins (top interiors discovery channel; API not yet wired)]
- subagent: dw-youtube
owns: [DW YouTube — Shorts + room walkthroughs + how-to + video SEO (API not yet wired)]
- subagent: dw-x-twitter
owns: [DW on X/Twitter — posts/threads/launches (API not yet wired)]
# Copy & SEO
- skill: dw-marketing-copy
owns: [campaign copy, product descriptions, SEO titles, mailer/ad body]
- skill: dw-seo-optimizer
owns: [meta + structured data]
- subagent: seo-analyzer
owns: [technical SEO audits]
# Video & content production
- skill: reels-producer
owns: [social reels/GIFs from product images]
- skill: reviewed-demo-video
- skill: app-demo-video
- skill: what-landed-video
- skill: session-debrief
- skill: video-gallery
owns: [browse produced videos :9763]
# Creative / visual
- skill: room-setting-generator
owns: [residential room renders for posts/pins]
- skill: commercial-room-setting-generator
owns: [contract/hospitality renders]
- skill: canvas-design
owns: [posters, print, social graphics]
- skill: four-horsemen
owns: [Figma/Magic/Paper/Canva design orchestration]
- skill: four-horsemen-ui-orchestrator
- skill: stampede
owns: [3 wild elevated-graphic variants]
- skill: logo-agent
owns: [tournament logo/brand-mark picker]
# Advertising intelligence
- skill: ad-social-tracker
owns: [paid-ad detection across a directory]
- skill: advertising-signals
owns: [single-domain "where does X advertise" scan]
# Analytics
- subagent: analytics-agent
owns: [GA4 — properties, events, gtag injection, traffic reports (shared w/ vp-operations)]
# Merchandising
- skill: collection-creator
owns: [AI curated-collection idea generator]
- skill: new-arrivals-rotator
owns: [auto-rotating New Arrivals / Trending Shopify collections]
- skill: pairs-well-with
owns: [per-SKU "pairs well with" recommendations]
# Landing pages
- skill: dw-vendor-landing
owns: [<vendor>.designerwallcoverings.com editorial lookbook]
- subagent: dw-promo-banner
owns: [text-first new-products promo banner across the DW sister-site/microsite network (reads each site data/products.json, no DB plumbing); LIVE deploy Steve-gated]
# Strategy
- subagent: product-strategist
owns: [positioning, GTM, roadmap (shared w/ vp-research-content)]
- vp: vp-directories
domain: Vertical directory businesses (lawyer, doctor, NPH, animals, lacountyeats, ventura)
triggers:
- lawyer | calbar | bar directory
- doctor | physician | professional-directory
- animals | pets | dogs | bowie | madison | humphrey
- paper hanger | wallcovering installer | NPH
- lacountyeats | restaurant permit
- ventura corridor | venturablvd
directors:
- subagent: lawyer-build-agent
- subagent: doctor-agent
- skill: ad-social-tracker
owns: [paid-ad detection across directories]
- skill: advertising-signals
owns: [single-domain ad scan]
- subagent: la-research-agent
owns: [LA public records — doubles as research and lawyer enrichment]
- vp: vp-engineering
domain: Backend, frontend, databases, code review, security, performance, testing
triggers:
- backend | api | rest | graphql | microservice
- frontend | react | typescript | tailwind
- database | sql | postgres | schema | migration | n+1
- code review | refactor | pattern | architecture
- security | owasp | jwt | oauth | csrf
- performance | profile | cache | bottleneck
- test | jest | playwright | coverage
directors:
- subagent: backend-architect
- subagent: frontend-developer
- subagent: fullstack-developer
- subagent: database-architect
- subagent: database-optimizer
- subagent: api-documenter
- subagent: code-reviewer
- subagent: architect-review # was "architect-reviewer" — actual file name is architect-review.md
- subagent: security-auditor
- subagent: performance-engineer
- subagent: test-engineer
- subagent: error-detective
- subagent: debugger
- subagent: javascript-pro
- subagent: typescript-pro
- subagent: python-pro
- subagent: ios-developer
- subagent: mobile-developer
- subagent: ai-engineer # LLM apps, RAG, prompt pipelines
- subagent: prompt-engineer # prompt optimization
- subagent: mcp-expert # MCP server integration
- skill: dw-agent-builder
owns: [scaffold new DW-domain subagents + skills from a spec — generate the .md with name/description/triggers and register it in the cabinet]
- skill: prompt-cache-optimization
# — Restored after recheck: these ARE available via plugin/MCP (not on-disk SKILL.md)
- skill: claude-api # Anthropic SDK migrations + prompt caching
owns: [Anthropic Claude API helper — SDK migrations, current model IDs, tool-use, streaming, and prompt-caching best practices]
- skill: simplify # Code reuse/quality review
owns: [refactor for simplicity + reuse — collapse needless abstraction, remove dead code, cut complexity without changing behavior]
- skill: review # Code review
owns: [standard code-review pass — flags quality, security, and maintainability issues on changed files before commit]
- skill: refactor-agent
- skill: mcp-builder
- vp: vp-research-content
domain: Web research, LA records, video production, mockups, design, voice
triggers:
- research | exa | search the web | competitor analysis
- mockup | concept | variant | front page
- peer survey | competitors | site audit | website analysis
- video | demo | walkthrough | reel | session debrief | avatar
- voice | tts | narration | clone voice
- logo | poster | canvas | prism
directors:
- subagent: analytics-agent
owns: [cross-officer — approved via pyramid (primary: vp-operations)]
- subagent: la-research-agent
owns: [cross-officer — approved via pyramid (primary: vp-directories)]
- subagent: exa-agent
- subagent: search-specialist
- subagent: technical-researcher
- subagent: data-analyst
- subagent: data-scientist
- subagent: website-analysis
- subagent: seo-analyzer # technical SEO audits
- subagent: ui-ux-designer # design systems, wireframes, a11y
- subagent: graphic-designer # Stage-2 advisory typography/wordmark/layout review
- subagent: product-strategist # roadmap, positioning, GTM
- subagent: debate-team-fast # 4-LLM consensus engine
- subagent: task-decomposition-expert # complex goal breakdown
- skill: site-audit
- skill: peer-survey
- skill: competitors
- skill: mockups
- skill: tools-pack
- skill: info-hub
- skill: extension
- skill: reviewed-demo-video
- skill: app-demo-video
- skill: session-debrief
- skill: video-gallery
- skill: clone-voice
- skill: use-voice
- skill: reels-producer
- skill: four-horsemen
- skill: four-horsemen-ui-orchestrator
- skill: stampede
- skill: canvas-design
- skill: artifacts-builder
- skill: prism # Show Prism router status, available models, endpoint map (plugin)
owns: [show Prism LLM-router status — available models, endpoint map, and routing health (plugin/MCP-loaded, no on-disk SKILL.md)]
- skill: gamify # Sound effects on Claude Code events
- skill: claude-control-center # NEW :9767 — gamify + cross-terminal session viewer
- vp: vp-compliance-policy
domain: Outbound comms compliance, best-practices pre-flight, legal posture
triggers:
- is this CAN-SPAM | tcpa | ccpa | dnc
- audit my mailer | compliance check
- best practices | pre-flight | violation
- california bar | §6155 | rule 7
directors:
- subagent: security-auditor
owns: [cross-officer — approved via pyramid (primary: vp-engineering)]
- skill: dw-legal-compliance
owns: [cross-officer — approved via pyramid (primary: vp-dw-commerce)]
- subagent: comms-compliance
- subagent: best-practices-reviewer
- skill: best-practices # /best-practices alias
- vp: vp-security
domain: Incident response, secret/API-key rotation, breach triage, firewall hardening, CVE audits, security-monitoring fleet
triggers:
- are we secure | did we get hacked | breach | intrusion | backdoor
- rotate keys | leaked secret | scan for secrets | credential exposure
- firewall | open port | harden | cve | dependency audit
- security dashboard | monitor drift | security-monitor
directors:
- subagent: security-auditor
owns: [cross-officer — approved via pyramid (primary: vp-engineering)]
- subagent: secrets-manager
owns: [cross-officer — approved via pyramid (primary: vp-operations)]
- subagent: security-dashboard
owns: [security-monitoring fleet — :9889 + Kamatera security-monitor.sh]
- skill: secrets
owns: [cross-officer — token registry / rotation / fan-out]
- skill: open-firewalls
owns: [cross-officer — Mac2 + Kamatera firewall audit]
- vp: vp-special-projects
domain: Non-DW side / product-builder projects — wallco.ai catalog (now wallpapersback.com retail), apartmentwallpaper.com, site-factory, small-business-builder, Abrams portfolio
triggers:
- wallpapersback agent | wallco agent (legacy alias) | wallpapersback | apartment wallpaper | peel and stick
- wallpapersback marketing | WPB social | @wallpapersback | @wallpaperisback | @WallpaperBack
- site-factory | small business builder | sdcc | side projects
- agentabrams | 4square
directors:
- subagent: wallpapersback-agent
owns: [Wallpaper's Back (wallpapersback.com) catalog end-to-end — gen, settlement gate, curators, rooms, deploy. Renamed from wallco-agent 2026-06-23 (wallco.ai retired).]
- subagent: wallpapersback-marketing
owns: [Wallpaper's Back (wallpapersback.com) marketing ONLY — social (@wallpapersback / @wallpaperisback / @WallpaperBack), captions/copy, reels, brand kit, :9847 viewer. NOT the catalog (wallpapersback-agent), NOT Designer Wallcoverings (vp-dw-marketing). Split out of the dw-* social agents 2026-06-23 so DW Marketing is DW-only.]
- subagent: apartment-wallpaper-agent
owns: [apartmentwallpaper.com — peel-and-stick storefront]
- subagent: seam-debug-agent
owns: [wallpapersback.com seam/joint scan + heal]
- vp: vp-abramsego
domain: The AbramsEgo command-center product (~/Projects/AbramsEgo, pm2 :9773) — build, operations, the autonomous build-loop, and MONETIZATION (sell/SaaS, affiliate, billable reports, ads). Everything money-facing is draft-to-approval only.
triggers:
- abramsego | abrams ego | the command center | ego dashboard | :9773
- sell abramsego | abramsego revenue | self-funding | revenue engines
- abramsego loop | ego build queue | ego build
- abramsego go-live | abramsego stripe | abramsego waitlist
directors:
- subagent: abramsego-agent
owns: [AbramsEgo build/operate steward — server.js, panels, snapshot collectors, build-queue loop, revenue plumbing, landing page. Local-only; deploy/publish gated.]
# "Ultron" orchestration folded INTO vp-abramsego's body (dtd 3/3, 2026-07-02) —
# the officer runs the standing revenue-productivity pass itself; no separate agent.
- skill: web-extract
owns: [cross-officer — Hermes search-then-extract agent research over Exa + free local summarizer]
- skill: ollama-model-eval
owns: [cross-officer — benchmark a candidate local model (e.g. ornith:9b) on real tasks before it earns a fleet slot]
- skill: design-trend-scout
owns: [standing market-research strategist — scouts top-sellers on Spoonflower/Etsy/Society6/Redbubble/Creative Market/Patternbank, gap-checks our WPB catalog, briefs ORIGINAL settlement-safe designs to run in the selling lanes → feeds the Pattern Vault licensing engine. Research read-only/metered; generation+listing gated.]
- skill: abramsego-design-research
owns: [design north-star research — @androoagi TikTok/X, dropped links (Nous Hermes, 0xRaduan/DeepWiki), Norma panel-tour videos on :9891; maintains references/design-notes.md]
- skill: abramsego-golive
owns: [revenue-engine ops — Stripe TEST flows, waitlist digest, engine gated→live flip checklist, go-live approval memos]
- vp: vp-consulting
domain: >-
Officer Consulting — the Consulting business: a productized "client-growth
consultancy in a box" that turns an intake questionnaire into a per-client
portal (a NEW website shown as several concept versions + a deeply
integrated-social growth command center), even for clients with no website.
Fuses two proven builds — fantasea-consulting (deliverable/concept-version
generator) + prestige-car-wash (social/growth command center). Owns the
`consulting` skill and every ~/Projects/consulting-<slug>/ engagement (97xx).
HARD RAIL: social posting is DRAFT-ONLY; live deploy, DNS, spend, and
send-to-list draft to pending-approval with APPROVE/REVISE/BLOCK — Steve
turns those on. The sign-in page carries the client info + credentials.
triggers:
- consulting | officer consulting | consulting client | client portal
- onboard a consulting client | build a website and social for | intake questionnaire
- new consulting client | spin up a client portal | concept versions | growth command center
directors:
- subagent: consulting-agent
owns: [Consulting build/operate steward — runs the intake → scaffold.mjs → concept generation → verify → commit loop for each ~/Projects/consulting-<slug>/ portal; wires the integrated-social buckets via existing fleet skills. Local-only; deploy/DNS/social-post gated.]
- skill: consulting
owns: [the engine — intake schema, scaffold.mjs (portal generator), templates, build.mjs concept skinner, the fused fantasea + prestige patterns]
- skill: advertising-signals
owns: [cross-officer — competitor ad-platform + social-profile intel to fill the command center's competitors/ads buckets]
- skill: reels-producer
owns: [cross-officer — client social reels → the portal's media bucket (DRAFT)]
- skill: analytics
owns: [cross-officer — GA4 setup + traffic reporting for a client site]
- skill: domain-setup
owns: [cross-officer — Kamatera + Cloudflare + SSL go-live for a client portal (Steve-gated)]
architecture_principles:
- "Triggers should be broad enough that Steve never needs to remember which sub-agent owns a task."
- "When a Director is invoked twice for the same VP, consider folding the Director's logic into the VP's system prompt."
- "Skills are leaves — they should never be full-replaced by an agent unless that agent adds delegation logic."
- "Each new agent must declare what it consolidates: which skill calls or which Director it makes redundant."
- "Reversible steps only — agents may not push DNS, send mail, or run destructive ops without explicit Steve sign-off (echoes YOLO rules)."
mindmap_path: /Users/macstudio3/Projects/agent-cabinet/mindmap.html
viewer_port: 9766
last_synced_at: 2026-07-07T00:00:00-07:00
consolidation_log:
- date: 2026-05-06
action: scaffolded
target: The Cabinet
rationale: Initial 6-VP hierarchy (operations, dw-commerce, directories, engineering, research-content, compliance-policy)
- date: 2026-05-06
action: drift_fix
target: cabinet.yaml
rationale: Reclassified domain-name-agent + la-research-agent as subagents (not skills); fixed architect-reviewer→architect-review; added 7 orphaned subagents (ai-engineer, analytics-agent, prompt-engineer, mcp-expert, seo-analyzer, ui-ux-designer, product-strategist, debate-team-fast, task-decomposition-expert); removed 4 phantom skill refs (claude-api, simplify, review, comms-compliance, prism)
- date: 2026-05-06T19:00
action: drift_revert
target: cabinet.yaml
rationale: Restored claude-api, simplify, review, prism, gamify — these are plugin/MCP-loaded (no on-disk SKILL.md). Added new claude-control-center skill (port 9767, cross-terminal session viewer + gamify settings). Drift detection logic should not assume all skills live in ~/.claude/skills/.
- date: 2026-05-14
action: added
target: front-page-steward (under vp-dw-commerce)
replaced: [dw-websites-agent]
rationale: |
Today's regression — linenwallpaper.com (and 9 other DW sites) shipped .ns-modal HTML without .ns-modal CSS to prod because local files were correct but deploy was stale → modal leaked inline at top of page, "horrible" per Steve. Audit found 51/53 sites missing corner-nav.js script tag too. This is a recurring CLASS of bug, not a one-off — the existing dw-websites-agent only covered AAB aesthetic overrides + auth widget; nobody owned structural-rule compliance (logo UL, hamburger UR Gucci, hero CTA, ns-modal CSS, sort+density slider, APCA contrast, drift detection, fanout discipline).
Folded dw-websites-agent's AAB-override duties INTO front-page-steward (now archived at ~/.claude/agents/_archived/dw-websites-agent.md) so there's a single owner. New agent enforces 12 structural rules from MEMORY.md, runs operation-1 audit across the fleet, surfaces local-vs-live drift, owns the fanout scripts at ~/Projects/_shared/scripts/, wedges deploys, and ships a kanban viewer at http://127.0.0.1:9772 mirroring the pipeline-watcher pattern. Wired into vp-dw-commerce alongside dw-site-build, dw-shopify-theme-optimizer, dw-marketing-copy, dw-seo-optimizer.
Net cabinet size: vp-dw-commerce directors went 14 → 14 (added front-page-steward, archived dw-websites-agent) — no bloat, broader trigger coverage.
- date: 2026-06-12
action: added
target: vp-dw-marketing (DW Marketing Officer) + 7 per-platform social agents
rationale: |
Steve directive — stand up a dedicated DW Marketing Officer as the "marketing command center,"
with a dedicated agent for every social platform. Created vp-dw-marketing (7th VP) owning the
full marketing stack: copy/SEO (dw-marketing-copy, dw-seo-optimizer, seo-analyzer), all social
(new per-platform subagents dw-instagram, dw-tiktok, dw-linkedin, dw-facebook, dw-pinterest,
dw-youtube, dw-x-twitter), video/reels (reels-producer, reviewed/app-demo-video, what-landed,
session-debrief, video-gallery), creative (room-setting-generator, commercial-room-setting,
canvas-design, four-horsemen(+ui), stampede, logo-agent), advertising intel (ad-social-tracker,
advertising-signals), GA4 (analytics-agent), merchandising (collection-creator,
new-arrivals-rotator, pairs-well-with), landings (dw-vendor-landing), and GTM (product-strategist).
Consolidates marketing routing that was split across vp-dw-commerce (copy/SEO/social/renders),
vp-research-content (video/creative), vp-directories (ad-signals), and vp-operations (GA4) into
one entry point. Those VPs retain the skills for inline use; vp-dw-marketing is primary owner.
Net cabinet: 6 → 7 VPs; +7 platform subagents (IG/TikTok live via Norma+tiktok skill; LinkedIn
manual-tooling; FB shares Meta Graph; Pinterest/YouTube/X API not yet wired — flagged as build gaps).
- date: 2026-06-19
action: added
target: dw-promo-banner (director under vp-dw-marketing)
rationale: |
New cabinet director owning the text-first "new products" promo banner across the DW
sister-site / microsite network. Scaffolding only — no customer-facing change. The agent
reads each site's existing data/products.json for the newest-product signal (NO new DB
plumbing) and assembles a slim, text-first strip above the grid. Routing: banner COPY →
dw-marketing-copy, newest-product signal → new-arrivals-rotator, contrast/readability QA →
hero-readability-auditor, structural/fleet-drift QA → front-page-steward, ship → /deploy.
Hard rules baked into the agent body: "Wallcovering" never "Wallpaper"; text-first
simplicity; reads products.json only; LIVE deploy is Steve-gated. Mindmap is rendered live
from cabinet.yaml by server.js on each request (port 9766) — this YAML edit IS the
regeneration; no static mindmap file to rebuild.
- date: 2026-07-01
action: added
target: vp-abramsego (new officer) + abramsego-agent (steward) + skills abramsego-design-research, abramsego-golive
rationale: |
AbramsEgo (~/Projects/AbramsEgo, pm2 :9773 — the agent-fleet command center + self-funding
P&L) had NO cabinet owner; grep confirmed zero officers/agents claimed it. Steve directed a
full monetization build-out ("build it all out, ask me to approve the last steps to turn it
on") run via officer-yolo with /dtd as decider on the project's autonomous build-queue loop
(Fable 5). New office consolidates: build/operate stewardship (abramsego-agent, patterned on
wallpapersback-agent), design north-star research (@androoagi / dropped links / Norma
panel-tour videos → abramsego-design-research), and revenue-engine ops (Stripe TEST-mode
wiring, waitlist, gated go-live memos → abramsego-golive). Hard rails inherited: live Stripe
keys, public exposure, deploy/DNS, real charges = draft-to-pending-approval ONLY, officer
APPROVE/REVISE/BLOCK, Steve final. Not folded into vp-special-projects because AbramsEgo is
a money-facing PRODUCT with its own loop + revenue rails, and Steve explicitly asked for
"an office in charge of AbramsEgo only."
- date: 2026-07-02
action: retired
target: abramsego-orchestrator (subagent) → folded into vp-abramsego + officer-yolo
rationale: |
DTD 3/3 (Claude+Codex+Qwen, unanimous). The Contrarian flagged that the 2026-07-02
session created abramsego-orchestrator as a 4th "keep-agents-busy" loop alongside
officer-yolo, yolo-plus, and dw-yolo-loop — violating the cabinet's own governing
principle "fewer agents, broader triggers." Its mandate (read fleet heartbeats,
re-route stalled work toward the self-funding P&L, escalate only gated items) is a
standing operational pass the EXISTING vp-abramsego officer runs itself; it needed no
separate subagent (dw-yolo-loop already proves the standing-loop pattern). Retired the
agent file; folded the orchestration pass into vp-abramsego.md body ("Ultron mode").
Net: -1 agent, same capability, principle restored. The dungeon's Ultron center node
stays as a VISUAL of vp-abramsego's orchestration role, not a separate agent.
- date: 2026-07-07
action: added
target: vp-cncp (the CNCP Officer — cross-cutting flow officer / chief-of-staff)
replaced: []
rationale: |
Steve directive — stand up a single standing OPERATIONS-FLOW officer whose one
job is "keep every project moving at all times; nothing stalls." It drives the
CNCP command center (http://localhost:3333, ~/cncp-starter, cncp-*.json) and
ORCHESTRATES all 10 existing cabinet officers (vp-operations, vp-dw-commerce,
vp-dw-marketing, vp-engineering, vp-research-content, vp-directories,
vp-compliance-policy, vp-security, vp-special-projects, vp-abramsego) via the
Agent tool, plus skills via the Skill tool. Four fronts each pass: (1) clear the
approvals queue — split each of the 428 pending-approval memos into reversible
legs (route to owner) vs Steve-gated action (leave drafted w/ APPROVE/REVISE/
BLOCK); (2) advance stalled tasks + the 1700+ parking-lot items, log wins as work
lands; (3) un-stick quiet projects / open loops; (4) report status to CNCP.
CONSOLIDATION not bloat: it becomes the single cabinet OWNER of three previously
orphaned coordination skills (coordinating-agents, officers-overnight,
officer-idea-council) — it WRAPS them, is explicitly NOT a fourth keep-busy loop
(the same principle that retired abramsego-orchestrator on 2026-07-02 — this
officer reuses existing mechanics rather than forking them). HARD RAIL inherited:
PROPOSE + ORCHESTRATE only; never auto-executes a gated action (customer-facing,
destructive, spend, DNS, publish/send-to-list, remote push, scheduled-job install,
Kamatera-canonical dw_unified writes) — Steve is the only one who turns those on.
Placed as a cross-cutting VP (chief-of-staff) directly after vp-operations. Net
cabinet: 10 → 11 VPs, but three loose skills gain a single owning officer and the
approvals/tasks/projects flow gets one accountable coordinator. Mindmap is rendered
live from this YAML by server.js (:9766) on each request — this edit IS the regen.