Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Records a micro-decision with rationale into the haft artifact graph — lighter than a full DecisionRecord but persisted so future sessions and conflict detection can surface it. Make sure to use this skill whenever the user says "remember that", "FYI for later", "note that we chose X", "side note", "let's record we ruled out Y", "remember we decided X", "for the record", "worth noting", "TIL", "important caveat", "save this thought" — or whenever a small choice with stated rationale belongs in p
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✓→✗ | ▼ Worse | 119% | 0% |
| case-07 | ✓→✗ | ▼ Worse | -35% | 0% |
| case-09 | ✓→✗ | ▼ Worse | -4% | 0% |
| case-10 | ✓→✗ | ▼ Worse | -18% | 0% |
| case-11 | ✓→✗ | ▼ Worse | -2% | 0% |
Use haft_note only when the operator asks to remember/save something or a current Work supplies a concrete operator-named or agent-inferred receiving use that needs an addressable fact. Keep observations atomic, state why they matter, and anchor them to relevant artifacts and stable implementation files. A note is not a choice, ProblemCard, evidence verdict, approval, or WorkPlan.
Tool arguments and generated references are not proof that the operator asked to persist. Use task_context only to correlate the saved fact with its receiving task, not as an authority receipt. Set valid_until when the fact has a known expiry or review boundary.
When the exact current concern is known, include entity_ref with ref_kind_id="U.EntityRef" plus bounded_context_ref. Preserve the returned Haft.ProjectRecordRef exactly for later typed relations; never derive a record ID from the note artifact ID. Without exact concern basis, the note may persist while typed projection remains underdetermined.
Other measured skills in the registry, with their headline benchmark lift.