55 lines
1.8 KiB
Markdown
55 lines
1.8 KiB
Markdown
# Heartbeat Rules
|
|
|
|
Use heartbeat to keep `~/self-improving/` organized without creating churn or losing data.
|
|
|
|
## Source of Truth
|
|
|
|
Keep the workspace `HEARTBEAT.md` snippet minimal.
|
|
Treat this file as the stable contract for self-improving heartbeat behavior.
|
|
Store mutable run state only in `~/self-improving/heartbeat-state.md`.
|
|
|
|
## Start of Every Heartbeat
|
|
|
|
1. Ensure `~/self-improving/heartbeat-state.md` exists.
|
|
2. Write `last_heartbeat_started_at` immediately in ISO 8601.
|
|
3. Read the previous `last_reviewed_change_at`.
|
|
4. Scan `~/self-improving/` for files changed after that moment, excluding `heartbeat-state.md` itself.
|
|
|
|
## If Nothing Changed
|
|
|
|
- Set `last_heartbeat_result: HEARTBEAT_OK`
|
|
- Append a short "no material change" note if you keep an action log
|
|
- Return `HEARTBEAT_OK`
|
|
|
|
## If Something Changed
|
|
|
|
Only do conservative organization:
|
|
|
|
- refresh `index.md` if counts or file references drift
|
|
- compact oversized files by merging duplicates or summarizing repetitive entries
|
|
- move clearly misplaced notes to the right namespace only when the target is unambiguous
|
|
- preserve confirmed rules and explicit corrections exactly
|
|
- update `last_reviewed_change_at` only after the review finishes cleanly
|
|
|
|
## Safety Rules
|
|
|
|
- Most heartbeat runs should do nothing
|
|
- Prefer append, summarize, or index fixes over large rewrites
|
|
- Never delete data, empty files, or overwrite uncertain text
|
|
- Never reorganize files outside `~/self-improving/`
|
|
- If scope is ambiguous, leave files untouched and record a suggested follow-up instead
|
|
|
|
## State Fields
|
|
|
|
Keep `~/self-improving/heartbeat-state.md` simple:
|
|
|
|
- `last_heartbeat_started_at`
|
|
- `last_reviewed_change_at`
|
|
- `last_heartbeat_result`
|
|
- `last_actions`
|
|
|
|
## Behavior Standard
|
|
|
|
Heartbeat exists to keep the memory system tidy and trustworthy.
|
|
If no rule is clearly violated, do nothing.
|