feat: add reportcard skill - #19
Conversation
The bucket was documented in skills/CLAUDE.md but never created on disk. It was defined as "daily non-code workflow tools", which excludes anything on a slower cadence. Naming buckets by domain, as engineering/ already does, keeps cadence out of the taxonomy. No skill moves — nothing was in productivity/. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A lone "f" sat at the end of the file with no trailing newline. Unrelated to any skill, separated out so it does not muddy the reportcard diff. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
15919c9 to
639cb3a
Compare
Appends a quarter's team, cost and metric values to an OGP product report card at _products/<product>/reportcard.yml. scripts/audit.py parses the narrow YAML subset the report-card repo uses, stdlib only so it runs before npm i. It infers the target quarter and sorts every metric into NEED, auto or DORMANT, so nothing is carried forward or interpolated by eye. ASK-FORMAT.md fixes the ask as four tables plus a reply block keyed by metric id, since a PM gathers these numbers from finance, Datadog and a survey and will answer in pieces. Its examples use invented names and figures — the report-card repo is private and this one is public. WRITING.md keeps edits append-only and creates the branch at the first write rather than at launch. Cost entries gate whether a quarter renders at all, so a missing one is written as placeholder zeros, stated plainly, and flagged on a draft PR rather than left silent. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Adds the product/ bucket README and the entries skills/CLAUDE.md requires: the plugin.json path, a Product grouping in skills.sh.json, and a row in the skills README table. The plugin.json path is added for consistency with the convention, but every path in that file is currently unresolvable — see #18. It does not affect this skill, since the documented install discovers skills by scanning for SKILL.md. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
639cb3a to
69c072b
Compare
There was a problem hiding this comment.
Pull request overview
Adds a new Product skill (/reportcard) to help PMs append a new quarter to a product’s _products/<product>/reportcard.yml via a stdlib-only audit script and structured ask/write guidance, plus registers the skill in the repo’s skill listings.
Changes:
- Introduces the new
skills/product/reportcardskill with an audit script (scripts/audit.py) and supporting guides (ASK-FORMAT.md,WRITING.md). - Adds a new “Product skills” section to the skills docs and skills.sh grouping.
- Updates bucket taxonomy documentation (
productivity/→product/) and registers the skill inskills/.claude-plugin/plugin.json.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| skills/README.md | Adds “Product skills” section and links /reportcard. |
| skills/product/README.md | Introduces Product bucket README and lists /reportcard. |
| skills/product/reportcard/SKILL.md | Defines the /reportcard skill entrypoint and workflow. |
| skills/product/reportcard/scripts/audit.py | Adds stdlib-only audit script to compute target quarter and bucket metrics. |
| skills/product/reportcard/ASK-FORMAT.md | Specifies the PM-facing ask format and reply block structure. |
| skills/product/reportcard/WRITING.md | Specifies append-only writing and branch-creation guidance. |
| skills/CLAUDE.md | Updates bucket taxonomy and registration requirements wording. |
| skills/.claude-plugin/plugin.json | Registers the new /reportcard skill in the plugin manifest. |
| skills.sh.json | Adds “Product” grouping containing reportcard. |
Comments suppressed due to low confidence (1)
skills/product/reportcard/SKILL.md:13
- This section tells users to hand off CHANGELOG work to
/highlights, but/highlightsis not present in this repo (so the instruction can’t be followed).
Does not source data, does not open PRs, and does not write the changelog —
`/highlights` owns that, and will be suggested if the quarter has no entry. **Never invent, interpolate, or
carry forward a metric value** — every number comes from the PM, anything
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| @@ -0,0 +1,68 @@ | |||
| --- | |||
| name: reportcard | |||
| description: Add a new quarter's team, cost and metric values to an OGP product report card (_products/<product>/reportcard.yml) by auditing the last recorded quarter, then asking the PM for each missing number. Use when someone wants to update, add, or draft a quarterly report card, add a new quarter's metrics/cost/team, or mentions reportcard.yml, "Q1/Q2/Q3/Q4 report card", or the products.open.gov.sg draft editor. For writing the CHANGELOG entry, use the highlights skill instead. | |||
There was a problem hiding this comment.
Fixed in 25f75be — removed the reference to the not-yet-existing /highlights skill; the description now just says CHANGELOG writing is out of scope for this skill.
| - `CHANGELOG.md`: **not this skill's job** — `/highlights` owns it, because a | ||
| good entry needs a scan of Slack, GitHub and the team's planning doc. | ||
| - If the PM supplies changelog text directly, add it at the top as | ||
| `## Q<n> <year> <Mon-Mon>`, matching the previous entry's structure. | ||
| - If they do not, leave the file alone and say the quarter is missing an | ||
| entry, then point them at `/highlights`. Do not improvise one from the | ||
| metric values — numbers are not a story. |
There was a problem hiding this comment.
Fixed in 25f75be — reworded to drop the /highlights reference and just note this is out of scope for the skill.
| The `changelog:` line is optional and exists only so a PM who already has the | ||
| text can hand it over. Leaving it blank is normal — `/highlights` writes a | ||
| proper entry from a scan of Slack, GitHub and the planning doc. Never write | ||
| one yourself from the metric values. |
There was a problem hiding this comment.
Fixed in 25f75be — same fix, dropped the /highlights reference.
Remove references to the not-yet-existing /highlights skill, fix the plugin.json path in skills/CLAUDE.md, and fix audit.py's usage string to match how it's actually invoked from SKILL.md. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Problem
Updating the report card is manual and prone to errors.
Solution
A skill that audits, asks, writes, verifies.
Thereafter, it guides the user to create and push a PR:
Breaking changes: none. The one non-additive edit is the
productivity/→product/rename inskills/CLAUDE.md, of a bucket that never existed on disk.Reviewing this PR
chore: rename productivity bucket to productdocs: remove stray trailing characterfeat: add reportcard skilldocs: register reportcard in the skill listingsWithin commit 3:
SKILL.mdfor the shape, thenscripts/audit.pyfor the bucketing, thenASK-FORMAT.mdandWRITING.md.The
plugin.jsonentry in commit 4 is added for consistency, but every path in that file is currently unresolvable — see #18. It doesn't affect this skill; the documented install discovers skills by scanning forSKILL.md.