Install
$ agentstack add skill-kv0906-pm-kit-report ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
/report — Report to Me
Brief the user as if they are the CEO or product owner. Plain language. Outcomes over output. No technical jargon unless translated into business or user impact.
Context
Today's date: !date +%Y-%m-%d
Config: @core/config.yaml Processing logic: @core/PROCESSING.md Preview rules: @.claude/rules/preview-formats.md (when --preview)
Usage
/report
/report project-a
/report all
/report project-a --week
/report all --preview
/report project-a --save --preview
Flags
| Flag | Effect | |------|--------| | --week | Last 7 days (default) | | --since {date} | Custom start date | | --save | Write to reports/{date}-executive-brief-{project}.md | | --preview | Also render HTML via shell-executive.html | | --risks-only | Skip shipped/WIP — focus on blockers and decisions needed |
Session Task Progress
TaskCreate: "Gather vault signals"
activeForm: "Reading vault for executive signals..."
TaskCreate: "Translate to impact"
activeForm: "Translating to business and user impact..."
TaskCreate: "Deliver brief"
activeForm: "Preparing your briefing..."
Voice & Rules
You are briefing a decision-maker, not an engineer.
Always
- Lead with what matters most to the business
- Explain what changed for users (faster, safer, clearer, unblocked)
- Explain what changed for the business (revenue, risk, speed, cost, trust)
- Use short sentences. No acronyms without plain-English translation
- Quantify when data exists ("3 items shipped", "1 blocker overdue")
- End with what needs their decision or attention
Never
- Stack traces, API names, framework choices, sprint mechanics
- "We merged PR #412" → say what capability that unlocks for users
- "Blocked on Redis" → say "users may see slower checkout until caching is fixed"
- Jira ticket IDs, branch names, implementation details
- Passive voice that hides ownership
Translation examples
| Vault says | Report says | |------------|-------------| | Merged auth migration PR | Users can now sign in with their company account — fewer password resets | | Blocked on API rate limits | Checkout may fail during peak traffic until we secure higher API limits | | Decided PostgreSQL over MongoDB | We chose a database that handles financial transactions more reliably — reduces data-loss risk | | WIP on notifications | Users will soon get alerts when their order ships — not live yet |
Processing Steps
1. Parse Input
- Project: specific id, or
all(default: all active projects from config) - Timeframe:
--weekor--since
2. Gather Signals
Scan vault (same sources as /progress, different lens):
| Source | Extract for executive view | |--------|---------------------------| | daily/*.md | Shipped items, WIP themes, blocked themes | | blockers/{project}/*.md | Open blockers — severity, due, user/business impact | | decisions/{project}/*.md | Recent decisions — what it means for product direction | | docs/{project}/*.md | Active specs — what capability is being built | | meetings/*.md | Action items needing leadership input |
3. Synthesize Executive Brief
Structure output in this order:
# Briefing — {Project or All Projects}
**{Date}** · {Period covered}
## Bottom Line
{2-3 sentences. Most important thing first. What should they walk away knowing?}
## What Users Get (or Will Get)
- {Shipped capabilities in user language}
- {In-progress capabilities — expected value, not ETA unless due date exists}
## Business Impact
- {Revenue, risk reduction, speed, cost, compliance, trust — only what's evidenced in vault}
## What's at Risk
- {Open blockers translated to user/business consequences}
- {Overdue items flagged clearly}
## Decisions Made (Recent)
- {Decision → why it matters to product/business, not technical rationale}
## Needs Your Attention
- {Explicit asks: approve, escalate, decide, unblock}
- {If nothing: "No decisions needed from you this period."}
For --risks-only, output only: Bottom Line, What's at Risk, Needs Your Attention.
4. Deliver
Default: Output to terminal. This is a spoken brief — concise, scannable.
Do not create files unless --save or --preview.
5. Optional: Save
If --save:
- Write markdown to
reports/{date}-executive-brief-{project}.md - Append vault log (action:
report)
6. Optional: Preview
If --preview:
- Follow
/previewworkflow withshell-executive.html {{LEAD}}= Bottom Line paragraph{{CONTENT}}= remaining sections as HTML- Output:
reports/previews/{date}-executive-brief-{project}.html - Open in browser unless
--no-openpassed through
7. Coaching Close
End with one direct line (PM Coach style):
> "The one thing I'd escalate: {highest-impact risk or decision}."
Or if clear:
> "You're in good shape — keep momentum on {top WIP theme}."
Output Example
# Briefing — Project A
**2026-06-29** · Jun 22 – Jun 29
## Bottom Line
Checkout is live for most users, but peak-hour failures are still possible until we resolve the API limit blocker. No decisions needed from you today.
## What Users Get (or Will Get)
- Company sign-in is live — fewer password reset support tickets
- Order shipping alerts are in progress — users will know when packages leave the warehouse
## Business Impact
- Sign-in migration reduces support load and improves enterprise deal readiness
- Shipping alerts expected to cut "where is my order?" contacts
## What's at Risk
- API rate limits may cause checkout failures during promotions — backend team owns fix, due Friday
## Decisions Made (Recent)
- Chose PostgreSQL for billing data — stronger protection for payment records
## Needs Your Attention
- No decisions needed from you this period.
---
The one thing I'd escalate: API rate limit blocker before next marketing push.
Relationship to Other Skills
| Skill | Difference | |-------|------------| | /progress | Technical/project status for operators — tables, filenames, severity | | /report | Executive brief — impact language, no implementation detail | | /preview | Renders any content as HTML — use --preview on report for shareable brief | | /weekly | Team retrospective — process-focused, not CEO briefing |
Empty Vault Handling
If no data in timeframe:
No meaningful updates in the last 7 days for {project}.
Suggest: run /daily to start capturing, or widen with --since.
Do not fabricate impact statements.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: kv0906
- Source: kv0906/pm-kit
- License: MIT
- Homepage: https://willtran.xyz
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.