Note source-output salience refinement

This commit is contained in:
Meta Vens 2026-04-25 04:39:22 +01:00
commit f9193cc52a
4 changed files with 6 additions and 0 deletions

View file

@ -25,6 +25,7 @@ This note tracks Epiphany as a fork of Codex with an opinionated modeling archit
- a source-output distillation slice that keeps `thread/epiphany/distill` read-only while summarizing noisy tool/command/shell/model output into salient lines and defaulting evidence kind to `tool-output` or `model-output`
- a risky-delta promotion policy slice that keeps `thread/epiphany/promote` as the only gate but requires medium/high/broadening/semantic/update churn deltas to carry explicit warning rationale plus strong verifier evidence kind
- a reusable richer Phase 5 app-server smoke harness at `tools/epiphany_phase5_smoke.py` that verifies source-output distillation, read-only proposal, risky-delta rejection, and accepted promotion through the loaded-thread seam
- known future refinement from that smoke: source-output distillation should rank final test results, failures, errors, and finish lines above generic warnings unless the warning is itself the important evidence
- current phase: Phase 5 semantic distillation/promotion/proposal machinery
The next job is no longer to prove the retriever exists, sketch the persistent follow-up in prose, invent the first red-pen path, build the first observation proposal surface, make promotion notice broken map/churn replacements, ship the first read-only map/churn proposal surface, teach proposal to avoid duplicating already-mapped code surfaces, make proposal frontier focus follow existing graph links, make selected observations evidence-backed with non-haunted churn pressure, rescue unanchored graph nodes with strict semantic matching, let proposal choose a bounded ready observation set when ids are omitted, make proposal pressure understand match kinds, make the distiller summarize noisy source output, make promotion notice risky deltas, or prove that richer chain over app-server by hand. Those parts are landed or live-smoked. The next job is to use the reusable smoke harness as a guardrail before adding the next smallest source-grounded proposal/promotion rule, and to keep `thread/epiphany/retrieve`, `thread/epiphany/distill`, and `thread/epiphany/propose` out of the durable-writer business.
@ -285,6 +286,7 @@ Treat the current retrieval baseline and explicit indexing follow-up as landed P
4. do not add durable retrieval-summary writes from `thread/epiphany/retrieve` without a clean out-of-band rollout/update semantic
5. continue Phase 5 by hardening the layer above the landed distill/propose/promote/update surfaces:
- better proposal heuristics beyond the current exact-code-ref, same-path, deterministic-id, graph-link, accepting-evidence, semantic-unanchored-node, selected-priority, auto-selection, and match-kind-aware map-delta-pressure checks
- possible distillation refinement: improve source-output salience ranking so generic warnings do not crowd out final test/failure/finished lines
- run `tools/epiphany_phase5_smoke.py` as a preflight before changing proposal or promotion policy
- add the next smallest promotion/proposal rule only after a source-grounded gap appears in real use or smoke output
- verifier-backed acceptance/rejection evidence

View file

@ -362,6 +362,7 @@ If a future session wakes up from compaction and starts bluffing, this is the pa
- distillation now summarizes noisy tool/command/shell/model output into salient typed evidence rather than preserving raw output sludge as the summary
- promotion now rejects medium/high/broadening/semantic/update churn deltas that lack a warning or only carry weak generic verifier evidence
- richer Phase 5 app-server smoke is now reproducible through `tools/epiphany_phase5_smoke.py`; it verifies `shell-tool` distillation to `tool-output`, read-only proposal, risky-churn rejection without warning, risky-churn rejection with weak verifier kind, and accepted promotion only with warning plus strong verifier evidence
- the richer smoke exposed one non-urgent distillation smell: source-output salience currently keeps generic warning lines too readily; future refinement should rank final test result, failure, error, and finished lines above generic warnings unless the warning is the central signal
- the Epiphany algorithmic map has been semantically audited flow-by-flow against the cited code; stale line anchors were fixed, and the current typed spine still describes a coherent machine
- the next bounded follow-up should use the richer smoke harness as a guardrail before the next source-grounded proposal/promotion hardening slice
- There is still no live `thread/epiphany/*` notification stream.
@ -469,6 +470,7 @@ Current Phase 5 implementation move:
3. keep `thread/epiphany/retrieve`, `thread/epiphany/distill`, and `thread/epiphany/propose` read-only
4. continue Phase 5 by hardening the next layer above the distill/propose/promote/update surfaces:
- run `tools/epiphany_phase5_smoke.py` before changing proposal or promotion policy
- consider source-output salience ranking as a bounded distillation hardening slice if it becomes the next real pain
- add the next smallest promotion/proposal rule only after a source-grounded gap appears in real use or smoke output
- verifier-backed acceptance/rejection evidence
- no GUI, watcher, or specialist-agent machinery yet

View file

@ -124,3 +124,4 @@
{"ts": "2026-04-25T03:21:48+00:00", "type": "verification", "status": "ok", "note": "Verified risky-delta promotion policy with cargo fmt --manifest-path .\\epiphany-core\\Cargo.toml, targeted cargo test --manifest-path .\\epiphany-core\\Cargo.toml promotion::tests (9 tests), and full cargo test --manifest-path .\\epiphany-core\\Cargo.toml (41 tests)."}
{"ts": "2026-04-25T03:24:38+00:00", "type": "verification", "status": "ok", "note": "Verified Compact-Rehydrate-Reorient-Continue readiness before compaction. state/map.yaml, epiphany_state.py status, fresh-workspace-handoff, implementation plan, and Epiphany algorithmic map agree that the current Phase 5 baseline includes source-output-aware distillation, match-kind-aware proposal churn pressure, and risky-delta promotion policy; git was clean/synced before this evidence record; next action is live-smoke the richer Phase 5 app-server chain while keeping retrieve/distill/propose read-only and avoiding GUI, watcher, or specialist-agent work."}
{"ts": "2026-04-25T03:34:04+00:00", "type": "verification", "status": "ok", "note": "Live-smoked the richer Phase 5 app-server chain with the reusable tools/epiphany_phase5_smoke.py harness after rebuilding the app-server binary. The smoke started an isolated ephemeral loaded thread, verified source-output distillation defaults shell-tool evidence to tool-output with salient output summary, confirmed thread/epiphany/propose remains read-only at revision 1, rejected risky churn without patch.churn.warning, rejected risky churn with weak verifierEvidence.kind=observation, and accepted the same risky churn only with warning plus strong verification evidence, persisting final revision 2. Result artifact: .epiphany-smoke/phase5-rich-smoke-result.json."}
{"ts": "2026-04-25T03:39:06+00:00", "type": "followup", "status": "noted", "note": "Recorded future source-output distillation salience refinement from the richer Phase 5 smoke: generic warnings currently survive summarization too readily, so a later bounded distillation slice should rank final test result, failure, error, and finished lines above generic warnings unless the warning is itself the central signal. This is noted as a future refinement, not an immediate detour."}

View file

@ -107,6 +107,7 @@ accepted_design:
- harden observation distillation incrementally: read-only `thread/epiphany/distill` should summarize noisy tool/command/shell/model output into salient bounded evidence and default evidence kind to `tool-output` or `model-output` when appropriate
- harden promotion policy incrementally: `thread/epiphany/promote` should reject risky churn deltas unless they carry explicit warning rationale and strong verifier evidence kind, while still applying accepted candidates only through the durable update path
- live-smoke the richer Phase 5 app-server chain with a reusable repo-local harness: source-output distillation produced `tool-output`, proposal stayed read-only, risky churn rejected without warning, risky churn rejected with weak verifier evidence, and accepted risky churn persisted only with warning plus strong verifier evidence
- keep source-output distillation salience ranking as a future refinement: final test result, failure, error, and finished lines should outrank generic warnings when compressing noisy tool output unless the warning itself is the central signal
rejected_paths:
- name: pinned_map_only