harvest-logger
Log crop harvests with yield quantity, quality grade, field, and storage destination. Use when asked to record a harvest, check total yield for a crop or field, filter harvest history by date or grade, view analytics charts, or export harvest data. Triggers include "log harvest", "record yield", "harvest entry", "crop yield", "grade breakdown", "field yield", "harvest history", or any task involving tracking what was picked and where it went.
Best use case
harvest-logger is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Log crop harvests with yield quantity, quality grade, field, and storage destination. Use when asked to record a harvest, check total yield for a crop or field, filter harvest history by date or grade, view analytics charts, or export harvest data. Triggers include "log harvest", "record yield", "harvest entry", "crop yield", "grade breakdown", "field yield", "harvest history", or any task involving tracking what was picked and where it went.
Teams using harvest-logger should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/harvest-logger/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How harvest-logger Compares
| Feature / Agent | harvest-logger | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Log crop harvests with yield quantity, quality grade, field, and storage destination. Use when asked to record a harvest, check total yield for a crop or field, filter harvest history by date or grade, view analytics charts, or export harvest data. Triggers include "log harvest", "record yield", "harvest entry", "crop yield", "grade breakdown", "field yield", "harvest history", or any task involving tracking what was picked and where it went.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# harvest-logger
Record and analyze crop harvest yields with quality grading, field tracking, and storage destination logging.
## When to Use
- Recording a new harvest entry (crop, field, date, quantity, grade, storage)
- Checking total yield for a specific crop over a date range
- Filtering harvest history by grade (Grade A only, reject entries)
- Viewing yield trend charts in the Analytics page
- Comparing season-over-season performance
- Exporting harvest data to CSV
## Key Concepts
### Harvest Entry
Each entry records:
- **Crop**: what was picked (Tomatoes, Beans, Lettuce, etc.)
- **Field**: where it came from (North Field, Greenhouse 1, etc.)
- **Date**: harvest date
- **Quantity + Unit**: amount in kg, lb, bushel, lug, or count
- **Grade**: A (premium), B (standard), C (substandard), Reject, Ungraded
- **Storage**: where it was taken (Cooler 1, Barn Storage, Farmers Market, etc.)
- **Labor hours**: optional time tracking
- **Notes**: optional observations
### Grade Scale
| Grade | Meaning |
|---|---|
| A | Premium - meets full market standards |
| B | Standard - minor defects, still marketable |
| C | Substandard - significant defects, reduced price |
| Reject | Not marketable, discarded or composted |
| Ungraded | No quality assessment performed |
### Analytics
The Analytics page uses Chart.js to show:
- Yield trend (daily or weekly totals per crop)
- Grade breakdown per crop (stacked bar chart)
- Field performance comparison (horizontal bar chart)
- Top crops by total volume
All analytics support date range filtering.
## API Quick Reference
```bash
# Log a harvest
curl -X POST http://localhost:3003/api/harvests \
-H "Content-Type: application/json" \
-d '{
"crop_id": "...",
"field_id": "...",
"harvest_date": "2025-04-18",
"quantity": 142,
"unit": "kg",
"grade": "A",
"storage_id": "...",
"labor_hours": 2.5,
"notes": "Good color, early morning harvest"
}'
# List harvests (filtered)
curl "http://localhost:3003/api/harvests?crop_id=...&from=2025-04-01&to=2025-04-30"
# Filter by grade
curl "http://localhost:3003/api/harvests?grade=reject"
# Get yield by crop (analytics)
curl "http://localhost:3003/api/analytics/yield-by-crop?from=2025-04-01&to=2025-04-30"
# Get yield trend for a crop
curl "http://localhost:3003/api/analytics/yield-trend?crop_id=...&granularity=week"
# Get grade breakdown
curl "http://localhost:3003/api/analytics/grade-breakdown?from=2025-04-01"
# List crops
curl http://localhost:3003/api/crops
# List fields
curl http://localhost:3003/api/fields
# List storage locations
curl http://localhost:3003/api/storage
```
## Environment Variables
| Variable | Description | Default |
|---|---|---|
| PORT | HTTP port | 3003 |
| DATA_DIR | SQLite directory | ./data |
| AUTH_PASSWORD | Optional login password | (empty) |
| NODE_ENV | development or production | development |
| SESSION_SECRET | Required in production | (required) |
| DEFAULT_TIMEZONE | Initial timezone for settings | America/Chicago |
## Troubleshooting
### Analytics shows 0 for a crop
Verify harvests exist for the date range and crop: `GET /api/harvests?crop_id=...`. Analytics endpoints require at least one harvest record within the requested date range.
### Grade breakdown percentages do not add up
Ungraded entries are included in the total but shown separately. If you want 100% from A/B/C/Reject only, filter out ungraded entries in the frontend or exclude `grade=ungraded` from your query.
### Export CSV returns wrong date range
The CSV export on the Harvests page respects the active filters. Set the date range filter before clicking Export CSV.Related Skills
Skill: Uptime Monitoring
## Overview
Skill: Status Page
## Overview
Skill: unit-conversion
## Overview
Skill: recipe-scaler
## Overview
reading-list
Operate the reading-list API to save, manage, tag, search, and export articles.
email-digest
Configure, test, and troubleshoot the reading-list daily email digest delivered via nodemailer.
websocket-realtime
Use the WebSocket connection in poll-builder to receive live vote updates. Use when you need to stream real-time poll results, monitor a poll for new votes, or build a live dashboard. Triggers include "live results", "real-time updates", "stream votes", "watch poll", or "WebSocket".
poll-builder
Self-hosted poll creation tool with real-time results. Use when you need to create a poll, check vote counts, close a poll, export results, or get the shareable link for a poll. Triggers include "create poll", "vote", "poll results", "survey", "collect votes", "share poll", or any task involving polling or voting.
Skill: personal-finance
## Overview
Skill: csv-import
## Overview
Skill: Syntax Highlighting
## Purpose
Skill: Pastebin Core
## Purpose