14a's cold command-rationalization found ZERO redundancy across the 27 commands (no defensible merge/cut), so the operator reframed S14 from "merge/cut" to "add a journey layer over the kept atomics". - Add /linkedin:create + /linkedin:measure — delegate-only guided front-doors (Read/Glob/AskUserQuestion only; route to the command that owns the work) - Re-tier commands/linkedin.md into 5 journeys (Start/Create/Engage/Measure/Grow); onboarding/strategy elevated as Start/Grow front-doors; Engage = calendar+firsthour tier - 14a honesty nits: router now lists firsthour; calendar cross-links to firsthour; competitive confirmed UNGATED (the claimed 1K-gating inconsistency was unfounded) - Lockstep: EXPECT_COMMANDS 27->29, v4.0.0->4.1.0 across plugin.json / README badges / plugin+root CLAUDE.md / README / CHANGELOG; new README commands-badge lint guard - 14a deliverable corrected: multiplatform entry added (26/27 -> 27/27), header counts, competitive nit withdrawn - Independent /trekreview (2 Opus reviewers) raised 3 MAJORs (stale commands badge, router competitive self-contradiction, STATE.md count) — ALL remediated in-session; verdict ALLOW Gate: test-runner.sh 74/0/0; node --test 98/98; commands=29; v4.1.0 consistent. Additive/minor — no command removed/renamed/behavior-changed; reload registers create+measure. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
40 KiB
Command-Surface Rationalization — Step 14a
Remediation Voyage, command-surface pass. Independent, COLD read of all 27
command files in commands/*.md (full bodies, not just frontmatter), with the
router (commands/linkedin.md), CLAUDE.md, and README.md as the map of the
intended surface. Written 2026-05-30. ANALYSIS ONLY — no command file was edited,
merged, deleted, or renamed; the single deliverable is this document.
Correction (post-review, 2026-05-30). The first pass omitted
multiplatform(covered 26/27) and mis-stated two group-header counts; it also raised acompetitive1K-gating inconsistency that did not survive verification. All three are fixed below:multiplatformnow has its own entry (Group B), the Group C/F headers read 3/5, and thecompetitivenit is withdrawn (CLAUDE.md:64, README:222, the router, and the command body all leave it ungated). Net finding is unchanged — keep 27, 0 merge, 0 cut — now genuinely covering all 27.
Method note
The fixtures here are the command files themselves — each command's purpose,
its full workflow body, its frontmatter description (the trigger-phrase set that
governs how it gets invoked), and the sibling surfaces it touches. The discipline
is borrowed verbatim from docs/remediation/overlap-measurement.md (whose SUBJECT
is the 7 long-form review agents, not the commands — kept strictly separate
here): for every overlap I apply the subsumption test — does either command's
catch-set / surface fully contain the other's? — and the trim rule: merge or
cut ONLY where a command catches nothing a sibling doesn't; if the redundancy is
justified, record it and KEEP; if I can't decide, record "inconclusive — retain
pending operator view" and do NOT trim. Default-to-keep under uncertainty. This
plugin already over-grew once (24→27), so the bias is honest-surface, not
consolidation-for-its-own-sake and not growth-for-its-own-sake. Every
recommendation is grounded in a citable trigger set, workflow step, or sibling
surface — no taste-based cuts.
A leverage note used throughout: a command's invocation leverage is the
product of (a) trigger-phrase breadth in its description and (b) how likely a
user is to actually type the intent when a broader command already catches it.
A command whose entire trigger set is a strict subset of a broader command's, and
which adds no unique workflow, is the classic merge/cut candidate.
Group A — Entry / router (1)
linkedin (router)
- Purpose — Status line (weekly progress, streak, follower phase) + upcoming/overdue queue + a menu/router that disambiguates to the right subcommand.
- Overlap with siblings — Structurally overlaps every command (it lists them), but that is its job, not redundancy. No subsumption either way: the router holds no content-production surface, the leaf commands hold no menu/status surface.
- Invocation leverage — Highest-traffic entry point: triggers on the bare
"linkedin","/linkedin","linkedin help". This is the front door. - Recommendation — keep.
- Rationale — Structural and the single highest-leverage surface. Judged on grouping honesty: the grouping is broadly honest (Getting Started / Content Creation / Strategy / Post-Publish / Growth+Monetization), and it correctly soft-gates the 1K commands. One honest-surface nit for the operator (not a cut): it lists
post-feedback-monitoras an agent under "Post-Publish Monitoring" but does not list the new/linkedin:firsthourcommand in that section — the router's own map is one release behind the surface it routes to.
Group B — Short-form creation (7)
post
- Purpose — Full interactive post creation (angle → format → draft → quality/de-AI gate → refine), targeting 1,200–1,800-char substantial posts.
- Overlap with siblings —
quick(short 150–500-char path),react(URL-sourced),pipeline(post + schedule + monitor). Subsumption test:postdoes NOT subsumequick(different length band + 3-line formula + 8 templates) andquickdoes not subsumepost(no refinement cycle, nocontent-optimizerdelegation).postis the body thatpipelinewraps butpipelineadds scheduling/queue/first-hour thatpostlacks; neither subsumes the other. - Invocation leverage — Very high; broad trigger set ("create linkedin post", "write a post", "turn this into a post"). Core entry point alongside
quick. - Recommendation — keep.
- Rationale — Distinct length/depth tier with a unique refinement+optimizer surface; one of the two highest-traffic creation commands.
quick
- Purpose — 5-minute 3-line-formula post (150–500 chars) AND the home of the 8 post-type templates (reaction/tip/observation/hot-take/failure/question/curation/one-liner).
- Overlap with siblings —
post(longer tier),first-post(which explicitly reusesquick's 3-line formula). Subsumption test:quickuniquely owns the template library and the short-length band;postowns the long band. The two are explicitly cross-referenced ("When to Upgrade →/linkedin:post"). No subsumption. - Invocation leverage — High; broad trigger set including the absorbed
templatesintent ("post template", "give me a template", "fill in the blank post"). This absorption was the v2.0.0 consolidation — confirmed intact in the body (Step 1 hosts the template library). - Recommendation — keep.
- Rationale — Holds the unique short-form length tier + the entire template surface that
templateswas folded into. Cutting it would orphan the templates.
react
- Purpose — URL-to-post pipeline: fetch external content (article/news/research/YouTube), extract, pick a reaction angle, draft in voice; includes a multi-URL comparison path.
- Overlap with siblings —
post(could in principle ingest a URL via WebFetch —postStep 1 even mentions "If they provide a URL, use WebFetch"). Subsumption test:reacthas a unique surfacepostlacks — the multi-source comparison/synthesis path (Steps 1b–8b), the content-type→angle table tuned to reactions, and the "react, don't summarize / your take is the hook" discipline.postdoes not subsume that.reactdoes not subsumepost(no general-topic drafting). - Invocation leverage — High and unambiguous: "react to this", "this article", "this url", "share this news". The router routes any bare URL here. A user with a link will not naturally type
/linkedin:post. - Recommendation — keep.
- Rationale — Genuinely unique URL-ingestion + multi-source-synthesis surface and a distinct, frequently-typed intent.
pipeline
- Purpose — End-to-end lifecycle orchestrator: ideation → draft → optimize → schedule/queue → 5x5x5 pre-engagement → publish → first-hour → 48h analysis.
- Overlap with siblings — This is the densest overlap node. It re-does
post's drafting (Step 2),calendar's queueing (Step 4 Option 3 calls the samequeue-manager.mjsqueueAdd), the 5x5x5/first-hour plan (now alsofirsthour's job), and points toanalyzeat the end. Subsumption test: no single sibling subsumespipeline— it is the only command that strings the whole chain into one guided run with explicit step gates. Butpipelineis itself a thinner re-statement ofpost+calendar(+firsthour): every individual capability it offers exists, more developed, in those leaf commands (its draft step is a condensedpost; its schedule step is a condensedcalendar; its first-hour step is a condensedfirsthour). - Invocation leverage — Moderate-to-low as a natural type. Trigger set ("pipeline", "full workflow", "end to end", "idea to post") is narrow and jargon-y; in practice a user wanting to create+schedule will type
/linkedin:postthen/linkedin:calendar. It reads as a workflow-orchestrator showcase more than a daily entry point. - Recommendation — keep (with a flag) — leaning inconclusive.
- Rationale — No clean subsumption (it uniquely sequences the chain), so the trim rule says retain. But it is the surface most worth the operator's scrutiny: its value is the orchestration, and that value erodes as
post/calendar/firsthoureach grow richer thanpipeline's inlined condensations. Flagged in the honest-uncertainty list. If the operator ever wants to shrink the surface, this is the first place a defensible merge could be argued (→post, preserving the explicit schedule+first-hour hand-off chain) — but the evidence does not compel it.
carousel
- Purpose — Structured slide-by-slide carousel/document generator with template selection, per-slide copy, caption, de-AI gate, and optional mcp-image slide generation.
- Overlap with siblings —
multiplatform(has a "LinkedIn → Presentation Slides" template) andpost(notes "could also work as a carousel — run/linkedin:carousel"). Subsumption test:multiplatform's slide template is a 10-line generic outline;carouselis a full format engine (5 templates, per-slide char rules, mcp-image generation, carousel quality checklist).multiplatformdoes not remotely subsume it.carouselowns the highest-engagement organic format end-to-end. - Invocation leverage — High and specific: "carousel", "slide deck", "pdf post", "swipe post", "document post". A distinct format intent users type directly.
- Recommendation — keep.
- Rationale — Deep, unique format surface with image generation; not subsumed by anything.
video
- Purpose — Video script generator (talking-head/screen-rec/slideshow, 30s–2min) with pacing/visual/energy cues, captions, thumbnail, first comment, a video quality gate, and delegation to
video-scripter. - Overlap with siblings —
multiplatform("LinkedIn → YouTube Script" template). Subsumption test:multiplatform's YouTube template is a generic timing outline;videois a full LinkedIn-native scripting engine (word-budget math, muted-autoplay test, completeness gate,video-scripteragent). No subsumption — and they target different platforms (LinkedIn-native vs. YouTube adaptation). - Invocation leverage — High and specific: "video script", "talking head script", "record a video". Direct format intent.
- Recommendation — keep.
- Rationale — Unique LinkedIn-native video surface + dedicated agent; the
multiplatformoverlap is a thin adaptation template, not a substitute.
multiplatform
- Purpose — Adapt existing LinkedIn content for other platforms: a Twitter/X thread, a generic presentation deck, or a YouTube script. Long-form is explicitly routed out to
/linkedin:newsletter. - Overlap with siblings —
carousel(its "Presentation Slides" template) andvideo(its "YouTube Script" template). Subsumption test:multiplatform's slide/YouTube blocks are ~10-line generic outlines, whilecarouselis a full LinkedIn-native carousel engine andvideoa full LinkedIn-native scripting engine — neither subsumes the other, and they target different outputs (LinkedIn-native vs. Twitter / YouTube / generic deck). Critically, the Twitter/X-thread adaptation path exists in no other command. No subsumption. - Invocation leverage — Moderate; "adapt for twitter", "cross-post", "repurpose for", "turn into thread". A distinct cross-platform intent, but lower-traffic than the native creation commands.
- Recommendation — keep (flag: develop-candidate).
- Rationale — Unique cross-platform / Twitter surface; subsumption fails as a cut. But it is the thinnest command in the set — the only one that inlines static templates instead of delegating, where the
content-repurposeragent already exists to power a richer adaptation. Keep now; a future develop (wirecontent-repurposer, deepen the per-platform output) is the defensible improvement, not a merge/cut.
Group C — Long-form (3)
newsletter
- Purpose — The single long-form orchestrator: a fixed 16-phase, multi-session pipeline (research → skeleton/spine gates → draft → fact-check → editorial → persona sweep → headless review → visual assets → lock → hook gate → schedule) with maintained edition-state.
- Overlap with siblings —
headless-reviewandpivotare phases/companions of this command (Step 6.5 and the lock-precondition re-open). Subsumption test:newsletterinvokes the headless package inline (Step 6.5) and runs the pivot heuristic as a lock precondition (Step 8) — so it functionally contains both. But containment ≠ the companions are redundant (see their entries: the value is fresh-session isolation and a named re-open ritual, whichnewslettercannot itself provide). No short-form command overlaps it;multiplatformexplicitly routes all long-form here. - Invocation leverage — High for its niche; the sole entry for "newsletter", "long-form", "essay", "series article".
- Recommendation — keep.
- Rationale — The entire long-form spine; nothing else does this and everything long-form routes to it.
headless-review
- Purpose — Cold/adversarial review package run on a FROZEN draft with starved context —
content-reviewer+language-reviewer+fact-reviewer+persona-reviewer(resonance/conversion), consolidated into one operator-gated report. Standalone surface fornewsletterStep 6.5. - Overlap with siblings —
newsletter(Step 6.5 fans the same package inline). Subsumption test: this is the calibration case (c) the brief flags. DoesnewsletterStep 6.5 subsumeheadless-review? No — and the command's own body states why: the cardinal value is Layer 1 fresh-session isolation ("the parent itself then has no drafting transcript"). When the package runs inline inside the draftingnewslettersession it carries exactly the framing-bias the package exists to eliminate. The standalone command is the only way to get a genuinely cold parent context. So the standalone surface has a unique catch (true independence) the inline phase structurally cannot. - Invocation leverage — Moderate; specific trigger set ("headless review", "cold review", "adversarial review", "review the frozen draft"). Niche but real, and the recommended path is to type it in a fresh session — which is precisely an action a phase cannot perform.
- Recommendation — keep — justified standalone, not merely-as-a-phase.
- Rationale — Subsumption fails in the independence dimension: the fresh-session parent is a capability the
newsletterphase cannot replicate. This is the "redundancy is justified — record and keep" case, mirroring the agent-overlap finding for the cold trio inoverlap-measurement.md.
pivot
- Purpose — A named ritual to re-open an already-cleared long-form edition after a substantive late change: logs
pivots[], resetscurrentPhase, un-locks, invalidates downstream verdicts, marks which gates must re-pass. Includes the >20%/>2-section heuristic. - Overlap with siblings —
newsletter(which runs the same heuristic as a Step 8 lock precondition and owns the gate re-runs). Subsumption test (calibration case c): doesnewslettersubsumepivot? Partially but not fully.newsletterStep 8 detects drift and stops the lock, but it explicitly points the operator to/linkedin:pivotto perform the state surgery (log the pivot entry, reset phase, un-lock, invalidate verdicts).pivotdoes NOT run the gates ("Do not run the gates yourself —/linkedin:newsletterowns the pipeline");newsletterdoes NOT perform the re-open bookkeeping. The two are complementary halves of one ritual — clean separation, no subsumption. - Invocation leverage — Low-to-moderate; narrow trigger set ("pivot", "re-open edition", "added a section", "changed the angle"). Rarely hit, but when hit it does deterministic state work no other command does.
- Recommendation — keep.
- Rationale — Holds a unique state-mutation surface (the re-open bookkeeping) that
newsletterdeliberately delegates out; not subsumed. Lower-traffic, but the trim rule retains a non-redundant specialist.
Group D — Onboarding / setup (3)
onboarding
- Purpose — Multi-step wizard chaining profile → personalization → first-post as one guided flow for brand-new installs, with an "already onboarded" short-circuit.
- Overlap with siblings —
setup(Phase 2 is a condensedsetup) andfirst-post/profile(Phases 1 and 3 route to them). Subsumption test (calibration case f): doessetup+first-postsubsumeonboarding? No.onboardinguniquely provides the cohesive single path ("a single guided path instead of navigating 27 commands") and the cross-phase state logic (already-onboarded detection, score-gated branching, "what's next — your first week"). Notably it does NOT invoke the sub-commands directly — it tells the user to run them — so it is an orchestration/triage layer, not a duplicate of their bodies. - Invocation leverage — Moderate; trigger set heavily overlaps
first-postandsetup("get started", "just installed", "walk me through"). The router lists it first. Real risk: a "get started" user could land onfirst-postinstead — but the intent ("walk me through everything") is distinct from "help me publish my first post". - Recommendation — keep.
- Rationale — Unique cohesive-wizard surface + cross-phase triage state; it orchestrates rather than duplicates
setup/first-post. No subsumption.
setup
- Purpose — Guided personalization: computes the 8-category personalization score and runs 6 sub-workflows (voice samples →
voice-trainer, case study, framework, post analysis, demographics, user profile) to populate asset templates. - Overlap with siblings —
onboardingPhase 2 (a 2-category condensation of this). Subsumption test:onboardingonly ever touches the top-2 weighted categories and explicitly defers ("I'll run/linkedin:setupfor the full setup");setupowns all 8 categories, the full score dashboard, and thevoice-trainerdelegation.onboardingdoes not subsume it. - Invocation leverage — High; broad trigger set ("setup", "personalize", "personalization score", "configure plugin", "my score", "fill in assets"). Also the router's destination for any score/asset-completeness query.
- Recommendation — keep.
- Rationale — The canonical, full-depth personalization surface;
onboarding's version is a deliberate condensation that defers back here.
first-post
- Purpose — First-post accelerator: maximum hand-holding, voice quick-check, simple topic pick, 3-line draft (reuses
quick's formula), 4-item quality check, setsfirst_post_date, includes a guard that redirects returning users topost/quick. - Overlap with siblings —
quick(whose 3-line formula it reuses) andonboardingPhase 3 (which routes here). Subsumption test: doesquicksubsumefirst-post? No.first-postadds first-timer-specific scaffoldingquicklacks: the welcome/expectation framing, the voice-from-scratch setup branch (samples vs. 5 questions), the "exists > perfect" philosophy, the new-creator 90-day-boost messaging, and the returning-user guard. Its whole value is the zero-to-one onboarding hand-holding, not the drafting mechanics. - Invocation leverage — Moderate; "first post", "never posted", "new to linkedin". A genuinely distinct beginner intent.
- Recommendation — keep.
- Rationale — Unique first-timer scaffolding + the
first_post_dateside-effect; not subsumed byquick's formula it borrows.
Group E — Scheduling / publishing / post-publish (3)
batch
- Purpose — Create a full week (3–5 posts) in one session from a theme/pillar: trend-spotter angles,
content-plannerplan, scheduling, draft files, queue entries, and a generated.ics. - Overlap with siblings —
pipeline(single post + schedule),calendar(queue management). Subsumption test:batchuniquely produces a multi-post balanced week with format/pillar rotation and.icsexport;pipelineis single-post;calendaronly manages an existing queue. No subsumption. - Invocation leverage — High and specific: "batch content", "week of posts", "sunday prep". Distinct planning intent.
- Recommendation — keep.
- Rationale — Unique multi-post-week surface + iCal generation; the queue-write overlap with
calendar/pipelineis shared plumbing (queue-manager.mjs), not a shared surface.
calendar
- Purpose — View/manage the 14-day queue (reschedule/cancel/view-draft) AND host the publish action (mark-as-published → update queue+state → first-hour plan). Absorbed the former
publishcommand (v2.0.0). - Overlap with siblings —
firsthour(its publish flow ends with a first-hour plan;firsthouris a richer standalone version),pipeline/batch(which write to the queue it reads). Subsumption test (calibration case d): doescalendar's publish action subsumefirsthour? No —calendar's first-hour block is a static 6-line checklist + an optionalpost-feedback-monitorhand-off;firsthourbuilds a worked, timestamped plan with named targets and draft comments viaengagement-coach. Converselyfirsthourdoes not manage the queue. No subsumption. - Invocation leverage — Very high; very broad trigger set spanning both calendar ("schedule", "queue", "upcoming") and publish ("mark as published", "just published", "post is live"). High-traffic.
- Recommendation — keep.
- Rationale — Canonical queue+publish surface that already absorbed
publish; its first-hour checklist is a lightweight in-flow nudge, distinct fromfirsthour's full sprint planner.
firsthour
- Purpose — Post-publish first-hour / reply-loop sprint: delegates to
engagement-coachfor a timestamped target list (whales/inner-circle/ICP), draft self-comments + CEA replies in voice, a minute-by-minute timeline; persists viarecordFirstHourPlan; hands off topost-feedback-monitor. - Overlap with siblings —
calendar's publish-action first-hour block, and theengagement-coach/post-feedback-monitoragents it delegates to. Subsumption test (calibration case d):firsthouris the orphan-wiring command forengagement-coach(its raison d'être per CLAUDE.md/README). It uniquely produces a worked plan (named targets + draft comments + clipboard copy + state persistence) that neithercalendar(static checklist) norpost-feedback-monitor(48h monitoring, different time window) provides. The three form a relay (firsthour → coach for the plan → feedback-monitor for the marathon), not a redundancy. - Invocation leverage — Moderate; "first hour", "I just posted", "reply loop", "work my post". A real, frequently-recurring moment (every publish), but its trigger phrases partly collide with
calendar's "just published". Some users will reach the lightercalendarfirst-hour block instead offirsthour. - Recommendation — keep (with a note).
- Rationale — Distinct worked-plan surface + it is the wiring point for an otherwise-orphaned agent (
engagement-coach); cutting it would re-orphan that agent and undo a core v4.0.0 remediation goal. Note for the operator: the trigger overlap withcalendar's publish action means the two should cross-link (calendar's first-hour block could point to/linkedin:firsthourfor the full plan) — a wiring nit, not a merge.
Group F — Analytics (5)
analyze
- Purpose — Performance troubleshooting/diagnosis: 6-symptom intake → diagnostic patterns → penalty checklist → severity assessment → 14-day recovery protocol. Optionally grounds in
analytics-interpreter(interpret mode). - Overlap with siblings —
audit,report,import(calibration case h). Subsumption test:analyzeis the only diagnostic/recovery surface (why is reach down, how do I recover).reportis reporting (weekly numbers from imported data);auditis strategy review (quarterly top/bottom posts, topic mix);importis ingestion. Four different jobs on the analytics axis — none subsumes another;analyzeeven works with no imported data (self-report intake). - Invocation leverage — High and distinct: "why isn't my content performing", "low reach", "reach dropped". A panic-moment intent users type directly.
- Recommendation — keep.
- Rationale — Unique troubleshooting/recovery surface; orthogonal to the other three analytics commands.
audit
- Purpose — Periodic (quarterly) content-strategy audit: top/bottom performers, topic distribution vs. pillars, format mix, engagement trend, milestone progress, profile alignment — then routes the fix to
strategyand the profile deep-audit toprofile. - Overlap with siblings —
analyze(diagnosis),report(metrics),strategy/profile(which it explicitly defers to). Subsumption test:auditis the only holistic strategy-review surface (90-day lookback across topic/format/trajectory). It deliberately does NOT own trajectory prescription (delegates tostrategy) or profile checklist (delegates toprofile) — "audit names the gap; strategy prescribes the fix." That self-limiting design means it does not duplicate them; andreport/analyzedon't do the strategy lookback. No subsumption. - Invocation leverage — Moderate; "content audit", "quarterly review", "review my content strategy". A periodic, distinct intent.
- Recommendation — keep.
- Rationale — Unique holistic-review surface with clean delegation boundaries to
strategy/profile; not a duplicate ofanalyze/report.
import
- Purpose — Ingest a LinkedIn analytics CSV (auto-detect from ~/Downloads, quick-import helper, the analytics-CLI npm-install fix), parse → JSON → anomaly detection → baseline update, then delegates the analysis fan-out to
/linkedin:report(one analysis pipeline, not two). - Overlap with siblings —
report(which it now calls rather than re-implements). Subsumption test:importuniquely owns data ingestion (CSV detection, copy-to-exports, CLI invocation, baseline creation);reportowns presentation of already-imported data. The Step 6 hand-off is the explicit de-duplication ("keeping a second analysis pipeline here drifted out of sync"). Clean separation — no subsumption, and a redundancy already removed. - Invocation leverage — Moderate; "import analytics", "import CSV", "parse LinkedIn data". A distinct mechanical intent (you must import before you can report).
- Recommendation — keep.
- Rationale — Unique ingestion surface; the analysis overlap with
reportwas already collapsed (delegation), which is exactly the discipline this audit endorses.
report
- Purpose — Generate weekly/monthly/heatmap performance reports from imported data via the
trendsCLI: metrics table, top performers, 4-week trend, alert detection,analytics-interpreter(report mode) recommendations, markdown export. - Overlap with siblings —
import(which delegates to it),analyze(troubleshooting),audit(strategy review). Subsumption test:reportis the only recurring-numbers reporting surface and the shared analysis engineimportreuses. It does not diagnose recovery (analyze) or run the quarterly strategy lookback (audit). No subsumption. - Invocation leverage — High and distinct: "weekly report", "performance report", "how did I do", "show my stats". Recurring intent.
- Recommendation — keep.
- Rationale — Canonical reporting engine, now the single analysis pipeline both it and
importuse; distinct fromanalyze/audit.
ab-test
- Purpose — Full A/B testing lifecycle (design → log → analyze → history → suggest) with a directional-not-significant statistical honesty layer; delegates optimized-variant rewrites to
content-optimizer. - Overlap with siblings —
report/analyze(it cross-references analytics data; offers "View weekly performance report"). Subsumption test:ab-testuniquely owns the experiment surface (hypothesis, variant design, running comparison, verdict heuristic). No other command designs or tracks experiments; it merely reads analytics for cross-reference. No subsumption. - Invocation leverage — Moderate-to-high; specific trigger set ("A/B test", "test my hooks", "compare formats", "split test", "which hook works"). Distinct, directly-typed intent.
- Recommendation — keep.
- Rationale — Entirely unique experimentation surface; the analytics commands it links to don't touch experiments.
Group G — Growth / strategy (2)
strategy
- Purpose — Phase-based growth plan (Phase 0–4 by follower count) + trajectory overlay + authority-building/signature-content compounding (Phase 2+). The canonical trajectory source
auditdefers to. Absorbed the formerauthoritycommand (v2.0.0). - Overlap with siblings —
audit(names the gap, routes here for the fix),profile(whichstrategydefers to for profile-alignment),monetize(Phase 3+ monetization setup is mentioned but not owned here). Subsumption test:strategyuniquely owns the phase roadmap + trajectory prescription + authority compounding. It explicitly delegates profile toprofile. No subsumption. - Invocation leverage — High; very broad trigger set ("growth plan", "build authority", "signature content", "linkedin roadmap", "my best content"). Also the router's destination for milestone/follower-progress and the below-1K nudge target.
- Recommendation — keep.
- Rationale — Deep, canonical growth+authority surface that absorbed
authority; the hub other commands (audit, the 1K-gated ones) route toward.
profile
- Purpose — The canonical profile/topic-relevance optimization checklist (7 sections: Headline/About/Experience/Featured/Skills/Network/Engagement) for the 2026 relevance model + the profile-SEO/search-surface layer. The single source
analyze,audit, andstrategyall defer to. - Overlap with siblings —
analyze(Step 6 "If Profile-Content Mismatch" routes here),audit(Step 6 routes here),strategy(authority audit defers profile signals here). Subsumption test:profileis explicitly the canonical profile audit — three siblings delegate to it rather than duplicate it. None subsumes it; it subsumes none of them (no content/analytics/growth surface). This is textbook clean delegation. - Invocation leverage — High and specific: "optimize profile", "profile audit", "fix my profile", "why is my reach low" (profile angle). Distinct, directly-typed intent.
- Recommendation — keep.
- Rationale — The single profile source-of-truth that three other commands point to; cutting/merging it would scatter the checklist they deliberately centralized.
Group H — Gated at ~1K followers (3)
monetize
- Purpose — Monetization strategy: readiness scorecard, 4 stage-specific plans, lead-magnet blueprint, 4-week funnel, DM conversion workflow, CTA optimization, featured-section + revenue-model worksheets. Soft-gated at ~1K.
- Overlap with siblings —
strategy(growth phases overlap the monetization stages;strategyPhase 3 mentions "lead magnets and monetization setup"),outreach(both 1K-gated revenue/opportunity surfaces). Subsumption test:monetizeuniquely owns the revenue mechanics (pricing, offers, funnels, lead magnets, DM conversion).strategyonly mentions monetization as a Phase 3+ focus area; it does not build a funnel or price an offer.outreachis collaborations/speaking, not products/funnels. No subsumption. - Invocation leverage — Moderate; specific ("monetize", "lead generation", "consulting pipeline", "pricing strategy", "lead magnet"). Soft-gated, so naturally lower-frequency until the audience exists.
- Recommendation — keep.
- Rationale — Deep, unique revenue-mechanics surface;
strategy's monetization mention is a pointer, not a duplicate. The soft-gating is honest (works at any count, value compounds at 1K).
outreach
- Purpose — Two-track orchestrator (collaborations + speaking) under one pitch paradigm: readiness, partner/event search + scoring, 12 collab formats + 4 talk templates, outreach messages, co-creation workflow + speaker portfolio, pipeline trackers (now state-persisted via
recordOutreachContact), progression ladders. Absorbed the formercollab+speakingcommands (v2.0.0). Delegates tonetwork-builder. - Overlap with siblings —
monetize(both 1K-gated),strategy(Phase 2+ collaborations). Subsumption test:outreachuniquely owns the partner/event pitch machinery.strategyonly names collaborations as a focus area;monetizeis products not partnerships. No subsumption. Internally it consolidated two commands and has an explicit capability checklist proving nothing was lost in that merge — a model of disciplined consolidation. - Invocation leverage — Moderate; very broad trigger set spanning both tracks ("collaboration", "co-author", "speaking", "CFP", "pitch a talk", "outreach"). Soft-gated.
- Recommendation — keep.
- Rationale — Unique, deep two-track outreach surface that already consolidated
collab+speakingcleanly; not subsumed.
competitive
- Purpose — Competitive analysis of niche thought leaders: identify competitors (WebSearch), content/hook/engagement analysis, landscape map, gap analysis, differentiation strategy, inspired-not-copied takeaways.
- Overlap with siblings —
strategy(differentiation is a growth lever there),audit(analyzes your content; this analyzes others'). Subsumption test:competitiveis the only external/competitor-facing analysis surface.auditis inward-facing;strategyprescribes your plan, not a competitor scan. No subsumption. - Invocation leverage — Low-to-moderate; specific ("competitive analysis", "analyze competitor", "what are others doing", "learn from others"). A periodic, distinct intent. CLAUDE.md/README describe it as 1K-gated in the same breath as monetize/outreach, though the file itself carries no gating logic.
- Recommendation — keep (with a minor honesty note).
- Rationale — Unique outward-facing competitive surface; nothing else scans competitors. Note: the router does not actually list
competitiveunder the 1K-gated group nor apply the below-1K nudge to it (unlikemonetize/outreach), and the command body has no follower check — a small documentation-vs-behavior inconsistency for the operator to reconcile, not a reason to merge or cut.
Summary table
| Command | Recommendation | Merge target | One-line reason |
|---|---|---|---|
linkedin |
keep | — | Structural router; highest-leverage front door (minor map-staleness nit). |
post |
keep | — | Canonical long-band creation + refine/optimizer surface; core entry. |
quick |
keep | — | Unique short-band + the 8-template library templates folded into. |
react |
keep | — | Unique URL-ingestion + multi-source synthesis; directly-typed intent. |
pipeline |
keep (flag) | — | No clean subsumption, but a thin re-statement of post+calendar+firsthour; watch for erosion. |
carousel |
keep | — | Deep unique carousel/document engine + image generation. |
video |
keep | — | Unique LinkedIn-native video scripting + video-scripter. |
multiplatform |
keep (flag) | — | Unique Twitter/X + cross-platform surface; thinnest command, develop-candidate (could wire content-repurposer). |
newsletter |
keep | — | The long-form spine; everything long-form routes here. |
headless-review |
keep | — | Unique fresh-session cold-isolation a newsletter phase can't provide. |
pivot |
keep | — | Unique re-open state surgery newsletter delegates out. |
onboarding |
keep | — | Unique cohesive wizard + cross-phase triage; orchestrates, not duplicates. |
setup |
keep | — | Canonical full 8-category personalization; onboarding defers here. |
first-post |
keep | — | Unique first-timer scaffolding + first_post_date side-effect. |
batch |
keep | — | Unique multi-post-week + iCal; queue-write is shared plumbing. |
calendar |
keep | — | Canonical queue + publish action (absorbed publish). |
firsthour |
keep (note) | — | Unique worked first-hour plan; wiring point for orphaned engagement-coach. |
analyze |
keep | — | Unique troubleshooting/recovery surface; works without imported data. |
audit |
keep | — | Unique holistic strategy review; delegates fix to strategy/profile. |
import |
keep | — | Unique ingestion surface; analysis already delegated to report. |
report |
keep | — | Canonical reporting engine + shared analysis pipeline. |
ab-test |
keep | — | Entirely unique experimentation lifecycle. |
strategy |
keep | — | Canonical phase+trajectory+authority hub (absorbed authority). |
profile |
keep | — | Single profile source-of-truth three commands delegate to. |
monetize |
keep | — | Unique revenue-mechanics surface; honest soft-gating. |
outreach |
keep | — | Unique two-track pitch surface (absorbed collab+speaking). |
competitive |
keep (note) | — | Unique outward competitor scan; minor gating doc-vs-behavior nit. |
Tally: keep 27 · merge 0 · cut 0. Two keeps carry a flag — pipeline (inconclusive, retained) and multiplatform (develop-candidate).
Count-impact summary (if every recommendation were applied as-is)
Every recommendation is keep. Therefore, if all were applied:
- Commands removed: 0 (0 cut + 0 merged-away).
- Resulting count: 27 — unchanged.
- Lint / roster surfaces needing update: none.
EXPECT_COMMANDS=27inscripts/test-runner.shstays as-is; the CLAUDE.md command table (27), the README command table, thecommandsheader the lint checks, the routercommands/linkedin.md, and any SKILL roster all remain at 27. No roster touched, no count contract changed.
This mirrors the agent-overlap outcome in overlap-measurement.md (no agent
trimmed → 19/27 baseline unchanged): the command surface, audited under the same
subsumption discipline, also holds — every command has a unique surface or a
justified redundancy, and the two prior consolidations (templates/publish/
authority/collab/speaking → quick/calendar/strategy/outreach, and
the import→report analysis delegation) have already removed the genuine
duplications. The surface is over-grown only in count, not in redundancy.
The recommendations are informational; the operator decides per command. Two non-blocking honesty nits surfaced along the way (each a wiring/doc fix, not a merge/cut; a claimed third was withdrawn on verification):
- The router lists
post-feedback-monitor(agent) under Post-Publish but not the new/linkedin:firsthourcommand. calendar's publish-action first-hour block andfirsthourshare trigger phrases ("just published") and should cross-link.Withdrawn on verification: CLAUDE.mdcompetitive1K-gating doc-vs-behavior.:64, README:222, the router, and the command body all leavecompetitiveungated — onlymonetize/outreachcarry "(unlocks at ~1K)". No inconsistency exists; the claimed nit was unfounded.
Honest-uncertainty list (inconclusive — retain pending operator view)
pipeline— inconclusive, retained. It has no clean subsumption (it uniquely sequences draft → schedule → first-hour → analysis into one guided run), which under the trim rule mandates retention. But its constituent steps are each a thinner inline condensation of richer leaf commands (post/calendar/firsthour), and its trigger set is narrow/jargon-y, so its real-world leverage as a natural type is the weakest in Group B. I could not decide whether the orchestration value justifies the standalone command versus folding its unique sequencing intopost(with an explicit schedule + first-hour hand-off). Per the methodology: inconclusive — retain pending operator view. This is the one command where a future, operator-blessed merge could be defensible; the evidence informs but does not compel it.
All other 26 commands are clear keep decisions with no residual uncertainty.