All skills
simota avatar

/harvest

@51065a1
by shingo imotasimota/agent-skills85 stars
15

Collecting GitHub PR data and generating work reports. Retrieves PR info via gh commands to auto-generate weekly/monthly reports and release notes. Use when work reporting or PR analysis is needed.

Use this Skill: https://skilld.dev/gh/simota/agent-skills/harvest

This session only. Nothing lands on disk.

referencework-hours.md

≈704 tokens on demand. Your agent reads this file only when SKILL.md points to it.

Work Hours Estimation

Purpose: Use this reference when Harvest must estimate effort for individual reports or client-facing summaries.

Contents

  • Implemented baseline formula
  • Optional refinement layers
  • Size bands
  • Adjustment factors
  • Range reporting rules

Implemented Baseline Formula

This is the baseline currently implemented in scripts/generate-report.js.

baseline_hours =
  ((additions + deletions) / 100)
  + (changedFiles * 0.25)

minimum = 0.5h
rounding = nearest 0.5h

Use this baseline unless the report explicitly requires a richer estimate.

Optional Refinement Layers

These refinements exist in Harvest guidance and may be applied manually when the audience needs more nuance:

Layer Rule
File weights test=0.7, config=0.5, docs=0.3, source=1.0
New-file bonus new_files * 0.5h
Review-time overlay business_hours(createdAt, mergedAt) * 0.2
Complexity multiplier Add 20-100% depending on architecture, security, APIs, or multi-service impact

If you apply refinement layers, say so explicitly in the report.

Size Bands

Band Total changed lines Typical range
XS < 50 0.5-1h
S 50-200 1-3h
M 200-500 3-8h
L 500-1000 8-16h
XL > 1000 16h+

Adjustment Factors

Use these only as additive caution, not as hard truth:

Factor Suggested adjustment
New architecture or novel pattern +50-100%
Security-sensitive work +30-50%
Data integrity risk +30-50%
External API integration +20-40%
Performance-sensitive work +20-40%
Multi-service change +20-30%
Significant test work +10-20%

Range Reporting Rules

Prefer ranges for management or client reporting:

min      = expected * 0.7
expected = refined_or_baseline
max      = expected * 1.5

Rules:

  • Label hours as estimates.
  • Do not present LOC-derived values as productivity rankings.
  • Warn when night/weekend work exceeds 10% of activity because fatigue can distort effort signals.

AI-Assisted Coding Caveat (2026)

LOC-based effort estimation breaks down when AI coding assistants are in heavy use:

  • DORA 2025 finds AI now positively correlates with throughput; LinearB 2025 separately reports that PR size distribution has shifted larger in AI-heavy teams.
  • This means equal LOC counts pre/post AI adoption represent different human effort. Always tag the report with the team's AI tooling posture (Copilot in IDE, Claude Code, Cursor, etc.) so consumers can interpret the LOC-derived hours.
  • Prefer time-based signals (review-cycle time, PR pickup time) over LOC-derived hours when AI usage is significant.

Source: SKILL.md on GitHub

3 warnings5mo5 checks · Risk MEDIUM
  • Gen Agent Trust Hub5mo

    The skill provides comprehensive tools for PR analysis and reporting but contains several helper scripts vulnerable to command injection. Specifically, generate-report.js and html-to-pdf.sh construct shell commands using string concatenation of input arguments (like repository names or file paths) without sanitization, which could allow arbitrary command execution if an attacker influences these parameters through a malicious prompt or repository metadata.

  • Socket5mo

    No alerts

  • Snyk5mo

    Risk: MEDIUM · 1 issue

  • Runlayer6mo

    5/24 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 51065a1. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 3 days ago.

Activeupdated 2 months ago

README badge

README badge for simota/agent-skills/harvest