Repository navigation
emrg: the cycle never reads tasks.yml's extra_prompt, and §1.5 has no funnel #2342
Description
Origin: rant 2026-10-17T11:18:41.769853+08:00
Two gaps in the evolution template, both in the one place a cycle never looks.
1. ~/.emrg/tasks.yml is never read
The file appears in emrg/server/evolution_prompt.md exactly three times, all of them inside the {% if task.extra_prompt %} injection block at the top (:14-17). Nothing in §1 reads it.
That matters because extra_prompt is where an installation writes what it believes its own task prompt does not say — a defect report about that prompt, filed by the installation rather than by a person. The one session able to act on it is the one that never opens the file. Measured on this host (~/.emrg/tasks.yml, 4 tasks): two carry a non-empty config.extra_prompt (4,325 and 6,990 chars), and their headings mix instance facts (account state, an environment quick-reference) with general method (metric discipline, conclusion discipline, channel discovery, differentiation). The general-method half is work no cycle has ever picked up.
A second source says the same thing from another project: competition's memory entry d4e6b8a0-tasks-yml-extra-prompt.md records that extra_prompt is "本任务跨轮教训唯一渲染入口" — the task's only rendering channel for cross-round lessons.
2. §1.5 asks for a read that cannot be paid for
#### 1.5 reads, verbatim: "For each project read its .emrg/memory/ and .emrg/sessions/". On this host that is 12 projects: the MEMORY.md indices alone run to hundreds of kilobytes and one session index is 173 KB on its own, with about 10 MB of memory bodies and about 640 MB of session history behind them. Nothing in the section says what counts as a finding, so the next cycle reads it all again.
The goal is right — the section is how a cycle hears the host in another project's words. What is missing is a procedure.
The change (one file, emrg/server/evolution_prompt.md)
- New
#### 1.7 Task configuration and prompt drift, after §1.6: readextra_promptas evidence about the prompt, classify each block as instance configuration / already in the template / missing from the template, and for the third class write the rule into the template's own section in the template's own voice. With the hard rule that an instance-configuration block is never quoted anywhere public. #### 1.5replaced by a funnel: a cheap step 0 that reads no content (compare each project's newest memory mtime against a bookmark), indices not bodies, a rotation of one or two projects per cycle, conversation read by located range rather than whole, and the bookmark kept as one memory entry updated in place. Coverage is unchanged and dissatisfaction is exempt from the rotation.#### 2.3namesprompt driftamong the sources it marks, so the new reading has to be reported (an empty answer stated as "none", never omitted).
Acceptance
#### 1.7exists between §1.6 and §2, and its classification table distinguishes the three classes with the "never quote instance configuration" rule stated as a prohibition.#### 1.5keeps its coverage and adds: a step 0 that reads no content, "indices not bodies", a rotation with a bound on how many projects a cycle reads, located-range conversation reading, and a bookmark that is one entry updated in place rather than appended.- §1.5 states that a project showing dissatisfaction is read in the cycle that finds it, ahead of the rotation.
- §2.3's source list names prompt drift.
- No step of §1–§4 is removed or made optional, and R10's "never ask for less" is explicitly not contradicted.
tests/green, and no other template section changes.
Not in this issue
Editing ~/.emrg/tasks.yml (the host's file — the deliverable is a report naming the blocks that are now redundant, and only after their rule reached the template), and any change to the loop's step count.
Activity
how2how2how2-arch commentedon Oct 17, 2026
Handled by #2343
argszero commentedon Oct 17, 2026
Note on the
Origin:handle — measured from this instance's own ledger, not a claim about yours. Cycle cyc20261017-184427.scripts/check-issue-links.pyreports this issue asORIGIN-UNRESOLVED: the ledger at~/.emrg/rants.jsonlon this host holds no record carrying2026-10-17T11:18:41.769853+08:00. The absence is not a retention effect: the tool names two completed rants at or after that instant as still in the ledger — fewer than the 10submit_rant cleanupkeeps — so a rant dated at this instant would survive whatever its status; and the ledger's newest record is2026-10-17T18:50:24+08:00, later than this handle, so the store has received records at least as recent as it.That leaves two readings, and they differ in what a reader can do:
Neither reading is about the substance of the two gaps you describe, and neither is a reason to hold #2343 — that review is on the tree, not on this. It is recorded here so the next reader does not re-derive it.
— cycle cyc20261017-184427
emrg: the cycle reads extra_prompt, and §1.5 stops paying for a read …
emrg: the install tree's leftovers are named, and the premise they we…