--- name: "vendor-inventory-stinger" description: "Third-party vendor census after a real JS-executed page load, including GTM-hydrated scripts and content-injection/metadata-manipulation tools like Search Atlas, classified by function." license: AGPL-3.0-or-later compatibility: "Claude Code, Cursor, ChatGPT Codex, Claude Cowork." metadata: hive-tier: stinger hive-drone: vendor-inventory-wasp-drone research-window: 2026-08-18 primary-surface: external-website-audit --- # Vendor Inventory Stinger > **Forge status:** stages 1-6 complete (Topic, Research, Distillation, References, Guides, final > Skill/Drone authorship). Stage 7 (Register: pest-controller-suit registration and cross-harness deploy) > has not run yet. ## Purpose Equips **vendor-inventory-wasp-drone**, wave W1b of every Website Auditor by Legion Code Inc. engagement, to enumerate every third-party script, tag, pixel, and iframe present on the audited landing page after a real headless-browser load, including anything Google Tag Manager hydrates at runtime, and to flag content-injection/metadata-manipulation tooling (Search Atlas's OTTO Pixel and peers) as its own category. Full scope and acceptance criteria: [prd-004-vendor-inventory](../../library/requirements/backlog/prd-004-vendor-inventory/prd-004-vendor-inventory-index.md). Every factual claim this skill makes traces to a downloaded primary source in `references/research/raw/` or to this pair's PRD/the build plan. The archive covers only Google Tag Manager and Search Atlas in real depth, two sources total; everywhere else (the broader vendor lookup table's judgment-call rows, and the Search Atlas detection signature itself, which the vendor's own page never documents) that gap is named explicitly, never smoothed into an unstated guess. See `references/research/distilled-vendor-inventory.md` and `references/vendor-lookup-table.md`. ## When to use this skill - Wave W1b of every audit run, in parallel with `stack-fingerprint-wasp-drone` (wave W1a) - Flagging content-injection/SEO-manipulation tooling before an SEO/AEO audit runs, so `technical-seo-wasp-drone` (prd-008) and `aeo-audit-wasp-drone` (prd-009) know some on-page metadata may not be the client's own hand - Building the vendor list `analytics-stack-wasp-drone` and `web-security-posture-wasp-drone` later interpret ## When not to use - Judging whether a detected vendor is good or bad, or a security/analytics risk, that belongs to `analytics-stack-wasp-drone` and `web-security-posture-wasp-drone` downstream, this Stinger only inventories, per PRD-004's explicit non-goal - Classifying the site's technology stack or render mode, that is `stack-fingerprint-stinger`'s job (its sibling wave, not this one) - Any step that would create state on the target (order placement, form submission, auth bypass, file upload), which defaults OFF and requires explicit per-run opt-in ## Procedure 1. Read `00-intake/` for the target URL and `_shared/target-profile.json` for render-mode context (a CSR/hybrid site's real vendor list only appears after JS execution). If `target-profile.json` does not exist yet, proceed anyway, the two wave-W1 Drones run in parallel by design. 2. Perform a real, read-only, JS-executed headless-browser load and capture the third-party network request log, DOM `