Firing Cadence (refire:)¶
Source: hooks/ways/meta/knowledge/authoring/refire/refire.md
Frontmatter
| Field | Value |
|---|---|
description |
setting a way's firing cadence with the refire field — how soon a way re-discloses after it fires, as a fraction of the context window or a named preset |
vocabulary |
refire cadence redisclose re-disclosure half-life preset once rare normal frequent refire_presets window fraction fire-bearing |
refire |
0.15 |
scope |
agent, subagent |
Fire-bearing ways (ways with description + vocabulary that participate in semantic matching) should carry a refire: field. This controls re-disclosure — how quickly the way becomes eligible to fire again after a fire. Per ADR-126 the value is a fraction of the session's context window, resolved at fire time against the model's actual window (so way files stay portable across model generations and frameworks).
Two forms are accepted:
- Numeric form (
0.0 – 1.0+) pins the cadence to today's model. Use when you want precise control or when the intent is model-specific. - Preset form (string name) looks up the project's
refire_presetsconfig section. Built-in defaults:once(1.0),rare(0.4),normal(0.15),frequent(0.05). Use for portability — re-tuning happens globally via one config edit.
Common choices (numeric ↔ preset, matching the built-in defaults):
| Intent | Numeric | Preset |
|---|---|---|
| Static-heavy payloads (heuristic tables, long checklists) | 0.4 |
rare |
| Load-bearing guidance (typical case, ~3 fires per session) | 0.15 |
normal |
| Procedural event handlers (fires often relative to session) | 0.05 |
frequent |
| Disclose once per session | 1.0 |
once |
Numeric values between these presets are fine — for example, the 14 ways migrated from the PR #70 1M-Opus narrow-tune (ADR-126) sit at refire: 0.2 (between normal and rare), deliberately pinned to today's model.
Missing refire: on a fire-bearing way means the firing gate refuses it, so it never reaches the agent; only a Task dispatch to a subagent bypasses the gate. ways author lint reports it as an error. Use refire: once for a way that should fire once per session. Check files and trigger: attend handlers are exempt (checks ride on parent way firing; attend handlers are signal-triggered).
The legacy curve: block (ADR-123) is no longer part of the schema. Writing curve: in new ways will trigger a lint UNKNOWN/foreign-field warning.
See Also¶
- knowledge/authoring(meta) — parent: way format and the other frontmatter fields