{
  "skills": [
    {
      "id": "skl_brand_voice",
      "name": "brand-voice",
      "plugin": "cwc-product-management",
      "description": "Brand-voice playbook for the subagentjobs.com family — read subagentbrands.com's existing brand_guidelines, and when asked to add a new one, ground it in a real quoted example pulled from an actual sibling-site file (never invented), then record it durably after operator confirmation. Also covers tailoring an on-brand message to its actual audience (a coworker, the operator, an external reader) without drifting off-voice in the process. Use when the user asks \"discover brand voice\", \"what is our brand voice\", \"check brand guidelines\", \"audit brand voice\", \"add a brand guideline\", \"is this on-brand\", \"brand voice for subagentjobs\", \"does this match our voice\", \"brand voice audit\", \"write this update for <audience>\", or pastes a piece of copy and asks whether it fits the family's tone. Do NOT use this to search Notion, Confluence, Google Drive, Box, Microsoft 365, Figma, Gong, Granola, or Slack — none of those platforms are connected in this environment; see \"What's different in this adaptation\" before assuming enterprise-platform discovery applies here.",
      "summary": "Brand-voice playbook for the subagentjobs.com family — read subagentbrands.com's existing brand_guidelines, and when asked to add a new one, ground it in a real quoted example pulled from an actual sibling-site file (never invented), then record it durably after operator confirmation.",
      "gated": 1,
      "source_path": "plugins/cwc-product-management/skills/brand-voice/SKILL.md",
      "created_at": "2026-07-10 18:13:13",
      "cite_as": "https://subagentskills.com/api/skills/skl_brand_voice"
    },
    {
      "id": "skl_citation_curation",
      "name": "citation-curation",
      "plugin": "cwc-product-management",
      "description": "Record verbatim, programmatically-verified quotes from the mirrored docs corpora as durable, doubly-typed citation rows in this plugin's citations/*.citations.jsonl — each row carries BOTH the Anthropic Citations API shape (1:1 with subagentcitations.com's D1 columns, char_location) AND a real CSL-JSON item validated against the vendored citation-style-language schema (vendors/citation-style-language/schema, mirrored in this skill's references/csl-data.json). Preloaded by the three sonnet-5 curator agents (cowork-/claude-tag-/office-agents-citation- curator); also usable directly. Use when the user says \"cite the doc for X\", \"store that quote\", \"curate citations\", \"verify the citation store\", \"publish citations\". All row I/O goes through scripts/cite.py (extract/add/verify/publish-body) — the script refuses any quote that is not an exact substring of the source file. Do NOT use for cataloging/organizing docs (docs-librarian skill) or for paraphrases — verbatim quotes only.",
      "summary": "Record verbatim, programmatically-verified quotes from the mirrored docs corpora as durable, doubly-typed citation rows in this plugin's citations/*.citations.jsonl — each row carries BOTH the Anthropic Citations API shape (1:1 with subagentcitations.com's D1 columns, char_location) AND a real CS...",
      "gated": 0,
      "source_path": "plugins/cwc-product-management/skills/citation-curation/SKILL.md",
      "created_at": "2026-07-10 18:13:13",
      "cite_as": "https://subagentskills.com/api/skills/skl_citation_curation"
    },
    {
      "id": "skl_citations_indexeddb",
      "name": "citations-indexeddb",
      "plugin": "cwc-product-management",
      "description": "Python client + ingester for the IndexedDB-pattern store pinned in schemas/INDEXEDDB-COWORKERS.md — the durable, queryable home of the operator-chosen 11 gh_orgs datasets (scripts/chrome-output) and every citations/*.citations.jsonl row, at ~/Library/Application Support/Coworkers/IndexedDB (the Claude.app-copycat location; jsonl records, deliberately NOT LevelDB). Use when the user wants to ingest/refresh the store (\"ingest the datasets\", \"refresh the grounding store\"), run grounding lookups (\"resolve this citation\", \"which repos ground cit_X\", \"query gh_repositories by language/org/stars\"), or check store health (\"verify the store\", exit 2 on any spec-invariant failure). All I/O goes through `uv run citations-indexeddb ingest|query|resolve|verify`. Swift parity: the same contract's client is CoworkersModel/GitHubOrgs.swift; tests/test_swift_parity.py reads it at test time. Do NOT use for authoring/verifying verbatim quotes (citation-curation's cite.py owns that), and never write into Claude.app's own IndexedDB directory or modify scripts/chrome-output.",
      "summary": "Python client + ingester for the IndexedDB-pattern store pinned in schemas/INDEXEDDB-COWORKERS.md — the durable, queryable home of the operator-chosen 11 gh_orgs datasets (scripts/chrome-output) and every citations/*.citations.jsonl row, at ~/Library/Application Support/Coworkers/IndexedDB (the C...",
      "gated": 0,
      "source_path": "plugins/cwc-product-management/skills/citations-indexeddb/SKILL.md",
      "created_at": "2026-07-10 18:13:13",
      "cite_as": "https://subagentskills.com/api/skills/skl_citations_indexeddb"
    },
    {
      "id": "skl_dependency_contracts",
      "name": "dependency-contracts",
      "plugin": "cwc-product-management",
      "description": "The PRODUCT view of cross-worker dependencies in the subagent*.com fleet: which runtime_fetch edges in workers/build-graph.json are intentional product surface (backed by a durable contract row on subagentcontracts.com) vs incidental coupling that merely works today. Use when the user asks \"who depends on this route\", \"can we break/rename this API\", \"add a cross-site fetch\", \"dependency contracts\", \"uncontracted edges\", \"is this dependency contracted\", wants the add-a-dependency or deprecate-a-route policy, or wants the uncontracted-edge backlog worked. Do NOT use for kit-import build staleness or rebuild sequencing (`worker-build.sh --stale` is cwc-engineering's discipline — this skill only cites it), for implementing the fetch code itself (cwc-engineering), or for shipping the deploy (cwc-deploy).",
      "summary": "The PRODUCT view of cross-worker dependencies in the subagent*.com fleet: which runtime_fetch edges in workers/build-graph.json are intentional product surface (backed by a durable contract row on subagentcontracts.com) vs incidental coupling that merely works today.",
      "gated": 0,
      "source_path": "plugins/cwc-product-management/skills/dependency-contracts/SKILL.md",
      "created_at": "2026-07-10 18:13:13",
      "cite_as": "https://subagentskills.com/api/skills/skl_dependency_contracts"
    },
    {
      "id": "skl_docs_librarian",
      "name": "docs-librarian",
      "plugin": "cwc-product-management",
      "description": "Maintain the plugin's library/ catalogs — JSON indexes mapping every doc in the three mirrored corpora (cowork+plugins+skills, claude-tag+connectors, office-agents under docs/docs/claude.com/docs/) to the cwc-product-management skills, src/coworkers Swift surfaces, subagent*.com primitives, and memory/vN directives it grounds. Preloaded by the three haiku librarian agents (cowork-/claude-tag-/office-agents-librarian); also usable directly. Use when the user says \"organize the docs\", \"refresh the catalog\", \"librarian pass\", \"which doc grounds X\", \"catalog coverage\". All catalog I/O goes through scripts/catalog.py (files/status/upsert/ validate) — deterministic, stdlib-only, schema-enforcing. Do NOT use for pulling verbatim citation rows (citation-curation skill) or for editing the docs themselves — corpora are read-only.",
      "summary": "Maintain the plugin's library/ catalogs — JSON indexes mapping every doc in the three mirrored corpora (cowork+plugins+skills, claude-tag+connectors, office-agents under docs/docs/claude.com/docs/) to the cwc-product-management skills, src/coworkers Swift surfaces, subagent*.com primitives, and m...",
      "gated": 0,
      "source_path": "plugins/cwc-product-management/skills/docs-librarian/SKILL.md",
      "created_at": "2026-07-10 18:13:13",
      "cite_as": "https://subagentskills.com/api/skills/skl_docs_librarian"
    },
    {
      "id": "skl_feature_spec",
      "name": "feature-spec",
      "plugin": "cwc-product-management",
      "description": "Write a feature spec for subagentjobs work BEFORE it becomes cards on the Coworkers board (src/coworkers) or an edge in dependency-contracts — problem statement, goals/non-goals, and P0/P1/P2 requirements that map directly onto real Card(content, priority, owner) rows, not a generic PRD template. Use when the user asks to \"spec this feature\", \"write a PRD\", \"scope this idea\", \"what should this feature actually do\", \"break this into P0/P1/P2\", or hands PM a vague ask that needs turning into board-ready cards before sprint-board can assign it a lane. Do NOT use for roadmap sequencing across multiple features (product-strategy), for an already-scoped cross-worker API promise (dependency-contracts), or for assigning already-written cards to lanes (sprint-board) — this skill's job ends where a spec becomes a set of Card rows ready to place.",
      "summary": "Write a feature spec for subagentjobs work BEFORE it becomes cards on the Coworkers board (src/coworkers) or an edge in dependency-contracts — problem statement, goals/non-goals, and P0/P1/P2 requirements that map directly onto real Card(content, priority, owner) rows, not a generic PRD template.",
      "gated": 0,
      "source_path": "plugins/cwc-product-management/skills/feature-spec/SKILL.md",
      "created_at": "2026-07-10 18:13:13",
      "cite_as": "https://subagentskills.com/api/skills/skl_feature_spec"
    },
    {
      "id": "skl_fivetran_rollout_decomposition",
      "name": "fivetran-rollout-decomposition",
      "plugin": "cwc-product-management",
      "description": "Decompose the coworkers/ Fivetran multi-connector data-storage project (Slack, cloudflare-analytics, github, gmail connectors + connector_registry/connector_runs/source_tables in coworkers/data-infra) into atomic tasks with subtasks, and own the one green-light approval gate before any task is handed to cwc-engineering for implementation. Use when the user asks to \"decompose the fivetran rollout\", \"break down the connector project\", \"what tasks are next\", \"what's the next atomic task for fivetran\", \"plan the connector rollout\", \"greenlight the next connector task\", or asks for the task/subtask breakdown of wiring Slack or cloudflare-analytics to real data. Do NOT use for narrating why this project exists or keeping the registry-counts/ doc-provenance story current (cwc-analytics-engineering's data-vision-runbook skill owns the vision narrative) and do NOT use for writing connector/schema/API code yourself (cwc-engineering's engineering-playbook owns implementation) — this skill's job ends the moment a task is approved and hands off.",
      "summary": "Decompose the coworkers/ Fivetran multi-connector data-storage project (Slack, cloudflare-analytics, github, gmail connectors + connector_registry/connector_runs/source_tables in coworkers/data-infra) into atomic tasks with subtasks, and own the one green-light approval gate before any task is ha...",
      "gated": 0,
      "source_path": "plugins/cwc-product-management/skills/fivetran-rollout-decomposition/SKILL.md",
      "created_at": "2026-07-10 18:13:13",
      "cite_as": "https://subagentskills.com/api/skills/skl_fivetran_rollout_decomposition"
    },
    {
      "id": "skl_product_strategy",
      "name": "product-strategy",
      "plugin": "cwc-product-management",
      "description": "Product-strategy discipline for the subagent*.com business: positioning (user ≠ buyer), one named north-star metric with guardrails, and a now/next/later roadmap where every item carries its gate owner (finance spend gate, legal attorney gate, PM north-star check). Use when shaping strategy artifacts — investor decks, roadmaps, positioning docs — or when reviewing finance/legal outputs for product coherence. Trigger on \"product strategy\", \"positioning\", \"north star\", \"roadmap\", \"now/next/later\", or when a deck/plan mixes audience, metric, and sequencing questions.",
      "summary": "Product-strategy discipline for the subagent*.com business: positioning (user ≠ buyer), one named north-star metric with guardrails, and a now/next/later roadmap where every item carries its gate owner (finance spend gate, legal attorney gate, PM north-star check).",
      "gated": 0,
      "source_path": "plugins/cwc-product-management/skills/product-strategy/SKILL.md",
      "created_at": "2026-07-10 18:13:13",
      "cite_as": "https://subagentskills.com/api/skills/skl_product_strategy"
    },
    {
      "id": "skl_session_documentation",
      "name": "session-documentation",
      "plugin": "cwc-product-management",
      "description": "The PRODUCT-MANAGEMENT workflow that turns a finished work session into a durable, browsable record in apps/coworkers-console/sessions/ — deciding a session is worth documenting, driving cwc-design's session-record-html scaffold, filling it with verified narrative anchored to the session's own real trace (traceId/spanId from src/coworkers' Telemetry.swift, when the session ran through the Coworkers board), and placing the session's plan/tracker artifacts alongside it under the session identifier. Use when the user says \"record this session\", \"document what we did\", \"put the artifacts in coworkers-console\", \"session record for <coworker>\", or after a multi-task plan completes and its evidence should outlive the chat. Do NOT reimplement the HTML template or the scaffold script — those belong to cwc-design (skills/session-record-html); this skill orchestrates them and owns file placement + the anti-fabrication gate. Do NOT use for the live coworkers-console dashboard (index.html + serve.py), which is engineering's.",
      "summary": "The PRODUCT-MANAGEMENT workflow that turns a finished work session into a durable, browsable record in apps/coworkers-console/sessions/ — deciding a session is worth documenting, driving cwc-design's session-record-html scaffold, filling it with verified narrative anchored to the session's own re...",
      "gated": 0,
      "source_path": "plugins/cwc-product-management/skills/session-documentation/SKILL.md",
      "created_at": "2026-07-10 18:13:13",
      "cite_as": "https://subagentskills.com/api/skills/skl_session_documentation"
    },
    {
      "id": "skl_skill_catalog_audit",
      "name": "skill-catalog-audit",
      "plugin": "cwc-product-management",
      "description": "Catalog-integrity audit across every cwc-* coworker plugin: diffs (a) skills/ dirs on disk vs (b) the plugin.json \"skills\" array vs (c) IDENTITY.json skills[] names, reporting unregistered dirs (16 SKILL.md-bearing ones existed on 2026-07-09 — the motivating incident), dead plugin.json entries pointing at missing dirs, and IDENTITY staleness that needs a plugins/_schema/generate.py rerun. Use when the user asks \"are all skills registered\", \"audit the skill catalog\", \"is plugin.json in sync with skills/\", \"is IDENTITY.json stale\", \"which skills are orphaned\", or before/after a batch that adds or removes skill directories. Do NOT use to fix the drift it reports (edit each plugin.json by hand; IDENTITY/BRAND are machine-generated — rerun plugins/_schema/generate.py + validate.py, never hand-edit them), to validate IDENTITY shape/content (that is validate.py + scripts/coworkers/schema.py), or for the fleet-wide roster overview (cwc-human-resources' coworker-census).",
      "summary": "Catalog-integrity audit across every cwc-* coworker plugin: diffs (a) skills/ dirs on disk vs (b) the plugin.json \"skills\" array vs (c) IDENTITY.json skills[] names, reporting unregistered dirs (16 SKILL.md-bearing ones existed on 2026-07-09 — the motivating incident), dead plugin.json entries po...",
      "gated": 0,
      "source_path": "plugins/cwc-product-management/skills/skill-catalog-audit/SKILL.md",
      "created_at": "2026-07-10 18:13:13",
      "cite_as": "https://subagentskills.com/api/skills/skl_skill_catalog_audit"
    },
    {
      "id": "skl_sprint_board",
      "name": "sprint-board",
      "plugin": "cwc-product-management",
      "description": "Run the weekly product-management sprint-planning cadence against the REAL Coworkers board (src/coworkers — a live, tested SwiftUI app, not a spec) — jointly with cwc-data-engineering. Sets Sprint.goal (Sun→Sat UTC, computed by SprintWeek.bounds), assigns backlog Cards to coworker lanes via Board.lane(for:), and reviews the weekly session-telemetry the board itself appends to telemetry.jsonl. Grounded in the actual Cowork VM session/data model (docs/cowork/3p/data-storage.md) that CoworkersStore copycats. Use when the user asks to plan the sprint, set weekly strategy, assign tasks to coworkers, review the weekly board/telemetry metrics, or groom the backlog. Trigger on \"sprint planning\", \"weekly strategy\", \"assign tasks\", \"board review\", \"backlog grooming\", \"Coworkers board\". Do NOT use for the data model itself (that's cwc-data-engineering's session-telemetry-erd) or the SwiftUI view code (cwc-swift-engineering) — this skill operates the board, it doesn't build it.",
      "summary": "Run the weekly product-management sprint-planning cadence against the REAL Coworkers board (src/coworkers — a live, tested SwiftUI app, not a spec) — jointly with cwc-data-engineering.",
      "gated": 0,
      "source_path": "plugins/cwc-product-management/skills/sprint-board/SKILL.md",
      "created_at": "2026-07-10 18:13:13",
      "cite_as": "https://subagentskills.com/api/skills/skl_sprint_board"
    },
    {
      "id": "skl_wbr_deep_dive",
      "name": "wbr-deep-dive",
      "plugin": "cwc-product-management",
      "description": "The PM's Monday-to-Wednesday deep-dive cadence on top of the WBR warehouse: Monday 10:00 PST cwc-data-engineering delivers reports/wbr/wbr-<week_label>.xlsx (their SLA); Mon/Tue the PM reads it and leads with the 3-5 largest |WoW| exceptions, consulting any coworker's domain (skills/, memory/, reports/<domain>/ digests, live APIs) with every consultation recorded per finding; Wednesday 10:00 PST ships reports/wbr/<week_label>.md in the prior week's voice, with ranked recommendations that each name a dim_metric metric_id, a gate owner, and the disposition ledger of last week's recommendations. Every number is quoted from a workbook cell or an rpt_wbr row — the model computes nothing. Trigger on \"wbr deep dive\", \"monday deep dive\", \"wednesday report\", \"weekly report\". Extends cwc-data's weekly-business-review discipline — never replaces it.",
      "summary": "The PM's Monday-to-Wednesday deep-dive cadence on top of the WBR warehouse: Monday 10:00 PST cwc-data-engineering delivers reports/wbr/wbr-<week_label>.xlsx (their SLA); Mon/Tue the PM reads it and leads with the 3-5 largest |WoW| exceptions, consulting any coworker's domain (skills/, memory/, re...",
      "gated": 0,
      "source_path": "plugins/cwc-product-management/skills/wbr-deep-dive/SKILL.md",
      "created_at": "2026-07-10 18:13:13",
      "cite_as": "https://subagentskills.com/api/skills/skl_wbr_deep_dive"
    }
  ]
}