daily-report
Use when writing the daily/rollcall team report — defines 5 sections, quality rules, and a minimal idle card.
How do I install this agent skill?
npx skills add https://github.com/fellowship-dev/dogfooded-skills --skill daily-reportIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The daily-report skill defines a structured workflow for team reporting that ingests data from external GitHub issues. It is susceptible to indirect prompt injection and includes instructions for automated network requests to URLs found in issue bodies, which presents a minor risk of request forgery or unsafe command execution.
- Socketwarn
1 alert: gptAnomaly
- Snykwarn
Risk: MEDIUM · 1 issue
What does this agent skill do?
daily-report
Standard report format for Pylot crew teams. Used in morning rollcall dispatch jobs and any standup/status reporting task.
When to Use
- You have been dispatched with a rollcall or standup task
- Your task says "write today's team report per /daily-report"
- Any task asking for a team status report
Standard Sections
Section 0: Production Health (MANDATORY — P0/P1 verification required)
One line per repo. Must appear FIRST — production issues are never buried below issues or PRs.
Format:
- org/repo — 🟢 green: up, no incidents
- org/repo — 🔴 red: 500 errors on /api/products (issue #84, since 2026-04-11) [verified: curl → 503]
- org/repo — 🟡 yellow: degraded response times, investigating
- org/repo — ⚠️ UNVERIFIED: repo#84 claims 500 — production returns 200, likely false positive
If no active incidents: All repos: 🟢 green
P0/P1 Verification Protocol
Any issue claiming P0/P1 severity OR containing keywords 500, down, broken, production in the title or body MUST be verified before being promoted to the briefing. Unverified P0s waste Max's desk time — they are more harmful than missing a real incident.
Decision tree:
Issue claims P0/P1 or has keywords (500, down, broken, production)?
├── YES → Extract production URL from body (https:// that is NOT a GitHub URL)
│ ├── URL found → run liveness check:
│ │ STATUS=$(curl -s -o /dev/null -w "%{http_code}" --max-time 10 "$PROD_URL")
│ │ ├── 5xx or timeout → CONFIRMED outage
│ │ │ → 🔴 P0: org/repo — [title] (issue #N, since DATE) [verified: curl → $STATUS]
│ │ └── 200 → UNVERIFIED — production is up, claim is questionable
│ │ → ⚠️ UNVERIFIED: org/repo#N claims [keyword] — production returns 200, likely false positive
│ └── No production URL → check issue body for evidence:
│ ├── Has evidence (curl output, screenshot, error log, Sentry/Bugsnag link)
│ │ → 🟡 NEEDS REVIEW: org/repo#N — [title] — has evidence, cannot auto-verify
│ └── No evidence → comment on the issue asking for evidence (see template below)
│ → ⚠️ UNVERIFIED: org/repo#N claims [keyword] — no production URL or evidence; asked filer
└── NO → Standard reporting, no verification needed
Output formats by scenario:
| Scenario | Format |
|---|---|
| Verified outage (curl 5xx) | 🔴 P0: org/repo — [title] [verified: curl → 503] |
| Unverified (curl 200) | ⚠️ UNVERIFIED: org/repo#N claims [keyword] — production returns 200, likely false positive |
| Has evidence, no URL | 🟡 NEEDS REVIEW: org/repo#N — [title] — has evidence, cannot auto-verify |
| No URL, no evidence | ⚠️ UNVERIFIED: org/repo#N claims [keyword] — no production URL or evidence; asked filer |
Ask-filer comment template (post when no URL and no evidence found):
gh issue comment $ISSUE_NUMBER --repo $ORG/$REPO --body "Promoting this to P0 in rollcall requires production evidence.
Please add one of:
- curl output showing the error: \`curl -I https://your-production-url.com\`
- Screenshot or error log from production
- Sentry/Bugsnag link
Without evidence, this will appear as ⚠️ UNVERIFIED in the morning briefing."
Section 1: Open Issues
For each repo, list all open issues. Verify each is actually open — do NOT parrot stale data.
Format per issue:
- #N [Title](https://github.com/org/repo/issues/N) — labels: priority-high, bug
If 0 open issues: state it explicitly.
Section 2: PRs Waiting
Split feature PRs from dep PRs — never mix them in the same list.
Feature PRs:
- #N [Title](https://github.com/org/repo/pull/N) — status: review | 3d / 2026-04-10
- #N [Title](https://github.com/org/repo/pull/N) — status: draft | 15d / 2026-03-26 [STALE]
Dep PRs (one line each with risk label):
- #N [bump lodash 4→5](https://github.com/org/repo/pull/N) — CRIT | 2d / 2026-04-11
- #N [bump eslint 8→9](https://github.com/org/repo/pull/N) — LOW | 5d / 2026-04-08
Risk labels:
- CRIT — security CVE, known breakage, or major version with documented breaking changes
- HIGH — major version bump with possible API breaks
- MED — minor version with notable changes
- LOW — patch update, routine
PR count headline: N open (X actionable, Y stale drafts) — never a bare count.
Repos with no CI configured: note it once as a section footer, not per-PR.
Section 3: Latest Updates
Named merges with PR number and merge date. A bare count ("8 PRs merged") is useless.
Format:
- PR #N [Title](url) — merged 2026-04-10
- PR #N [Title](url) — merged 2026-04-09
If nothing merged in 7 days: state it and note the last merge date.
Section 4: Suggested Next Tasks
2-3 concrete actions. Each must have:
- Exact slash command where applicable:
/review-pr 47 CLAPES-UC/ipc-med-backend ipcmed-runner - Sequencing note when order matters: "do this BEFORE merging deps — lockfile conflict risk"
- Reasoning tied to team Direction goals
- Risk callout for dangerous deps: "do NOT merge Next.js 16 without testing locally"
Quality Rules
- Every issue/PR MUST include a full clickable URL (
https://github.com/org/repo/issues/Nor/pull/N) - Ages include absolute dates alongside relative:
3d / 2026-04-10— not just3d - "Quiet" is not a report — if nothing happened, say what SHOULD happen next from the backlog
- Verify data freshness before reporting — call
gh issue listandgh pr list, don't guess - Closed issues are NOT open — verify with
gh issue view N --repo org/repo --json state - P0/P1 production claims MUST be verified with curl before promoting to briefing — see the P0/P1 Verification Protocol in Section 0. An unverified P0 in the briefing wastes more time than a missed real incident.
Minimal Format for Idle Teams
Teams with 0 open issues AND 0 feature PRs get a 10-line status card instead of the full format:
## {team} — IDLE
Prod: 🟢 green | Issues: 0 | Feature PRs: 0 | Dep PRs: N
Last merge: YYYY-MM-DD / PR #N [Title](url)
Next: {suggested action — e.g., "process dep PRs on weekend, watch for Next.js 16 breaking changes"}
Do NOT produce a full section-by-section breakdown for idle teams — it adds noise without signal.
Report Location
All reports go to $(git rev-parse --show-toplevel)/reports/. NEVER inside crew/*/reports/ or any subdirectory.
Writing the Report File
Once you have drafted all sections above, use /write-report to write the file:
/write-report --group rollcall --id {your-team-name} --type rollcall
This ensures:
- Correct path (
reports/from repo root, nevercrew/*/) - Correct timestamped filename per CONVENTIONS.md
- Automatic Quest DB posting
- Consistent naming across all teams
Do NOT write the file manually using the Write tool — always use /write-report.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/fellowship-dev/dogfooded-skills/daily-report">View daily-report on skillZs</a>