Maintenance
How to keep this topic truthful as herdr and the marketplace move. Herd’s plugin surface is young (0.9.x); details drift. Each check below names its trigger and effort; the whole loop takes about 15 minutes after a notable release.
Trigger: a notable herdr release
Herd ships via GitHub releases. When a release touches plugins, events, or the agent API:
-
Diff the docs. The 0.9.3 docs used throughout this topic live in-repo at
_repos/herdrdev-herdr/docs/versions/0.9.3/website/src/content/docs/. Compareplugins.mdx,agent-automation.mdx, andconfiguration.mdxagainst the new version directory. Do not citedocs/next/: it holds unreleased drafts. -
Check the event list. The 26-event list in event-model.md comes from
_repos/herdrdev-herdr/src/api/schema/events.rs. New events are declarations, not breaks, but record them. -
Re-verify Context7’s snapshot age. The
/herdrdev/herdrcorpus is a 0.9.0 snapshot; anything version-sensitive learned from it must be re-checked against the in-repo docs of the target version. -
Refresh the mirrors.
./scripts/sync-repos.sh update-manifestThis refreshes the
_repos/*-herdr*clones and the manifest. Shallow mirrors; never build in them.
Trigger: before naming any new plugin
The collision check is cheap and the cost of skipping it is destroying a stranger’s install:
curl -s https://assets.herdr.dev/plugins/index.json -o /tmp/index.json
jq -r '.. | objects | select(has("id")) | .id' /tmp/index.json | sort -u | grep -i "^peteretelej\." || echo "id clear"
# and check the display name
jq -r '.. | objects | select(has("name")) | .name' /tmp/index.json | sort -u | grep -i "<your name>" || echo "name clear"
If your id or display name appears: pick another. See marketplace-landscape.md for why flat names collide and prefixes do not.
Trigger: quarterly, or when a claim feels stale
| Check | How | What to update |
|---|---|---|
| Marketplace counts | Re-pull index.json; count repos/plugins | Numbers in marketplace-landscape.md |
| Archetype map | Skim the index for new categories or standout repos | Archetype table, exemplars, unclaimed niches |
| Exemplar repos still alive | Check the mirrored repos for new commits/releases | Teardowns (teardown-pane-topic-sync.md, teardown-collie.md, teardown-herdr-agent-usage.md) |
| Open plugin-API issues | gh api repos/herdrdev/herdr/issues/3380 and 3801 | common-failures.md rows when they close |
| Context7 snapshot age | Re-resolve /herdrdev/herdr; check snippet version claims | Sources blocks noting “0.9.0 snapshot - verify against X” |
| Lab suite status | Roadmap table vs reality in peteretelej/herdr-plugins | lab-conventions.md |
Tracking the two known API gaps
- #3380: keybound plugin actions never receive
selected_text. If it closes with a server-side fix, update read-agent-state.md and theselected_textrow in common-failures.md. - #3801: tab focus events not emitted for config-defined keybinds. If fixed, the multi-event-subscribe workaround advice in safe-event-handlers.md and common-failures.md can soften.
Source-of-truth priorities
When sources disagree, trust in this order:
_repos/herdrdev-herdr/src/source code (current clone)- In-repo versioned docs (
docs/versions/<release>/) - Live site (
herdr.dev/docs/...) - Context7 snapshots (note their age)
- This topic’s pages (update them when 1-4 contradict)