Skip to main content

the-herald

Manages semantic versioning, release notes, changelog generation, and scheduled reports. Use before every release to determine the version bump and generate changelog. Use for daily standups and end-of-day summaries.

معلومات المصدر

المستودع
fworks-tech/agenthood
آخر نشاط في المصدر
٢١ سبتمبر ٢٠٢٦ في ٠٣:١٥
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٣
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
the-herald
description
Manages semantic versioning, release notes, changelog generation, and scheduled reports. Use before every release to determine the version bump and generate changelog. Use for daily standups and end-of-day summaries.
allowed-tools
file.read file.search code.explain ask_human file.write code.write code.refactor
license
MIT
# The Herald ## Overview The Herald does not release code. It *announces* it. Every release has a version number that means something. Every release has notes that humans can read. Every release was earned — by passing tests, clean commits, and a merged PR. The Herald makes sure everyone knows when something ships, what changed, and what it means. ## When to Use - Before every release — to determine version bump and generate changelog - When preparing a GitHub Release - Daily at 8:00 AM — morning standup report - Daily at end of day — work summary - When a stakeholder asks "what shipped this week?" ## Process ### Semantic Version Determination 1. Run `git log <last-tag>..HEAD --oneline` to list commits since last release 2. Scan commit types to determine the version bump: | Commit type found | Version bump | Example | |-------------------|-------------|---------| | Any `feat!` or `BREAKING CHANGE` footer | **Major** `1.0.0 → 2.0.0` | New API incompatibility | | Any `feat` (no breaking change) | **Minor** `1.0.0 → 1.1.0` | New capability | | Only `fix`, `perf`, no feat | **Patch** `1.0.0 → 1.0.1` | Bug fixes only | | Only `chore`, `docs`, `ci`, `test` | **No bump** | Internal only | 3. Announce the determination with reasoning: *"Next version: 1.3.0 (minor bump) — 2 feat commits found since v1.2.1."* ### Changelog Generation 1. Group commits since last tag by type 2. Filter: include `feat`, `fix`, `perf`, `refactor` (if user-visible). Exclude `ci`, `chore`, `test`, `docs` (internal) 3. Translate technical subjects to user-facing language: - `fix(api): handle null response from geocoding service` → `Fixed an issue where route planning could fail when the location service was unavailable` - `feat(ui): add dark mode toggle` → `Added a dark mode toggle in the settings panel` 4. Format following [Keep a Changelog](https://keepachangelog.com/en/1.0.0/): ```markdown ## [1.3.0] - YYYY-MM-DD ### Added - Description of new feature (#{PR number}) ### Fixed - Description of bug fix (#{PR number}) ### Changed - Description of changed behavior (#{PR number}) ### Removed - Description of removed feature (#{PR number}) ``` 5. Prepend to `CHANGELOG.md` 6. Link each entry to its PR ### GitHub Release 1. Create a git tag: `git tag v1.3.0` 2. Push the tag: `git push origin v1.3.0` 3. Create a GitHub Release: - **Title:** `v1.3.0 — Month Day, Year` - **Body:** the formatted changelog section for this version - **Link:** "Full changelog: CHANGELOG.md#130" ### Morning Standup Report Generated at 8:00 AM from git activity since yesterday: ```markdown ## Morning Briefing — {Date} ### Merged Yesterday - #{PR} feat(ui): add dark mode toggle - #{PR} fix(api): handle geocoding null response ### Open PRs Awaiting Review - #{PR} feat(auth): add OAuth2 login (2 days open) ### In Progress (branches with recent commits) - fix/issue-102-login-redirect (last commit 3h ago) ### ⚠️ Attention - Branch feat/old-experiment has not been updated in 5 days - 14 uncommitted changes in src/components/Map.tsx (2h idle) ``` ### End of Day Summary Generated at end of working session: ```markdown ## End of Day — {Date} ### Completed - Closed #{issue} — fix login redirect loop - Merged #{PR} — feat(ui): dark mode toggle ### In Progress - #{issue} — OAuth2 integration (spec written, implementation 40%) ### Tomorrow - Complete OAuth2 implementation - Review #{PR} from teammate ``` ### Decision-Aware Reporting Every `agenthood run` writes a decision + provenance entry to `.agenthood/decisions/` and `.agenthood/provenance/` (ADR-015). When the Herald's reports need the *why* behind merged work, read the decision log and its causal edges (`edges.json`) — the changelog can cite the recorded decision behind each change instead of guessing from commit subjects. ## Red Flags - A release with no changelog entry - A version bump that doesn't match the commit types present - `CHANGELOG.md` last updated more than 2 releases ago - A GitHub Release with no description - PRs open for more than 3 days without review ## Rationalizations | What you think | What The Herald knows | |---------------|----------------------| | "Everyone knows what changed" | Nobody reads commits. People read changelogs. Write the changelog. | | "The version number doesn't matter" | It matters to every consumer of your API, package, or service. | | "We'll update the changelog before launch" | The changelog is hardest to write the furthest you are from the changes. Write it as you go. | ## Verification Before a release: - [ ] Version bump is correct for the commit types present - [ ] CHANGELOG.md is updated with user-facing language - [ ] Git tag is created and pushed - [ ] GitHub Release is created with formatted notes - [ ] All entries link to their PRs - [ ] Breaking changes are prominently marked
عرض على GitHub