Tags: indranilbanerjee/contentforge
Tags
release: v3.16.0 — Reliability & Truth release (five-layer deep audit… … implemented) Full-repo audit (orchestration / agents / skills / scripts / configs) implemented end to end. 115 files, tests 53 -> 143. Orchestration: checkpointing wired into the master skill (Step 0 init, per-phase saves, loop counters, pending_rework), Pipeline Contract table (reads/writes/gate/loop-target per phase), orchestrator-owned gates verified via new text-metrics.py, no-brand + no-web modes, honest sequential batch orchestrator (success = reviewer-approved >=7.0). Agents: user interaction hoisted out of subagents (title curation + image approvals orchestrator-owned via needs_user_decision), fact-checker paywall/SERP fixes, Phase 6->6.5 protected-structure manifest, reviewer industry weights fully specified, ~50 dangling slash refs fixed. Skills: connector docs match shipped empty .mcp.json, cf-brief rewritten for AEO/GEO (LSI/density dogma removed), EU AI Act Article 50 disclosure step in cf-publish, YouTube Shorts + TikTok long-form, command/skill twins collapsed to thin wrappers. Configs: scoring-thresholds.json single source of truth (10 gates incl. new Phase 8 gate), humanizer 29->35 patterns + defined AI-signal formula, social specs add TikTok/Bluesky/YouTube Shorts + per-platform ai_disclosure, 10 industry packs enriched + dated. Scripts: new _common.py (single slugifier fixes Cowork sync-path bug, atomic writes, UTF-8 guard, real exit codes), checkpoint-manager meta/loop/pending-rework, pipeline-tracker --run-id, generate-docx image embedding + TOC + footer + nested lists, Airtable injection fix, Drive pagination. 90 new tests incl. release-consistency drift locks. Canonical claim corrected: 10 phases + Step 0.5, 10 quality gates. Co-Authored-By: Claude Fable 5 <[email protected]>
release: v3.15.3 — README sync patch (Release notes catch-up) CF's specific gap: Release notes section still ended at v3.15.0 -- v3.15.1 (release-consistency tests) and v3.15.2 (market refresh) had shipped without README updates here. FIXED (CF README) - Added v3.15.3, v3.15.2, v3.15.1 entries to "## Release notes" - README hero callout + Supported surfaces heading + version badge all bumped to v3.15.3 CHANGED - All 9 CF version declarations 3.15.2 -> 3.15.3 Tests: 53/53 passing. Zero runtime change. Co-Authored-By: Claude Opus 4.7 <[email protected]>
release: v3.15.2 — June 2026 market-refresh sync Mirrors DMP v3.14.0 sweep into ContentForge. Docs-only — no pipeline behavior change. ADDED - Model registry rebuilt to 47 entries verified against vendor primary docs (Anthropic / OpenAI / Google). Same canonical content as DMP+SF. - scripts/resolve_model.py: now unconditionally rewrites `retired` model IDs to replacement_id; new --check-params scanner flags unsafe temperature/top_p/top_k near Claude Opus 4.7+. - docs/MODEL-CURATOR.md refresh: aliases table + new section on Claude parameter compatibility for Opus 4.7+. CHANGED - All 9 version declarations 3.15.1 -> 3.15.2 - README hero callout rewritten - Registry last_updated 2026-06-28 Tests: 53/53 passing. Co-Authored-By: Claude Opus 4.7 <[email protected]>
release: v3.15.1 — release-consistency test suite (+30 tests, 23 -> 53) New tests/test_release_consistency.py catches: - 7-manifest version drift (5 Claude-family + Hermes plugin.yaml + OpenClaw) - README version-badge / hero callout / supported-surfaces heading staleness - CHANGELOG header out-of-sync with canonical version - byte-identical descriptions across 5 Claude-family manifests - description mentions actual `21 skills` count - README test-count badge matches actual `def test_*` count - 7 native-platform install commands present in README - 12 critical README sections present (Why ContentForge, Supported surfaces, Quick start, What ContentForge does, Architecture, Connectors, Troubleshooting, Updating, FAQ, Cross-platform compatibility, Release notes, 8-platform name mentions) - every internal anchor link in README resolves to a real heading All 8 version declarations bumped 3.15.0 -> 3.15.1. Hero callout + test badge updated. Suite: 53/53 passing. Co-Authored-By: Claude Opus 4.7 <[email protected]>
v3.15.0: native Hermes Agent + OpenClaw + test suite Brings ContentForge into parity with DMP v3.13.0+ on cross-platform support. Added - Native Hermes Agent plugin - plugin.yaml at repo root with required fields (name, version, description, author, license, homepage). Zero env vars, zero hooks. - __init__.py at repo root exposing register(ctx). Walks skills/ and exposes all 21 CF skills via ctx.register_skill(). Defensive coding throughout - stdlib only, never raises. - Install: hermes plugins install indranilbanerjee/contentforge - Targets Hermes Desktop v0.15.2+ - Spec: https://hermes-agent.nousresearch.com/docs/guides/build-a-hermes-plugin Added - Native OpenClaw manifest - openclaw.plugin.json at repo root with id + configSchema (required) plus optional name/description/version/skills: ['./skills']. - Install: openclaw plugins install git:github.com/indranilbanerjee/contentforge - Spec: https://docs.openclaw.ai/plugins/manifest Added - Test suite (0 -> 23) - tests/test_hermes_adapter.py (12 tests): plugin.yaml schema, adapter import smoke, register() against mock ctx, graceful degradation on bad ctx / None, version consistency between plugin.yaml and __init__.py - tests/test_openclaw_manifest.py (11 tests): manifest exists, id required + kebab-case + matches Claude plugin name, configSchema validation, skills field points at ./skills directory, version matches canonical, no unexpected top-level fields, cross-manifest version consistency - tests/run_all.py runs all: 23/23 passing Changed - All 5 platform manifests bumped to v3.15.0 - README 'Supported surfaces' table: 6 rows -> 8 (added Hermes + OpenClaw) - Added '35+ additional Agent Skills platforms' callout Zero impact on existing Claude Code / Cowork / Codex / Cursor / Copilot CLI / Antigravity behavior - each platform reads its own manifest path. Co-Authored-By: Claude Opus 4.7 <[email protected]>
v3.14.0: distribution & context-efficiency polish - Plugin descriptions trimmed to ~150 chars across all 5 manifests - Skill count corrected from 19 to 21 - README hero rewritten pain-first - Context-efficiency callout added to 10 heaviest skills - (Topics curated via gh CLI separately) Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
v3.12.10: closes 3 roadmap items + fixes /plugin scope error
Roadmap items closed (all three from v3.12.9):
1. Brand profile read-back from Drive on session start
- cf-style-guide Step 0: agent checks Drive first, downloads
profile.json via MCP if found, skips re-creation
- cf-style-guide Step 6.5: agent uploads new profile to Drive
after save (when Cowork+Drive configured)
2. Cross-session checkpoint resume in Cowork
- checkpoint-manager.save_phase auto-marks each saved artifact as
pending upload (writes to _sync-pending.json) when Cowork+Drive
config exists
- output-manager Step D0b consumes _sync-pending.json after each
phase, uploads via Drive MCP, marks as uploaded
- resume command Step 0 pulls run dir from Drive first when in
Cowork, then existing checkpoint-manager resume logic works
3. Multi-team namespace isolation
- cf-cowork-setup Step 4 asks user for Drive root folder name
(default: "ContentForge"); different teams pick different names
- All ops use this root via drive-sync-state read-config
- Implicit isolation; no shared state collision
New scripts/drive-sync-state.py is the single source of truth for
local-side sync state (Cowork config, per-brand profile hash, per-run
pending list). Stdlib only. Architecture: Python writes state markers,
agent reads them and performs Drive transfers via MCP (because Python
subprocess can't call MCP tools directly).
_shared/cf_drive_sync_test_harness.py adds 15 tests covering all
state transitions + 2 integration tests with checkpoint-manager.
All 15 pass.
Also fixed: /plugin scope error in README + MEMORY. The /plugin
slash command family was wrongly documented as working in Cowork --
verified wrong via Indranil's live Cowork testing. /plugin works only
in Claude Code (CLI + IDE extension). In Cowork, plugin management
is via UI panel. Plugin-defined skills like /contentforge:* still
work everywhere.
What still needs live Cowork validation (orchestration layer):
- Profile read-back from Drive on subsequent sessions
- Resume across closed/reopened Cowork sessions
- Multi-team data isolation
(Python side fully tested; MCP interactions only verifiable in live
Cowork session.)
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
v3.12.9: Cowork is the recommended team env, with Drive routing
User feedback: Cowork is the friendliest Anthropic surface for non-CLI
marketing teams; "I want my team to use these things on the plugin in
Cowork". v3.12.8 told them to switch to local Claude Code instead --
which contradicts how teams actually want to work.
v3.12.9 fixes this properly with environment-aware output routing:
* agents/08-output-manager.md Step D0: probes environment first; in
Cowork, scans for any Drive MCP (Anthropic platform, Pipedream,
Composio, Zapier, Make) and uploads the final .docx to
My Drive/ContentForge/{brand}/{type}/{YYYY-MM}/ via the MCP tool.
Completion card shows Drive URL, not a non-existent Windows path.
Falls back to a clear warning + 3 recovery options if no Drive MCP.
* commands/brand-setup.md: Step G.0 now probes environment FIRST,
then connectors. Decision matrix splits Cowork vs Local. In Cowork
with Drive, brand profile JSON saves to Drive (persists across
sessions, team-shareable). In Cowork without Drive, walks user
through Cowork Settings -> Integrations -> Google Drive (60 sec).
* skills/cf-cowork-setup/ NEW. /contentforge:cf-cowork-setup is the
one-shot wizard: verifies Cowork env, finds Drive MCP, creates the
canonical Drive folder layout, saves config so future sessions
auto-route. Run once after install; team uses ContentForge normally
from then on.
* skills/cf-environment/SKILL.md: Cowork matrix split into two
columns (Cowork+Drive = recommended for teams, all checks; Cowork
alone = session-only). Removed the "use local Claude Code instead"
framing. Cowork+Drive IS the full team setup now.
* README cross-platform section rewritten. Lead row: "Anthropic
Cowork + Google Drive = Recommended for teams". Added "How to
pick" decision guide: marketing teams -> Cowork+Drive; solo
developers -> local Claude Code; on-prem-only -> local Claude Code.
Honest roadmap kept open in CHANGELOG:
- Cross-session checkpoint resume in Cowork (needs checkpoint-manager
to write to Drive too) -- queued v3.12.10
- Drive-as-input (subsequent sessions reading existing brand profile
from Drive) -- queued v3.12.10
- Multi-team isolation in shared Drive _brands/ folder -- needs work
for 50+ client agencies
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
PreviousNext