Weekly Report Generator — AI Skill (2026) | Skills and Servers
Business Operations

Weekly Report Generator

Takes a week's raw inputs — Slack threads, PR titles, meeting notes, metrics snapshots — and produces a structured weekly report in your team's shape: Shipped, Blocked, Metrics, Next Week, Risks. Refuses to invent progress not supported by the inputs. The Skill that turns Friday's "what did we actually do this week" from a 45-minute slog into a 5-minute review.

✓ Claude ✓ GPT-5 ✓ Gemini 2.5 ✓ Mistral ○ Llama (beta)
· Updated October 14, 2026 · ✓ Verified cross-provider

01Overview

TL;DR — Dump the week's raw material in (Slack threads, PR titles, standup notes, metrics snapshots, calendar events), get back a structured report in your team's shape. Refuses to invent progress, pad shipping lists with half-done work, or hide blockers that didn't get resolved. Produces reports that read like a human wrote them because they're grounded in what actually happened.

Weekly reports fail in two directions. They either take an hour on Friday (so people skip them, so leadership loses the visibility, so the team gets micromanaged in a different way), or they get written in five minutes with a "things are going well" shape that nobody trusts and nobody reads. Both failure modes point at the same gap — the mechanical work of assembling the inputs is what's expensive, and the AI should handle it.

This Skill is the mechanical-assembly layer. You give it the raw inputs; it classifies them into the report sections your team actually uses; it produces a draft you review and ship. The time cost drops to five minutes. The quality holds because the Skill refuses to fabricate progress — if nothing shipped, "Shipped" is empty with a line explaining why, not padded with aspirational bullets.

The default report shape is five sections (Shipped, Blocked, Metrics, Next Week, Risks), but every team has its own shape. The Skill reads a template YAML you supply so the output matches what your team actually publishes — whether that's weekly, bi-weekly, or on whatever cadence your organization runs.

02When to use

Friday-afternoon team report

The classic. Dump the week's inputs, get a structured report ready for your team channel or newsletter.

Manager roll-up for leadership

Combine 3-5 team reports into a leadership-level summary with cross-team themes surfaced.

Metrics-heavy ops reports

Attach a metrics snapshot (dashboard screenshot or CSV); the Skill folds the deltas into the report with trend commentary.

Quarterly recap from weekly inputs

Combine 12 weekly reports into a quarterly narrative. The structured shape makes aggregation clean.

03How it works

The Skill runs a four-pass process on the week's inputs:

  1. Classify. Walk every input and classify by section — a merged PR is shipped, an unresolved Jira comment is blocked, a metrics line goes to metrics. Items with no clear classification get surfaced to the human reviewer as "unclassified" rather than guessed into a section.
  2. Deduplicate and consolidate. "PR #4723 merged," the Slack message announcing it, and the standup mention are one event, not three. The Skill collapses them into a single bullet with the strongest attribution.
  3. Evidence-link each claim. Every bullet in the output links to the specific input that supports it (PR URL, Slack permalink, meeting-note anchor). The reader can click to verify; the writer can prove the report isn't padded.
  4. Draft and fabrication-check. Produce the structured report in the template shape. Scan each bullet for claims not supported by the inputs — those get replaced with [need from you: X] placeholders rather than invented.

The output is a draft to review in minutes, not a polished report ready to auto-send. For teams with inbox or Slack MCPs connected, the Skill can post the draft to a review channel before publishing — but it will not send to the leadership channel without explicit confirmation.

04SKILL.md spec

Full SKILL.md. Save as weekly-report-generator/SKILL.md in your Skills directory.

SKILL.md
---
name: weekly-report-generator
version: 1.2.0
description: Takes a week's raw inputs (Slack threads, PR
             titles, meeting notes, metrics) and produces a
             structured weekly report in the team's template
             shape. Evidence-links every claim. Refuses to
             invent progress not supported by the inputs.
category: business-operations
requires_mcp:
  - slack        # optional, for direct channel-read
  - github       # optional, for PR / issue read
  - linear       # optional, for ticket read
inputs:
  - name: inputs
    type: array
    required: true
    description: Raw inputs for the week. Can be pasted text,
                 file uploads, or MCP-fetched content.
  - name: template
    type: yaml_file
    required: false
    default: standard 5-section template (Shipped, Blocked,
             Metrics, Next Week, Risks)
    description: Team's report template defining section
                 names and ordering
  - name: period
    type: text
    required: true
    description: Date range this report covers (e.g.
                 "Oct 7-13, 2026")
  - name: team
    type: text
    required: true
    description: Team name for the report header
  - name: previous_report
    type: text | file
    required: false
    description: Last week's report. Enables Next Week
                 reconciliation (what we said we'd do vs
                 what we did).
outputs:
  - name: report
    type: structured_markdown
    description: Report in the template shape, each bullet
                 evidence-linked to its source input
  - name: unclassified
    type: list
    description: Inputs the Skill couldn't confidently
                 classify. Surfaced for human review.
  - name: last_week_reconciliation
    type: structured
    description: When previous_report supplied, the
                 reconciliation of what was promised vs
                 what shipped.
---

## Rules

1. NEVER invent progress. If no PRs merged, "Shipped"
   says "Nothing shipped this week" with the honest
   reason (holiday week, planning sprint, incident
   response) rather than padding with aspirational bullets.

2. ALWAYS evidence-link every bullet. "Shipped the auth
   refactor (PR #4723)" is a complete bullet; "shipped
   the auth refactor" without the link is not.

3. ALWAYS surface unclassified inputs rather than
   guess-classifying them. The human reviewer can place
   them; the Skill cannot.

4. For Blocked items, name the blocker specifically.
   "Blocked by vendor" is bad; "Blocked by Acme Corp
   API rate limits; waiting on their eng team since Monday"
   is good. If the input doesn't name the blocker
   specifically, flag with [need from you: X].

5. For Metrics, use the numbers in the input exactly. Do
   NOT round, estimate, or infer trends not stated. If a
   metric is missing a comparison baseline, say so rather
   than inventing one.

6. For Next Week, prefer items grounded in commits already
   made (planning docs, assigned tickets, calendar events)
   over aspirational items. Mark aspirational items as
   such; do not pass them as commitments.

7. For Risks, require specific risk statements. "Risk:
   things might get worse" is noise; "Risk: Q3 revenue
   target depends on three deals closing by Friday, two
   are at verbal only" is a risk.

8. When previous_report is supplied, produce the Next Week
   reconciliation. "Last week promised X, Y, Z. X shipped
   (PR #...), Y partially shipped (link), Z slipped
   (reason)." This is the discipline that keeps weekly
   reports honest over time.

## Refusals

- If the inputs are too thin to produce a meaningful report
  (fewer than 3 distinct inputs across the whole week),
  refuse and ask whether this is a holiday week, a thin
  activity week, or whether more inputs exist elsewhere.

- If the user asks to "spin" or "soften" a bad week's
  report (fewer shipped items than last week, missed
  commitments, etc.), produce the honest report and
  decline the spin. The report's value is its truth; a
  spun report trains readers to not trust it.

- If asked to produce reports for teams other than the
  one named in the input, refuse. Each team's report
  is their own; cross-team roll-ups use the separate
  manager-roll-up variant.

05Example 1 — Engineering team weekly

The task

Produce the weekly report for a 6-person backend team

Inputs: 12 merged PRs with titles, 3 Slack standup threads, 2 unresolved Jira tickets, a dashboard screenshot showing p95 latency trend. Period: Oct 7-13, 2026. Team: Platform.

output — weekly report (abridged)
# Platform Team — Weekly Report
## Oct 7-13, 2026

### Shipped
- **Auth refactor to OAuth 2.1 completed** — shipped Thu
  (PRs #4723, #4731, #4744). Migration from legacy session
  tokens done; all services now use the new auth path.
- **Postgres connection pool tuning** — p95 latency on
  the /orders endpoint down from 340ms to 180ms after
  shipping PR #4727 Mon.
- **Feature flag plumbing for billing experiment** —
  framework in place (PR #4738); experiment itself ships
  next week per billing team schedule.
- 3 minor fixes (PRs #4719, #4725, #4740)

### Blocked
- **Vendor data sync still stuck** — Acme Corp API
  rate limits are tighter than documented; our workaround
  from last week is in place but their eng team hasn't
  responded since Monday. Jira: PLATFORM-2814.
- **Load test environment** — infra ticket open since
  Oct 3 (PLATFORM-2801). Will escalate to infra lead Monday.

### Metrics
- p95 latency (/orders): 340ms → 180ms (dashboard snapshot
  attached, measured Mon-Fri)
- Error rate: 0.08% (flat week over week)
- Deploy count: 12 (vs 9 last week)

### Next Week
- Billing experiment ships Tue (per billing team planning
  doc, Oct 14)
- Vendor sync resolution path: either Acme responds with a
  solution OR we spike the alternative provider by Thu
- Load-test env unblocking per infra escalation outcome

### Risks
- Billing experiment ship depends on billing team's
  schema migration completing by Mon; they flagged in
  standup Thu that it might slip to Wed.
- Vendor sync workaround is holding but costs 2x the
  compute of the direct path; sustained incidents on this
  table through end of month would push us over infra
  budget.

### Reconciliation vs last week's report
- Promised: auth refactor ships. ✓ Shipped Thu.
- Promised: Postgres pool tuning. ✓ Shipped Mon.
- Promised: billing experiment ships. ✗ Slipped to next
  week; feature flag plumbing done, experiment itself
  waiting on billing team schema migration.

---

Unclassified inputs (0): none this week.

Note the report's shape: every bullet has evidence (PR number, Jira ticket, dashboard snapshot reference). The reconciliation makes last week's promises visible against this week's delivery, which is the discipline that prevents reports from drifting into aspirational fiction over time.

06Example 2 — GTM team weekly

The task

Produce weekly for a 4-person sales + marketing team

Inputs: HubSpot pipeline snapshot, 2 webinar recap threads, 4 content pieces published, 3 new logos signed. Template: 5-section standard. Period: Oct 7-13.

output — GTM weekly (abridged)
# GTM Team — Weekly Report
## Oct 7-13, 2026

### Shipped
- **3 new logos signed**: [Co A] ($48K ACV), [Co B]
  ($24K ACV), [Co C] ($72K ACV). All three in the
  mid-market segment, matching the Q4 ICP focus.
- **MCP governance webinar** — 184 registrations,
  97 attendees (53% show rate). Recording published Thu.
- **4 content pieces published**: EMA deep dive, MCP vs
  REST comparison, Governance checklist, Spreadsheet
  comparison. Combined 11,400 pageviews week-to-date
  (analytics snapshot attached).

### Blocked
- **ABM campaign targeting enterprise accounts** —
  blocked on list build from marketing ops; waiting
  since Oct 8 on scoring methodology sign-off.

### Metrics
- New pipeline: $412K (vs $380K last week, +8%)
- Closed-won: 3 deals / $144K ACV
- Content pageviews: 11,400 WTD (dashboard: content hub)
- Webinar: 184 registrations, 97 attended

### Next Week
- Enterprise ABM list unblocking + first touches (per
  marketing ops ETA Mon)
- Follow-up sequence for 97 webinar attendees (templates
  ready, sends start Mon)
- Analyst briefing with [Firm] Thu

### Risks
- Q4 closed-won pacing is below plan by $90K through week
  2 of the quarter. Three deals at verbal commitment
  carry $160K ACV combined; if all three close by
  Oct 25 we recover plan, if one slips we miss.
- Enterprise ABM campaign starting late (orig plan Oct
  7, now Oct 14+) narrows the Q4 window for enterprise
  pipeline contribution.

07Example 3 — Refusal when asked to spin a bad week

The task (refused)

"Make this week's report look better than it is"

Inputs: 2 merged PRs (both minor fixes), 1 incident that consumed Tue-Thu, nothing from the quarter's planned deliverables shipped. User asks the Skill to "make it look positive" before leadership sees it.

response
I'm not going to spin this one. Here's why — and
what I'll do instead.

The honest shape of this week is: an incident consumed
the middle three days, the two shipped items are
unrelated minor fixes, and nothing from the quarterly
plan moved. Producing a report that reads otherwise
either requires inventing progress (which the Skill
refuses) or burying the incident in soft language
(which trains leadership to not trust future reports).

What I can do that's actually useful:

1. Write the honest report. The incident is the story
   this week; name it specifically, name what you
   learned, name what's changing because of it.
   Leadership will respect this far more than a
   polished-looking report that doesn't match
   reality.

2. Add a "What this week cost us" section that makes
   the opportunity cost explicit — which quarterly
   deliverables slipped, by how much, and whether the
   recovery plan is viable. This gives leadership the
   information they'd otherwise ask for in a 1:1.

3. If the quarterly plan is genuinely at risk, surface
   that in Risks with the specific delta. "Q4 deliverable
   X was due Oct 20; realistic revised date is Oct 27.
   Impact: Y." This is the shape of risk-reporting that
   gets you help, not scrutiny.

Say the word and I'll draft all three. The one
I won't draft is the softened version.

The refusal is deliberate. The whole value of a weekly report is that leadership trusts it — and that trust is built one honest report at a time. A single spun report breaks the pattern. The Skill is built to not help with the spin, because the long-term cost to the reporting team is dramatically higher than the short-term discomfort of a bad week report.

08Benchmarks

Measured against a corpus of 120 weekly reports (eng, GTM, ops, finance teams) paired with ground-truth input bundles. Headline metrics: claim precision (claims matched to evidence), fabrication rate (invented claims), and time saved (vs human-written reports).

98%
Claim precision (Claude)
0.4%
Fabrication rate
38 min
Median time saved vs manual
7.1s
Median draft time

Claim precision = % of report bullets that match an input evidence source. Fabrication rate = % of bullets citing evidence that doesn't exist. Time saved measured against a baseline of 45 min for manual weekly report assembly.

The 38-minute time save per report, across a team of 10 managers each writing a weekly, is 6+ hours of leadership time per week returned. That's the compounding value — one Skill, run 50 times a week across the org, buys back a full engineer-week per month.

09Rules & refusals

Rules enforced

  • No invented progress. Nothing shipped means "Nothing shipped" with the honest reason, not padded bullets.
  • Evidence-link every bullet. PR, Jira, Slack permalink, dashboard snapshot — the reader can click.
  • Surface unclassified inputs. Don't guess-classify; let the human place them.
  • Specific blockers only. "Blocked by vendor" is bad; the specific vendor, specific blocker, specific wait is required.
  • Metrics quoted exactly. No rounding, no trend inference not stated in the input.
  • Next Week grounded in commits. Aspirational items marked as such; not passed as commitments.
  • Specific risks required. "Things might get worse" is noise; name the specific exposure.
  • Reconciliation when previous report supplied. Promised vs shipped, every week.

Refusals

  • Thin-input weeks. Fewer than 3 inputs across the whole week — refuses and asks for context.
  • Spin requests. Softening or hiding bad-week realities — refuses and offers honest alternatives.
  • Cross-team reports from one team's inputs. Refused; roll-ups use a separate manager-roll-up variant.

10Provider compatibility

ProviderSupportLong-context handlingNotes
Claude Desktop / Code✓ FullExcellentReference implementation. Strongest fabrication discipline.
Google Gemini 2.5✓ FullBest (2M ctx)Preferred when input volume is high (hundreds of PRs, large Slack threads).
OpenAI (GPT-5)✓ FullVery goodFull feature parity. Slightly more verbose draft style; trim after.
Mistral Large 2✓ FullGoodStrong on multilingual team reports.
Meta Llama 3.3○ BetaFairWorks for small input volumes; drops evidence links on longer inputs.

11Install

Save the SKILL.md to ~/.claude/skills/weekly-report-generator/SKILL.md. Optionally connect Slack, GitHub, Linear MCPs from the Servers directory for direct inbox-of-inputs reads.

bash
mkdir -p ~/.claude/skills/weekly-report-generator
curl -o ~/.claude/skills/weekly-report-generator/SKILL.md \
  https://skillsandservers.com/downloads/skills/weekly-report-generator/SKILL.md
# Starter templates for eng, GTM, ops teams also available:
curl -o ~/.claude/skills/weekly-report-generator/template-eng.yaml \
  https://skillsandservers.com/downloads/skills/weekly-report-generator/template-eng.yaml

Paste the SKILL.md body into Custom GPT Instructions. Attach your team template as a knowledge file.

text
GPT name: Weekly Report Generator
Instructions: [paste SKILL.md body]
Knowledge: template-eng.yaml (or your custom template)

Paste the SKILL.md body into Gem instructions. Gemini's long context is especially useful when weekly inputs span many files.

text
Gem name: Weekly Report Generator
Instructions: [paste SKILL.md body]
Files: team-template.yaml, previous-report.md (optional)

Point your MCP client at the SKILL.md file. Long-context model recommended for larger teams.

json
{
  "skills": {
    "weekly-report-generator": {
      "path": "./skills/weekly-report-generator/SKILL.md"
    }
  }
}

13FAQ

Yes with the matching MCP servers installed. The Slack MCP, GitHub MCP, and Linear MCP from the Servers directory let the Skill pull the week's inputs on demand instead of requiring copy-paste. Without MCPs, paste the inputs and the Skill works just as well — the connectors are a convenience, not a dependency.
Yes, via a template YAML you supply. The default template is five sections (Shipped, Blocked, Metrics, Next Week, Risks) but every team has their own shape. Define yours in YAML, feed it to the Skill, and output lands in that shape. Starter templates for engineering, GTM, and ops teams ship in the install bundle.
The Skill can post to a review channel automatically when the Slack MCP is connected in write mode, but will refuse to post to a leadership-facing channel without explicit per-message confirmation. Weekly reports to leadership are high-stakes; one auto-sent bad report costs more than a dozen review-and-post cycles.
A separate mode where you supply 3-5 team weekly reports and the Skill produces a cross-team summary with shared themes, cross-team risks, and leadership-facing framing. Different enough from single-team reports that it has its own template section but uses the same evidence-link discipline.
Works at any cadence — weekly, bi-weekly, monthly, quarterly. Set the period input to the range and feed the inputs for that range. The structure holds; the volume of inputs just scales with the period length. For monthly reports, Gemini's long context is often the right provider pick.
Team data goes to whichever AI provider you're running the Skill in, subject to that provider's data policies. For teams with sensitive activity (M&A work, HR matters, security incidents), use a local provider (Mistral, Llama) with no third-party transit, or your provider's enterprise tier with explicit no-training terms.

Pair with meeting notes workflow

The Meeting Notes to Action Items Skill turns Monday's standup into inputs for Friday's report. Combined workflow drops report-writing to under 5 minutes.

Meeting Notes Skill