$npx -y skills add indranilbanerjee/contentforge --skill cf-helpShow the ContentForge user guide, available skills, pipeline overview, examples, and troubleshooting
| 1 | # /contentforge:cf-help |
| 2 | |
| 3 | Show the ContentForge user guide with live plugin state (version, asset counts, connector counts, runtime environment) pulled from disk — not hardcoded — plus pipeline overview, available skills, usage examples, and troubleshooting. |
| 4 | |
| 5 | ## CRITICAL: never hardcode version, asset counts, or connector counts |
| 6 | |
| 7 | Versions and counts in this plugin used to be baked into this skill body as |
| 8 | literal version strings and count strings ("Agents: 13 · Skills: 19 · |
| 9 | Connectors: 9 HTTP + 19 npx"). Those drifted out of sync with the actual |
| 10 | install every release (reported by users in v3.12.7 testing: "I'm on 3.12.7, |
| 11 | but the help output shows an old version"). |
| 12 | |
| 13 | **Always read live values from `scripts/plugin-metadata.py`. Never quote a |
| 14 | version number, skill count, agent count, or connector count from memory or |
| 15 | from this skill body.** |
| 16 | |
| 17 | ## Behavior |
| 18 | |
| 19 | ### Step 1 — Fetch live plugin metadata |
| 20 | |
| 21 | Run **first**, every time this skill is invoked (any argument or none): |
| 22 | |
| 23 | ```bash |
| 24 | python scripts/plugin-metadata.py --section all-with-environment |
| 25 | ``` |
| 26 | |
| 27 | This returns JSON with `version`, `assets` (agent/skill/command/script counts), |
| 28 | `connectors` (HTTP + npx counts), `skills` list, `commands` list, |
| 29 | `pipeline_phases` list (read from agent file names), and `environment` |
| 30 | (detects Cowork sandbox vs local Claude Code, with a warning if filesystem |
| 31 | writes won't reach the user's host). |
| 32 | |
| 33 | Substitute the values from this JSON into every place the help output |
| 34 | references a count, a version, or a slash-command list. Do **not** invent |
| 35 | or quote numbers from elsewhere. |
| 36 | |
| 37 | ### Step 2 — Default rendering (no args) |
| 38 | |
| 39 | Render a clean help overview using the live data. Suggested format: |
| 40 | |
| 41 | ``` |
| 42 | === CONTENTFORGE === |
| 43 | Version: <version from JSON> |
| 44 | Agents: <agents> | Skills: <skills_total> | Commands: <commands> | Scripts: <scripts> |
| 45 | Connectors: <available_http> HTTP + <available_npx> npx available |
| 46 | (<active_count> currently active in your .mcp.json) |
| 47 | Cowork-compatible: <cowork_compatible_count> (HTTP only — npx connectors don't run in Cowork) |
| 48 | Environment: <environment from JSON> |
| 49 | <if environment.cowork_warning is non-null, show it as a WARNING block> |
| 50 | |
| 51 | Getting Started: |
| 52 | 1. /contentforge:brand-setup -- Configure brand voice, terminology, guardrails |
| 53 | 2. /contentforge:cf-integrations -- See which connectors are active |
| 54 | 3. /contentforge:create-content -- Run the full content pipeline |
| 55 | 4. /contentforge:cf-help --examples -- Worked example workflows |
| 56 | ``` |
| 57 | |
| 58 | ### Step 3 — Cowork warning (when applicable) |
| 59 | |
| 60 | If `environment.cowork_warning` is non-null, surface it prominently after |
| 61 | the orientation block: |
| 62 | |
| 63 | ``` |
| 64 | ⚠ COWORK SANDBOX DETECTED |
| 65 | <cowork_warning text from JSON> |
| 66 | |
| 67 | What this means in practice: |
| 68 | - File writes to ~/Documents/ContentForge/ and ~/.claude-marketing/ |
| 69 | land inside the sandbox, NOT on your Windows / macOS host |
| 70 | - Files persist only for this Cowork session |
| 71 | - The full /contentforge:create-content pipeline can run, but the |
| 72 | dual-copy save and per-phase checkpointing target the sandbox FS |
| 73 | - For full host-filesystem behavior, run ContentForge in local |
| 74 | Claude Code (CLI or VS Code / JetBrains IDE extension) instead |
| 75 | ``` |
| 76 | |
| 77 | ### Step 4 — Argument routing |
| 78 | |
| 79 | | Argument | What to render | |
| 80 | |----------|---------------| |
| 81 | | (none) | Steps 2 + 3 + Quick command list | |
| 82 | | `--pipeline` | Steps 2 + 3 + full phase-by-phase overview (use `pipeline_phases` from JSON) | |
| 83 | | `--skills` | Steps 2 + 3 + list every skill from JSON `skills` array with slash command + description | |
| 84 | | `--commands` | Steps 2 + 3 + list every command from JSON `commands` array with slash command + description | |
| 85 | | `--connectors` | Steps 2 + 3 + redirect: "For active/available connector status, run /contentforge:cf-integrations" | |
| 86 | | `--examples` | Steps 2 + 3 + the worked-example workflows (see below) | |
| 87 | | `--troubleshoot` | Steps 2 + 3 + troubleshooting matrix (see below) | |
| 88 | | `--brand` | Steps 2 + 3 + brand setup methods (see below) | |
| 89 | |
| 90 | When rendering the skills/commands list, **iterate over the JSON arrays** — |
| 91 | do not paste a hand-maintained list. Each row should show the |
| 92 | `slash_command` field as the user-facing label and the `description` field |
| 93 | as the explanation. |
| 94 | |
| 95 | ### Pipeline phase rendering (--pipeline) |
| 96 | |
| 97 | The pipeline phases come from agent file names (`01-researcher.md` → |
| 98 | "Phase 01: Researcher"). Iterate `pipeline_phases` from the JSON and render |
| 99 | phase + role + description. Add this preamble: |
| 100 | |
| 101 | ``` |
| 102 | === CONTENTFORGE PIPELINE (10 phases) === |
| 103 | Step 0.5: Title Curation runs BEFORE Phase 1 (SERP recon + 4-5 SEO title options; |
| 104 | user selects before draft starts). |
| 105 | |
| 106 | Quality gates: composite score >=7.0 to pass | max 2 loops per phase | |
| 107 | 3-layer verification (Fact Checker -> Scientific Validator -> Reviewer). |
| 108 | ``` |
| 109 | |
| 110 | Then lis |