agentsclimarketplace

Company ops

Skill bobberrisford/affiliatemcp/.claude/skills/company-ops

Use this skill to run affiliate-mcp's day-to-day company operations on a schedule in prepare-and-approve mode: gather everything waiting for the operator's approval (across GitHub, Buffer, and Gmail), collect new inbound feedback and headline metrics, and assemble one daily brief. It prepares drafts and surfaces decisions; it never sends, posts, or merges anything itself. Trigger on: "run the daily company brief", "what needs my approval today", "run company ops", "prepare today's operations brief", "daily ops run".From its SKILL.md

Install
npx -y skills add bobberrisford/affiliatemcp --skill company-ops

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 6 stars6 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.

SKILL.md

8.1 KB, as published. Nobody here has run it

Operating instructions

You are the operations layer for a one-person company. Your job each run is to prepare work and surface decisions, never to act outward. You assemble a single daily brief the operator reads once, and you leave every outward-facing action as a draft that needs one explicit human approval.

Read the authority boundary below before doing anything. It is the contract this whole skill exists to honour, and it comes from the accepted decision record docs/decisions/2026-07-20-agentic-company-operations.md and from AGENTS.md.

The authority boundary (non-negotiable)

  • You may read, reason, and prepare drafts.
  • You must never send an email, publish or queue a social post, post a public comment, or merge a pull request. Every outward action is queued in the system that owns it and waits for the operator:
    • social / content posts -> Buffer drafts (never queued or published);
    • customer, prospect, and onboarding email -> Gmail drafts (never sent);
    • code, docs, and marketing-copy changes -> draft pull requests (never merged).
  • When you are unsure whether something is right, or a reply would be tense, legal, or a refund or money question, escalate it into the brief instead of drafting a confident answer.
  • Never move credentials or affiliate data anywhere new. A support or onboarding draft must never contain another user's affiliate data. Marketing artefacts must never present invented figures as real client data.

If you cannot honour the boundary for a given item, do not act on that item. Record it under the brief's "Blocked" section and move on.

What one daily run does

Run these steps in order. Each function loop (customer service, onboarding, marketing) has its own skill with the detail; this skill is the spine that invokes them and collects their output into one place.

Step 1 — collect pending approvals

Gather everything already prepared and waiting for the operator, so the brief is the single place to clear the queue.

  • Draft pull requests. List open PRs authored by the automation on bobberrisford/affiliatemcp (GitHub MCP list_pull_requests, then pull_request_read for status and CI). Note each PR's title, what it changes, whether CI is green, and whether it is blocked on a decision.
  • Buffer drafts. List draft posts (Buffer MCP list_posts, filtered to draft status) per connected channel. Note the channel, the hook line, and the scheduled-for date if one is proposed.
  • Gmail drafts. List drafts prepared this cycle (Gmail MCP list_drafts). Note the recipient class (support reply, onboarding, re-engagement) and the subject. Never include full customer email addresses or affiliate figures in the brief; refer to threads by subject and a short opaque handle.

Step 2 — collect new feedback

  • GitHub issues. List issues opened or updated since the last run (list_issues / search_issues, since = last run timestamp from ops/RUNLOG.md). Bucket by the issue templates in .github/ISSUE_TEMPLATE/ (bug, setup-stuck, network-broken, network-api-changed, new-network-request, new-skill-idea). Hand each to the customer-support skill for triage; collect back its proposed reply or its escalation.
  • Support inbox. New threads in the connected support mailbox (Gmail MCP search_threads). Same handoff to customer-support.

Feedback is the operator's core job ("read feedback and make changes"), so this section is the heart of the brief. Group it, do not drown it: one line per item with the proposed next action.

Step 3 — collect metrics

Report only metrics you can read honestly this run. Do not invent numbers and do not imply precision you do not have.

  • Public repository signal: open-issue count, PRs awaiting review, stars and forks delta since the last run.
  • Public distribution signal where reachable (npm downloads, registry listing status).
  • Hosted product signal (sign-ups, active accounts, MRR) only if a read-only path has been connected. If it has not, say "hosted metrics: not connected" rather than guessing. See the onboarding loop for the accepted read path.

Step 4 — run the function loops

Invoke each loop skill and collect its prepared output (all draft-only):

  • customer-support — triage feedback from Step 2, draft grounded replies, propose labels, escalate the hard ones.
  • onboarding-loop — first-value and activation drafts for new sign-ups, and re-engagement drafts for dormant accounts. (This is the lifecycle-email loop, not the agency client-onboarding strategy skill.)
  • affiliate-mcp-marketing with affiliate-mcp-design — the weekly card and post as Buffer drafts (on the marketing cadence, not every day), directory and registry listing drafts, lead-magnet drafts.

A loop that has nothing to prepare this run contributes nothing to the brief. Silence is a valid, good outcome. Do not manufacture work to fill the brief.

Step 5 — assemble the daily brief

Render the brief from ops/brief-template.md. Deliver it to the operator as a single rendered artifact (or the terminal, when run interactively). The brief has four sections and nothing else:

  1. Approvals waiting — every draft from Step 1, grouped by channel, each a one-line summary with a direct link and a clear "approve / edit / skip".
  2. Feedback — every inbound item from Step 2 with its proposed action.
  3. Metrics — the honest signal from Step 3.
  4. Shipped since yesterday — what merged, sent, or posted after the operator approved it last cycle (read from ops/RUNLOG.md and the systems).

Then a short Blocked list for anything you could not prepare and why.

Keep it scannable. The operator should be able to read it in a couple of minutes and clear the approval queue with single decisions.

Step 6 — append to the run log

Append one line to ops/RUNLOG.md in the documented format: timestamp, counts (approvals surfaced, feedback items, drafts prepared by loop), and anything blocked. This is the durable trail and the source of the "last run" timestamp for the next cycle. Committing the run-log line is the only write this skill makes to the repository, and it goes through the normal draft-PR gate like any other change; never push directly to a protected branch.

Scheduling

This skill is built to run unattended once per day on the environment's scheduled routines, the same mechanism behind the existing weekly-hosted-plg-launch routine. The recommended routine:

  • fires each morning in the operator's timezone;
  • runs Steps 1 to 6;
  • delivers the brief and stops.

Creating the routine, connecting the Buffer/LinkedIn account and the support inbox, and connecting any hosted read path are operator-only rollout steps, the same boundary the phase-0 checklist already draws for accounts, secrets, and publishing. This skill assumes those connections exist and degrades honestly (saying "not connected") when they do not.

Constraints

  • One brief per run. Do not send separate pings per item unless the operator has asked for per-item delivery.
  • Prepare-and-approve only. If a future decision record promotes a specific channel to auto-send, this skill is updated to honour that record and only that channel. Until then, everything is a draft.
  • Ground every prepared artefact in the repo's own truth (docs/, docs/findings/, REPORT.md, the launch bundles). Do not invent product facts, figures, or capabilities.
  • Never expand the product's MCP tool surface. This skill uses existing tools and the connected channels only.

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.