allod memory backpass: run the skill as a program, not a prompt #276
Labels
No labels
blocked
bug
decision
duplicate
enhancement
help wanted
invalid
landed?
question
ready-to-merge
stale
wontfix
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
allod/tools#276
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Make the memory backpass a program,
allod memory backpass, so a nightly timer runs code and spends a model only on the two prompts, instead of asking a headless model to follow the skill's ten steps with a shell. Part of allod/strategy#55.Primary goals:
allod/memoryskills/memory-backpass/SKILL.mdstays the spec and the command cites its step numbers.<!-- memory-backpass:self -->and is self-contained, because a harness that loads its own instruction files has refused a bare prompt as an injection.--report-only, a non-zero exit when any trace failed, never a push to a default branch; the PR is the artifact.Current state and specifics
The skill has run three times by hand, each time as a session following the prose and writing throwaway scripts. The planned timer (
allod/archetypesmodules/memory-backpass.nix, in progress) startspi -pwith a prompt that says to read the skill and run it. The 2026-10-18 hand run took a full session for 43 traces at about three minutes each with four calls in flight, and the scripts it left behind are the shape of this command:memory.mdbullet (PUB-nnn,PRV-nnn), id every open ledger line asL-plus the first 8 hex of its SHA-256, list mergedmemory-backpass:PRs with an unchecked relay lineanalysis-prompt.mdby literal substitution, call the bulk model under a hard timeout, gate on parsed content withpositive,negative,gapsarrays, strip a Markdown fence, retry once, then the fallback seatallod change begin, synthesis call, budget hook,record,submit, labelrelay; public edits as plain commits in a second worktree, left unpushedThree defects the hand run hit that the code must not repeat: a bash
${var//pattern/replacement}filler turned every&in a trace into the matched placeholder (patsub_replacementis on by default in bash 5.2), which showed up only as a 36% quote-drop rate; apkill -fwhose pattern also appeared in the calling shell's command line killed the run; and the state file recorded paths, so a trace that kept growing after it was read stayed marked done (fixed in the skill:sha256sumlines, see the relay in the private memory repository's backpass PR of 2026-10-18).Model choice stays with the deployment's
agent-rosterskill; the command takes the bulk and synthesis seats as options or environment and names them in the report, and never substitutes a seat silently.Scope
In: the subcommand, a
docs/allod-memory.mdpage, tests on fixture traces and memory trees with a fake model (a script the command is pointed at) covering the funnel, the quote check, the one-line-per-rule-and-session rule and the hash marker. Out: the timer module itself (allod/strategy#55 slice 2 shrinks to calling this command), thememory-pruneskill (a laterallod memory prunein the same shape), and trace retention inmemory-traces.