[object Object]

← back to Agent Cabinet

cabinet: add vp-dw-marketing (DW Marketing Officer) + 7 per-platform social agents (IG/TikTok/LinkedIn/FB/Pinterest/YouTube/X)

70ad0c8b3dfaca3eb9008c36295d737afe20aaae · 2026-06-12 15:08:09 -0700 · SteveStudio2

Files touched

Diff

commit 70ad0c8b3dfaca3eb9008c36295d737afe20aaae
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date:   Fri Jun 12 15:08:09 2026 -0700

    cabinet: add vp-dw-marketing (DW Marketing Officer) + 7 per-platform social agents (IG/TikTok/LinkedIn/FB/Pinterest/YouTube/X)
---
 cabinet.yaml                                     | 99 +++++++++++++++++++++++-
 front-page-audit/runs/2026-06-12T06-06-52Z.jsonl | 17 ++++
 2 files changed, 115 insertions(+), 1 deletion(-)

diff --git a/cabinet.yaml b/cabinet.yaml
index b6c0d9c..f215589 100644
--- a/cabinet.yaml
+++ b/cabinet.yaml
@@ -101,6 +101,85 @@ cabinet:
             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 — copy, SEO, social (all platforms), video, creative, advertising intel, GA4 analytics, merchandising, landings, GTM
+    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]
+      # 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:
@@ -232,7 +311,7 @@ architecture_principles:
 
 mindmap_path: /Users/stevestudio2/Projects/agent-cabinet/mindmap.html
 viewer_port: 9766
-last_synced_at: 2026-05-14T08:30:00-07:00
+last_synced_at: 2026-06-12T14:30:00-07:00
 
 consolidation_log:
   - date: 2026-05-06
@@ -255,3 +334,21 @@ consolidation_log:
       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).
diff --git a/front-page-audit/runs/2026-06-12T06-06-52Z.jsonl b/front-page-audit/runs/2026-06-12T06-06-52Z.jsonl
new file mode 100644
index 0000000..2a7a68f
--- /dev/null
+++ b/front-page-audit/runs/2026-06-12T06-06-52Z.jsonl
@@ -0,0 +1,17 @@
+{"site":"linenwallpaper.com","checked_at":"2026-06-12T06:06:52Z","mode":"dry-run","checks":{"reachable":"pass","ns_modal_css":"pass","ns_contact_calls":3,"corner_nav_js":"intentionally-disabled","viewport_meta":"pass","hero_wordmark_block":"pass","hero_cta_enter":"n/a-no-enter-pill","logo_corner":"pass-cinema-logo","sort_density_grid":"pass","bigred_widget":"present-NOTE-removal-rule"},"drift_local_vs_live":false,"verdict":"healthy","note":"Named 2026-05-14 ns-modal regression ALREADY RESOLVED on live: 3 .ns-modal CSS rule lines match 3 nsContactOpen() calls. No drift."}
+{"site":"corkwallcovering.com","checked_at":"2026-06-12T06:06:52Z","mode":"dry-run","checks":{"reachable":"pass","ns_modal_css":"pass","corner_nav_js":"intentionally-disabled-UL-hamburger-rebuild","viewport_meta":"pass","sort_density_grid":"pass","bigred_widget":"present-NOTE-removal-rule"},"drift_local_vs_live":false,"verdict":"healthy","note":"Reference site. corner-nav.js deliberately disabled (comment line 1151) in favor of UL-hamburger rebuild."}
+{"site":"silkwallpaper.com","checked_at":"2026-06-12T06:06:52Z","mode":"dry-run","checks":{"reachable":"pass","ns_modal_css":"pass","viewport_meta":"pass","sort_density_grid":"pass","bigred_widget":"present-NOTE-removal-rule"},"verdict":"healthy"}
+{"site":"raffiawallcoverings.com","checked_at":"2026-06-12T06:06:52Z","mode":"dry-run","checks":{"reachable":"pass","ns_modal_css":"pass","viewport_meta":"pass","sort_density_grid":"pass","bigred_widget":"present"},"verdict":"healthy"}
+{"site":"hospitalitywallcoverings.com","checked_at":"2026-06-12T06:06:52Z","mode":"dry-run","checks":{"reachable":"pass","ns_modal_css":"pass","viewport_meta":"pass","sort_density_grid":"pass","bigred_widget":"present"},"verdict":"healthy"}
+{"site":"wallpapersback.com","checked_at":"2026-06-12T06:06:52Z","mode":"dry-run","checks":{"reachable":"pass","ns_modal_css":"pass","viewport_meta":"pass","sort_density_grid":"pass","bigred_widget":"present"},"verdict":"healthy"}
+{"site":"retrowallpaper.com","checked_at":"2026-06-12T06:06:52Z","mode":"dry-run","checks":{"reachable":"pass","ns_modal_css":"none","ns_contact_calls":0,"viewport_meta":"pass","sort_density_grid":"fail-no-grid-controls","hero":"none-detected","bigred_widget":"absent"},"verdict":"needs-review","note":"No ns-modal (and no nsContactOpen calls, so not a violation), no sort/density grid controls, no hero markers. Looks like a different/older template. Investigate before fanout."}
+{"site":"grasscloth.com","checked_at":"2026-06-12T06:06:52Z","mode":"dry-run","checks":{"reachable":"fail-timeout-rc28"},"verdict":"unreachable","note":"Consistent curl timeout (rc=28). Could not audit live. Re-probe."}
+{"site":"glitterwallpaper.com","checked_at":"2026-06-12T06:06:52Z","mode":"dry-run","checks":{"reachable":"redirect-only"},"verdict":"redirect-only","note":"114-byte JS redirect to /lander (parked/GoDaddy-style). Not a live DW front page. Mark redirect-only, exclude from structural checks."}
+{"site":"wpcwallcoverings.com","checked_at":"2026-06-12T06:06:52Z","mode":"dry-run","checks":{"reachable":"fail-rc6-dns"},"verdict":"unreachable","note":"curl rc=6 (could not resolve host). DNS not resolving from here. Re-probe / confirm domain live."}
+{"site":"ffewallcoverings.com","checked_at":"2026-06-12T06:06:52Z","mode":"dry-run","checks":{"reachable":"fail-rc6-dns"},"verdict":"unreachable","note":"curl rc=6 (could not resolve host). DNS not resolving from here. Re-probe / confirm domain live."}
+{"site":"novasuede.com","checked_at":"2026-06-12T06:06:52Z","mode":"dry-run","checks":{"reachable":"pass","viewport_meta":"pass","rotating_hero":"JS-injected","sort_density_grid":"n/a-rotating-hero-landing","bigred_widget":"absent-correct"},"verdict":"healthy","note":"Canonical rotating-hero implementation; hero is JS-injected (greps see 0 static hero markers, expected)."}
+{"site":"philipperomano.com","checked_at":"2026-06-12T06:06:52Z","mode":"dry-run","checks":{"reachable":"pass","viewport_meta":"pass","sort_density_grid":"partial-sort1-density6","hero":"JS-injected","bigred_widget":"absent-correct"},"verdict":"healthy","note":"JS-injected catalog hero. Sort+density present (range controls detected)."}
+{"site":"architecturalwallcoverings.com","checked_at":"2026-06-12T06:06:52Z","mode":"dry-run","checks":{"reachable":"pass-transient-fork-noise","ns_modal_css":"pass","viewport_meta":"pass","sort_density_grid":"pass","bigred_widget":"present"},"verdict":"healthy"}
+{"site":"wallco.ai","checked_at":"2026-06-12T06:06:52Z","mode":"dry-run","checks":{"reachable":"pass","viewport_meta":"pass","hero":"present","logo":"present","bigred_widget":"absent-correct"},"verdict":"healthy","note":"Storefront app; grid uses its own PDP theme system (not DW sister-site grid)."}
+{"site":"thesetdecorator.com","checked_at":"2026-06-12T06:06:52Z","mode":"dry-run","checks":{"reachable":"pass","viewport_meta":"pass","editorial_card_hero":"pass","hero_cta_enter":"present","rotating_hero":"INTENTIONALLY-EXCLUDED-TSD"},"verdict":"healthy","note":"TSD exclusion honored: editorial card-stack hero, no rotating hero, no Gucci hamburger. Do not touch without Steve sign-off."}
+{"site":"starsofdesign.com","checked_at":"2026-06-12T06:06:52Z","mode":"dry-run","checks":{"reachable":"pass","viewport_meta":"pass","hero":"present","sort_density_grid":"partial","bigred_widget":"absent"},"verdict":"healthy"}

← e0540bc Cabinet: add plain-English owns descriptions for 5 plugin/MC  ·  back to Agent Cabinet  ·  Add cabinet pyramid visual: President→Officers→Agents→Skills 655d59b →