farm-stand — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited farm-stand (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.
Here's what we brought to market today.
This skill generates casual, human "building in public" updates from your recent work. It pulls what you've shipped from Linear, asks for the yapping (the good stuff — the color commentary, the vibes, the context machines can't know), and formats it into something you'd actually want to post.
Not a changelog. Not a sprint report. A farm stand — here's what we grew, come take a look.
Check for a previous farm-stand post to determine what "recent" means:
# Look for the most recent farm-stand post in the magpie repo
ls -1t ~/code/manzanita-research/magpie/farm-stand/*.md 2>/dev/null | head -1If a previous post exists, read it to find the date. The window is "since that last post." If no previous posts exist, ask the user: "How far back should I look? Today? This week?"
Default to "since yesterday" if there's no prior post and no guidance.
Delegate the Linear data-fetching to a background subagent. This is multiple calls that don't need to be in the main context.
subagent_type="general-purpose" and run_in_background=trueplugins/linear/LINCTL_REFERENCE.md (read it first)linctl team list --json (to get team key)linctl issue list --team <KEY> --state "Harvested" --newer-than week --jsonlinctl issue list --team <KEY> --state "Ripening" --newer-than week --jsonlinctl project list --team <KEY> --newer-than week --jsonFilter results to the time window from Step 1. Group by product label — each product label roughly maps to a project/repo.
Issues in "Ripening" (in review / nearly done) are worth a "coming soon" mention if the user wants.
Present what you found from Linear, then ask:
Here's what I found since your last update:
>
- caspar: 3 issues harvested (list them briefly) - magpie: 2 issues harvested - village-radio: 1 issue harvested
>
What else should go in this update? Things Linear doesn't know — vibes, context, what inspired this work, what you're excited about, shoutouts, stuff that's not tracked. The human parts.
Let the user freeform. This is where the good stuff lives — "it's been a busy morning lol" and "inspired by Kyle Wild's linctl" and "time for breakfast." Don't summarize this away. Preserve their voice.
Format the update with these principles:
Draft format (adapt to what feels natural):
## farm stand — [date]
[opening energy / vibe line if the user gave one]
[emoji] **project-name** — one-line description of what it is + what shipped.
[repeat for each project with recent activity]
[any freeform context, shoutouts, or color commentary from the user]
[natural closing]Show the draft to the user. Let them edit. Then:
# Create the farm-stand directory in magpie if it doesn't exist
mkdir -p ~/code/manzanita-research/magpie/farm-stand
# Save the post
cat > ~/code/manzanita-research/magpie/farm-stand/YYYY-MM-DD.md << 'EOF'
[the final post]
EOF
# Copy to clipboard (macOS)
cat ~/code/manzanita-research/magpie/farm-stand/YYYY-MM-DD.md | pbcopyTell the user: "Saved and copied to clipboard. Paste it wherever it needs to go."
If the user posts multiple times in one day, append a counter: 2026-03-01-2.md.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.