sprint-effort-report — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited sprint-effort-report (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Generates a per-assignee effort breakdown from a Jira sprint CSV and writes a new markdown report file in the same directory as the CSV.
Expected columns (order matters):
Parent Key, Parent Summary, Key, Type, Summary, Status, Assignee, Impact, Effort, Created, UpdatedThe Effort column contains size values: Small, Medium, Large, Extra-Large (or blank).
Read the full CSV file. Build two lookup maps:
row_by_key: key → full row (for parent lookups)assignee_by_key: key → assignee (for quick parent owner checks)For each row:
Status is not "Done"Assignee is blank or "Unassigned"Effort is blankType == "Sub-task":Parent KeyFor each qualifying row, add to the assignee's size bucket:
assignee → { Extra-Large: [], Large: [], Medium: [], Small: [] }Compute the weighted total per assignee:
weighted_total = (count(Extra-Large) × 8) + (count(Large) × 5) + (count(Medium) × 3) + (count(Small) × 1)Track cross-assigned subtasks separately for the cross-help section.
Create a new file named <csv-basename>-effort-summary.md in the same directory as the CSV.
#### Report structure
# Sprint XXX — Effort Summary by Assignee
> Rules: only Done items are included. Items without effort are excluded.
> Sub-tasks only counted when assignee differs from parent owner.
## Summary Table
| Assignee | Extra-Large | Large | Medium | Small | Weighted Total |
| -------- | :---------: | :---: | :----: | :---: | :------------: |
| ... | | | | | |
Weights: XL=8, L=5, M=3, S=1. Sort by Weighted Total descending.
---
## Breakdown by Assignee
One section per assignee (order matches summary table):
### Name (N)
| Key | Type | Summary | Size | Note |
|-----|------|---------|------|------|
| ... | ... | ... | ... | "cross-assigned from MAR-XXXX (Owner)" if subtask |
---
## Cross-Help Summary
List every parent that had at least one cross-assigned subtask.
For each such parent, show:
- **MAR-XXXX** _(Type, Parent Owner)_ — Parent Summary
- MAR-YYYY (Sub-task, Assignee) → counted for **Assignee** as Size
- MAR-ZZZZ (Sub-task, SameAsParent) → same as parent owner → skipped- **MAR-12301** _(Story, Rajab Nagori)_ — Account Audience Summary Breakdown by ISP (Phase 1)
- MAR-12335 (Sub-task, Rrahul Raja) → counted for **Rrahul Raja** as Medium
- MAR-12313 (Sub-task, Rrahul Raja) → counted for **Rrahul Raja** as Small
- MAR-12329 (Sub-task, Rajab Nagori) → same as parent owner → skippedOnly include parents that have at least one cross-assigned subtask with effort. Still show the skipped same-owner subtasks for context (even without effort).
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.