{"id":"b56c83db-a0c7-4e7e-89e1-b6481e369c59","entityType":"agent","slug":"clawhub-noxinfluencer-nox-influencer-marketing","name":"Nox Influencer - Creator Discovery & Influencer Marketing","canonicalUrl":"https://www.xpersona.co/agent/clawhub-noxinfluencer-nox-influencer-marketing","canonicalPath":"/agent/clawhub-noxinfluencer-nox-influencer-marketing","generatedAt":"2026-10-10T07:04:31.045Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T14:57:23.965Z","emptyReason":null},"description":"Operate NoxInfluencer creator intelligence and marketing systems through the CLI, including search, analysis, contacts, monitoring, campaigns, CRM, outreach operations, products, affiliation, brand intelligence, exports, account setup, quota, and troubleshooting. Use when a task calls for NoxInfluen","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.4K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s17dv0b21rz9n9zytezm6tm9ed83waks:nox-influencer-marketing","sourceUrl":"https://clawhub.ai/noxinfluencer/nox-influencer-marketing","homepage":"https://clawhub.ai/noxinfluencer/skills/nox-influencer-marketing","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/noxinfluencer/nox-influencer-marketing","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/noxinfluencer/skills/nox-influencer-marketing","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":46,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Nox Influencer - Creator Discovery & Influencer Marketing technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T14:57:23.965Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T14:57:23.965Z","emptyReason":null},"stars":null,"forks":null,"downloads":2439,"packageName":null,"latestVersion":"0.1.18","tractionLabel":"2.4K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T14:57:23.964Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T14:57:23.965Z","lastCrawledAt":"2026-10-09T14:57:23.964Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T14:57:23.964Z","lastVerifiedAt":null,"highlights":[{"version":"0.1.18","createdAt":"2026-09-03T09:45:22.560Z","changelog":"## nox-influencer-marketing 0.1.18 - Removed the skill-card.md file from the repository. - Updated SKILL.md with a more concise, business-oriented description focused on operational boundaries and verified decision-making. - Clarified responsibilities and boundaries for email task operations and campaign task handling. - Enhanced guidance on agent-first execution, feedback/reporting processes, and system self-description. - No functional CLI/API changes; documentation and workflow boundaries improved.","fileCount":9,"zipByteSize":23931},{"version":"0.1.17","createdAt":"2026-08-07T07:30:45.360Z","changelog":"- Removed the file skill-card.md from the skill package. - No changes to user-facing behavior or functionality.","fileCount":9,"zipByteSize":22782},{"version":"0.1.16","createdAt":"2026-07-31T09:53:41.551Z","changelog":"# NoxInfluencer Marketing Skill – Version 0.1.16 Changelog - Updated agent instructions and CLI flows in SKILL.md for greater detail and accuracy, especially around login, file, dispute, and feedback handling. - Improved documentation of new and renamed command groups (file operations, disputes, monitoring, spreadsheet import/export). - Clarified agent-first best practices and device flow login steps for remote and direct terminal scenarios. - Removed deprecated/duplicate file (skill-card.md) for consistency. - Expanded command routing and usage recommendations for creator, monitoring, dispute, and operational commands.","fileCount":9,"zipByteSize":22433},{"version":"0.1.15","createdAt":"2026-07-10T11:20:04.095Z","changelog":"- Removed the file: skill-card.md - No feature or behavior changes; this is a documentation/metadata cleanup release.","fileCount":9,"zipByteSize":19804},{"version":"0.1.14","createdAt":"2026-07-07T18:56:05.916Z","changelog":"- Added support for Shopify affiliation and affiliate operations, extending functionality beyond core marketing ops. - Updated documentation to include \"affiliation\" throughout: both in supported operations and routing commands. - Enhanced quota and pricing sections with new commands for cost planning and usage review (`pricing tools --charged-only`, `quota usage`). - Improved guidance on creator sourcing and lookalike discovery, clarifying cost is per returned creator. - Removed legacy file: skill-card.md.","fileCount":9,"zipByteSize":19678},{"version":"0.1.13","createdAt":"2026-07-01T16:19:01.356Z","changelog":"- Added support for NoxInfluencer \"short-link\" operations throughout documentation and routing instructions. - Updated recommended command tree to include \"short-link\" operations in both descriptions and examples. - Clarified the use of \"short-link\" features alongside other marketing-ops functions. - Removed the sample file skill-card.md.","fileCount":9,"zipByteSize":18595},{"version":"0.1.12","createdAt":"2026-06-12T11:34:38.234Z","changelog":"- Removed the skill-card.md file, simplifying file structure. - Updated environment and install metadata: Removed the API key requirement, now only requires CLI installation. - Clarified description and instructions regarding contact retrieval, differentiating between platform email outreach and contact export. - Reorganized and condensed documentation for easier onboarding and clearer workflow routing. - Enhanced feedback workflow guidance for reporting bugs or feature requests.","fileCount":9,"zipByteSize":18224},{"version":"0.1.11","createdAt":"2026-06-11T14:09:04.230Z","changelog":"- Removed the skill-card.md file. - Updated documentation to add CLI support for product center (product create/update/delete/tags), product-related brand-monitor actions, and email/message attachments. - Expanded examples for advanced creator search filtering (search-filter-options, search-filter) and lookalike creator discovery. - Added CLI browser login and feedback submission references. - Updated required command groups for schema validation to include \"product\". - Improved documentation clarity and coverage of CRM, email, product, and feedback workflows.","fileCount":9,"zipByteSize":21685}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17dv0b21rz9n9zytezm6tm9ed83waks:nox-influencer-marketing","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17dv0b21rz9n9zytezm6tm9ed83waks:nox-influencer-marketing` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/noxinfluencer/nox-influencer-marketing before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-noxinfluencer-nox-influencer-marketing/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-noxinfluencer-nox-influencer-marketing/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-noxinfluencer-nox-influencer-marketing/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-noxinfluencer-nox-influencer-marketing/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-noxinfluencer-nox-influencer-marketing/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-noxinfluencer-nox-influencer-marketing/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T07:04:31.041Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-noxinfluencer-nox-influencer-marketing/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-noxinfluencer-nox-influencer-marketing/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-noxinfluencer-nox-influencer-marketing/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-noxinfluencer-nox-influencer-marketing/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T14:57:23.965Z","emptyReason":null},"readme":"Skill: Nox Influencer - Creator Discovery & Influencer Marketing\n\nOwner: noxinfluencer\n\nSummary: Operate NoxInfluencer creator intelligence and marketing systems through the CLI, including search, analysis, contacts, monitoring, campaigns, CRM, outreach operations, products, affiliation, brand intelligence, exports, account setup, quota, and troubleshooting. Use when a task calls for NoxInfluen\n\nTags: latest:0.1.18\n\nVersion history:\n\nv0.1.18 | 2026-09-03T09:45:22.560Z | user\n\n## nox-influencer-marketing 0.1.18\n\n- Removed the skill-card.md file from the repository.\n- Updated SKILL.md with a more concise, business-oriented description focused on operational boundaries and verified decision-making.\n- Clarified responsibilities and boundaries for email task operations and campaign task handling.\n- Enhanced guidance on agent-first execution, feedback/reporting processes, and system self-description.\n- No functional CLI/API changes; documentation and workflow boundaries improved.\n\nv0.1.17 | 2026-08-07T07:30:45.360Z | user\n\n- Removed the file skill-card.md from the skill package.\n- No changes to user-facing behavior or functionality.\n\nv0.1.16 | 2026-07-31T09:53:41.551Z | user\n\n# NoxInfluencer Marketing Skill – Version 0.1.16 Changelog\n\n- Updated agent instructions and CLI flows in SKILL.md for greater detail and accuracy, especially around login, file, dispute, and feedback handling.\n- Improved documentation of new and renamed command groups (file operations, disputes, monitoring, spreadsheet import/export).\n- Clarified agent-first best practices and device flow login steps for remote and direct terminal scenarios.\n- Removed deprecated/duplicate file (skill-card.md) for consistency.\n- Expanded command routing and usage recommendations for creator, monitoring, dispute, and operational commands.\n\nv0.1.15 | 2026-07-10T11:20:04.095Z | user\n\n- Removed the file: skill-card.md\n- No feature or behavior changes; this is a documentation/metadata cleanup release.\n\nv0.1.14 | 2026-07-07T18:56:05.916Z | user\n\n- Added support for Shopify affiliation and affiliate operations, extending functionality beyond core marketing ops.\n- Updated documentation to include \"affiliation\" throughout: both in supported operations and routing commands.\n- Enhanced quota and pricing sections with new commands for cost planning and usage review (`pricing tools --charged-only`, `quota usage`).\n- Improved guidance on creator sourcing and lookalike discovery, clarifying cost is per returned creator.\n- Removed legacy file: skill-card.md.\n\nv0.1.13 | 2026-07-01T16:19:01.356Z | user\n\n- Added support for NoxInfluencer \"short-link\" operations throughout documentation and routing instructions.\n- Updated recommended command tree to include \"short-link\" operations in both descriptions and examples.\n- Clarified the use of \"short-link\" features alongside other marketing-ops functions.\n- Removed the sample file skill-card.md.\n\nv0.1.12 | 2026-06-12T11:34:38.234Z | user\n\n- Removed the skill-card.md file, simplifying file structure.\n- Updated environment and install metadata: Removed the API key requirement, now only requires CLI installation.\n- Clarified description and instructions regarding contact retrieval, differentiating between platform email outreach and contact export.\n- Reorganized and condensed documentation for easier onboarding and clearer workflow routing.\n- Enhanced feedback workflow guidance for reporting bugs or feature requests.\n\nv0.1.11 | 2026-06-11T14:09:04.230Z | user\n\n- Removed the skill-card.md file.\n- Updated documentation to add CLI support for product center (product create/update/delete/tags), product-related brand-monitor actions, and email/message attachments.\n- Expanded examples for advanced creator search filtering (search-filter-options, search-filter) and lookalike creator discovery.\n- Added CLI browser login and feedback submission references.\n- Updated required command groups for schema validation to include \"product\".\n- Improved documentation clarity and coverage of CRM, email, product, and feedback workflows.\n\nv0.1.10 | 2026-06-04T11:56:15.548Z | user\n\n- Removed the file skill-card.md.\n- Minor documentation and command quick reference updates in SKILL.md.\nNoxInfluencer CLI 0.4.8 Changelog\n\nAdded product command group for product center workflows:\n\nproduct list\nproduct get\nproduct analyze-link\nproduct create\nproduct update\nproduct delete\nproduct tags ...\nAdded email product card management:\n\nemail products list\nemail products replace\nemail products delete\nAdded collection creator workflows:\n\nAdd searched/profile creators directly to collections with collection add-creators\nImport owned creator links into a collection with collection import-file\nAdded CRM label management commands:\n\ncrm labels list\ncrm labels create\ncrm labels update\ncrm labels delete\nImproved email reporting fields:\n\nreply_count\nreplied_creator_count\ninbound_message_count\nImproved command guidance, schema output, dry-run traces, and local mock integration coverage.\n\nv0.1.9 | 2026-05-17T18:03:34.166Z | user\n\n**Skill Changelog**\n\n- Clarified message workflow: when given an email task ID, resolve it through `message list --business_kind email_task --business_id <task_id>` before using `message get`.\n- Updated CRM guidance: valid platform `creator_id` tokens can auto-create NoxInfluencer CRM channels for status or label updates.\n- Clarified CRM limits: owner-only and archive-only updates do not auto-create CRM channels.\n- Added eval coverage for email-task-to-message-thread lookup and CRM batch-update auto-create behavior.\n\nv0.1.8 | 2026-04-29T11:02:40.064Z | user\n\n- route creator email outreach correctly\n- clarify first email outreach workflow.\n- CLI v0.4.2 released\n\nv0.1.7 | 2026-04-29T09:24:40.470Z | user\n\n- Switched CLI installation method from a fixed tarball URL to the official npm package (@noxinfluencer/cli), enabling simpler and more stable updates.\n- Updated setup instructions to use npm install -g @noxinfluencer/cli@latest for easier onboarding.\n- No functional changes to workflow or commands; all key CLI operations and principles remain the same.\n\nv0.1.6 | 2026-04-28T08:47:29.034Z | user\n\n**Expanded marketing-ops and brand monitoring support.**\n\n- Added official support for campaign, collection, CRM, email/message, export, and brand-monitor operations via new CLI command groups (requires CLI v0.4.0-ops.1+).\n- Updated Quick Reference and setup flow for new marketing-ops commands and command-tree checks.\n- New setup: CLI install now uses direct link to NoxInfluencer CLI release; command tree is version-checked to ensure ops features are available.\n- Added 2 new reference docs covering brand monitoring and marketing operations.\n- Skill description, usage guidance, and core principles updated for broader marketing-ops, CRM, and export workflows.\n\nv0.1.5 | 2026-04-15T02:37:02.520Z | user\n\nVersion 0.1.5\n\n- Added new reference to a CLI command: `noxinfluencer monitor history` for retrieving task-level history points.\n- No changes to functionality or behavior; documentation updated to reflect the new command in the quick reference table.\n\nv0.1.4 | 2026-04-09T12:44:08.619Z | user\n\nno file changes detected in this release\n\n- Added explicit environment variable support: skill now requires and checks for a NOXINFLUENCER_API_KEY.\n- Improved setup instructions: prefers secure host-provided API key injection before prompting the user for manual keys.\n- Updated metadata: now lists NOXINFLUENCER_API_KEY as required, marks it as primary, and refreshes homepage URL for CLI setup.\n- Documentation and usage guidance further clarify safe credential handling and preferred input methods for creator analysis.\n\nv0.1.3 | 2026-04-02T04:17:25.885Z | user\n\nVersion 0.1.1 of nox-influencer-marketing\n\n- Updated setup instructions: registration and API key links for both English and Chinese users are now provided explicitly when CLI is missing.\n- API key onboarding steps clarified; users are prompted to send their API key for programmatic configuration.\n- Now supports paginated creator search (\"show more\", \"next page\", \"继续\"), with correct handling for cursor-based pagination and end-of-results messaging.\n- Description expanded to highlight support for creator discovery, due-diligence, contact retrieval, and campaign monitoring across major platforms.\n- Minor metadata and documentation refinements for greater clarity.\n\nv0.1.0 | 2026-03-31T14:42:05.229Z | user\n\nInitial release of the NoxInfluencer marketing skill—enables full creator discovery, evaluation, contact, and monitoring via the NoxInfluencer CLI.\n\n- Supports creator search, detailed analysis, contact info retrieval, and campaign tracking across YouTube, TikTok, and Instagram.\n- Guides users through account setup, quota checks, and error handling, surfacing only actionable next steps.\n- Presents search results as easy-to-read shortlists, with contextual next actions.\n- Summarizes creator analysis with verdicts and supporting evidence—avoids information overload.\n- Does not draft outreach content, send emails, or manage campaign budgets directly.\n\nArchive index:\n\nArchive v0.1.18: 9 files, 23931 bytes\n\nFiles: references/brand-monitor.md (3300b), references/cli-response-format.md (3125b), references/marketing-ops.md (17293b), references/platform-support.md (3203b), references/search-filters.md (4224b), references/verdict-heuristics.md (3619b), skill-card.md (2695b), SKILL.md (18799b), _meta.json (144b)\n\nFile v0.1.18:SKILL.md\n\n---\nname: noxinfluencer\ndescription: Operate NoxInfluencer creator intelligence and marketing systems through the CLI, including search, analysis, contacts, monitoring, campaigns, CRM, outreach operations, products, affiliation, brand intelligence, exports, account setup, quota, and troubleshooting. Use when a task calls for NoxInfluencer data, records, or execution capabilities.\nmetadata: {\"openclaw\":{\"requires\":{\"bins\":[\"noxinfluencer\"]},\"install\":[{\"kind\":\"node\",\"package\":\"@noxinfluencer/cli\",\"bins\":[\"noxinfluencer\"]}],\"homepage\":\"https://www.noxinfluencer.com/skills\"}}\n---\n\n# NoxInfluencer\n\nNoxInfluencer execution skill for creator intelligence and marketing operations across YouTube, TikTok, and Instagram. Turn business intent into valid CLI operations, verified system state, and evidence the wider marketing workflow can use for its next decision.\n\nThe user interacts through natural language. Execute CLI commands yourself and report results in plain language. Never expose raw commands to the user.\n\n## When to Use\n\n- User wants NoxInfluencer creator intelligence, records, or execution capabilities\n- User wants creator search, analysis, contact retrieval, monitoring, exports, campaign, collection, CRM, email/message, product-center, short-link, affiliate, or brand-monitor operations through NoxInfluencer\n- User needs to set up NoxInfluencer access or check quota\n- User hits an auth, quota, or CLI error\n\n## Business Collaboration\n\nContribute NoxInfluencer-backed creator evidence and operations to the user's wider marketing workflow. Begin from the current objective, business decision, and approved operating rule; return results in business language with the verified IDs and system state needed for the next step.\n\nUse the appropriate business-management or writing capability to shape strategy, creator-fit judgment, outreach copy, negotiation positions, creative briefs, and lifecycle decisions. This Skill then supplies the NoxInfluencer data and execution those decisions require. Carry an active manager or Campaign's goals, stage definitions, and decision rights through every operation so both layers reinforce the same business logic.\n\nExternal writes follow the user's approved action or operating rule. Important commercial commitments are presented with their material terms for the user's or qualified reviewer's decision.\n\n## Core Principles\n\n### Agent-First\n\nThe user does not operate the CLI. You do. Run commands silently, tell the user the result. Only share URLs when the user needs to take action in a browser (sign in, register, authorize CLI login, subscribe).\n\n### CLI Self-Description\n\nThe CLI is self-describing — use it instead of memorizing parameters:\n\n- **Parameters**: `noxinfluencer schema <cmd>` (e.g., `schema creator.search`; quoted path form `schema 'creator search'` also works)\n- **Help**: `noxinfluencer <cmd> --help`\n- **Diagnostics**: `noxinfluencer doctor`\n- **Local auth state**: `noxinfluencer auth status` reads persisted or environment-provided credentials without a network call; `noxinfluencer auth logout` clears locally persisted credentials and pending device logins\n- **Cost planning**: `noxinfluencer pricing tools --charged-only` shows current server-side Skill Credit prices; `noxinfluencer quota usage --days 7` reviews recent consumption\n- **Login**: direct terminals can run `noxinfluencer login`; Agents/remote terminals use `login start --json` and `login wait <login_id>` (the CLI returns the user-safe authorization URL and code)\n- **Command-tree check**: `noxinfluencer schema --all` must include `creator`, `monitor`, `campaign`, `collection`, `email`, `message`, `crm`, `product`, `short-link`, `affiliation`, `brand-monitor`, `dispute`, `export`, `file`, `feedback`, `quota`, `pricing`, and `agent`\n- **Exit codes**: `noxinfluencer agent exit-codes`\n- **Preview**: `--dry-run` (shows request without executing)\n- **Language routing**: `--lang zh` switches all URLs to `cn.noxinfluencer.com`\n\n## Routing Cheat Sheet\n\nUse `noxinfluencer schema <cmd>` for exact parameters. Prefer broad command families over memorizing flags:\n\n- Creator sourcing: `creator search`, `creator search-filter*`, `creator not-interested ...`, `creator lookalikes`, `creator export*`, `creator lookalikes-export`\n- Creator reads: `creator profile/audience/content/cooperation`; use `creator contacts` only for visible/exported contacts\n- Monitoring: `monitor list/create/add-task/import-*/tasks/history/summary/report*`; use `monitor auto-track ...` for newly published creator content\n- Operations: `campaign`, `collection`, `crm`, `email`, `message`, `product`, `short-link`, `affiliation`, `export`, `file`\n- Brand monitoring: `brand-monitor ...`\n- Creator dispute due diligence: `dispute records/search/mine/get/report/update/withdraw`\n- Setup, quota, and pricing: `login`, `doctor`, `quota`, `quota usage`, `pricing`, `pricing tools`, `agent exit-codes`\n- Feedback: `feedback submit/inbox/get`\n\nIf the user does not have a `creator_id`, the first creator read may use `--url` or `--platform --channel-id`; afterwards preserve and reuse returned `creator_id`. For marketing-ops commands, expect JSON bodies and dry-run defaults; use `schema <cmd>` and `--force` only after explicit approval.\n\n### User Feedback\n\nIf the user wants to report a bug, confusing behavior, data issue, suggestion, or feature request, offer to submit feedback through `noxinfluencer feedback submit`. Ask for a short confirmation before sending. Attach screenshots or logs with `--file` when available. Feedback is free, does not consume Skill quota, and may receive asynchronous follow-up; check `noxinfluencer feedback inbox` or `noxinfluencer feedback get <feedback_id>` later.\n\n### Creator Disputes\n\nUse `feedback` for product, data, or CLI issues. Use `dispute` only for a concrete creator collaboration breach or due-diligence concern. Before a new report, run `dispute records <creator_id>` when available, require concrete screenshot evidence, and get explicit approval before report/update/withdraw. Private reports hide their description and evidence publicly, but not their type/count. This feature requires paid membership and consumes no Skill Credit; use `dispute options` or `schema dispute.report` for the current fields.\n\n### Email Task Boundary\n\nStandalone `email create` and `email update` operate only type 3 email tasks. Their request bodies must never contain `campaign_id`, and an Agent must not pass `task_type` to turn a standalone task into a Campaign task.\n\nAn intelligent Campaign initializes exactly three fixed source tasks: type 0 for manual-add recipients, type 1 for proactive invitation recipients, and type 2 for creator applications. These types describe recipient sources; type 1 does not authorize guessing a `task_id`. The current CLI cannot discover or write these fixed tasks safely. Do not infer a fixed `task_id`, and do not use standalone email mutations or recipient commands to modify one. Route Campaign recipient changes to the SaaS intelligent Campaign page.\n\n---\n\n## 1. Getting Started\n\nRun `noxinfluencer doctor`, then fix only what is missing:\n\n1. No CLI or stale command tree → ask the user to install `@noxinfluencer/cli@latest`; verify with `schema --all`.\n2. No API key → use Device Flow. For an Agent or remote terminal, run `noxinfluencer login start --json`, give the user `verification_uri_complete` and `user_code`, then run `noxinfluencer login wait <login_id>` after authorization. On a direct terminal, `noxinfluencer login` does this in one command. `login --browser` is only for a local loopback callback. Manual API-key handoff is fallback only; use `auth --key-stdin`, never argv/logs or expose `device_code`.\n3. Configured → run `quota` and report blocking quota or entitlement issues.\n\n### Quota and Billing\n\nRun `quota` yourself and report the snapshot. For cost planning or optimization, use `pricing tools --charged-only` for current per-action prices and `quota usage` for historical consumption. API-backed calls may consume Skill quota and may also depend on SaaS-side capability quota or entitlement. If the response includes `action.url`, pass it to the user.\n\n---\n\n## 2. Discovering Creators\n\nTurn an open-ended search into a usable shortlist.\n\nAsk for only the missing essentials: platform, niche, region, creator size, and whether email signal matters. Search directly once the request is specific enough. Multi-platform sourcing requires separate platform searches.\n\nUse `schema creator.search` for flags. Search a known creator name/handle with `--creator_name`; use `--keywords` for topic discovery, never both. Put user-specified unwanted topics in `exclude_keywords`, and apply the SaaS cooperation, CRM communication, contacted-scope, and collection filters in the same search. Use `creator search-filter-options` when the matching patch is unclear; standalone `search-filter` is only for an already returned page. Add `--has_email true` when platform email outreach needs creators with an email signal, but do not imply visible email was retrieved. For pagination, reuse the prior filters and `data.search_after`; prefer a JSON body.\n\nOnly run `creator not-interested add` when the user explicitly asks to mark that creator as Not interested. Treat it as an approved, reversible mutation; a weak match or noisy result alone is not approval.\n\nCreator search and lookalike discovery charge by returned creator count, not by a fixed page request. Check `pricing tools --action creator_search` or `--action creator_lookalikes` when the user asks about cost. Default to smaller, purposeful pages for exploration; use larger pages only when the user asks for a broad shortlist or bulk follow-up.\n\n### Lookalike Discovery\n\nUse `creator lookalikes` when the user asks for creators similar to a source creator or URL. Treat results as recommendations, use the returned opaque `creator_id` values directly, and save them separately only after the user chooses targets.\n\n### Selected Result Exports\n\nUse `creator export` or `creator lookalikes-export` only after the user selects 1-100 returned `data.items[].id` values. Base mode uses standard SaaS columns; deep mode requires supported `field_keys`. Preserve lookalike `data.export_context` unchanged. Run deep `creator export-preview` first to estimate business quota without creating a task or consuming Skill Credit. Contact fields can consume contact quota. Poll approved export tasks through shared `export` commands.\n\n### Shortlist Presentation\n\nPresent 3–5 comparable candidates first: name, platform, size, performance, geography, tags, and why they match. If results are noisy, ask for one narrowing filter. Preserve `creator_id` for follow-up actions.\n\n---\n\n## 3. Analyzing Creators\n\nHelp the user decide whether a creator is worth pursuing. Lead with a verdict, not a wall of numbers.\n\nPrefer `creator_id` from prior results. Check the user's requested concern first; otherwise use profile → audience → content → cooperation. Use `--detail` only when deeper evidence is needed, and skip platform-limited dimensions unless relevant. Return verdict first, then evidence.\n\n### Verdict Framework\n\nUse one of four conclusions: high-priority, viable with risks, needs manual review, or not a priority. Always surface dispute/negative cooperation signals. See `{baseDir}/references/verdict-heuristics.md` for detailed heuristics.\n\n---\n\n## 4. Retrieving Contacts\n\nRetrieve visible contact info only when the user explicitly wants exported contact details, external outreach, or to use email outside NoxInfluencer.\n\nStrong rule: platform email outreach must not call `creator contacts` unless the user explicitly asks for visible/exported contact info. Put creator search `data.items[].id` or creator read `data.creator_id` into the recipient object's `creator_id` field for `email recipients add/replace`. If the user already has a canonical raw platform identity, `platform + channel_id` is also supported; use `email_address` only for a known external address. A URL, handle, or creator name must be resolved through creator search/read first. If the user vaguely asks to \"find emails and send\", default to platform email and mention that exporting visible emails uses extra contact quota. Email sending may still consume the email service's own quota.\n\nWhen contacts are explicitly needed, run `creator contacts` for the selected creator and return only the visible contact info plus quality signal. If email is missing or low-confidence, say so plainly. Do not add outreach recommendations or restate creator metrics.\n\n---\n\n## 5. Tracking Performance\n\nManage video monitoring projects and tracked content. Operational only — manages monitoring, not performance judgment.\n\nList projects first when unclear. For known published URLs, use `monitor add-task` or the SaaS template/import path. Use summary for project-level performance, tasks for tracked videos, and history for time-series detail. Preserve stable IDs and returned `creator_id` values. Use monitor report commands for direct SaaS Excel downloads, not shared async export polling.\n\nFor ongoing creator monitoring, use `monitor auto-track`. Its Excel import validates every row before creating one rule; if it returns `failed_items`, fix the workbook and retry because no partial rule was created.\n\n---\n\n## 6. Marketing Ops\n\nOperate NoxInfluencer campaign, collection, CRM, email, message, product-center, short-link, affiliation, and export workflows. Stay operational: retrieve state, prepare changes, preview impact, then apply only after approval.\n\n### Workflow\n\n1. Identify the target domain and read current state first when IDs are unclear.\n2. For platform email outreach to creators found in NoxInfluencer, use the standalone email-task path and add recipients with search `data.items[].id` or creator read `data.creator_id` in the recipient `creator_id` field; do not retrieve contacts first. Use `platform + channel_id` only when the user already has that canonical raw platform identity. Standalone `email create/update` is type 3 only and must not include `campaign_id` or `task_type`. Manage intelligent Campaign fixed tasks in SaaS because the current CLI cannot discover or write them safely. Discover bound senders with `email sender list [task_id]`; never ask the user to inspect browser Network for sender IDs. See the CLI schema and `{baseDir}/references/marketing-ops.md`.\n3. Use `message send` or `message schedule` only for existing `thread_id` replies. If no thread exists, offer the email-task path for platform creators. For an explicit whole-conversation archive, use `message archive`; never substitute `crm archive`.\n4. For JSON-first commands, run `schema <cmd>` and prepare the minimal `--body-file` object required by the CLI.\n5. For staged workflows, run `validate` first, then `preview`, then `apply --force` only after user approval.\n6. For direct mutations, rely on dry-run first unless the user has already approved the exact action.\n7. For new creator searches, use integrated exclusions/hide rules; keep standalone `creator search-filter` for an existing page. Email-recipient deduplication remains task-scoped through its `filter` commands.\n8. Use `short-link` for normal Nox short links only; use `affiliation` for Shopify affiliate campaigns, members, tracking links, discount codes, and performance reads.\n9. If Shopify store authorization is missing, send the user to SaaS; do not try to authorize stores inside the Skill.\n10. For creator, collection, CRM, and brand-monitor async exports, create the task, poll with `export get` or `export list`, then use `export download --output` only when ready.\n11. Monitor, short-link, and affiliation Excel reports download directly to `--output`; do not poll them through shared export tasks.\n12. Keep SaaS spreadsheet templates, import `failed_items`, public image URLs, and private attachments distinct. Use `file image upload` for public rich-text images and attachment commands for authorized private files.\n\nDo not draft outreach copy. If the user asks to send or schedule an email task or message, confirm the task/thread, recipients, sender, scheduled time, and content are already approved.\n\nSee `{baseDir}/references/marketing-ops.md` for domain routing, mutation guardrails, and export handling.\n\n---\n\n## 7. Brand Monitoring\n\nUse brand-monitor commands for owned/competitor brand analysis and brand asset exports. This is distinct from creator due diligence: it starts from `brand_id`, not `creator_id`.\n\n### Workflow\n\n1. When `brand_id` is unclear, use `search` for a known brand name, `rank` for category/market discovery, and `list` only for this account's monitored, unlocked, or sample brands; use `get` after selecting an ID.\n2. Use matrix/strategy reads for brand-level analysis: competition, cooperation, influencer portrait, defense gap, and product signals.\n3. Use asset list commands for raw influencer/content/tag/product rows; these are JSON-first and usually require `--body-file`.\n4. Product signal commands currently support YouTube only. Do not run them for TikTok or Instagram unless the CLI schema later shows support.\n5. Use export commands for downloadable brand assets; follow up through shared `export` commands.\n6. Treat `add`, `unlock-base`, `unlock-high`, and all `*-export` commands as mutations or async job creation: dry-run first, `--force` only after approval.\n\nSee `{baseDir}/references/brand-monitor.md` for command routing and platform boundaries.\n\n---\n\n## Error Handling\n\nFor API-backed failures (`quota`, `pricing`, `creator`, `monitor`, `campaign`, `collection`, `email`, `message`, `crm`, `product`, `short-link`, `affiliation`, `brand-monitor`, `dispute`, `export`, `file`, `feedback`), use the CLI response's `action` field when present:\n- `action.url` — where the user should go\n- `action.hint` — what to do\n\nLocal/helper commands (`auth`, `doctor`, `schema`, `env`, `agent exit-codes`) may not include `action`. Read their native output directly instead of assuming the API error envelope.\n\nFor unexpected failures, run `doctor` as a first diagnostic step.\n\n## References\n\n- `{baseDir}/references/cli-response-format.md` — response envelope differences and error action handling\n- `{baseDir}/references/marketing-ops.md` — campaign, spreadsheet, file, email/message, report/export workflows and mutation guardrails\n- `{baseDir}/references/brand-monitor.md` — brand monitor routing, YouTube-only product signals, export boundaries\n- `{baseDir}/references/platform-support.md` — data availability by platform\n- `{baseDir}/references/search-filters.md` — filter selection by user intent\n- `{baseDir}/references/verdict-heuristics.md` — detailed due-diligence rules and output structure\n\nFile v0.1.18:_meta.json\n\n{\n  \"ownerId\": \"kn7dshs4yp3cmjb2ayrf4f69zn82c4wd\",\n  \"slug\": \"nox-influencer-marketing\",\n  \"version\": \"0.1.18\",\n  \"publishedAt\": 1788428722560\n}\n\nFile v0.1.18:references/brand-monitor.md\n\n# Brand Monitor Workflows\n\nUse brand-monitor commands for brand-level market intelligence and asset exports. This workflow starts from `brand_id`; do not substitute `creator_id`.\n\n## Routing\n\n| User intent | Command family |\n|-------------|----------------|\n| Find a known brand by name | `brand-monitor search <keyword>` |\n| Discover brands by category or market | `brand-monitor rank --body-file <path>` |\n| List this account's monitored, unlocked, or sample brands | `brand-monitor list` |\n| Inspect one monitored brand | `brand-monitor get <brand_id>` |\n| Compare brand competition | `brand-monitor competition-matrix <brand_id>` |\n| Analyze cooperation strategy | `brand-monitor cooperate-matrix <brand_id>` |\n| Summarize influencer portrait | `brand-monitor influencer-portrait <brand_id>` |\n| Find defense gaps | `brand-monitor defense-gap <brand_id>` |\n| Read product trend/category signals | `brand-monitor product-pub-trend`, `product-category` |\n| Read product strategy signals | `brand-monitor product-sov-analysis`, `product-tae-analysis`, `product-pp-analysis`, `product-promotion-matrix`, `product-promotion-distinction` |\n| Query brand asset rows | `brand-monitor influencer-list`, `content-list`, `tag-list`, `product-list` |\n| Create brand asset exports | `brand-monitor influencer-export`, `content-export`, `tag-export`, `product-export` |\n| Add or unlock a monitored brand | `brand-monitor add`, `unlock-base`, `unlock-high` |\n\n## Discovery Boundaries\n\n- `search` queries the global brand catalog and returns opaque `brand_id` values; `page_size` defaults to 20 and is capped at 50.\n- `rank` is JSON-first and returns one entitlement-limited result set, not a pageable catalog. Compare `requested_limit`, `effective_limit`, and `returned_count` before describing coverage.\n- `consumer electronic` at category level 1 is a broad 3C category, not an exhaustive smartphone taxonomy.\n- Treat `countries` as ranking query context. Do not infer brand registration country or local market share without separate supporting data.\n\n## Platform Boundaries\n\n- Core brand monitor reads support YouTube, TikTok, and Instagram where the CLI schema permits.\n- Product signal commands currently support `youtube` only. Do not call product signal commands for TikTok or Instagram unless a future schema explicitly shows support.\n- Asset list commands are JSON-first. Use `--body-file` and inspect schema usage notes before building selectors.\n\n## Output Rules\n\n- Brand overview: report brand name, `brand_id`, access/data level, quota state, and obvious blockers.\n- Matrices and strategy reads: summarize top rows and the decision implication; do not dump every normalized field.\n- Asset lists: present comparable rows and include pagination state when present.\n- Product signals: state that the result is YouTube-only if the user asked for cross-platform analysis.\n- Exports: preserve `export_id` and route follow-up status/download through shared `export` commands.\n\n## Mutation Rules\n\n- `add`, `unlock-base`, `unlock-high`, and all `*-export` commands are mutations or async job creation.\n- Dry-run first unless the user already approved the exact brand and action.\n- Use `--force` only after approval.\n- For unlock operations, explain that quota/entitlement may be consumed before executing.\n\nFile v0.1.18:references/cli-response-format.md\n\n# CLI Response Format\n\n## API-backed Commands\n\nThese commands return the standard API envelope:\n\n- `creator ...`\n- `monitor ...`\n- `campaign ...`\n- `collection ...`\n- `email ...`\n- `message ...`\n- `crm ...`\n- `brand-monitor ...`\n- `dispute ...`\n- `export ...`\n- `quota`\n- `pricing`\n\nSuccessful responses include `success`, `data`, `summary`, and `meta`. Some current endpoints may also include a legacy compatibility field named `credits`.\n\nNotes:\n\n- Treat `quota` response data as the canonical Skill quota snapshot\n- `pricing` returns membership plans; `pricing tools` returns current server-side per-action Skill Credit prices\n- `quota usage` returns historical calls, credits, trend, and recent activity for cost analysis\n- Some current API envelopes may still include a legacy `credits` field for compatibility; do not treat it as the primary quota model\n- Mutation commands default to dry-run; `--force` executes the write after user approval\n- Non-GET writes automatically use `Idempotency-Key`; `--idempotency-key` can override it for automation\n- JSON-first commands declare `supports_body_file: true` in schema and require `--body-file`\n- `export download` writes binary data to `--output`, not stdout\n\nError responses include an `action` field with next-step guidance:\n\n```json\n{\n  \"success\": false,\n  \"error_code\": \"INSUFFICIENT_CREDIT\",\n  \"summary\": \"Insufficient credit quota\",\n  \"action\": {\n    \"type\": \"redirect\",\n    \"url\": \"https://www.noxinfluencer.com/skills/usage-billing\",\n    \"hint\": \"Open billing to renew or upgrade your available quota.\"\n  }\n}\n```\n\nThe current server may still use legacy wording like `INSUFFICIENT_CREDIT` or `Insufficient credit quota`. Interpret that as \"Skill quota is exhausted\" for user communication.\n\n## Local Commands (different format)\n\nThese commands have their own response structures — do not assume the API envelope:\n\n| Command | Response format |\n|---------|----------------|\n| `doctor` | `{ \"checks\": [...], \"ok\": boolean }` |\n| `auth` | `{ \"success\": boolean, \"message\": string }` |\n| `env` | `{ \"success\": true, \"data\": { \"environment\": string, \"server_url\": string } }` |\n| `schema` | Command schema JSON (no envelope) |\n| `agent exit-codes` | Stable CLI exit-code catalog |\n\n## Agent Diagnostics\n\n- Use `--trace-json` when a harness or eval needs structured request traces on stderr.\n- Use `schema --all` to verify the installed CLI exposes the expected modern command tree, including `campaign`, `collection`, `email`, `message`, `crm`, `product`, `short-link`, `affiliation`, `brand-monitor`, `dispute`, `export`, `feedback`, `quota`, `pricing`, and `agent`. Version output alone is not sufficient when a local/global install has stale compiled files. If reinstalling `@noxinfluencer/cli@latest` still lacks the expected command groups, stop the affected workflow and report a CLI package / command-tree mismatch.\n- Use `noxinfluencer agent exit-codes` to distinguish retryable failures such as rate limits or temporary upstream failures from invalid requests and auth problems.\n- Use `doctor` as the first diagnostic step when the failure cause is unclear.\n\nFile v0.1.18:references/marketing-ops.md\n\n# Marketing Ops Workflows\n\nUse this reference for NoxInfluencer campaign, collection, CRM, email, message, product, short-link, affiliation, creator dispute, file, report, and export operations. Keep command parameters runtime-discovered with `noxinfluencer schema <cmd>`.\n\n## Domain Routing\n\n| User intent | Start with |\n|-------------|------------|\n| Find or inspect campaigns | `campaign list`, `campaign get`, `campaign dashboard`, `campaign dropdown` |\n| Create or change campaign skeleton data | `campaign init`, `campaign create`, `campaign update`, `campaign delete` |\n| Find or inspect collections | `collection list`, `collection get`, `collection items`, `collection resources` |\n| Add creators from search/profile results to collections | `collection add-creators` |\n| Import owned creator links into one collection | `collection import-template`, then `collection import-file` |\n| Find creators similar to a source creator | `creator lookalikes` |\n| Export selected creator search/lookalike results | deep `creator export-preview`, then `creator export` / `creator lookalikes-export` |\n| Batch move/copy/delete/label collection members | `collection batch-* validate`, then `preview`, then `apply` |\n| Refresh collection base/email data or unlock audience | `collection refresh* validate`, then `preview`, then `apply` |\n| Add one whole collection and platform slice to CRM | `collection add-to-crm validate`, then `preview`, then `apply` |\n| Query, import, or update NoxInfluencer CRM channels | `crm list/get/update`, `crm import-template/import-file/import-report`, `crm groups ...` |\n| Manage CRM labels for batch tagging | `crm labels list/create/update/delete` |\n| Manage product-center records, images, and tags | `product list/get/create/update/delete`, `product image upload`, `product tags ...` |\n| Manage Shopify affiliate campaigns and members | `affiliation stores list`, then `affiliation campaigns ...` / `affiliation members ...`; use member template/import and campaign export for files |\n| Send standalone platform email outreach to creators | `email create`, then `email recipients add/replace` with search `data.items[].id` or creator read `data.creator_id` in the recipient `creator_id` field, `email content save`, `email sender list [task_id]` before optional `email sender update`, optional `email attachments ...`, then `email send` or `email schedule` |\n| Add recipients to an intelligent Campaign fixed task | Use the SaaS intelligent Campaign page; the current CLI cannot discover or write fixed tasks safely |\n| Manage email tasks | `email list`, `email drafts`, `email get`, `email create`, `email update`, `email recipients ...`, `email content ...`, `email sender ...`, `email report`, `email team-summary`, `email team-breakdown` |\n| Import email recipients | `email recipients import-template`, then `email recipients import-file` |\n| Manage email recipient deduplication | `email recipients filter options`, then `email recipients filter get/update/tasks` |\n| Manage email task collaborators | `email collaborators list`, then `replace/add/remove` |\n| Manage email task attachments | `email attachments list/upload/download/delete` |\n| Send or schedule an existing email task | `email send`, `email schedule`, `email cancel` |\n| Manage message threads and files | `message list/get/projects/archive`, `message draft ...`, `message attachments ...`, `message templates attachments ...` |\n| Upload a public rich-text image | `file image upload`, then embed returned `file_url` in approved `html_body` |\n| Download direct Excel reports | `monitor report*`, `short-link export-*`, `affiliation campaigns export` |\n| Send or schedule an existing message reply | `message send`, `message schedule`, `message cancel` |\n| Submit product feedback or a bug report | `feedback submit`, then `feedback inbox` / `feedback get` |\n| Check or report a concrete creator collaboration dispute | `dispute records <creator_id>` first, then `dispute report` only with evidence and approval |\n| Inspect or download shared async exports | `export list`, `export get`, `export download` for creator, collection, CRM, and brand-monitor tasks |\n\n## Outreach Routing\n\n- Standalone NoxInfluencer platform email outreach uses type 3 tasks only. Do not call `creator contacts` first. Create or select a standalone email task without `campaign_id` or `task_type`, then add recipients with search `data.items[].id` or creator read `data.creator_id` in the recipient `creator_id` field. If the user already has a canonical raw platform identity, use `platform + channel_id`; use `email_address` only for a known external address. URL, handle, and creator name are not direct recipient identifiers and must be resolved first. Save user-approved content with `email content save`, set the sender if needed, read back the task and recipients, then ask for final approval before `email send --force` or `email schedule --force`.\n- An intelligent Campaign initializes exactly three fixed tasks by recipient source: type 0 manual-add, type 1 proactive invitation, and type 2 creator application. Type 1 is a source responsibility, not permission to infer a fixed task ID. The current CLI cannot discover or write these fixed tasks safely, so use the SaaS intelligent Campaign page. Never guess a fixed `task_id`, pass `task_type`, inject `campaign_id` into a standalone mutation, or use standalone recipient commands against a fixed task.\n- Use `creator contacts` only when the user explicitly wants visible/exported contact info or outreach outside NoxInfluencer. If the user vaguely asks to \"find emails and send\", choose platform email by default and say exported email retrieval uses extra contact quota.\n- Email attachments belong to the email task primary project. Upload approved files with `email attachments upload <task_id> --file <path>` before send or schedule; use `email attachments list/download/delete` to inspect, retrieve, or remove files. Email tasks support at most 1 attachment, max 10MB. Uploading or deleting an attachment cancels an existing scheduled send, so read back the task and confirm again before scheduling.\n- If approved recipients come from Excel, download `email recipients import-template` and use `email recipients import-file <task_id>`. Do not invent spreadsheet columns.\n- Email recipient import is only available before the task enters its active send flow.\n- For one email task's reply reporting, use `email report <task_id>`. For multi-task or team-level reporting, use `email team-summary`; for SaaS team member breakdown, use `email team-breakdown`. Treat `reply_count` as email tracking replies, `replied_creator_count` as replied creators, and `inbound_message_count` as inbound reply messages. Team filters use SaaS team member `uid`, not Gmail or enterprise sender mailbox accounts. Do not recompute replies by manually scanning message threads unless the user explicitly asks for raw thread inspection.\n- If the user wants in-platform DM/message, `message send` and `message schedule` require an existing `thread_id`. If the user only has an email task ID, use `message list --business_kind email_task --business_id <task_id>` to resolve the thread first. Without a thread, say that starting a new message thread is not exposed by the CLI and offer the email-task path for platform creators.\n- For message-center filtering by task creator or team member, first run `message creator-filters`, then use returned `user_uid` values with `message list --creator_uids` or `message project-filters --creator_uids`.\n- For message-center pending work, trust `needs_reply` / `last_message_direction`; `deal` is not the same as `unread`. If one opened task is already replied but SaaS still shows pending, inspect siblings with `message projects <thread_id>`. Use `message archive` only when the user explicitly wants the creator's entire conversation archived; it includes sibling task threads and is separate from `crm archive`. If only one task needs no reply, do not send an empty reply or archive the conversation; task-level mark-handled is not exposed yet.\n- Message draft/history attachments and message-template attachments are separate. Use `message attachments list/upload/download/delete` for thread files and `message templates attachments list/upload/download/delete` for reusable template files. Never reuse IDs across the two paths. One template supports at most 2 private attachments, max 10MB each.\n- Use `file image upload` for public inline images in approved email/message `html_body`. The returned `file_url` is public and is not a private email, message, or template attachment.\n- `crm add-to-email` is only for adding existing NoxInfluencer CRM channels to an existing email task. Do not treat CRM as required when the user already has creator IDs or explicit email addresses.\n\n## Affiliate Marketing\n\n- Use `affiliation` for Shopify affiliate stores, campaigns, members, tracking links, discount codes, and performance reads. This is separate from normal `short-link`.\n- Start with `affiliation stores list`. If no store is authorized or access is denied, ask the user to authorize/manage the store in SaaS; do not attempt store authorization in the Skill.\n- Add NoxInfluencer creators to affiliate campaigns with search/profile `creator_id`, or use `platform + channel_id` / `custom_id` when the CLI schema calls for it.\n- For owned creator links, download `affiliation members import-template` and submit `.xls` or `.xlsx` with `affiliation members import-file <campaign_id>`; max file size is 10MB.\n- Executing affiliation member import writes members immediately and reads back the pending-member count; it is not validation-only.\n- `affiliation campaigns export` downloads campaign-performance Excel directly to `--output`; it is not a shared async export task.\n\n## Deduplication and Collaborators\n\n- For a new creator search, apply `exclude_keywords` and the selected `search-filter-options` patch in the search itself. Use standalone `creator search-filter` only for an existing page. Mark or unmark a creator as Not interested only with explicit approval through `creator not-interested add/remove`.\n- Email recipient deduplication is task-scoped: use `email recipients filter options` to find SaaS-aligned choices, `email recipients filter get <task_id>` to inspect saved state/counts, and `email recipients filter update <task_id> --body-file` to change it.\n- Email collaborators use SaaS team `user_uid`. If the user does not know the ID, run `email collaborators list` without `task_id` first; with a `task_id`, it reads that task's current collaborator permissions. Use `add` or `remove` for incremental changes; use `replace` only when the user intends to reset the whole collaborator set.\n\n## CRM Update Semantics\n\n- `crm update` / `crm batch-update` may auto-create a NoxInfluencer CRM channel for valid platform `creator_id` tokens when updating cooperation status or labels. For label-only updates, the service uses the default cooperation status before applying labels.\n- Use `crm labels create` when the user needs a new CRM tag ID. Use the returned `label_id` in `crm batch-update` with `labels.operation=add` or `remove`.\n- Owner-only or archive-only updates do not auto-create CRM channels. Treat missing-channel failures as real failures, not successful skips.\n- For batch previews and applies, report `existing_count`, `will_create_count`, and `created_count` when present; do not infer success only from requested IDs.\n\n## Collection Add and Import\n\n- Use `creator lookalikes` when the user asks for similar creators based on a source creator or URL. It is read-only and requires `target_platform`; save returned creator IDs with `collection add-creators` only after the user chooses targets.\n- Use `collection add-creators` when the user wants to save creators returned by `creator search` or creator read commands into one or more collections. The JSON body uses `collection_ids`, `platform`, and `creator_ids`. Use `channel_ids` only when the user already has raw same-platform channel IDs. It is an add-only path, not forced collection-to-collection copy.\n- Download `collection import-template` before using `collection import-file <collection_id> --file <path>` for the user's owned creator links. The spreadsheet's first column should be the YouTube, Instagram, or TikTok creator URL; an optional second column may contain email/contact data. This import is accepted asynchronously, so poll `collection items <collection_id>` by platform to confirm resolved rows.\n- Do not confuse these paths with collection copy/move. `add-creators` adds explicit creators to target collections; `import-file` imports owned creator URLs into one collection.\n\n## Spreadsheet Imports and Reports\n\n- Always download the current SaaS `import-template` when the command family provides one. Do not infer columns from old files.\n- Monitor task imports accept `.xls`/`.xlsx` up to 10MB, parse up to 1,000 rows, and save at most 500 valid rows per request. Preserve validation- and save-stage `failed_items`; use `monitor import-report` for a direct failure workbook.\n- Monitor auto-track imports accept up to 50 creator homepage links and are all-or-nothing. If any row fails, no rule is created; fix `data.failed_items` and retry the complete workbook.\n- CRM imports accept `.xls`/`.xlsx` up to 10MB and 500 rows. Executing the check writes valid nonduplicate rows. Use `--overwrite-existing` only after approval; upstream reports repeated-row overwrite as submitted without row-level results. Preserve `failed_items` and `repeated_items` for `crm import-report` workbooks.\n- Email recipient imports accept `.xls`/`.xlsx` up to 8MB, target one existing `task_id`, and are available only before its active send flow.\n- Affiliation member imports accept `.xls`/`.xlsx` up to 10MB and target one existing affiliate `campaign_id`.\n- `monitor import-report`, monitor reports, short-link reports, affiliation campaign reports, and CRM import reports write Excel directly to `--output`. They do not return an `export_id`.\n\n## File Roles\n\n- Public rich-text images: `file image upload` returns `file_url` for approved `html_body`.\n- Public product images: `product image upload` returns `file_url` for `thumbnail_url`; `campaign product-images upload` returns URLs for up to 5 entries in one product's `thumbnail_urls`.\n- Private files: email, message draft/history, message-template, and owned feedback attachments require their domain-specific authorized download commands.\n- Downloads use `--output`; add `--overwrite` only when replacing an existing local file is intentional.\n\n## Mutation Rules\n\n- Write commands default to dry-run. Treat dry-run output as a preview, not completion.\n- Use `--force` only after the user has approved the exact object and action.\n- Feedback submission is also a write command, but it is free and does not consume Skill quota. Use it for product bugs, confusing behavior, data issues, suggestions, or feature requests. Attach screenshots/logs with `--file` when useful, and check `feedback inbox` for asynchronous follow-up.\n- Creator disputes are separate from product feedback: they require paid membership, consume no Skill Credit, and require concrete evidence. Check existing `dispute records` before an approved `dispute report`; use `dispute options` for current type/status values.\n- For staged workflows, always run `validate` before `preview`, and `preview` before `apply --force`.\n- For `send` and `schedule`, confirm the task/thread, recipient scope, sender identity, scheduled time when relevant, and content approval before execution.\n- Do not draft outreach or negotiation copy. If content is missing, ask the user for approved content or hand off to a writing task without invoking NoxInfluencer write commands.\n- Do not operate external CRM, email, messaging, or spreadsheet platforms. These commands only affect NoxInfluencer-owned objects.\n\n## JSON-First Commands\n\nMany marketing-ops commands intentionally keep complex selectors in JSON bodies. When a schema requires `--body-file`:\n\n1. Run `noxinfluencer schema <cmd>` to inspect required fields and usage notes.\n2. Prepare the minimal JSON body needed for the user's request.\n3. Prefer the CLI's validate/preview stages when available.\n4. Preserve stable opaque IDs from legitimate CLI responses (`campaign_id`, `collection_id`, `creator_id`, `thread_id`, `task_id`, `export_id`) for follow-up calls within the same supported workflow. This does not permit injecting a Campaign ID into a standalone mutation or treating a returned type value as a fixed task ID.\n\n## Export Handling\n\n- Shared export creation for creator, collection, CRM, and brand-monitor domains is async and returns `export_id`. Poll with `export get/list`, then use `export download <export_id> --output <path>` only when ready.\n- Creator exports use 1-100 selected result `data.items[].id` values. Deep mode requires `field_keys`; preserve lookalike `data.export_context`; preview deep business quota before creation. Contact fields can consume contact quota.\n- Monitor, short-link, affiliation, and import-report workbooks are direct downloads, not shared export tasks. Report the local output path and file metadata after completion.\n\nFile v0.1.18:references/platform-support.md\n\n# Platform Support\n\nNoxInfluencer skills support three platforms. Each has some data availability differences.\n\n## Supported Platforms\n\n| Platform | `--platform` value | Creator ID prefix byte |\n|----------|-------------------|----------------------|\n| YouTube | `youtube` | `0x01` |\n| TikTok | `tiktok` | `0x02` |\n| Instagram | `instagram` | `0x03` |\n\n## Data Availability by Platform\n\n| Data Dimension | YouTube | TikTok | Instagram |\n|----------------|---------|--------|-----------|\n| Search | Full | Full | Full |\n| Profile overview | Full | Full | Full |\n| NoxScore | Full | Full | Full |\n| Audience demographics | Full | Full | Partial |\n| Audience authenticity | Full | Full | Limited |\n| Content tags | Full | Full | Full |\n| Recent content | Full | Full | Full (posts, reels, pics) |\n| Cooperation detail | Full | Partial | Partial |\n| Brand partnerships | Full | Partial | Limited |\n| Pricing data | Full | Partial | Limited |\n| Contact/email | Available | Available | Available |\n| Video monitoring | Full | Full | Full |\n| Brand monitor product signals | YouTube only | Not supported | Not supported |\n\n## Content Type Splits\n\nDifferent platforms have different content types that affect performance metrics:\n\n- **YouTube**: `normal` (long-form) vs. `shorts`\n- **TikTok**: All content treated as short-form\n- **Instagram**: `posts`, `reels`, `pics` — metrics may be split by type\n\n## Platform-Specific Notes\n\n- **Null fields**: Some fields may return `null` on certain platforms. This is expected behavior, not a data error. Skills should explain that the value may be unavailable for that platform rather than treating it as a failure.\n- **Creator identity fields**: All creator read responses include `creator_id`, `creator_name`, `channel_handle`, `channel_url`, and `social_media`. `channel_url` and `social_media` are enhancement data and may still be empty on some creators or platforms.\n- **Audience data**: Instagram audience data may be less granular than YouTube or TikTok.\n- **Cooperation data**: Pricing and communication metrics are most complete on YouTube. TikTok and Instagram may have partial or no pricing data.\n- **Creator IDs**: Creator search returns the encrypted token as `data.items[].id`; creator read responses return it as `data.creator_id`. Both are stable opaque identifiers generated from the platform and platform-side channel ID, not database record IDs. The same creator always produces the same token. Reuse it directly without decryption or reconstruction.\n- **Direct selectors**: The first creator read call may use `--url` or `--platform --channel-id`. Once a response returns `data.creator_id`, switch to that token for follow-up calls.\n- **Monitor task identity**: `monitor add-task` and `monitor tasks` may also expose `creator_id`, `creator_name`, `channel_handle`, and `channel_url`. Treat these as best-effort task metadata; nullable fields are not a hard failure.\n- **Brand monitor product signals**: Product publication, category, SOV, TAE, PP, promotion matrix, and promotion distinction commands currently support YouTube only. For TikTok or Instagram brand questions, use non-product brand monitor reads or asset lists when schema permits.\n\nFile v0.1.18:references/search-filters.md\n\n# Search Filter Semantics\n\nFor the full parameter list and syntax, run `noxinfluencer schema creator.search`. The single-argument command-path form `noxinfluencer schema 'creator search'` is equivalent.\n\nThis reference covers **when to use which filters** — the decision logic, not the syntax.\n\nFor a new search, apply topic exclusions and SaaS hide/deduplication directly through `creator search`. Use standalone `creator search-filter` only when a page has already been returned.\n\n## Filter Priority by User Intent\n\n| User intent | Key filters to apply | Why |\n|-------------|---------------------|-----|\n| Known creator name or handle | `--creator_name`, `--platform` | Match creator identity instead of treating the name as a topic keyword |\n| Niche sourcing | `--keywords`, `--platform` | Narrow to relevant content creators |\n| Every topic must match | `--keywords`, `--keyword_match all` | Require all supplied topic keywords instead of the default any-keyword union |\n| Regional targeting | `--country`, `--follower_countries` | Match campaign geography |\n| Budget-constrained | `--follower_min`, `--follower_max` | Size correlates with cost |\n| Platform email outreach | `--has_email true` | Only creators with known email signal; platform email can add search `data.items[].id` values as recipient `creator_id` without retrieving visible email |\n| Audience fit | `--follower_ages`, `--follower_female_pct_min`, `--follower_language` | Match audience demographics |\n| Active creators | `--published_within_days` | Exclude dormant channels |\n| Performance floor | `--engagement_rate_min`, `--avg_view_min` | Filter out low-engagement creators |\n\n## Search Result Fields\n\nEach result item includes: `id` (encrypted token), `nickname`, `tags`, `followers`, `country`, `total_videos`, `view_per_followers`, `engagement_rate`, `avg_views`, `language`.\n\n`creator_name` and `keywords` are mutually exclusive. Name search uses the same result pricing and pagination as topic search.\n\nSearch responses also include page metadata under `data`: `page_num`, `page_size`, `total_page`, `total_size`, and `search_after`.\n\nThe `id` is an encrypted token — use it directly as the positional `<creator_id>` argument in subsequent commands. Do not try to decode it.\n\n## Page Size and Cost\n\n- `creator search` and `creator lookalikes` share returned-result pricing; use `pricing tools --action creator_search` or `--action creator_lookalikes` for the current server-side unit price.\n- The default page size is 20 and the maximum page size is 100.\n- Charge impact follows the number of returned items, not the requested `page_size`. Prefer targeted pages while refining filters; use larger pages only when the user asks for broad sourcing or bulk follow-up.\n\n## Search Result Deduplication\n\n- Use `exclude_keywords` for unwanted topic/tag matches; do not emulate exclusions by dropping rows after billing.\n- Run `creator search-filter-options` to inspect SaaS hide choices. Apply its `search_body_patch` in the same `creator search` request whenever possible.\n- Use its standalone `body_patch` with `creator search-filter` only for already returned `data.items[].id` values.\n- Use `creator not-interested add` only after explicit approval to mark selected creators as Not interested. `list` audits those marks, and `remove` cancels them so the creators can appear in future searches again.\n\n## Pagination Rules\n\n- For a next-page request, keep the previous search filters exactly the same and send both the next `page_num` and the previous response's `data.search_after`.\n- Prefer `--body-file -` for next-page requests and pass one JSON body containing the preserved filters, `page_num`, `page_size`, and `search_after`. This avoids shell globbing/quoting problems with cursor arrays.\n- If using flags instead of `--body-file`, shell-quote every bracketed array argument, especially `--search_after`, for example `--search_after '[163.97083,\"UCQ-P8lGwkr0Tj4phQB9diDw\"]'`.\n- Current CLI and server validation require `page_num > 1` when `search_after` is present, so do not try cursor-only paging.\n- If `data.search_after` is missing or empty, or the current page is already the last page, tell the user there are no more results.\n\nFile v0.1.18:references/verdict-heuristics.md\n\n# Verdict Heuristics Reference\n\nDetailed heuristic rules and output structure for creator due-diligence verdicts.\n\n## Verdict Levels\n\n### 1. High-priority collaboration candidate\n\nAll of the following hold:\n\n- No meaningful dispute signal\n- Audience quality is healthy (authenticity status is positive, no suspicious audience dominance)\n- Performance is competitive for the niche (benchmark rank is above median)\n- Pricing and cooperation signals do not show obvious friction (reasonable response time, acceptable pricing range)\n\n### 2. Viable, but with clear risks\n\nOverall profile is workable, but one or two notable concerns exist:\n\n- Weak cooperation signals (low cooperation score, few brand partnerships)\n- Performance volatility (high wave value, inconsistent engagement)\n- Questionable pricing efficiency (large gap between first and final price)\n- Audience demographic mismatch for the stated campaign goal\n\n### 3. Needs manual review before proceeding\n\nThe evidence is mixed and a firm recommendation would be misleading:\n\n- Commercial reasonableness cannot be judged confidently from available data\n- One critical dimension is unclear or data is incomplete\n- Conflicting signals across dimensions (strong performance but poor audience quality, or vice versa)\n\n### 4. Not a priority collaboration candidate\n\nMultiple weak signals appear:\n\n- Disputes or negative cooperation history\n- Poor audience quality (low authenticity, suspicious audience types)\n- Below-benchmark performance across multiple metrics\n- Creator is clearly a poor fit for the stated collaboration goal\n\n## Due-Diligence Output Structure\n\nAfter the verdict, organize evidence into these sections:\n\n### 1. Data Performance\n\n- Average views and engagement rate\n- Stability: wave value and views change ratio\n- Benchmark position: rank and percentile vs. peers\n- Content-type splits if relevant (normal vs. shorts/reels)\n- Level indicators (1-5 scale): avg_views_level, wave_level, engagement_rate_level\n\n### 2. Audience Quality\n\n- Audience authenticity (value, status, ratio range)\n- Audience type distribution (real, suspicious, inactive)\n- Demographic fit: region, language, age, gender distributions\n- Marketing indicators: positive_audience_pct, promo_interested_audience_pct, promo_attractiveness, promo_professionalism\n\n### 3. Cooperation Risk\n\n- Dispute types (if any)\n- Cooperation score and tendency\n- Cooperation pros and cons lists\n- Ad video ratio and frequency\n\n### 4. Commercial Reasonableness\n\n- Estimated price range (avg, min, max)\n- First price vs. final price gap\n- Response speed (avg_response_hours)\n- Collaboration efficiency (avg_contact_days, avg_contact_chats, avg_collaboration_days)\n- Active period and communication patterns\n- Existing brand partnerships (brand names, video counts, engagement rates)\n\n### 5. Final Recommendation\n\n- Whether to continue toward outreach\n- What should be double-checked manually\n- Whether the next step should be contact retrieval or shortlist replacement\n\n## Interpretation Principles\n\n- Dispute history and negative cooperation signals are decision-critical — always surface them prominently.\n- Benchmark position provides context but is not the sole determinant.\n- Pricing reasonableness should be evaluated relative to performance, audience quality, and cooperation signals, not in isolation.\n- When evidence is mixed, prefer \"Needs manual review\" over false confidence.\n- When two or more critical dimensions are missing or platform-limited, do not force a confident verdict.\n- When only one dimension was checked, present the answer as a scoped judgment, not a full verdict.\n\nFile v0.1.18:skill-card.md\n\n## Description:\n\nOperate NoxInfluencer creator intelligence and marketing systems through the CLI, including search, analysis, contacts, monitoring, campaigns, CRM, outreach operations, products, affiliation, brand intelligence, exports, account setup, quota, and troubleshooting.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[noxinfluencer](https://clawhub.ai/user/noxinfluencer)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal marketers and business teams use this skill to discover creators, assess fit and risk, manage NoxInfluencer campaign operations, run approved outreach workflows, export records, and troubleshoot account, quota, or CLI issues.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill installs an unpinned third-party CLI package.\n\nMitigation: Review the NoxInfluencer CLI package before installation and prefer a pinned, trusted version.\n\nRisk: Authenticated CLI actions can affect outreach, CRM, exports, account state, product records, and paid or quota-consuming operations.\n\nMitigation: Use a restricted NoxInfluencer account, keep credentials scoped and revocable, and require explicit confirmation before sends, schedules, exports, unlocks, CRM changes, product changes, or deletions.\n\n## Reference(s):\n\n- [NoxInfluencer Skill Page](https://www.noxinfluencer.com/skills)\n- [ClawHub Skill Release](https://clawhub.ai/noxinfluencer/skills/nox-influencer-marketing)\n- [NoxInfluencer Usage Billing](https://www.noxinfluencer.com/skills/usage-billing)\n- [CLI Response Format](references/cli-response-format.md)\n- [Marketing Ops Workflows](references/marketing-ops.md)\n- [Brand Monitor Workflows](references/brand-monitor.md)\n- [Platform Support](references/platform-support.md)\n- [Search Filter Semantics](references/search-filters.md)\n- [Verdict Heuristics Reference](references/verdict-heuristics.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Plain-language Markdown summaries with verified IDs, system state, and action URLs when user action is required.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May create or download files through approved NoxInfluencer CLI workflows; write actions require explicit approval and dry-run or preview where supported.]\n\n## Skill Version(s):\n\n0.1.18 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v0.1.17: 9 files, 22782 bytes\n\nFiles: references/brand-monitor.md (2527b), references/cli-response-format.md (3125b), references/marketing-ops.md (16142b), references/platform-support.md (3100b), references/search-filters.md (4196b), references/verdict-heuristics.md (3619b), skill-card.md (3436b), SKILL.md (16924b), _meta.json (144b)\n\nFile v0.1.17:SKILL.md\n\n---\nname: noxinfluencer\ndescription: Runs NoxInfluencer creator and marketing-ops workflows via CLI for influencer marketing, creator marketing, UGC, social media marketing, and affiliate marketing, including creator discovery and result exports; evaluation; external contacts; known-video and future-content monitoring; spreadsheet imports/reports; campaigns, collections, CRM, product center, short links, Shopify affiliation, email/message tasks, files, brand monitoring, and exports. Use for NoxInfluencer creator research, outreach operations, campaign/CRM/email/product/affiliate workflows, monitoring, files, or account setup.\nmetadata: {\"openclaw\":{\"requires\":{\"bins\":[\"noxinfluencer\"]},\"install\":[{\"kind\":\"node\",\"package\":\"@noxinfluencer/cli\",\"bins\":[\"noxinfluencer\"]}],\"homepage\":\"https://www.noxinfluencer.com/skills\"}}\n---\n\n# NoxInfluencer\n\nFull-workflow creator and marketing-ops skill for discovery, due diligence, platform email outreach, external contacts, known-video and future-content monitoring, spreadsheet/file workflows, operations, brand monitoring, and exports across YouTube, TikTok, and Instagram.\n\nThe user interacts through natural language. Execute CLI commands yourself and report results in plain language. Never expose raw commands to the user.\n\n## When to Use\n\n- User wants to find, evaluate, or contact creators / influencers / KOLs\n- User wants NoxInfluencer campaign, collection, CRM, email/message, product-center, short-link, affiliate, export, or brand-monitor operations\n- User needs to set up NoxInfluencer access or check quota\n- User wants to monitor video campaign performance\n- User hits an auth, quota, or CLI error\n\n## What This Skill Does Not Do\n\n- Draft outreach emails, negotiation copy, or partnership messages from scratch\n- Send email/message tasks or update CRM records without explicit user approval\n- Make final campaign budget allocation, media-plan, or partnership decisions\n- Generate creative briefs or interpret video content beyond available platform metrics\n- Operate external CRM, email, messaging, spreadsheet, or ad platforms outside NoxInfluencer\n- Replace legal or commercial review of contracts, disputes, or brand-safety decisions\n\n## Core Principles\n\n### Agent-First\n\nThe user does not operate the CLI. You do. Run commands silently, tell the user the result. Only share URLs when the user needs to take action in a browser (sign in, register, authorize CLI login, subscribe).\n\n### CLI Self-Description\n\nThe CLI is self-describing — use it instead of memorizing parameters:\n\n- **Parameters**: `noxinfluencer schema <cmd>` (e.g., `schema creator.search`; quoted path form `schema 'creator search'` also works)\n- **Help**: `noxinfluencer <cmd> --help`\n- **Diagnostics**: `noxinfluencer doctor`\n- **Cost planning**: `noxinfluencer pricing tools --charged-only` shows current server-side Skill Credit prices; `noxinfluencer quota usage --days 7` reviews recent consumption\n- **Login**: direct terminals can run `noxinfluencer login`; Agents/remote terminals use `login start --json` and `login wait <login_id>` (the CLI returns the user-safe authorization URL and code)\n- **Command-tree check**: `noxinfluencer schema --all` must include `creator`, `monitor`, `campaign`, `collection`, `email`, `message`, `crm`, `product`, `short-link`, `affiliation`, `brand-monitor`, `dispute`, `export`, `file`, `feedback`, `quota`, `pricing`, and `agent`\n- **Exit codes**: `noxinfluencer agent exit-codes`\n- **Preview**: `--dry-run` (shows request without executing)\n- **Language routing**: `--lang zh` switches all URLs to `cn.noxinfluencer.com`\n\n## Routing Cheat Sheet\n\nUse `noxinfluencer schema <cmd>` for exact parameters. Prefer broad command families over memorizing flags:\n\n- Creator sourcing: `creator search`, `creator search-filter*`, `creator not-interested ...`, `creator lookalikes`, `creator export*`, `creator lookalikes-export`\n- Creator reads: `creator profile/audience/content/cooperation`; use `creator contacts` only for visible/exported contacts\n- Monitoring: `monitor list/create/add-task/import-*/tasks/history/summary/report*`; use `monitor auto-track ...` for newly published creator content\n- Operations: `campaign`, `collection`, `crm`, `email`, `message`, `product`, `short-link`, `affiliation`, `export`, `file`\n- Brand monitoring: `brand-monitor ...`\n- Creator dispute due diligence: `dispute records/search/mine/get/report/update/withdraw`\n- Setup, quota, and pricing: `login`, `doctor`, `quota`, `quota usage`, `pricing`, `pricing tools`, `agent exit-codes`\n- Feedback: `feedback submit/inbox/get`\n\nIf the user does not have a `creator_id`, the first creator read may use `--url` or `--platform --channel-id`; afterwards preserve and reuse returned `creator_id`. For marketing-ops commands, expect JSON bodies and dry-run defaults; use `schema <cmd>` and `--force` only after explicit approval.\n\n### User Feedback\n\nIf the user wants to report a bug, confusing behavior, data issue, suggestion, or feature request, offer to submit feedback through `noxinfluencer feedback submit`. Ask for a short confirmation before sending. Attach screenshots or logs with `--file` when available. Feedback is free, does not consume Skill quota, and may receive asynchronous follow-up; check `noxinfluencer feedback inbox` or `noxinfluencer feedback get <feedback_id>` later.\n\n### Creator Disputes\n\nUse `feedback` for product, data, or CLI issues. Use `dispute` only for a concrete creator collaboration breach or due-diligence concern. Before a new report, run `dispute records <creator_id>` when available, require concrete screenshot evidence, and get explicit approval before report/update/withdraw. Private reports hide their description and evidence publicly, but not their type/count. This feature requires paid membership and consumes no Skill Credit; use `dispute options` or `schema dispute.report` for the current fields.\n\n---\n\n## 1. Getting Started\n\nRun `noxinfluencer doctor`, then fix only what is missing:\n\n1. No CLI or stale command tree → ask the user to install `@noxinfluencer/cli@latest`; verify with `schema --all`.\n2. No API key → use Device Flow. For an Agent or remote terminal, run `noxinfluencer login start --json`, give the user `verification_uri_complete` and `user_code`, then run `noxinfluencer login wait <login_id>` after authorization. On a direct terminal, `noxinfluencer login` does this in one command. `login --browser` is only for a local loopback callback. Manual API-key handoff is fallback only; use `auth --key-stdin`, never argv/logs or expose `device_code`.\n3. Configured → run `quota` and report blocking quota or entitlement issues.\n\n### Quota and Billing\n\nRun `quota` yourself and report the snapshot. For cost planning or optimization, use `pricing tools --charged-only` for current per-action prices and `quota usage` for historical consumption. API-backed calls may consume Skill quota and may also depend on SaaS-side capability quota or entitlement. If the response includes `action.url`, pass it to the user.\n\n---\n\n## 2. Discovering Creators\n\nTurn an open-ended search into a usable shortlist.\n\nAsk for only the missing essentials: platform, niche, region, creator size, and whether email signal matters. Search directly once the request is specific enough. Multi-platform sourcing requires separate platform searches.\n\nUse `schema creator.search` for flags. Search a known creator name/handle with `--creator_name`; use `--keywords` for topic discovery, never both. Put user-specified unwanted topics in `exclude_keywords`, and apply the SaaS cooperation, CRM communication, contacted-scope, and collection filters in the same search. Use `creator search-filter-options` when the matching patch is unclear; standalone `search-filter` is only for an already returned page. Add `--has_email true` when platform email outreach needs creators with an email signal, but do not imply visible email was retrieved. For pagination, reuse the prior filters and `data.search_after`; prefer a JSON body.\n\nOnly run `creator not-interested add` when the user explicitly asks to mark that creator as Not interested. Treat it as an approved, reversible mutation; a weak match or noisy result alone is not approval.\n\nCreator search and lookalike discovery charge by returned creator count, not by a fixed page request. Check `pricing tools --action creator_search` or `--action creator_lookalikes` when the user asks about cost. Default to smaller, purposeful pages for exploration; use larger pages only when the user asks for a broad shortlist or bulk follow-up.\n\n### Lookalike Discovery\n\nUse `creator lookalikes` when the user asks for creators similar to a source creator or URL. Treat results as recommendations, use the returned opaque `creator_id` values directly, and save them separately only after the user chooses targets.\n\n### Selected Result Exports\n\nUse `creator export` or `creator lookalikes-export` only after the user selects 1-100 returned `data.items[].id` values. Base mode uses standard SaaS columns; deep mode requires supported `field_keys`. Preserve lookalike `data.export_context` unchanged. Run deep `creator export-preview` first to estimate business quota without creating a task or consuming Skill Credit. Contact fields can consume contact quota. Poll approved export tasks through shared `export` commands.\n\n### Shortlist Presentation\n\nPresent 3–5 comparable candidates first: name, platform, size, performance, geography, tags, and why they match. If results are noisy, ask for one narrowing filter. Preserve `creator_id` for follow-up actions.\n\n---\n\n## 3. Analyzing Creators\n\nHelp the user decide whether a creator is worth pursuing. Lead with a verdict, not a wall of numbers.\n\nPrefer `creator_id` from prior results. Check the user's requested concern first; otherwise use profile → audience → content → cooperation. Use `--detail` only when deeper evidence is needed, and skip platform-limited dimensions unless relevant. Return verdict first, then evidence.\n\n### Verdict Framework\n\nUse one of four conclusions: high-priority, viable with risks, needs manual review, or not a priority. Always surface dispute/negative cooperation signals. See `{baseDir}/references/verdict-heuristics.md` for detailed heuristics.\n\n---\n\n## 4. Retrieving Contacts\n\nRetrieve visible contact info only when the user explicitly wants exported contact details, external outreach, or to use email outside NoxInfluencer.\n\nStrong rule: platform email outreach must not call `creator contacts` unless the user explicitly asks for visible/exported contact info. Use search/profile `creator_id` values in `email recipients add/replace`. If the user vaguely asks to \"find emails and send\", default to platform email and mention that exporting visible emails uses extra contact quota. Email sending may still consume the email service's own quota.\n\nWhen contacts are explicitly needed, run `creator contacts` for the selected creator and return only the visible contact info plus quality signal. If email is missing or low-confidence, say so plainly. Do not add outreach recommendations or restate creator metrics.\n\n---\n\n## 5. Tracking Performance\n\nManage video monitoring projects and tracked content. Operational only — manages monitoring, not performance judgment.\n\nList projects first when unclear. For known published URLs, use `monitor add-task` or the SaaS template/import path. Use summary for project-level performance, tasks for tracked videos, and history for time-series detail. Preserve stable IDs and returned `creator_id` values. Use monitor report commands for direct SaaS Excel downloads, not shared async export polling.\n\nFor ongoing creator monitoring, use `monitor auto-track`. Its Excel import validates every row before creating one rule; if it returns `failed_items`, fix the workbook and retry because no partial rule was created.\n\n---\n\n## 6. Marketing Ops\n\nOperate NoxInfluencer campaign, collection, CRM, email, message, product-center, short-link, affiliation, and export workflows. Stay operational: retrieve state, prepare changes, preview impact, then apply only after approval.\n\n### Workflow\n\n1. Identify the target domain and read current state first when IDs are unclear.\n2. For platform email outreach to creators found in NoxInfluencer, use the email-task path and add recipients by `creator_id`; do not retrieve contacts first. Standalone `email create/update` must not include `campaign_id`; manage intelligent Campaign email in SaaS until Campaign supports multiple email tasks. Discover bound senders with `email sender list [task_id]`; never ask the user to inspect browser Network for sender IDs. See the CLI schema and `{baseDir}/references/marketing-ops.md`.\n3. Use `message send` or `message schedule` only for existing `thread_id` replies. If no thread exists, offer the email-task path for platform creators. For an explicit whole-conversation archive, use `message archive`; never substitute `crm archive`.\n4. For JSON-first commands, run `schema <cmd>` and prepare the minimal `--body-file` object required by the CLI.\n5. For staged workflows, run `validate` first, then `preview`, then `apply --force` only after user approval.\n6. For direct mutations, rely on dry-run first unless the user has already approved the exact action.\n7. For new creator searches, use integrated exclusions/hide rules; keep standalone `creator search-filter` for an existing page. Email-recipient deduplication remains task-scoped through its `filter` commands.\n8. Use `short-link` for normal Nox short links only; use `affiliation` for Shopify affiliate campaigns, members, tracking links, discount codes, and performance reads.\n9. If Shopify store authorization is missing, send the user to SaaS; do not try to authorize stores inside the Skill.\n10. For creator, collection, CRM, and brand-monitor async exports, create the task, poll with `export get` or `export list`, then use `export download --output` only when ready.\n11. Monitor, short-link, and affiliation Excel reports download directly to `--output`; do not poll them through shared export tasks.\n12. Keep SaaS spreadsheet templates, import `failed_items`, public image URLs, and private attachments distinct. Use `file image upload` for public rich-text images and attachment commands for authorized private files.\n\nDo not draft outreach copy. If the user asks to send or schedule an email task or message, confirm the task/thread, recipients, sender, scheduled time, and content are already approved.\n\nSee `{baseDir}/references/marketing-ops.md` for domain routing, mutation guardrails, and export handling.\n\n---\n\n## 7. Brand Monitoring\n\nUse brand-monitor commands for owned/competitor brand analysis and brand asset exports. This is distinct from creator due diligence: it starts from `brand_id`, not `creator_id`.\n\n### Workflow\n\n1. List or get brand monitors when `brand_id` is unclear.\n2. Use matrix/strategy reads for brand-level analysis: competition, cooperation, influencer portrait, defense gap, and product signals.\n3. Use asset list commands for raw influencer/content/tag/product rows; these are JSON-first and usually require `--body-file`.\n4. Product signal commands currently support YouTube only. Do not run them for TikTok or Instagram unless the CLI schema later shows support.\n5. Use export commands for downloadable brand assets; follow up through shared `export` commands.\n6. Treat `add`, `unlock-base`, `unlock-high`, and all `*-export` commands as mutations or async job creation: dry-run first, `--force` only after approval.\n\nSee `{baseDir}/references/brand-monitor.md` for command routing and platform boundaries.\n\n---\n\n## Error Handling\n\nFor API-backed failures (`quota`, `pricing`, `creator`, `monitor`, `campaign`, `collection`, `email`, `message`, `crm`, `product`, `short-link`, `affiliation`, `brand-monitor`, `dispute`, `export`, `file`, `feedback`), use the CLI response's `action` field when present:\n- `action.url` — where the user should go\n- `action.hint` — what to do\n\nLocal/helper commands (`auth`, `doctor`, `schema`, `env`, `agent exit-codes`) may not include `action`. Read their native output directly instead of assuming the API error envelope.\n\nFor unexpected failures, run `doctor` as a first diagnostic step.\n\n## References\n\n- `{baseDir}/references/cli-response-format.md` — response envelope differences and error action handling\n- `{baseDir}/references/marketing-ops.md` — campaign, spreadsheet, file, email/message, report/export workflows and mutation guardrails\n- `{baseDir}/references/brand-monitor.md` — brand monitor routing, YouTube-only product signals, export boundaries\n- `{baseDir}/references/platform-support.md` — data availability by platform\n- `{baseDir}/references/search-filters.md` — filter selection by user intent\n- `{baseDir}/references/verdict-heuristics.md` — detailed due-diligence rules and output structure\n\nFile v0.1.17:_meta.json\n\n{\n  \"ownerId\": \"kn7dshs4yp3cmjb2ayrf4f69zn82c4wd\",\n  \"slug\": \"nox-influencer-marketing\",\n  \"version\": \"0.1.17\",\n  \"publishedAt\": 1786087845360\n}\n\nFile v0.1.17:references/brand-monitor.md\n\n# Brand Monitor Workflows\n\nUse brand-monitor commands for brand-level market intelligence and asset exports. This workflow starts from `brand_id`; do not substitute `creator_id`.\n\n## Routing\n\n| User intent | Command family |\n|-------------|----------------|\n| List available brand monitors | `brand-monitor list` |\n| Inspect one monitored brand | `brand-monitor get <brand_id>` |\n| Compare brand competition | `brand-monitor competition-matrix <brand_id>` |\n| Analyze cooperation strategy | `brand-monitor cooperate-matrix <brand_id>` |\n| Summarize influencer portrait | `brand-monitor influencer-portrait <brand_id>` |\n| Find defense gaps | `brand-monitor defense-gap <brand_id>` |\n| Read product trend/category signals | `brand-monitor product-pub-trend`, `product-category` |\n| Read product strategy signals | `brand-monitor product-sov-analysis`, `product-tae-analysis`, `product-pp-analysis`, `product-promotion-matrix`, `product-promotion-distinction` |\n| Query brand asset rows | `brand-monitor influencer-list`, `content-list`, `tag-list`, `product-list` |\n| Create brand asset exports | `brand-monitor influencer-export`, `content-export`, `tag-export`, `product-export` |\n| Add or unlock a monitored brand | `brand-monitor add`, `unlock-base`, `unlock-high` |\n\n## Platform Boundaries\n\n- Core brand monitor reads support YouTube, TikTok, and Instagram where the CLI schema permits.\n- Product signal commands currently support `youtube` only. Do not call product signal commands for TikTok or Instagram unless a future schema explicitly shows support.\n- Asset list commands are JSON-first. Use `--body-file` and inspect schema usage notes before building selectors.\n\n## Output Rules\n\n- Brand overview: report brand name, `brand_id`, access/data level, quota state, and obvious blockers.\n- Matrices and strategy reads: summarize top rows and the decision implication; do not dump every normalized field.\n- Asset lists: present comparable rows and include pagination state when present.\n- Product signals: state that the result is YouTube-only if the user asked for cross-platform analysis.\n- Exports: preserve `export_id` and route follow-up status/download through shared `export` commands.\n\n## Mutation Rules\n\n- `add`, `unlock-base`, `unlock-high`, and all `*-export` commands are mutations or async job creation.\n- Dry-run first unless the user already approved the exact brand and action.\n- Use `--force` only after approval.\n- For unlock operations, explain that quota/entitlement may be consumed before executing.\n\nFile v0.1.17:references/cli-response-format.md\n\n# CLI Response Format\n\n## API-backed Commands\n\nThese commands return the standard API envelope:\n\n- `creator ...`\n- `monitor ...`\n- `campaign ...`\n- `collection ...`\n- `email ...`\n- `message ...`\n- `crm ...`\n- `brand-monitor ...`\n- `dispute ...`\n- `export ...`\n- `quota`\n- `pricing`\n\nSuccessful responses include `success`, `data`, `summary`, and `meta`. Some current endpoints may also include a legacy compatibility field named `credits`.\n\nNotes:\n\n- Treat `quota` response data as the canonical Skill quota snapshot\n- `pricing` returns membership plans; `pricing tools` returns current server-side per-action Skill Credit prices\n- `quota usage` returns historical calls, credits, trend, and recent activity for cost analysis\n- Some current API envelopes may still include a legacy `credits` field for compatibility; do not treat it as the primary quota model\n- Mutation commands default to dry-run; `--force` executes the write after user approval\n- Non-GET writes automatically use `Idempotency-Key`; `--idempotency-key` can override it for automation\n- JSON-first commands declare `supports_body_file: true` in schema and require `--body-file`\n- `export download` writes binary data to `--output`, not stdout\n\nError responses include an `action` field with next-step guidance:\n\n```json\n{\n  \"success\": false,\n  \"error_code\": \"INSUFFICIENT_CREDIT\",\n  \"summary\": \"Insufficient credit quota\",\n  \"action\": {\n    \"type\": \"redirect\",\n    \"url\": \"https://www.noxinfluencer.com/skills/usage-billing\",\n    \"hint\": \"Open billing to renew or upgrade your available quota.\"\n  }\n}\n```\n\nThe current server may still use legacy wording like `INSUFFICIENT_CREDIT` or `Insufficient credit quota`. Interpret that as \"Skill quota is exhausted\" for user communication.\n\n## Local Commands (different format)\n\nThese commands have their own response structures — do not assume the API envelope:\n\n| Command | Response format |\n|---------|----------------|\n| `doctor` | `{ \"checks\": [...], \"ok\": boolean }` |\n| `auth` | `{ \"success\": boolean, \"message\": string }` |\n| `env` | `{ \"success\": true, \"data\": { \"environment\": string, \"server_url\": string } }` |\n| `schema` | Command schema JSON (no envelope) |\n| `agent exit-codes` | Stable CLI exit-code catalog |\n\n## Agent Diagnostics\n\n- Use `--trace-json` when a harness or eval needs structured request traces on stderr.\n- Use `schema --all` to verify the installed CLI exposes the expected modern command tree, including `campaign`, `collection`, `email`, `message`, `crm`, `product`, `short-link`, `affiliation`, `brand-monitor`, `dispute`, `export`, `feedback`, `quota`, `pricing`, and `agent`. Version output alone is not sufficient when a local/global install has stale compiled files. If reinstalling `@noxinfluencer/cli@latest` still lacks the expected command groups, stop the affected workflow and report a CLI package / command-tree mismatch.\n- Use `noxinfluencer agent exit-codes` to distinguish retryable failures such as rate limits or temporary upstream failures from invalid requests and auth problems.\n- Use `doctor` as the first diagnostic step when the failure cause is unclear.\n\nFile v0.1.17:references/marketing-ops.md\n\n# Marketing Ops Workflows\n\nUse this reference for NoxInfluencer campaign, collection, CRM, email, message, product, short-link, affiliation, creator dispute, file, report, and export operations. Keep command parameters runtime-discovered with `noxinfluencer schema <cmd>`.\n\n## Domain Routing\n\n| User intent | Start with |\n|-------------|------------|\n| Find or inspect campaigns | `campaign list`, `campaign get`, `campaign dashboard`, `campaign dropdown` |\n| Create or change campaign skeleton data | `campaign init`, `campaign create`, `campaign update`, `campaign delete` |\n| Find or inspect collections | `collection list`, `collection get`, `collection items`, `collection resources` |\n| Add creators from search/profile results to collections | `collection add-creators` |\n| Import owned creator links into one collection | `collection import-template`, then `collection import-file` |\n| Find creators similar to a source creator | `creator lookalikes` |\n| Export selected creator search/lookalike results | deep `creator export-preview`, then `creator export` / `creator lookalikes-export` |\n| Batch move/copy/delete/label collection members | `collection batch-* validate`, then `preview`, then `apply` |\n| Refresh collection base/email data or unlock audience | `collection refresh* validate`, then `preview`, then `apply` |\n| Add one whole collection and platform slice to CRM | `collection add-to-crm validate`, then `preview`, then `apply` |\n| Query, import, or update NoxInfluencer CRM channels | `crm list/get/update`, `crm import-template/import-file/import-report`, `crm groups ...` |\n| Manage CRM labels for batch tagging | `crm labels list/create/update/delete` |\n| Manage product-center records, images, and tags | `product list/get/create/update/delete`, `product image upload`, `product tags ...` |\n| Manage Shopify affiliate campaigns and members | `affiliation stores list`, then `affiliation campaigns ...` / `affiliation members ...`; use member template/import and campaign export for files |\n| Send standalone platform email outreach to creators | `email create`, then `email recipients add/replace` with creator search/profile IDs, `email content save`, `email sender list [task_id]` before optional `email sender update`, optional `email attachments ...`, then `email send` or `email schedule` |\n| Manage email tasks | `email list`, `email drafts`, `email get`, `email create`, `email update`, `email recipients ...`, `email content ...`, `email sender ...`, `email report`, `email team-summary`, `email team-breakdown` |\n| Import email recipients | `email recipients import-template`, then `email recipients import-file` |\n| Manage email recipient deduplication | `email recipients filter options`, then `email recipients filter get/update/tasks` |\n| Manage email task collaborators | `email collaborators list`, then `replace/add/remove` |\n| Manage email task attachments | `email attachments list/upload/download/delete` |\n| Send or schedule an existing email task | `email send`, `email schedule`, `email cancel` |\n| Manage message threads and files | `message list/get/projects/archive`, `message draft ...`, `message attachments ...`, `message templates attachments ...` |\n| Upload a public rich-text image | `file image upload`, then embed returned `file_url` in approved `html_body` |\n| Download direct Excel reports | `monitor report*`, `short-link export-*`, `affiliation campaigns export` |\n| Send or schedule an existing message reply | `message send`, `message schedule`, `message cancel` |\n| Submit product feedback or a bug report | `feedback submit`, then `feedback inbox` / `feedback get` |\n| Check or report a concrete creator collaboration dispute | `dispute records <creator_id>` first, then `dispute report` only with evidence and approval |\n| Inspect or download shared async exports | `export list`, `export get`, `export download` for creator, collection, CRM, and brand-monitor tasks |\n\n## Outreach Routing\n\n- For standalone NoxInfluencer platform email outreach, do not call `creator contacts` first. Create or select an email task without `campaign_id`, add search/profile result `creator_id` values with `email recipients add/replace`, save user-approved content with `email content save`, set sender if needed, read back task and recipients, then ask for final approval before `email send --force` or `email schedule --force`. Manage intelligent Campaign email in SaaS until Campaign supports multiple email tasks.\n- Use `creator contacts` only when the user explicitly wants visible/exported contact info or outreach outside NoxInfluencer. If the user vaguely asks to \"find emails and send\", choose platform email by default and say exported email retrieval uses extra contact quota.\n- Email attachments belong to the email task primary project. Upload approved files with `email attachments upload <task_id> --file <path>` before send or schedule; use `email attachments list/download/delete` to inspect, retrieve, or remove files. Email tasks support at most 1 attachment, max 10MB. Uploading or deleting an attachment cancels an existing scheduled send, so read back the task and confirm again before scheduling.\n- If approved recipients come from Excel, download `email recipients import-template` and use `email recipients import-file <task_id>`. Do not invent spreadsheet columns.\n- Email recipient import is only available before the task enters its active send flow.\n- For one email task's reply reporting, use `email report <task_id>`. For multi-task or team-level reporting, use `email team-summary`; for SaaS team member breakdown, use `email team-breakdown`. Treat `reply_count` as email tracking replies, `replied_creator_count` as replied creators, and `inbound_message_count` as inbound reply messages. Team filters use SaaS team member `uid`, not Gmail or enterprise sender mailbox accounts. Do not recompute replies by manually scanning message threads unless the user explicitly asks for raw thread inspection.\n- If the user wants in-platform DM/message, `message send` and `message schedule` require an existing `thread_id`. If the user only has an email task ID, use `message list --business_kind email_task --business_id <task_id>` to resolve the thread first. Without a thread, say that starting a new message thread is not exposed by the CLI and offer the email-task path for platform creators.\n- For message-center filtering by task creator or team member, first run `message creator-filters`, then use returned `user_uid` values with `message list --creator_uids` or `message project-filters --creator_uids`.\n- For message-center pending work, trust `needs_reply` / `last_message_direction`; `deal` is not the same as `unread`. If one opened task is already replied but SaaS still shows pending, inspect siblings with `message projects <thread_id>`. Use `message archive` only when the user explicitly wants the creator's entire conversation archived; it includes sibling task threads and is separate from `crm archive`. If only one task needs no reply, do not send an empty reply or archive the conversation; task-level mark-handled is not exposed yet.\n- Message draft/history attachments and message-template attachments are separate. Use `message attachments list/upload/download/delete` for thread files and `message templates attachments list/upload/download/delete` for reusable template files. Never reuse IDs across the two paths. One template supports at most 2 private attachments, max 10MB each.\n- Use `file image upload` for public inline images in approved email/message `html_body`. The returned `file_url` is public and is not a private email, message, or template attachment.\n- `crm add-to-email` is only for adding existing NoxInfluencer CRM channels to an existing email task. Do not treat CRM as required when the user already has creator IDs or explicit email addresses.\n\n## Affiliate Marketing\n\n- Use `affiliation` for Shopify affiliate stores, campaigns, members, tracking links, discount codes, and performance reads. This is separate from normal `short-link`.\n- Start with `affiliation stores list`. If no store is authorized or access is denied, ask the user to authorize/manage the store in SaaS; do not attempt store authorization in the Skill.\n- Add NoxInfluencer creators to affiliate campaigns with search/profile `creator_id`, or use `platform + channel_id` / `custom_id` when the CLI schema calls for it.\n- For owned creator links, download `affiliation members import-template` and submit `.xls` or `.xlsx` with `affiliation members import-file <campaign_id>`; max file size is 10MB.\n- Executing affiliation member import writes members immediately and reads back the pending-member count; it is not validation-only.\n- `affiliation campaigns export` downloads campaign-performance Excel directly to `--output`; it is not a shared async export task.\n\n## Deduplication and Collaborators\n\n- For a new creator search, apply `exclude_keywords` and the selected `search-filter-options` patch in the search itself. Use standalone `creator search-filter` only for an existing page. Mark or unmark a creator as Not interested only with explicit approval through `creator not-interested add/remove`.\n- Email recipient deduplication is task-scoped: use `email recipients filter options` to find SaaS-aligned choices, `email recipients filter get <task_id>` to inspect saved state/counts, and `email recipients filter update <task_id> --body-file` to change it.\n- Email collaborators use SaaS team `user_uid`. If the user does not know the ID, run `email collaborators list` without `task_id` first; with a `task_id`, it reads that task's current collaborator permissions. Use `add` or `remove` for incremental changes; use `replace` only when the user intends to reset the whole collaborator set.\n\n## CRM Update Semantics\n\n- `crm update` / `crm batch-update` may auto-create a NoxInfluencer CRM channel for valid platform `creator_id` tokens when updating cooperation status or labels. For label-only updates, the service uses the default cooperation status before applying labels.\n- Use `crm labels create` when the user needs a new CRM tag ID. Use the returned `label_id` in `crm batch-update` with `labels.operation=add` or `remove`.\n- Owner-only or archive-only updates do not auto-create CRM channels. Treat missing-channel failures as real failures, not successful skips.\n- For batch previews and applies, report `existing_count`, `will_create_count`, and `created_count` when present; do not infer success only from requested IDs.\n\n## Collection Add and Import\n\n- Use `creator lookalikes` when the user asks for similar creators based on a source creator or URL. It is read-only and requires `target_platform`; save returned creator IDs with `collection add-creators` only after the user chooses targets.\n- Use `collection add-creators` when the user wants to save creators returned by `creator search` or creator read commands into one or more collections. The JSON body uses `collection_ids`, `platform`, and `creator_ids`. Use `channel_ids` only when the user already has raw same-platform channel IDs. It is an add-only path, not forced collection-to-collection copy.\n- Download `collection import-template` before using `collection import-file <collection_id> --file <path>` for the user's owned creator links. The spreadsheet's first column should be the YouTube, Instagram, or TikTok creator URL; an optional second column may contain email/contact data. This import is accepted asynchronously, so poll `collection items <collection_id>` by platform to confirm resolved rows.\n- Do not confuse these paths with collection copy/move. `add-creators` adds explicit creators to target collections; `import-file` imports owned creator URLs into one collection.\n\n## Spreadsheet Imports and Reports\n\n- Always download the current SaaS `import-template` when the command family provides one. Do not infer columns from old files.\n- Monitor task imports accept `.xls`/`.xlsx` up to 10MB, parse up to 1,000 rows, and save at most 500 valid rows per request. Preserve validation- and save-stage `failed_items`; use `monitor import-report` for a direct failure workbook.\n- Monitor auto-track imports accept up to 50 creator homepage links and are all-or-nothing. If any row fails, no rule is created; fix `data.failed_items` and retry the complete workbook.\n- CRM imports accept `.xls`/`.xlsx` up to 10MB and 500 rows. Executing the check writes valid nonduplicate rows. Use `--overwrite-existing` only after approval; upstream reports repeated-row overwrite as submitted without row-level results. Preserve `failed_items` and `repeated_items` for `crm import-report` workbooks.\n- Email recipient imports accept `.xls`/`.xlsx` up to 8MB, target one existing `task_id`, and are available only before its active send flow.\n- Affiliation member imports accept `.xls`/`.xlsx` up to 10MB and target one existing affiliate `campaign_id`.\n- `monitor import-report`, monitor reports, short-link reports, affiliation campaign reports, and CRM import reports write Excel directly to `--output`. They do not return an `export_id`.\n\n## File Roles\n\n- Public rich-text images: `file image upload` returns `file_url` for approved `html_body`.\n- Public product images: `product image upload` returns `file_url` for `thumbnail_url`; `campaign product-images upload` returns URLs for up to 5 entries in one product's `thumbnail_urls`.\n- Private files: email, message draft/history, message-template, and owned feedback attachments require their domain-specific authorized download commands.\n- Downloads use `--output`; add `--overwrite` only when replacing an existing local file is intentional.\n\n## Mutation Rules\n\n- Write commands default to dry-run. Treat dry-run output as a preview, not completion.\n- Use `--force` only after the user has approved the exact object and action.\n- Feedback submission is also a write command, but it is free and does not consume Skill quota. Use it for product bugs, confusing behavior, data issues, suggestions, or feature requests. Attach screenshots/logs with `--file` when useful, and check `feedback inbox` for asynchronous follow-up.\n- Creator disputes are separate from product feedback: they require paid membership, consume no Skill Credit, and require concrete evidence. Check existing `dispute records` before an approved `dispute report`; use `dispute options` for current type/status values.\n- For staged workflows, always run `validate` before `preview`, and `preview` before `apply --force`.\n- For `send` and `schedule`, confirm the task/thread, recipient scope, sender identity, scheduled time when relevant, and content approval before execution.\n- Do not draft outreach or negotiation copy. If content is missing, ask the user for approved content or hand off to a writing task without invoking NoxInfluencer write commands.\n- Do not operate external CRM, email, messaging, or spreadsheet platforms. These commands only affect NoxInfluencer-owned objects.\n\n## JSON-First Commands\n\nMany marketing-ops commands intentionally keep complex selectors in JSON bodies. When a schema requires `--body-file`:\n\n1. Run `noxinfluencer schema <cmd>` to inspect required fields and usage notes.\n2. Prepare the minimal JSON body needed for the user's request.\n3. Prefer the CLI's validate/preview stages when available.\n4. Preserve stable opaque IDs from responses (`campaign_id`, `collection_id`, `creator_id`, `thread_id`, `task_id`, `export_id`) for follow-up calls.\n\n## Export Handling\n\n- Shared export creation for creator, collection, CRM, and brand-monitor domains is async and returns `export_id`. Poll with `export get/list`, then use `export download <export_id> --output <path>` only when ready.\n- Creator exports use 1-100 selected result `data.items[].id` values. Deep mode requires `field_keys`; preserve lookalike `data.export_context`; preview deep business quota before creation. Contact fields can consume contact quota.\n- Monitor, short-link, affiliation, and import-report workbooks are direct downloads, not shared export tasks. Report the local output path and file metadata after completion.\n\nFile v0.1.17:references/platform-support.md\n\n# Platform Support\n\nNoxInfluencer skills support three platforms. Each has some data availability differences.\n\n## Supported Platforms\n\n| Platform | `--platform` value | Creator ID prefix byte |\n|----------|-------------------|----------------------|\n| YouTube | `youtube` | `0x01` |\n| TikTok | `tiktok` | `0x02` |\n| Instagram | `instagram` | `0x03` |\n\n## Data Availability by Platform\n\n| Data Dimension | YouTube | TikTok | Instagram |\n|----------------|---------|--------|-----------|\n| Search | Full | Full | Full |\n| Profile overview | Full | Full | Full |\n| NoxScore | Full | Full | Full |\n| Audience demographics | Full | Full | Partial |\n| Audience authenticity | Full | Full | Limited |\n| Content tags | Full | Full | Full |\n| Recent content | Full | Full | Full (posts, reels, pics) |\n| Cooperation detail | Full | Partial | Partial |\n| Brand partnerships | Full | Partial | Limited |\n| Pricing data | Full | Partial | Limited |\n| Contact/email | Available | Available | Available |\n| Video monitoring | Full | Full | Full |\n| Brand monitor product signals | YouTube only | Not supported | Not supported |\n\n## Content Type Splits\n\nDifferent platforms have different content types that affect performance metrics:\n\n- **YouTube**: `normal` (long-form) vs. `shorts`\n- **TikTok**: All content treated as short-form\n- **Instagram**: `posts`, `reels`, `pics` — metrics may be split by type\n\n## Platform-Specific Notes\n\n- **Null fields**: Some fields may return `null` on certain platforms. This is expected behavior, not a data error. Skills should explain that the value may be unavailable for that platform rather than treating it as a failure.\n- **Creator identity fields**: All creator read responses include `creator_id`, `creator_name`, `channel_handle`, `channel_url`, and `social_media`. `channel_url` and `social_media` are enhancement data and may still be empty on some creators or platforms.\n- **Audience data**: Instagram audience data may be less granular than YouTube or TikTok.\n- **Cooperation data**: Pricing and communication metrics are most complete on YouTube. TikTok and Instagram may have partial or no pricing data.\n- **Creator IDs**: All creator IDs in search results and creator read responses are encrypted tokens. The same creator always produces the same token. Use the token directly as the positional `<creator_id>` argument in subsequent commands without decryption.\n- **Direct selectors**: The first creator read call may use `--url` or `--platform --channel-id`. Once a response returns `data.creator_id`, switch to that token for follow-up calls.\n- **Monitor task identity**: `monitor add-task` and `monitor tasks` may also expose `creator_id`, `creator_name`, `channel_handle`, and `channel_url`. Treat these as best-effort task metadata; nullable fields are not a hard failure.\n- **Brand monitor product signals**: Product publication, category, SOV, TAE, PP, promotion matrix, and promotion distinction commands currently support YouTube only. For TikTok or Instagram brand questions, use non-product brand monitor reads or asset lists when schema permits.\n\nFile v0.1.17:references/search-filters.md\n\n# Search Filter Semantics\n\nFor the full parameter list and syntax, run `noxinfluencer schema creator.search`. The single-argument command-path form `noxinfluencer schema 'creator search'` is equivalent.\n\nThis reference covers **when to use which filters** — the decision logic, not the syntax.\n\nFor a new search, apply topic exclusions and SaaS hide/deduplication directly through `creator search`. Use standalone `creator search-filter` only when a page has already been returned.\n\n## Filter Priority by User Intent\n\n| User intent | Key filters to apply | Why |\n|-------------|---------------------|-----|\n| Known creator name or handle | `--creator_name`, `--platform` | Match creator identity instead of treating the name as a topic keyword |\n| Niche sourcing | `--keywords`, `--platform` | Narrow to relevant content creators |\n| Every topic must match | `--keywords`, `--keyword_match all` | Require all supplied topic keywords instead of the default any-keyword union |\n| Regional targeting | `--country`, `--follower_countries` | Match campaign geography |\n| Budget-constrained | `--follower_min`, `--follower_max` | Size correlates with cost |\n| Platform email outreach | `--has_email true` | Only creators with known email signal; platform email can still add results by `creator_id` without retrieving visible email |\n| Audience fit | `--follower_ages`, `--follower_female_pct_min`, `--follower_language` | Match audience demographics |\n| Active creators | `--published_within_days` | Exclude dormant channels |\n| Performance floor | `--engagement_rate_min`, `--avg_view_min` | Filter out low-engagement creators |\n\n## Search Result Fields\n\nEach result item includes: `id` (encrypted token), `nickname`, `tags`, `followers`, `country`, `total_videos`, `view_per_followers`, `engagement_rate`, `avg_views`, `language`.\n\n`creator_name` and `keywords` are mutually exclusive. Name search uses the same result pricing and pagination as topic search.\n\nSearch responses also include page metadata under `data`: `page_num`, `page_size`, `total_page`, `total_size`, and `search_after`.\n\nThe `id` is an encrypted token — use it directly as the positional `<creator_id>` argument in subsequent commands. Do not try to decode it.\n\n## Page Size and Cost\n\n- `creator search` and `creator lookalikes` share returned-result pricing; use `pricing tools --action creator_search` or `--action creator_lookalikes` for the current server-side unit price.\n- The default page size is 20 and the maximum page size is 100.\n- Charge impact follows the number of returned items, not the requested `page_size`. Prefer targeted pages while refining filters; use larger pages only when the user asks for broad sourcing or bulk follow-up.\n\n## Search Result Deduplication\n\n- Use `exclude_keywords` for unwanted topic/tag matches; do not emulate exclusions by dropping rows after billing.\n- Run `creator search-filter-options` to inspect SaaS hide choices. Apply its `search_body_patch` in the same `creator search` request whenever possible.\n- Use its standalone `body_patch` with `creator search-filter` only for already returned `data.items[].id` values.\n- Use `creator not-interested add` only after explicit approval to mark selected creators as Not interested. `list` audits those marks, and `remove` cancels them so the creators can appear in future searches again.\n\n## Pagination Rules\n\n- For a next-page request, keep the previous search filters exactly the same and send both the next `page_num` and the previous response's `data.search_after`.\n- Prefer `--body-file -` for next-page requests and pass one JSON body containing the preserved filters, `page_num`, `page_size`, and `search_after`. This avoids shell globbing/quoting problems with cursor arrays.\n- If using flags instead of `--body-file`, shell-quote every bracketed array argument, especially `--search_after`, for example `--search_after '[163.97083,\"UCQ-P8lGwkr0Tj4phQB9diDw\"]'`.\n- Current CLI and server validation require `page_num > 1` when `search_after` is present, so do not try cursor-only paging.\n- If `data.search_after` is missing or empty, or the current page is already the last page, tell the user there are no more results.\n\nFile v0.1.17:references/verdict-heuristics.md\n\n# Verdict Heuristics Reference\n\nDetailed heuristic rules and output structure for creator due-diligence verdicts.\n\n## Verdict Levels\n\n### 1. High-priority collaboration candidate\n\nAll of the following hold:\n\n- No meaningful dispute signal\n- Audience quality is healthy (authenticity status is positive, no suspicious audience dominance)\n- Performance is competitive for the niche (benchmark rank is above median)\n- Pricing and cooperation signals do not show obvious friction (reasonable response time, acceptable pricing range)\n\n### 2. Viable, but with clear risks\n\nOverall profile is workable, but one or two notable concerns exist:\n\n- Weak cooperation signals (low cooperation score, few brand partnerships)\n- Performance volatility (high wave value, inconsistent engagement)\n- Questionable pricing efficiency (large gap between first and final price)\n- Audience demographic mismatch for the stated campaign goal\n\n### 3. Needs manual review before proceeding\n\nThe evidence is mixed and a firm recommendation would be misleading:\n\n- Commercial reasonableness cannot be judged confidently from available data\n- One critical dimension is unclear or data is incomplete\n- Conflicting signals across dimensions (strong performance but poor audience quality, or vice versa)\n\n### 4. Not a priority collaboration candidate\n\nMultiple weak signals appear:\n\n- Disputes or negative cooperation history\n- Poor audience quality (low authenticity, suspicious audience types)\n- Below-benchmark performance across multiple metrics\n- Creator is clearly a poor fit for the stated collaboration goal\n\n## Due-Diligence Output Structure\n\nAfter the verdict, organize evidence into these sections:\n\n### 1. Data Performance\n\n- Average views and engagement rate\n- Stability: wave value and views change ratio\n- Benchmark position: rank and percentile vs. peers\n- Content-type splits if relevant (normal vs. shorts/reels)\n- Level indicators (1-5 scale): avg_views_level, wave_level, engagement_rate_level\n\n### 2. Audience Quality\n\n- Audience authenticity (value, status, ratio range)\n- Audience type distribution (real, suspicious, inactive)\n- Demographic fit: region, language, age, gender distributions\n- Marketing indicators: positive_audience_pct, promo_interested_audience_pct, promo_attractiveness, promo_professionalism\n\n### 3. Cooperation Risk\n\n- Dispute types (if any)\n- Cooperation score and tendency\n- Cooperation pros and cons lists\n- Ad video ratio and frequency\n\n### 4. Commercial Reasonableness\n\n- Estimated price range (avg, min, max)\n- First price vs. final price gap\n- Response speed (avg_response_hours)\n- Collaboration efficiency (avg_contact_days, avg_contact_chats, avg_collaboration_days)\n- Active period and communication patterns\n- Existing brand partnerships (brand names, video counts, engagement rates)\n\n### 5. Final Recommendation\n\n- Whether to continue toward outreach\n- What should be double-checked manually\n- Whether the next step should be contact retrieval or shortlist replacement\n\n## Interpretation Principles\n\n- Dispute history and negative cooperation signals are decision-critical — always surface them prominently.\n- Benchmark position provides context but is not the sole determinant.\n- Pricing reasonableness should be evaluated relative to performance, audience quality, and cooperation signals, not in isolation.\n- When evidence is mixed, prefer \"Needs manual review\" over false confidence.\n- When two or more critical dimensions are missing or platform-limited, do not force a confident verdict.\n- When only one dimension was checked, present the answer as a scoped judgment, not a full verdict.\n\nFile v0.1.17:skill-card.md\n\n## Description:\n\nRuns NoxInfluencer creator and marketing-ops workflows via CLI for influencer marketing, creator marketing, UGC, social media marketing, and affiliate marketing, including creator discovery and result exports; evaluation; external contacts; known-video and future-content monitoring; spreadsheet imports/reports; campaigns, collections, CRM, product center, short links, Shopify affiliation, email/message tasks, files, brand monitoring, and exports.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[noxinfluencer](https://clawhub.ai/user/noxinfluencer)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal marketing teams and agents use this skill to find, evaluate, contact, monitor, and manage creators through NoxInfluencer. It supports creator discovery, campaign operations, CRM and outreach workflows, exports, brand monitoring, quota checks, and account setup.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can operate a NoxInfluencer account, including outreach, CRM, campaign, export, contact retrieval, unlock, and upload workflows.\n\nMitigation: Install it only when account operation is intended, and review sensitive actions before approval.\n\nRisk: Approved actions can consume Skill quota, SaaS-side entitlements, contact quota, or paid membership capabilities.\n\nMitigation: Check quota and pricing before broad searches, exports, unlocks, or contact retrieval.\n\nRisk: Email or message sends, scheduled outreach, and CRM or campaign mutations can affect live marketing operations.\n\nMitigation: Use dry-run, validate, preview, and explicit approval gates before executing writes.\n\nRisk: Some platform data is partial or platform-limited, especially Instagram audience detail, TikTok and Instagram cooperation data, and brand-monitor product signals outside YouTube.\n\nMitigation: Surface unavailable fields plainly and avoid confident recommendations when critical data is missing.\n\nRisk: Chinese-site routing changes the service endpoint and URLs used by the workflow.\n\nMitigation: Confirm Chinese-site routing with the user before using the Chinese-language route.\n\n## Reference(s):\n\n- [NoxInfluencer Skills](https://www.noxinfluencer.com/skills)\n- [Marketing Ops Workflows](artifact/references/marketing-ops.md)\n- [Brand Monitor Workflows](artifact/references/brand-monitor.md)\n- [CLI Response Format](artifact/references/cli-response-format.md)\n- [Platform Support](artifact/references/platform-support.md)\n- [Search Filter Semantics](artifact/references/search-filters.md)\n- [Verdict Heuristics Reference](artifact/references/verdict-heuristics.md)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, shell commands, configuration, markdown, text]\n\n**Output Format:** [Concise natural-language summaries with agent-executed CLI actions and file paths for approved exports.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May create or download files, queue exports, modify NoxInfluencer resources, consume quota, or send approved outreach when the user authorizes those actions.]\n\n## Skill Version(s):\n\n0.1.17 (source: release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v0.1.16: 9 files, 22433 bytes\n\nFiles: references/brand-monitor.md (2527b), references/cli-response-format.md (3125b), references/marketing-ops.md (15816b), references/platform-support.md (3100b), references/search-filters.md (4196b), references/verdict-heuristics.md (3619b), skill-card.md (3343b), SKILL.md (16551b), _meta.json (144b)\n\nFile v0.1.16:SKILL.md\n\n---\nname: noxinfluencer\ndescription: Runs NoxInfluencer creator and marketing-ops workflows via CLI for influencer marketing, creator marketing, UGC, social media marketing, and affiliate marketing, including creator discovery and result exports; evaluation; external contacts; known-video and future-content monitoring; spreadsheet imports/reports; campaigns, collections, CRM, product center, short links, Shopify affiliation, email/message tasks, files, brand monitoring, and exports. Use for NoxInfluencer creator research, outreach operations, campaign/CRM/email/product/affiliate workflows, monitoring, files, or account setup.\nmetadata: {\"openclaw\":{\"requires\":{\"bins\":[\"noxinfluencer\"]},\"install\":[{\"kind\":\"node\",\"package\":\"@noxinfluencer/cli\",\"bins\":[\"noxinfluencer\"]}],\"homepage\":\"https://www.noxinfluencer.com/skills\"}}\n---\n\n# NoxInfluencer\n\nFull-workflow creator and marketing-ops skill for discovery, due diligence, platform email outreach, external contacts, known-video and future-content monitoring, spreadsheet/file workflows, operations, brand monitoring, and exports across YouTube, TikTok, and Instagram.\n\nThe user interacts through natural language. Execute CLI commands yourself and report results in plain language. Never expose raw commands to the user.\n\n## When to Use\n\n- User wants to find, evaluate, or contact creators / influencers / KOLs\n- User wants NoxInfluencer campaign, collection, CRM, email/message, product-center, short-link, affiliate, export, or brand-monitor operations\n- User needs to set up NoxInfluencer access or check quota\n- User wants to monitor video campaign performance\n- User hits an auth, quota, or CLI error\n\n## What This Skill Does Not Do\n\n- Draft outreach emails, negotiation copy, or partnership messages from scratch\n- Send email/message tasks or update CRM records without explicit user approval\n- Make final campaign budget allocation, media-plan, or partnership decisions\n- Generate creative briefs or interpret video content beyond available platform metrics\n- Operate external CRM, email, messaging, spreadsheet, or ad platforms outside NoxInfluencer\n- Replace legal or commercial review of contracts, disputes, or brand-safety decisions\n\n## Core Principles\n\n### Agent-First\n\nThe user does not operate the CLI. You do. Run commands silently, tell the user the result. Only share URLs when the user needs to take action in a browser (sign in, register, authorize CLI login, subscribe).\n\n### CLI Self-Description\n\nThe CLI is self-describing — use it instead of memorizing parameters:\n\n- **Parameters**: `noxinfluencer schema <cmd>` (e.g., `schema creator.search`; quoted path form `schema 'creator search'` also works)\n- **Help**: `noxinfluencer <cmd> --help`\n- **Diagnostics**: `noxinfluencer doctor`\n- **Cost planning**: `noxinfluencer pricing tools --charged-only` shows current server-side Skill Credit prices; `noxinfluencer quota usage --days 7` reviews recent consumption\n- **Login**: direct terminals can run `noxinfluencer login`; Agents/remote terminals use `login start --json` and `login wait <login_id>` (the CLI returns the user-safe authorization URL and code)\n- **Command-tree check**: `noxinfluencer schema --all` must include `creator`, `monitor`, `campaign`, `collection`, `email`, `message`, `crm`, `product`, `short-link`, `affiliation`, `brand-monitor`, `dispute`, `export`, `file`, `feedback`, `quota`, `pricing`, and `agent`\n- **Exit codes**: `noxinfluencer agent exit-codes`\n- **Preview**: `--dry-run` (shows request without executing)\n- **Language routing**: `--lang zh` switches all URLs to `cn.noxinfluencer.com`\n\n## Routing Cheat Sheet\n\nUse `noxinfluencer schema <cmd>` for exact parameters. Prefer broad command families over memorizing flags:\n\n- Creator sourcing: `creator search`, `creator search-filter*`, `creator not-interested ...`, `creator lookalikes`, `creator export*`, `creator lookalikes-export`\n- Creator reads: `creator profile/audience/content/cooperation`; use `creator contacts` only for visible/exported contacts\n- Monitoring: `monitor list/create/add-task/import-*/tasks/history/summary/report*`; use `monitor auto-track ...` for newly published creator content\n- Operations: `campaign`, `collection`, `crm`, `email`, `message`, `product`, `short-link`, `affiliation`, `export`, `file`\n- Brand monitoring: `brand-monitor ...`\n- Creator dispute due diligence: `dispute records/search/mine/get/report/update/withdraw`\n- Setup, quota, and pricing: `login`, `doctor`, `quota`, `quota usage`, `pricing`, `pricing tools`, `agent exit-codes`\n- Feedback: `feedback submit/inbox/get`\n\nIf the user does not have a `creator_id`, the first creator read may use `--url` or `--platform --channel-id`; afterwards preserve and reuse returned `creator_id`. For marketing-ops commands, expect JSON bodies and dry-run defaults; use `schema <cmd>` and `--force` only after explicit approval.\n\n### User Feedback\n\nIf the user wants to report a bug, confusing behavior, data issue, suggestion, or feature request, offer to submit feedback through `noxinfluencer feedback submit`. Ask for a short confirmation before sending. Attach screenshots or logs with `--file` when available. Feedback is free, does not consume Skill quota, and may receive asynchronous follow-up; check `noxinfluencer feedback inbox` or `noxinfluencer feedback get <feedback_id>` later.\n\n### Creator Disputes\n\nUse `feedback` for product, data, or CLI issues. Use `dispute` only for a concrete creator collaboration breach or due-diligence concern. Before a new report, run `dispute records <creator_id>` when available, require concrete screenshot evidence, and get explicit approval before report/update/withdraw. Private reports hide their description and evidence publicly, but not their type/count. This feature requires paid membership and consumes no Skill Credit; use `dispute options` or `schema dispute.report` for the current fields.\n\n---\n\n## 1. Getting Started\n\nRun `noxinfluencer doctor`, then fix only what is missing:\n\n1. No CLI or stale command tree → ask the user to install `@noxinfluencer/cli@latest`; verify with `schema --all`.\n2. No API key → use Device Flow. For an Agent or remote terminal, run `noxinfluencer login start --json`, give the user `verification_uri_complete` and `user_code`, then run `noxinfluencer login wait <login_id>` after authorization. On a direct terminal, `noxinfluencer login` does this in one command. `login --browser` is only for a local loopback callback. Manual API-key handoff is fallback only; use `auth --key-stdin`, never argv/logs or expose `device_code`.\n3. Configured → run `quota` and report blocking quota or entitlement issues.\n\n### Quota and Billing\n\nRun `quota` yourself and report the snapshot. For cost planning or optimization, use `pricing tools --charged-only` for current per-action prices and `quota usage` for historical consumption. API-backed calls may consume Skill quota and may also depend on SaaS-side capability quota or entitlement. If the response includes `action.url`, pass it to the user.\n\n---\n\n## 2. Discovering Creators\n\nTurn an open-ended search into a usable shortlist.\n\nAsk for only the missing essentials: platform, niche, region, creator size, and whether email signal matters. Search directly once the request is specific enough. Multi-platform sourcing requires separate platform searches.\n\nUse `schema creator.search` for flags. Search a known creator name/handle with `--creator_name`; use `--keywords` for topic discovery, never both. Put user-specified unwanted topics in `exclude_keywords`, and apply the SaaS cooperation, CRM communication, contacted-scope, and collection filters in the same search. Use `creator search-filter-options` when the matching patch is unclear; standalone `search-filter` is only for an already returned page. Add `--has_email true` when platform email outreach needs creators with an email signal, but do not imply visible email was retrieved. For pagination, reuse the prior filters and `data.search_after`; prefer a JSON body.\n\nOnly run `creator not-interested add` when the user explicitly asks to mark that creator as Not interested. Treat it as an approved, reversible mutation; a weak match or noisy result alone is not approval.\n\nCreator search and lookalike discovery charge by returned creator count, not by a fixed page request. Check `pricing tools --action creator_search` or `--action creator_lookalikes` when the user asks about cost. Default to smaller, purposeful pages for exploration; use larger pages only when the user asks for a broad shortlist or bulk follow-up.\n\n### Lookalike Discovery\n\nUse `creator lookalikes` when the user asks for creators similar to a source creator or URL. Treat results as recommendations, use the returned opaque `creator_id` values directly, and save them separately only after the user chooses targets.\n\n### Selected Result Exports\n\nUse `creator export` or `creator lookalikes-export` only after the user selects 1-100 returned `data.items[].id` values. Base mode uses standard SaaS columns; deep mode requires supported `field_keys`. Preserve lookalike `data.export_context` unchanged. Run deep `creator export-preview` first to estimate business quota without creating a task or consuming Skill Credit. Contact fields can consume contact quota. Poll approved export tasks through shared `export` commands.\n\n### Shortlist Presentation\n\nPresent 3–5 comparable candidates first: name, platform, size, performance, geography, tags, and why they match. If results are noisy, ask for one narrowing filter. Preserve `creator_id` for follow-up actions.\n\n---\n\n## 3. Analyzing Creators\n\nHelp the user decide whether a creator is worth pursuing. Lead with a verdict, not a wall of numbers.\n\nPrefer `creator_id` from prior results. Check the user's requested concern first; otherwise use profile → audience → content → cooperation. Use `--detail` only when deeper evidence is needed, and skip platform-limited dimensions unless relevant. Return verdict first, then evidence.\n\n### Verdict Framework\n\nUse one of four conclusions: high-priority, viable with risks, needs manual review, or not a priority. Always surface dispute/negative cooperation signals. See `{baseDir}/references/verdict-heuristics.md` for detailed heuristics.\n\n---\n\n## 4. Retrieving Contacts\n\nRetrieve visible contact info only when the user explicitly wants exported contact details, external outreach, or to use email outside NoxInfluencer.\n\nStrong rule: platform email outreach must not call `creator contacts` unless the user explicitly asks for visible/exported contact info. Use search/profile `creator_id` values in `email recipients add/replace`. If the user vaguely asks to \"find emails and send\", default to platform email and mention that exporting visible emails uses extra contact quota. Email sending may still consume the email service's own quota.\n\nWhen contacts are explicitly needed, run `creator contacts` for the selected creator and return only the visible contact info plus quality signal. If email is missing or low-confidence, say so plainly. Do not add outreach recommendations or restate creator metrics.\n\n---\n\n## 5. Tracking Performance\n\nManage video monitoring projects and tracked content. Operational only — manages monitoring, not performance judgment.\n\nList projects first when unclear. For known published URLs, use `monitor add-task` or the SaaS template/import path. Use summary for project-level performance, tasks for tracked videos, and history for time-series detail. Preserve stable IDs and returned `creator_id` values. Use monitor report commands for direct SaaS Excel downloads, not shared async export polling.\n\nFor ongoing creator monitoring, use `monitor auto-track`. Its Excel import validates every row before creating one rule; if it returns `failed_items`, fix the workbook and retry because no partial rule was created.\n\n---\n\n## 6. Marketing Ops\n\nOperate NoxInfluencer campaign, collection, CRM, email, message, product-center, short-link, affiliation, and export workflows. Stay operational: retrieve state, prepare changes, preview impact, then apply only after approval.\n\n### Workflow\n\n1. Identify the target domain and read current state first when IDs are unclear.\n2. For platform email outreach to creators found in NoxInfluencer, use the email-task path and add recipients by `creator_id`; do not retrieve contacts first. See the CLI schema and `{baseDir}/references/marketing-ops.md`.\n3. Use `message send` or `message schedule` only for existing `thread_id` replies. If no thread exists, offer the email-task path for platform creators.\n4. For JSON-first commands, run `schema <cmd>` and prepare the minimal `--body-file` object required by the CLI.\n5. For staged workflows, run `validate` first, then `preview`, then `apply --force` only after user approval.\n6. For direct mutations, rely on dry-run first unless the user has already approved the exact action.\n7. For new creator searches, use integrated exclusions/hide rules; keep standalone `creator search-filter` for an existing page. Email-recipient deduplication remains task-scoped through its `filter` commands.\n8. Use `short-link` for normal Nox short links only; use `affiliation` for Shopify affiliate campaigns, members, tracking links, discount codes, and performance reads.\n9. If Shopify store authorization is missing, send the user to SaaS; do not try to authorize stores inside the Skill.\n10. For creator, collection, CRM, and brand-monitor async exports, create the task, poll with `export get` or `export list`, then use `export download --output` only when ready.\n11. Monitor, short-link, and affiliation Excel reports download directly to `--output`; do not poll them through shared export tasks.\n12. Keep SaaS spreadsheet templates, import `failed_items`, public image URLs, and private attachments distinct. Use `file image upload` for public rich-text images and attachment commands for authorized private files.\n\nDo not draft outreach copy. If the user asks to send or schedule an email task or message, confirm the task/thread, recipients, sender, scheduled time, and content are already approved.\n\nSee `{baseDir}/references/marketing-ops.md` for domain routing, mutation guardrails, and export handling.\n\n---\n\n## 7. Brand Monitoring\n\nUse brand-monitor commands for owned/competitor brand analysis and brand asset exports. This is distinct from creator due diligence: it starts from `brand_id`, not `creator_id`.\n\n### Workflow\n\n1. List or get brand monitors when `brand_id` is unclear.\n2. Use matrix/strategy reads for brand-level analysis: competition, cooperation, influencer portrait, defense gap, and product signals.\n3. Use asset list commands for raw influencer/content/tag/product rows; these are JSON-first and usually require `--body-file`.\n4. Product signal commands currently support YouTube only. Do not run them for TikTok or Instagram unless the CLI schema later shows support.\n5. Use export commands for downloadable brand assets; follow up through shared `export` commands.\n6. Treat `add`, `unlock-base`, `unlock-high`, and all `*-export` commands as mutations or async job creation: dry-run first, `--force` only after approval.\n\nSee `{baseDir}/references/brand-monitor.md` for command routing and platform boundaries.\n\n---\n\n## Error Handling\n\nFor API-backed failures (`quota`, `pricing`, `creator`, `monitor`, `campaign`, `collection`, `email`, `message`, `crm`, `product`, `short-link`, `affiliation`, `brand-monitor`, `dispute`, `export`, `file`, `feedback`), use the CLI response's `action` field when present:\n- `action.url` — where the user should go\n- `action.hint` — what to do\n\nLocal/helper commands (`auth`, `doctor`, `schema`, `env`, `agent exit-codes`) may not include `action`. Read their native output directly instead of assuming the API error envelope.\n\nFor unexpected failures, run `doctor` as a first diagnostic step.\n\n## References\n\n- `{baseDir}/references/cli-response-format.md` — response envelope differences and error action handling\n- `{baseDir}/references/marketing-ops.md` — campaign, spreadsheet, file, email/message, report/export workflows and mutation guardrails\n- `{baseDir}/references/brand-monitor.md` — brand monitor routing, YouTube-only product signals, export boundaries\n- `{baseDir}/references/platform-support.md` — data availability by platform\n- `{baseDir}/references/search-filters.md` — filter selection by user intent\n- `{baseDir}/references/verdict-heuristics.md` — detailed due-diligence rules and output structure\n\nFile v0.1.16:_meta.json\n\n{\n  \"ownerId\": \"kn7dshs4yp3cmjb2ayrf4f69zn82c4wd\",\n  \"slug\": \"nox-influencer-marketing\",\n  \"version\": \"0.1.16\",\n  \"publishedAt\": 1785491621551\n}\n\nFile v0.1.16:references/brand-monitor.md\n\n# Brand Monitor Workflows\n\nUse brand-monitor commands for brand-level market intelligence and asset exports. This workflow starts from `brand_id`; do not substitute `creator_id`.\n\n## Routing\n\n| User intent | Command family |\n|-------------|----------------|\n| List available brand monitors | `brand-monitor list` |\n| Inspect one monitored brand | `brand-monitor get <brand_id>` |\n| Compare brand competition | `brand-monitor competition-matrix <brand_id>` |\n| Analyze cooperation strategy | `brand-monitor cooperate-matrix <brand_id>` |\n| Summarize influencer portrait | `brand-monitor influencer-portrait <brand_id>` |\n| Find defense gaps | `brand-monitor defense-gap <brand_id>` |\n| Read product trend/category signals | `brand-monitor product-pub-trend`, `product-category` |\n| Read product strategy signals | `brand-monitor product-sov-analysis`, `product-tae-analysis`, `product-pp-analysis`, `product-promotion-matrix`, `product-promotion-distinction` |\n| Query brand asset rows | `brand-monitor influencer-list`, `content-list`, `tag-list`, `product-list` |\n| Create brand asset exports | `brand-monitor influencer-export`, `content-export`, `tag-export`, `product-export` |\n| Add or unlock a monitored brand | `brand-monitor add`, `unlock-base`, `unlock-high` |\n\n## Platform Boundaries\n\n- Core brand monitor reads support YouTube, TikTok, and Instagram where the CLI schema permits.\n- Product signal commands currently support `youtube` only. Do not call product signal commands for TikTok or Instagram unless a future schema explicitly shows support.\n- Asset list commands are JSON-first. Use `--body-file` and inspect schema usage notes before building selectors.\n\n## Output Rules\n\n- Brand overview: report brand name, `brand_id`, access/data level, quota state, and obvious blockers.\n- Matrices and strategy reads: summarize top rows and the decision implication; do not dump every normalized field.\n- Asset lists: present comparable rows and include pagination state when present.\n- Product signals: state that the result is YouTube-only if the user asked for cross-platform analysis.\n- Exports: preserve `export_id` and route follow-up status/download through shared `export` commands.\n\n## Mutation Rules\n\n- `add`, `unlock-base`, `unlock-high`, and all `*-export` commands are mutations or async job creation.\n- Dry-run first unless the user already approved the exact brand and action.\n- Use `--force` only after approval.\n- For unlock operations, explain that quota/entitlement may be consumed before executing.\n\nFile v0.1.16:references/cli-response-format.md\n\n# CLI Response Format\n\n## API-backed Commands\n\nThese commands return the standard API envelope:\n\n- `creator ...`\n- `monitor ...`\n- `campaign ...`\n- `collection ...`\n- `email ...`\n- `message ...`\n- `crm ...`\n- `brand-monitor ...`\n- `dispute ...`\n- `export ...`\n- `quota`\n- `pricing`\n\nSuccessful responses include `success`, `data`, `summary`, and `meta`. Some current endpoints may also include a legacy compatibility field named `credits`.\n\nNotes:\n\n- Treat `quota` response data as the canonical Skill quota snapshot\n- `pricing` returns membership plans; `pricing tools` returns current server-side per-action Skill Credit prices\n- `quota usage` returns historical calls, credits, trend, and recent activity for cost analysis\n- Some current API envelopes may still include a legacy `credits` field for compatibility; do not treat it as the primary quota model\n- Mutation commands default to dry-run; `--force` executes the write after user approval\n- Non-GET writes automatically use `Idempotency-Key`; `--idempotency-key` can override it for automation\n- JSON-first commands declare `supports_body_file: true` in schema and require `--body-file`\n- `export download` writes binary data to `--output`, not stdout\n\nError responses include an `action` field with next-step guidance:\n\n```json\n{\n  \"success\": false,\n  \"error_code\": \"INSUFFICIENT_CREDIT\",\n  \"summary\": \"Insufficient credit quota\",\n  \"action\": {\n    \"type\": \"redirect\",\n    \"url\": \"https://www.noxinfluencer.com/skills/usage-billing\",\n    \"hint\": \"Open billing to renew or upgrade your available quota.\"\n  }\n}\n```\n\nThe current server may still use legacy wording like `INSUFFICIENT_CREDIT` or `Insufficient credit quota`. Interpret that as \"Skill quota is exhausted\" for user communication.\n\n## Local Commands (different format)\n\nThese commands have their own response structures — do not assume the API envelope:\n\n| Command | Response format |\n|---------|----------------|\n| `doctor` | `{ \"checks\": [...], \"ok\": boolean }` |\n| `auth` | `{ \"success\": boolean, \"message\": string }` |\n| `env` | `{ \"success\": true, \"data\": { \"environment\": string, \"server_url\": string } }` |\n| `schema` | Command schema JSON (no envelope) |\n| `agent exit-codes` | Stable CLI exit-code catalog |\n\n## Agent Diagnostics\n\n- Use `--trace-json` when a harness or eval needs structured request traces on stderr.\n- Use `schema --all` to verify the installed CLI exposes the expected modern command tree, including `campaign`, `collection`, `email`, `message`, `crm`, `product`, `short-link`, `affiliation`, `brand-monitor`, `dispute`, `export`, `feedback`, `quota`, `pricing`, and `agent`. Version output alone is not sufficient when a local/global install has stale compiled files. If reinstalling `@noxinfluencer/cli@latest` still lacks the expected command groups, stop the affected workflow and report a CLI package / command-tree mismatch.\n- Use `noxinfluencer agent exit-codes` to distinguish retryable failures such as rate limits or temporary upstream failures from invalid requests and auth problems.\n- Use `doctor` as the first diagnostic step when the failure cause is unclear.\n\nFile v0.1.16:references/marketing-ops.md\n\n# Marketing Ops Workflows\n\nUse this reference for NoxInfluencer campaign, collection, CRM, email, message, product, short-link, affiliation, creator dispute, file, report, and export operations. Keep command parameters runtime-discovered with `noxinfluencer schema <cmd>`.\n\n## Domain Routing\n\n| User intent | Start with |\n|-------------|------------|\n| Find or inspect campaigns | `campaign list`, `campaign get`, `campaign dashboard`, `campaign dropdown` |\n| Create or change campaign skeleton data | `campaign init`, `campaign create`, `campaign update`, `campaign delete` |\n| Find or inspect collections | `collection list`, `collection get`, `collection items`, `collection resources` |\n| Add creators from search/profile results to collections | `collection add-creators` |\n| Import owned creator links into one collection | `collection import-template`, then `collection import-file` |\n| Find creators similar to a source creator | `creator lookalikes` |\n| Export selected creator search/lookalike results | deep `creator export-preview`, then `creator export` / `creator lookalikes-export` |\n| Batch move/copy/delete/label collection members | `collection batch-* validate`, then `preview`, then `apply` |\n| Refresh collection base/email data or unlock audience | `collection refresh* validate`, then `preview`, then `apply` |\n| Add one whole collection and platform slice to CRM | `collection add-to-crm validate`, then `preview`, then `apply` |\n| Query, import, or update NoxInfluencer CRM channels | `crm list/get/update`, `crm import-template/import-file/import-report`, `crm groups ...` |\n| Manage CRM labels for batch tagging | `crm labels list/create/update/delete` |\n| Manage product-center records, images, and tags | `product list/get/create/update/delete`, `product image upload`, `product tags ...` |\n| Manage Shopify affiliate campaigns and members | `affiliation stores list`, then `affiliation campaigns ...` / `affiliation members ...`; use member template/import and campaign export for files |\n| Send platform email outreach to creators | `email create`, then `email recipients add/replace` with creator search/profile IDs, `email content save`, optional `email sender update`, optional `email attachments ...`, then `email send` or `email schedule` |\n| Manage email tasks | `email list`, `email drafts`, `email get`, `email create`, `email update`, `email recipients ...`, `email content ...`, `email sender ...`, `email report`, `email team-summary`, `email team-breakdown` |\n| Import email recipients | `email recipients import-template`, then `email recipients import-file` |\n| Manage email recipient deduplication | `email recipients filter options`, then `email recipients filter get/update/tasks` |\n| Manage email task collaborators | `email collaborators list`, then `replace/add/remove` |\n| Manage email task attachments | `email attachments list/upload/download/delete` |\n| Send or schedule an existing email task | `email send`, `email schedule`, `email cancel` |\n| Manage message threads and files | `message list/get/projects`, `message draft ...`, `message attachments ...`, `message templates attachments ...` |\n| Upload a public rich-text image | `file image upload`, then embed returned `file_url` in approved `html_body` |\n| Download direct Excel reports | `monitor report*`, `short-link export-*`, `affiliation campaigns export` |\n| Send or schedule an existing message reply | `message send`, `message schedule`, `message cancel` |\n| Submit product feedback or a bug report | `feedback submit`, then `feedback inbox` / `feedback get` |\n| Check or report a concrete creator collaboration dispute | `dispute records <creator_id>` first, then `dispute report` only with evidence and approval |\n| Inspect or download shared async exports | `export list`, `export get`, `export download` for creator, collection, CRM, and brand-monitor tasks |\n\n## Outreach Routing\n\n- For NoxInfluencer platform email outreach, do not call `creator contacts` first. Create or select an email task, add search/profile result `creator_id` values with `email recipients add/replace`, save user-approved content with `email content save`, set sender if needed, read back task and recipients, then ask for final approval before `email send --force` or `email schedule --force`.\n- Use `creator contacts` only when the user explicitly wants visible/exported contact info or outreach outside NoxInfluencer. If the user vaguely asks to \"find emails and send\", choose platform email by default and say exported email retrieval uses extra contact quota.\n- Email attachments belong to the email task primary project. Upload approved files with `email attachments upload <task_id> --file <path>` before send or schedule; use `email attachments list/download/delete` to inspect, retrieve, or remove files. Email tasks support at most 1 attachment, max 10MB. Uploading or deleting an attachment cancels an existing scheduled send, so read back the task and confirm again before scheduling.\n- If approved recipients come from Excel, download `email recipients import-template` and use `email recipients import-file <task_id>`. Do not invent spreadsheet columns.\n- Email recipient import is only available before the task enters its active send flow.\n- For one email task's reply reporting, use `email report <task_id>`. For multi-task or team-level reporting, use `email team-summary`; for SaaS team member breakdown, use `email team-breakdown`. Treat `reply_count` as email tracking replies, `replied_creator_count` as replied creators, and `inbound_message_count` as inbound reply messages. Team filters use SaaS team member `uid`, not Gmail or enterprise sender mailbox accounts. Do not recompute replies by manually scanning message threads unless the user explicitly asks for raw thread inspection.\n- If the user wants in-platform DM/message, `message send` and `message schedule` require an existing `thread_id`. If the user only has an email task ID, use `message list --business_kind email_task --business_id <task_id>` to resolve the thread first. Without a thread, say that starting a new message thread is not exposed by the CLI and offer the email-task path for platform creators.\n- For message-center filtering by task creator or team member, first run `message creator-filters`, then use returned `user_uid` values with `message list --creator_uids` or `message project-filters --creator_uids`.\n- For message-center pending work, trust `needs_reply` / `last_message_direction`; `deal` is not the same as `unread`. If one opened task is already replied but SaaS still shows pending, inspect sibling tasks with `message projects <thread_id>`. If the user says a pending message needs no reply, do not send an empty reply or archive the channel; say task-level mark-handled is not exposed yet.\n- Message draft/history attachments and message-template attachments are separate. Use `message attachments list/upload/download/delete` for thread files and `message templates attachments list/upload/download/delete` for reusable template files. Never reuse IDs across the two paths. One template supports at most 2 private attachments, max 10MB each.\n- Use `file image upload` for public inline images in approved email/message `html_body`. The returned `file_url` is public and is not a private email, message, or template attachment.\n- `crm add-to-email` is only for adding existing NoxInfluencer CRM channels to an existing email task. Do not treat CRM as required when the user already has creator IDs or explicit email addresses.\n\n## Affiliate Marketing\n\n- Use `affiliation` for Shopify affiliate stores, campaigns, members, tracking links, discount codes, and performance reads. This is separate from normal `short-link`.\n- Start with `affiliation stores list`. If no store is authorized or access is denied, ask the user to authorize/manage the store in SaaS; do not attempt store authorization in the Skill.\n- Add NoxInfluencer creators to affiliate campaigns with search/profile `creator_id`, or use `platform + channel_id` / `custom_id` when the CLI schema calls for it.\n- For owned creator links, download `affiliation members import-template` and submit `\n\nArchive v0.1.15: 9 files, 19804 bytes\n\nFiles: references/brand-monitor.md (2527b), references/cli-response-format.md (3098b), references/marketing-ops.md (11469b), references/platform-support.md (3100b), references/search-filters.md (3983b), references/verdict-heuristics.md (3619b), skill-card.md (3224b), SKILL.md (13746b), _meta.json (144b)\n\nArchive v0.1.14: 9 files, 19678 bytes\n\nFiles: references/brand-monitor.md (2527b), references/cli-response-format.md (3098b), references/marketing-ops.md (11469b), references/platform-support.md (3100b), references/search-filters.md (3572b), references/verdict-heuristics.md (3619b), skill-card.md (3409b), SKILL.md (13560b), _meta.json (144b)\n\nArchive v0.1.13: 9 files, 18595 bytes\n\nFiles: references/brand-monitor.md (2527b), references/cli-response-format.md (2886b), references/marketing-ops.md (10782b), references/platform-support.md (3100b), references/search-filters.md (3082b), references/verdict-heuristics.md (3619b), skill-card.md (3167b), SKILL.md (12476b), _meta.json (144b)\n\nArchive v0.1.12: 9 files, 18224 bytes\n\nFiles: references/brand-monitor.md (2527b), references/cli-response-format.md (2886b), references/marketing-ops.md (10170b), references/platform-support.md (3100b), references/search-filters.md (3082b), references/verdict-heuristics.md (3619b), skill-card.md (2731b), SKILL.md (12249b), _meta.json (144b)\n\nArchive v0.1.11: 9 files, 21685 bytes\n\nFiles: references/brand-monitor.md (2527b), references/cli-response-format.md (2886b), references/marketing-ops.md (9860b), references/platform-support.md (3100b), references/search-filters.md (3076b), references/verdict-heuristics.md (3619b), skill-card.md (2989b), SKILL.md (23288b), _meta.json (144b)\n\nArchive v0.1.10: 9 files, 20095 bytes\n\nFiles: references/brand-monitor.md (2527b), references/cli-response-format.md (2770b), references/marketing-ops.md (6934b), references/platform-support.md (3100b), references/search-filters.md (2469b), references/verdict-heuristics.md (3619b), skill-card.md (3193b), SKILL.md (21792b), _meta.json (144b)\n\nArchive v0.1.9: 9 files, 19150 bytes\n\nFiles: references/brand-monitor.md (2527b), references/cli-response-format.md (2770b), references/marketing-ops.md (5041b), references/platform-support.md (3100b), references/search-filters.md (2469b), references/verdict-heuristics.md (3619b), skill-card.md (2833b), SKILL.md (21414b), _meta.json (143b)","readmeExcerpt":"Skill: Nox Influencer - Creator Discovery & Influencer Marketing Owner: noxinfluencer Summary: Operate NoxInfluencer creator intelligence and marketing systems through the CLI, including search, analysis, contacts, monitoring, campaigns, CRM, outreach operations, products, affiliation, brand intelligence, exports, account setup, quota, and troubleshooting. Use when a task calls for NoxInfluen Tags: latest:0.1.18 Vers","codeSnippets":[],"executableExamples":[{"language":"json","snippet":"{\n  \"success\": false,\n  \"error_code\": \"INSUFFICIENT_CREDIT\",\n  \"summary\": \"Insufficient credit quota\",\n  \"action\": {\n    \"type\": \"redirect\",\n    \"url\": \"https://www.noxinfluencer.com/skills/usage-billing\",\n    \"hint\": \"Open billing to renew or upgrade your available quota.\"\n  }\n}"},{"language":"json","snippet":"{\n  \"success\": false,\n  \"error_code\": \"INSUFFICIENT_CREDIT\",\n  \"summary\": \"Insufficient credit quota\",\n  \"action\": {\n    \"type\": \"redirect\",\n    \"url\": \"https://www.noxinfluencer.com/skills/usage-billing\",\n    \"hint\": \"Open billing to renew or upgrade your available quota.\"\n  }\n}"},{"language":"json","snippet":"{\n  \"success\": false,\n  \"error_code\": \"INSUFFICIENT_CREDIT\",\n  \"summary\": \"Insufficient credit quota\",\n  \"action\": {\n    \"type\": \"redirect\",\n    \"url\": \"https://www.noxinfluencer.com/skills/usage-billing\",\n    \"hint\": \"Open billing to renew or upgrade your available quota.\"\n  }\n}"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: noxinfluencer\ndescription: Operate NoxInfluencer creator intelligence and marketing systems through the CLI, including search, analysis, contacts, monitoring, campaigns, CRM, outreach operations, products, affiliation, brand intelligence, exports, account setup, quota, and troubleshooting. Use when a task calls for NoxInfluencer data, records, or execution capabilities.\nmetadata: {\"openclaw\":{\"requires\":{\"bins\":[\"noxinfluencer\"]},\"install\":[{\"kind\":\"node\",\"package\":\"@noxinfluencer/cli\",\"bins\":[\"noxinfluencer\"]}],\"homepage\":\"https://www.noxinfluencer.com/skills\"}}\n---\n\n# NoxInfluencer\n\nNoxInfluencer execution skill for creator intelligence and marketing operations across YouTube, TikTok, and Instagram. Turn business intent into valid CLI operations, verified system state, and evidence the wider marketing workflow can use for its next decision.\n\nThe user interacts through natural language. Execute CLI commands yourself and report results in plain language. Never expose raw commands to the user.\n\n## When to Use\n\n- User wants NoxInfluencer creator intelligence, records, or execution capabilities\n- User wants creator search, analysis, contact retrieval, monitoring, exports, campaign, collection, CRM, email/message, product-center, short-link, affiliate, or brand-monitor operations through NoxInfluencer\n- User needs to set up NoxInfluencer access or check quota\n- User hits an auth, quota, or CLI error\n\n## Business Collaboration\n\nContribute NoxInfluencer-backed creator evidence and operations to the user's wider marketing workflow. Begin from the current objective, business decision, and approved operating rule; return results in business language with the verified IDs and system state needed for the next step.\n\nUse the appropriate business-management or writing capability to shape strategy, creator-fit judgment, outreach copy, negotiation positions, creative briefs, and lifecycle decisions. This Skill then supplies the NoxInfluencer data and execution those decisions require. Carry an active manager or Campaign's goals, stage definitions, and decision rights through every operation so both layers reinforce the same business logic.\n\nExternal writes follow the user's approved action or operating rule. Important commercial commitments are presented with their material terms for the user's or qualified reviewer's decision.\n\n## Core Principles\n\n### Agent-First\n\nThe user does not operate the CLI. You do. Run commands silently, tell the user the result. Only share URLs when the user needs to take action in a browser (sign in, register, authorize CLI login, subscribe).\n\n### CLI Self-Description\n\nThe CLI is self-describing — use it instead of memorizing parameters:\n\n- **Parameters**: `noxinfluencer schema <cmd>` (e.g., `schema creator.search`; quoted path form `schema 'creator search'` also works)\n- **Help**: `noxinfluencer <cmd> --help`\n- **Diagnostics**: `noxinfluencer doctor`\n- **Local auth state**: `noxinfluencer auth status` reads persisted or en"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7dshs4yp3cmjb2ayrf4f69zn82c4wd\",\n  \"slug\": \"nox-influencer-marketing\",\n  \"version\": \"0.1.18\",\n  \"publishedAt\": 1788428722560\n}"},{"path":"references/brand-monitor.md","content":"# Brand Monitor Workflows\n\nUse brand-monitor commands for brand-level market intelligence and asset exports. This workflow starts from `brand_id`; do not substitute `creator_id`.\n\n## Routing\n\n| User intent | Command family |\n|-------------|----------------|\n| Find a known brand by name | `brand-monitor search <keyword>` |\n| Discover brands by category or market | `brand-monitor rank --body-file <path>` |\n| List this account's monitored, unlocked, or sample brands | `brand-monitor list` |\n| Inspect one monitored brand | `brand-monitor get <brand_id>` |\n| Compare brand competition | `brand-monitor competition-matrix <brand_id>` |\n| Analyze cooperation strategy | `brand-monitor cooperate-matrix <brand_id>` |\n| Summarize influencer portrait | `brand-monitor influencer-portrait <brand_id>` |\n| Find defense gaps | `brand-monitor defense-gap <brand_id>` |\n| Read product trend/category signals | `brand-monitor product-pub-trend`, `product-category` |\n| Read product strategy signals | `brand-monitor product-sov-analysis`, `product-tae-analysis`, `product-pp-analysis`, `product-promotion-matrix`, `product-promotion-distinction` |\n| Query brand asset rows | `brand-monitor influencer-list`, `content-list`, `tag-list`, `product-list` |\n| Create brand asset exports | `brand-monitor influencer-export`, `content-export`, `tag-export`, `product-export` |\n| Add or unlock a monitored brand | `brand-monitor add`, `unlock-base`, `unlock-high` |\n\n## Discovery Boundaries\n\n- `search` queries the global brand catalog and returns opaque `brand_id` values; `page_size` defaults to 20 and is capped at 50.\n- `rank` is JSON-first and returns one entitlement-limited result set, not a pageable catalog. Compare `requested_limit`, `effective_limit`, and `returned_count` before describing coverage.\n- `consumer electronic` at category level 1 is a broad 3C category, not an exhaustive smartphone taxonomy.\n- Treat `countries` as ranking query context. Do not infer brand registration country or local market share without separate supporting data.\n\n## Platform Boundaries\n\n- Core brand monitor reads support YouTube, TikTok, and Instagram where the CLI schema permits.\n- Product signal commands currently support `youtube` only. Do not call product signal commands for TikTok or Instagram unless a future schema explicitly shows support.\n- Asset list commands are JSON-first. Use `--body-file` and inspect schema usage notes before building selectors.\n\n## Output Rules\n\n- Brand overview: report brand name, `brand_id`, access/data level, quota state, and obvious blockers.\n- Matrices and strategy reads: summarize top rows and the decision implication; do not dump every normalized field.\n- Asset lists: present comparable rows and include pagination state when present.\n- Product signals: state that the result is YouTube-only if the user asked for cross-platform analysis.\n- Exports: preserve `export_id` and route follow-up status/download through shared `export` commands.\n\n## Mutation Rules\n\n- `add`,"},{"path":"references/cli-response-format.md","content":"# CLI Response Format\n\n## API-backed Commands\n\nThese commands return the standard API envelope:\n\n- `creator ...`\n- `monitor ...`\n- `campaign ...`\n- `collection ...`\n- `email ...`\n- `message ...`\n- `crm ...`\n- `brand-monitor ...`\n- `dispute ...`\n- `export ...`\n- `quota`\n- `pricing`\n\nSuccessful responses include `success`, `data`, `summary`, and `meta`. Some current endpoints may also include a legacy compatibility field named `credits`.\n\nNotes:\n\n- Treat `quota` response data as the canonical Skill quota snapshot\n- `pricing` returns membership plans; `pricing tools` returns current server-side per-action Skill Credit prices\n- `quota usage` returns historical calls, credits, trend, and recent activity for cost analysis\n- Some current API envelopes may still include a legacy `credits` field for compatibility; do not treat it as the primary quota model\n- Mutation commands default to dry-run; `--force` executes the write after user approval\n- Non-GET writes automatically use `Idempotency-Key`; `--idempotency-key` can override it for automation\n- JSON-first commands declare `supports_body_file: true` in schema and require `--body-file`\n- `export download` writes binary data to `--output`, not stdout\n\nError responses include an `action` field with next-step guidance:\n\n```json\n{\n  \"success\": false,\n  \"error_code\": \"INSUFFICIENT_CREDIT\",\n  \"summary\": \"Insufficient credit quota\",\n  \"action\": {\n    \"type\": \"redirect\",\n    \"url\": \"https://www.noxinfluencer.com/skills/usage-billing\",\n    \"hint\": \"Open billing to renew or upgrade your available quota.\"\n  }\n}\n```\n\nThe current server may still use legacy wording like `INSUFFICIENT_CREDIT` or `Insufficient credit quota`. Interpret that as \"Skill quota is exhausted\" for user communication.\n\n## Local Commands (different format)\n\nThese commands have their own response structures — do not assume the API envelope:\n\n| Command | Response format |\n|---------|----------------|\n| `doctor` | `{ \"checks\": [...], \"ok\": boolean }` |\n| `auth` | `{ \"success\": boolean, \"message\": string }` |\n| `env` | `{ \"success\": true, \"data\": { \"environment\": string, \"server_url\": string } }` |\n| `schema` | Command schema JSON (no envelope) |\n| `agent exit-codes` | Stable CLI exit-code catalog |\n\n## Agent Diagnostics\n\n- Use `--trace-json` when a harness or eval needs structured request traces on stderr.\n- Use `schema --all` to verify the installed CLI exposes the expected modern command tree, including `campaign`, `collection`, `email`, `message`, `crm`, `product`, `short-link`, `affiliation`, `brand-monitor`, `dispute`, `export`, `feedback`, `quota`, `pricing`, and `agent`. Version output alone is not sufficient when a local/global install has stale compiled files. If reinstalling `@noxinfluencer/cli@latest` still lacks the expected command groups, stop the affected workflow and report a CLI package / command-tree mismatch.\n- Use `noxinfluencer agent exit-codes` to distinguish retryable failures such as rate limits or temporary upstream failur"},{"path":"references/marketing-ops.md","content":"# Marketing Ops Workflows\n\nUse this reference for NoxInfluencer campaign, collection, CRM, email, message, product, short-link, affiliation, creator dispute, file, report, and export operations. Keep command parameters runtime-discovered with `noxinfluencer schema <cmd>`.\n\n## Domain Routing\n\n| User intent | Start with |\n|-------------|------------|\n| Find or inspect campaigns | `campaign list`, `campaign get`, `campaign dashboard`, `campaign dropdown` |\n| Create or change campaign skeleton data | `campaign init`, `campaign create`, `campaign update`, `campaign delete` |\n| Find or inspect collections | `collection list`, `collection get`, `collection items`, `collection resources` |\n| Add creators from search/profile results to collections | `collection add-creators` |\n| Import owned creator links into one collection | `collection import-template`, then `collection import-file` |\n| Find creators similar to a source creator | `creator lookalikes` |\n| Export selected creator search/lookalike results | deep `creator export-preview`, then `creator export` / `creator lookalikes-export` |\n| Batch move/copy/delete/label collection members | `collection batch-* validate`, then `preview`, then `apply` |\n| Refresh collection base/email data or unlock audience | `collection refresh* validate`, then `preview`, then `apply` |\n| Add one whole collection and platform slice to CRM | `collection add-to-crm validate`, then `preview`, then `apply` |\n| Query, import, or update NoxInfluencer CRM channels | `crm list/get/update`, `crm import-template/import-file/import-report`, `crm groups ...` |\n| Manage CRM labels for batch tagging | `crm labels list/create/update/delete` |\n| Manage product-center records, images, and tags | `product list/get/create/update/delete`, `product image upload`, `product tags ...` |\n| Manage Shopify affiliate campaigns and members | `affiliation stores list`, then `affiliation campaigns ...` / `affiliation members ...`; use member template/import and campaign export for files |\n| Send standalone platform email outreach to creators | `email create`, then `email recipients add/replace` with search `data.items[].id` or creator read `data.creator_id` in the recipient `creator_id` field, `email content save`, `email sender list [task_id]` before optional `email sender update`, optional `email attachments ...`, then `email send` or `email schedule` |\n| Add recipients to an intelligent Campaign fixed task | Use the SaaS intelligent Campaign page; the current CLI cannot discover or write fixed tasks safely |\n| Manage email tasks | `email list`, `email drafts`, `email get`, `email create`, `email update`, `email recipients ...`, `email content ...`, `email sender ...`, `email report`, `email team-summary`, `email team-breakdown` |\n| Import email recipients | `email recipients import-template`, then `email recipients import-file` |\n| Manage email recipient deduplication | `email recipients filter options`, then `email recipients filter get/update/tas"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":2395,"uniquenessScore":38,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T14:57:23.965Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T14:57:23.965Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T07:04:31.045Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}