Monday morning marketing
Skill kochellenk-afk/claude-marketing-skills/skills/monday-morning-marketing
Production Claude Skills from a working fractional CMO practice: client sweeps, critique layers, decision councils, Meta engines
npx -y skills add kochellenk-afk/claude-marketing-skills --skill monday-morning-marketingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 19 days oldThe repository was created 19 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
the operator's weekly client sweep. Runs the boring-but-compounding Monday work for any client in any industry through seven modules: competitive intel sweep, week-ahead calendar prep, industry pulse, open loops audit, content/site freshness scan, copy consistency check, and performance drift handoff. Reads client context from a Notion client profile page (creates one if missing) and publishes a Monday Briefing back to Notion with a Decisions Needed section on top. Trigger whenever the operator says "run Monday morning", "Monday briefing", "MMM", "/monday", "weekly sweep", "Monday morning in marketing", "start my week", "what changed for [client] this week", or asks for a weekly client rundown, competitive check-in, or week-ahead prep for any client (any active client). Also trigger on Mondays when they asks some variant of "catch me up on [client]". Can run for one client, a named subset, or all active clients.
SKILL.md
8.4 KB, as published. Nobody here has run it
Monday Morning in Marketing
The weekly sweep of work that requires knowing the client well but follows a predictable pattern. Nobody wants to do it manually. Skipping it compounds badly. This skill does it in one run.
Invocation
Accepted forms:
- "Run Monday morning for Client A"
- "/monday Client B"
- "Monday briefing, all clients"
- "MMM for Clients A and B, skip the freshness scan"
Inputs:
- Client name(s) (required). If omitted, ask which client or offer "all active clients".
- Module overrides (optional). the operator can skip or isolate modules ("just the intel sweep").
- Fresh data uploads (optional). A Google Ads export CSV activates Module 7.
Hard rules
- Never use em dashes anywhere in output. Use periods, commas, or colons instead.
- Every module output must be scannable in under 30 seconds: short lines, bolded leads, no filler.
- Never pad a module with generic advice. If nothing changed, say "No change" in one line and move on. A short honest briefing beats a long inflated one.
- Flag uncertainty explicitly. "Could not verify" is a valid finding.
Workflow
Step 0: Load or create the client profile
- Search Notion for a page titled "[Client] Client Profile" (use notion-search).
- If found, fetch it and extract: industry/vertical, site URL, competitors (names + URLs), messaging house doc link, active channels, current workstreams, key people, known open loops.
- If NOT found: create one from
references/client-profile-template.mdvia notion-create-pages, pre-fill everything already known from conversation context and memory, then tell the operator which fields are blank and ask their to fill them (or answer inline). Do not block the run: execute whichever modules have enough context and mark the rest "Skipped, profile incomplete". - If the profile is stale (workstreams clearly outdated based on conversation), note it in the briefing footer and suggest updates. Update the profile only with the operator's confirmation.
Step 1: Run the modules
Run modules in this order. Core modules (1 to 4) always run. Conditional modules (5 to 7) run only when their inputs exist; otherwise emit a one-line skip note with what would activate them.
Module 1: Competitive intel sweep (core)
For each competitor in the profile (cap at 5, prioritize by threat level if more):
- Web search + fetch their site: homepage messaging, pricing page, product/feature announcements, new content.
- Check Meta Ad Library (facebook.com/ads/library) and LinkedIn ad library via web search for active ads: new creative themes, offers, formats.
- Search for news: funding, launches, hires, partnerships in the last 7 days.
Output per competitor: What changed / What it probably means / Respond or ignore. If nothing changed: one line, "No visible change."
Module 2: Week-ahead calendar prep (core)
- Pull this week's events from Google Calendar (search tools first via tool_search).
- For each client-relevant meeting: cross-reference Notion for prior notes on the same people or project, list what was promised or left open last time.
- Output: table of meetings with a one-line prep note each, plus a "needs real prep" flag for anything high-stakes (pitches, deliverable reviews, new prospects).
If Calendar is unavailable or empty, skip with a note.
Module 3: Industry pulse, last 7 days (core)
- Web search the client's vertical for the past week: trends, platform changes (Meta, Google, TikTok, LinkedIn), notable campaigns, discourse.
- Intersect with the client's active workstreams: only include items that touch something the client is actually doing or should be doing.
- Output: 3 to 5 pulse items max, each with "Why it matters for [client]" in one line. Flag any item that doubles as a LinkedIn or newsletter topic for the operator with a 🖊 marker.
Module 4: Open loops audit (core)
- From the profile's known open loops, conversation memory, and (if connected) recent Gmail threads and Notion tasks: list blocked items, pending assets, unanswered threads, promises made.
- For each loop: What's blocked / Who owns the next move / Suggested unblock action.
- Anything blocked more than 2 weeks gets an ⚠️ escalation flag.
Module 5: Content/site freshness scan (conditional: needs site URL)
- Fetch the client's key pages (homepage, pricing, FAQ, top blog posts if listed in profile).
- Scan for: outdated stats or dates, broken links (spot-check outbound links), FAQ gaps versus current product state, claims that contradict current positioning.
- Output: prioritized fix list, effort-tagged (quick fix / needs owner / needs rewrite). Cap at 10 items.
Run this module in full at most every other week per client; on off weeks, output "Skipped, ran [date]" unless the operator asks.
Fallback: if the site cannot be fetched directly, web search the domain and fetch the result links instead. If the site does not appear in search results at all, log that as a visibility finding rather than failing silently.
Module 6: Copy consistency check (conditional: needs messaging doc + queued copy)
- Requires two inputs: the messaging house doc (linked in profile) and copy queued to launch this week (the operator pastes it, uploads it, or points to a Notion page).
- Check every piece against the messaging house: voice, claims, terminology, offer framing, banned phrases.
- Output per piece: Pass / Flag with the specific line and the fix. No vague "consider tightening" notes; quote the problem, propose the replacement.
Module 7: Performance drift handoff (conditional: needs fresh ads data)
- Activates when the operator uploads a Google Ads export or mentions fresh performance data.
- Do NOT duplicate analysis here. Read and follow the
account-health-diagnosticsskill (Drift Scan mode) and run it on the data. - Output: the diagnostics summary embedded as this module's section, with anything requiring a decision promoted to Decisions Needed.
Step 2: Assemble and publish the briefing
- Build the briefing using
references/briefing-template.md. - Decisions Needed goes first. Pull every item across all modules that needs the operator's call: respond-to-competitor decisions, escalated open loops, copy failures, performance actions. Number them. If empty, say "Nothing needs a decision this week" (this is a valid and good outcome).
- Publish as a Notion page titled "[Client] Monday Briefing, [date]", nested under the client profile page (or a "Monday Briefings" section if one exists).
- In chat, give a 5-line-max summary: number of decisions needed, the single most important finding, link to the Notion page. Do not restate the whole briefing in chat.
Multi-client mode
When run for multiple clients: execute the full workflow per client sequentially, publish one Notion page per client, then give ONE combined chat summary ranking clients by urgency (most decisions needed first).
Failure and degradation behavior
- A failed tool call never kills the run. Mark that module "Could not complete: [reason]" and continue.
- If Notion is unavailable, deliver the briefing as a markdown file instead and say so.
- If web search returns thin results for a niche competitor, say "Low signal" rather than inventing findings.
References
references/client-profile-template.md: the Notion client profile structure. Read when creating a new profile (Step 0.3).references/briefing-template.md: the Monday Briefing page structure. Read at Step 2 before assembling output.
Gives 0 of the 12 instructions most quality gates skills give
Counted across 1,195 of the 2,094 authors here whose files we hold, read 2026-08-06
- read the output and check the exit codein 55 of 1195, across 14 files
- verify requirements using a line-by-line checklistin 53 of 1195, across 12 files
- identify the verification command proving the claimin 53 of 1195, across 12 files
- run the full verification commandin 51 of 1195, across 11 files
- verify output confirms the claimin 49 of 1195, across 10 files
- check version control diff after agent delegationin 45 of 1195, across 5 files
- state claim with evidencein 43 of 1195, across 3 files
- run the test suitein 32 of 1195, across 24 files
- keep state in memory by defaultin 27 of 1195, across 6 files
- make prototype runnable with one commandin 26 of 1195, across 5 files
- detect the package manager from lockfilesin 24 of 1195, across 5 files
- produce a verification reportin 23 of 1195, across 12 files
Said here and by no other author read
- do not use em dashes in output
- make every module output scannable under 30 seconds
- flag uncertainty explicitly
- search Notion for an existing client profile
- create a missing client profile from template
- run core modules one through four
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.