Przejdź do treści
Biblioteka skilli
DevOps i chmura · Automatyzacja

heartbeat

/heartbeat

Porządkuje cykliczne zadania automatyczne, które wyszukują i segregują pracę do przeglądu przez człowieka, bez automatycznego wdrażania.

Repozytorium
wellforge ↗
Licencja
MIT
Ostatnia zmiana repozytorium
14.10.2026

Ocena i bezpieczeństwo

90/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść25 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 14.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Porządkuje cykliczne zadania automatyczne, które wyszukują i segregują pracę do przeglądu przez człowieka, bez automatycznego wdrażania.

Wyzwalacze z opisu

automations
Oryginalny opis (EN)

WellForge heartbeat / scheduled-automation conventions — the "automations" pillar of loop engineering. Scheduled tasks that do discovery + triage on a cadence and SURFACE work for a human (never auto-ship). Use whenever adding or reasoning about a heartbeat: the scheduled gate heartbeat, the template-drift heartbeat, the fleet heartbeat, or the spec-health heartbeat (/wellforge:triage). Authoritative reference for the surface-never-ship rule, the one-deduplicated-issue-per-concern rule, the deterministic-vs-agentic split, the off-for-spike rule, the cost bound, and where each heartbeat records

Jak działa

  1. The non-negotiable principle — surface, never auto-ship
  2. The four heartbeats
  3. Rules every heartbeat follows
  4. Cadence
  5. See also
Sekcje z nagłówków SKILL.md, w oryginale · 83 linii, 820 słów
Podgląd SKILL.md
---
name: heartbeat
description: >
  WellForge heartbeat / scheduled-automation conventions — the "automations" pillar of loop
  engineering. Scheduled tasks that do discovery + triage on a cadence and SURFACE work for a
  human (never auto-ship). Use whenever adding or reasoning about a heartbeat: the scheduled
  gate heartbeat, the template-drift heartbeat, the fleet heartbeat, or the spec-health
  heartbeat (/wellforge:triage). Authoritative reference for the surface-never-ship rule, the
  one-deduplicated-issue-per-concern rule, the deterministic-vs-agentic split, the off-for-spike
  rule, the cost bound, and where each heartbeat records its trace.
---

# Heartbeat — scheduled automations

A **heartbeat** is a scheduled task that runs on a cadence, discovers work the pull-only flow
would miss, and **surfaces it for a human**. It is the fifth "loop engineering" component
(automations); WellForge already had the other four (skills, verifying subagents, connectors,
external state). Heartbeats exist because some findings appear **without a commit** — a newly
disclosed CVE, a template that moved ahead, a feature left half-done — so nothing triggers a PR.

## The non-negotiable principle — surface, never auto-ship

A heartbeat **opens or updates an issue, posts a digest, or drafts a human-gated PR. It never
merges, deploys, closes a feature, or self-approves.** This is the article's "stay the engineer"
warning and WellForge's gate philosophy in one rule: a heartbeat is discovery + triage, the
human decides. A heartbeat that "fixes" things silently is a bug, not a feature.

## The four heartbeats

| Heartbeat | Kind | Vehicle | Surfaces |
|---|---|---|---|
| **Gate** (14a) | deterministic | GitHub Actions `on: schedule` | CVEs newly disclosed vs merged deps, SAST-rule drift, coverage |
| **Template-drift** (14b) | deterministic | GitHub Actions `on: schedule` | project N `vX.Y.Z` releases behind its template → `/wellforge:upgrade` |
| **Fleet** (14b) | agentic | Claude Code routine (scheduled) | org-wide: which projects drifted / have failing gates → one rolling report |
| **Spec-health** (14b) | **deterministic discovery + agentic digest** | `forge-state.py` then a Claude Code routine / manual `/wellforge:triage` | stale `in-progress`, unresolved drift, passed-QE-never-eval'd, parked-before-started, invalid frontmatter |

Deterministic heartbeats are **GitHub Actions** — cheap, no tokens, no auth surprises; they
reuse the reusable gate workflows (`gates-v*`) rather than duplicating logic. Agentic heartbeats
need **judgment** (triage, summarize, prioritize) so they run as scheduled Claude Code agents.

**The split runs through a heartbeat, not just between them.** Spec-health used to be listed
as wholly agentic, which meant the model re-read every spec's frontmatter, recounted every
checkbox and re-joined every verdict on each run — discovery work, priced as judgment. It is
now **`forge-state.py` + a fixed rendering**: the script produces the `forge-state/v1`
envelope (statuses, tiers, task counts, drift, verdicts, done gates, schema violations), the
signal rules are filters over that envelope, and the model is needed only for the **digest
prose** — what to say about the findings and in what order a human should care.

Three things follow, and they are the reason to prefer this shape wherever a heartbeat can
take it:

- **It is testable.** `scripts/tests/forge-state.test.py` pins every status, tier, drift
  case and verdict kind. A prompt that recounts checkboxes cannot be tested at all.
- **It catches what prose cannot.** `status: doen` is a typo a model reads as
  approximately-`done` and a schema rejects outright. That became a triage signal only once
  discovery was deterministic.
- **It is stable across runs.** Same inputs, same envelope — so a digest that changes means
  the repository changed, not that the model read it differently this morning.

## Rules every heartbeat follows

1. **One deduplicated issue per concern.** A heartbeat that opened a fresh issue each run would
   train people to ignore it. Keep exactly one open issue per concern (identified by a label:
   `heartbeat`, `template-drift`, …): open on first finding, **update in place** each run, close
   with a comment when the finding clears. The reusable `heartbeat-report.yml` does this for the
   deterministic heartbeats; agentic ones follow the same update-in-place discipline.
2. **Off for `spike`.** A spike has no enforced gates or lifecycle guarantees to watch
   (rigor-tiers skill). Deterministic heartbeats aren't generated for `rigor: spike`; agentic
   ones skip spike-only projects.
3. **Opt-in, recorded.** Per-project heartbeats are a copier answer (`heartbeat` +
   `heartbeat_cron`) recorded in `.forge/manifest.json` — visible, upgradable, never silent.
4. **Cost-bounded (agentic).** A scheduled agent runs unattended and costs tokens. Bound it:
   cheap model for the triage sweep, escalate to a stronger model only on a real finding; cap
   the work per run; never loop unbounded. State the bound in the routine.
5. **Auth degrades gracefully (agentic).** Interactively-authenticated MCP servers (e.g. the
   github MCP) may be **absent in headless/cron runs**. A scheduled heartbeat must fall back to
   `gh` CLI / REST with a `GITHUB_TOKEN`, never assume an interactive MCP connection.
6. **Recorded like any run.** An agentic heartbeat writes a run trace per the **observability**
   skill (`.forge/runs/…-triage-…json`, or `command: heartbeat`); the deterministic ones leave
   their audit trail in the tracking issue's history.

## Cadence

Default **weekly** (`0 6 * * 1`, Mon 06:00 UTC) — low noise, still catches CVEs within days,
and the single-issue-updated-in-place model keeps it fresh without alert fatigue. Configurable
per project (`heartbeat_cron`) and per routine. Don't go tighter than the finding actually moves.

## See also

- **rigor-tiers** — why spike is excluded and how tiers gate ceremony.
- **observability** — the `.forge/runs/` trace format agentic heartbeats write.
- **connections** — wiring a scheduled routine and its `GITHUB_TOKEN` / secrets.
- `gates/README.md` — the deterministic `heartbeat-report.yml` / `template-drift.yml` workflows.

Wersje

RepozytoriumWynikLicencja
Ta strona · matteocodogno/wellforge90MIT
crisandrews/clawcode100MIT
Aicoo-Team/AICOO-Skills100MIT
wotai-dev/woterclip100MIT

Migawka bazy z 28.10.2026 · wersja paczki 8e3e38687ed4 (skrót SHA-256 całej paczki)

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100codex-automation-architect
    Projektuje, przegląda i aktualizuje automatyzacje aplikacji Codex, zadania cron, zadania cykliczne i kontynuacje typu heartbeat.
  • 95claw-heartbeat-delegation
    Przekazuje zadania agentowi heartbeat przez plik HEARTBEAT.md: przypomnienia, cykliczne sprawdzenia i zadania w tle.
  • 100spec-driven
    Stosuje w projektach WellForge konwencje spec, plan i tasks, formaty plików, cykl statusów oraz zasadę dryfu.
  • 95do.heartbeat
    Wykonuje wsadowe przeglądy stanu vaultu i proponuje działania do zatwierdzenia, milcząc, gdy nie ma nic pilnego.
  • 100scheduled-task-resilience
    Chroni zadania czekające na CI, build, wdrożenie lub zewnętrzne API przed zdublowaniem wyniku przy kolejnych sprawdzeniach.
  • 100heartbeat-log
    Analizuje plik heartbeat-log.jsonl i podsumowuje oraz analizuje historię aktywności heartbeatów WoterClip, czyli co agent zrobił.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.