run-trackers: make the tracker # History append an explicit step - #35
Open
andrewsu wants to merge 1 commit into
Open
run-trackers: make the tracker # History append an explicit step#35andrewsu wants to merge 1 commit into
# History append an explicit step#35andrewsu wants to merge 1 commit into
Conversation
`packs/core/schemas/tracker.md` lists `# History` as a required body section
("bullet list of dated entries, each linking to a digest"), but none of the
three surfaces that specify a tracker run ever tell the agent to write it:
- packs/core/skills/run-trackers/SKILL.md (2.6 covers frontmatter only)
- packs/core/workflows/run-tracker.md (step 8, the canonical procedure)
- packs/core/prompts/run-trackers.md (step 6)
So an agent that follows the procedure literally produces a tracker whose
`# History` never grows, while one that goes beyond the procedure writes it.
Both behaviours are observable in a real vault: runs on one date wrote History,
runs a week later did not, and the difference was spec-compliance rather than
diligence.
The omission is invisible in normal use. Scheduling keeps working because
`last_checked` / `next_check` / `last_digest` are all still set correctly, so
nothing surfaces as broken -- the tracker just silently under-reports its run
count. That matters because it erodes the evidence for the `miss_count >= 5`
cadence-retune path, which is the only self-correcting mechanism trackers have:
if History cannot be read as a run log, there is no way to judge later whether a
weekly tracker should have been monthly.
This adds the step to all three surfaces so they agree, and states the three
things needed to keep it from being dropped again:
- `last_digest` is state, `# History` is provenance -- having one does not
excuse skipping the other.
- A line is required even for `material: false` runs, since silence in History
is indistinguishable from "never ran."
- One line per run; the digest holds the detail.
Docs only -- no behavioural code changes. Trailing step numbers renumbered in
each file (skill 2.7 -> 2.8, workflow 9 -> 10, prompt 7 -> 8).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The gap
packs/core/schemas/tracker.mdlists# Historyas a required body section:But none of the three surfaces that specify a tracker run ever tell the agent to write it:
# History?packs/core/skills/run-trackers/SKILL.mdpacks/core/workflows/run-tracker.mdpacks/core/prompts/run-trackers.mdAll three list
last_checked/next_check/last_digest/miss_countand stop there. So an agent that follows the procedure literally leaves# Historyempty forever, and an agent that writes it is going beyond the spec.Observed in a real vault
Both behaviours showed up in the same vault, a week apart:
# Historyentries on all three trackers it touched.auto_update_wiki: true) edited the target project page — but wrote no# Historyline on any of the three.The second batch wasn't sloppy; it was spec-compliant. One tracker's
# Historystill ended at its creation date whilelast_digestpointed at a digest from two runs later.Why it stays hidden
Nothing surfaces as broken.
last_checkedandnext_checkare still correct, so scheduling works, due-ness is right, and the daily briefing reports normally. The tracker just quietly under-reports its own run count.That matters because it erodes the evidence for the
miss_count >= 5→status: needs_reviewpath — the only self-correcting mechanism trackers have. Judging later whether a weekly tracker should have been monthly means reading its run log, and# Historyis that log. In the vault above, six of seven trackers were set toweeklywhile realistically moving fortnightly, and the History gaps made that harder to see rather than easier.The change
Adds the step to all three surfaces so they agree, and states the three things needed to keep it from being dropped again:
last_digestis state;# Historyis provenance — having one doesn't excuse skipping the other. This is the specific reasoning error that makes 2.6 look complete.material: falseruns — silence in# Historyis indistinguishable from "never ran," which is exactly what makes a climbingmiss_countillegible.# Historyis the index.Docs only, no behavioural code. Trailing step numbers renumbered in each file (skill
2.7 → 2.8, workflow9 → 10, prompt7 → 8); no other cross-references point at them.Notes for review
_schemas/tracker.md,[[Tracker Digest - <slug> - <today>]]) rather thanpacks/core/…, matching how the surrounding text in these files already reads at runtime in an installed vault.linthas no check for "tracker has digests that aren't referenced in its# History." That's what would have caught this without a human noticing. Happy to add it in a follow-up.