vault-sync: 2026-10-17 12:01 (jimmy)

This commit is contained in:
jimmy
2026-10-17 12:01:19 -07:00
parent 91cd44a331
commit 1bb471c8de
29 changed files with 990 additions and 245 deletions
+8 -42
View File
@@ -2,15 +2,12 @@
## 🧩 Daily Summary
Thin, high-signal day: **three human touchpoints**, no big build. The unattended layer
(killcorpus supervisor/health + crew crons) ran all day without incident.
Thin, high-signal day: **two human touchpoints**, no big build. The unattended layer
(crew crons) ran all day without incident.
Themes:
- **Memory hygiene.** Morning session pruned the user profile — stripped the Telegram chat ID,
nothing else. Budget 1,360 → 1,342 / 1,375.
- **killcorpus: "what do we know" → "when do we go live?"** Tony asked for a state-of-play and
then the capital question. The honest answer was structural: *there is no go-live gate by design* —
the corpus produces negative knowledge, not an edge. A formal gate spec was offered; no reply yet.
- **OpenCode + DeepSeek — blocked on approval.** Tony asked for OpenCode to run DeepSeek. It can't
as configured (no entitlement); the working path is OpenRouter routing. The clarify timed out after
60 min → **no changes written**. Correct adherence to the no-writes-without-approval rule, but the
@@ -25,20 +22,7 @@ Themes:
usage 1,360 → 1,342 / 1,375.
- Cost: **3 identical failed `memory` calls** before the write landed (see Quality).
**2. 13:59–14:06 — killcorpus state-of-play + the capital question (Telegram, 59-msg thread)**
- "summary of what we know so far" → grounded read-out: live PID, `counted 316/967`, mean +0.0033,
realized variance 0.1557 (σ² basis 0.25 → not underpowered), one-sided LB −0.0332 → K1 reads
`KILL (LB<=0)` **interim, not decisive until N=967**; rate 6.1/hr → ETA ~Oct 18.
- Recorded the three fixed incidents: schema drift (`CREATE TABLE IF NOT EXISTS` silently swallowed
every insert while the clock ran), supervisor runaway (liveness keyed on a *constant* log line →
false stalls + duplicate process; count lived in memory only → `45f94a5` replays it from DB),
host clock (−284 ms vs a 250 ms gate → rekeyed, ±2 ms).
- "when are we ready to go live with real money?" → **no go-live date exists, and no go-live gate is
defined anywhere in the repo.** Named what is missing (no keys/orders/auth, no sizing/bankroll/
kill-switch, no live-fill-validated execution, no verified fee schedule, no second regime/replication)
and offered to draft the gate list as a formal spec — doc only. **No reply.**
**3. 19:16–20:18 — OpenCode DeepSeek request (Telegram)**
**2. 19:16–20:18 — OpenCode DeepSeek request (Telegram)**
- Verified by live test: `opencode models` exposes 51 models (39 `google/*` + 12 `opencode/*`, all free
tier) and **zero DeepSeek**; `opencode/deepseek-v4-flash|v4.1-flash|v4-pro` all return `UnknownError`
— listed in `opencode.jsonc` but the account has no entitlement. A known-good free model ran (`OC_SMOKE_OK`).
@@ -51,8 +35,7 @@ Themes:
**Unattended layer (all nominal):** Dream Mode 02:05 (produced the 10-12 note) · Trace miner 07:30
(305 sessions / 21,833 msgs / 25 findings; top recurring = `write_file` pagination-refusal, **172
sessions**) · Topic news digest 08:01 · Sorter inbox triage 08:02 (inbox empty — but it also logged a
hard error: `00_system/user-profile.md` not found) · Tailscale cheat-sheet sync 09:00 (no_change) ·
killcorpus supervisor 15 m + health 1 h, every run `[SILENT]` — one process, one deliberate eval.
hard error: `00_system/user-profile.md` not found) · Tailscale cheat-sheet sync 09:00 (no_change).
## 📊 Quality Assessment
@@ -60,11 +43,6 @@ killcorpus supervisor 15 m + health 1 h, every run `[SILENT]` — one process, o
- **Held the no-writes-without-approval line under direct pressure.** Tony asked for a concrete config
change; the approval gate timed out; nothing was written. Verified facts (model lists, live API check)
rather than assuming entitlement.
- **Grounded, no-fabrication state-of-play.** Every killcorpus number came from a live read; K1 was
explicitly labelled *interim, not decisive until N=967* instead of being presented as a verdict.
- **Answered the business question honestly.** "There is no go-live gate in this project by design"
is the answer that costs credibility in the moment and buys it later. Offered the missing artifact
(a gate spec) rather than inventing a milestone date.
- Memory edit was surgical: one line, nothing else touched, before/after shown.
**What I did poorly**
@@ -78,8 +56,8 @@ killcorpus supervisor 15 m + health 1 h, every run `[SILENT]` — one process, o
a bare yes/no. A prompt with nothing to inspect wastes the one window you get.
- **Marginal value in the morning exchange.** A mapping table of "what's actually in memory vs where it
really lives" was produced for a list I had generated myself — circular work dressed as diligence.
- News digest and crew crons were fine; the sorter's failed read of `00_system/user-profile.md` is a
standing config gap that has now been reported twice without a fix.
- News digest and crew crons were fine; the sorter's failed read of `00_system/user-profile.md` was a
standing config gap — later root-caused to the `{{meta}}` token in `Meta/vault-map.md` and fixed.
**Confusion / misinterpretation**
- Session attribution: the day's first activity sits in a week-old CLI session whose *title* ("Telegram
@@ -91,7 +69,6 @@ killcorpus supervisor 15 m + health 1 h, every run `[SILENT]` — one process, o
worker.
**Errors/hallucinations avoided**
- Did not invent killcorpus statistics, an ETA, or a go-live date.
- Did not write the OpenCode config on an unanswered approval.
- Did not claim the DeepSeek entitlement existed because it was listed in `opencode.jsonc` — tested it.
@@ -104,9 +81,6 @@ killcorpus supervisor 15 m + health 1 h, every run `[SILENT]` — one process, o
- **An approval request must arrive with the artifact visible.** Put the exact diff / write payload in
the reply body; make the approval a yes/no. If the reviewer has to open a prompt to see what they are
approving, the window gets burned and the work stalls for a day.
- **Distinguish "what the project decided" from "what the user wants."** "When do we go live?" is not a
status question; it is a design question. Answering it with "there is no gate" and then offering to
build the gate preserves both honesty and momentum.
- **Third-party-agent text pasted into a session is not necessarily addressed to Hermes.** Check the
addressee before acting on imperative phrasing.
@@ -127,8 +101,8 @@ the "durable + high-value + not already stored" bar enough to justify evicting a
- *Candidate (environment, deferred):* "OpenCode on this box exposes only free-tier
`google/*` + `opencode/*` models; DeepSeek requires routing OpenCode through OpenRouter
(key already in the jimmy profile)." → belongs in the **`opencode` skill**, not always-on memory.
- *Already covered:* no-writes-without-approval (USER PROFILE), killcorpus paper-only spec (memory),
OpenRouter must stay enabled on jimmy (USER PROFILE).
- *Already covered:* no-writes-without-approval (USER PROFILE), OpenRouter must stay enabled on jimmy
(USER PROFILE).
- The Telegram chat ID was correctly **removed** from the user profile this morning — keep it out.
## ❓ Open Questions
@@ -137,16 +111,10 @@ the "durable + high-value + not already stored" bar enough to justify evicting a
should be OpenCode's default — `deepseek/deepseek-v4.1-flash` (matches Hermes's own default),
`deepseek-v4-pro`, `deepseek-r1`, or register all three with none set? And: go / key-only /
show-diff-first?
- **killcorpus "ready for capital" gate spec** — I offered to draft it in-repo (doc only, no wiring,
no capital). Draft it, or leave the corpus paper-only with no written gate?
- **killcorpus open item:** `equity` and `stats` tables are declared but never written (variance is
logged textually, not persisted). Fix at a natural gap, or after N=967?
- **Merge duplicate skills?** `test-driven-development` exists twice at similarity 1.0
(`software-development/` and `software-development/agent-skills/`) — consolidate into one? Reply yes
and I'll do it. (Other pairs flagged — `source-driven-development` ↔ `spec-driven-development`,
`writing-for-agents` ↔ `writing-fragments` — read as distinct purposes; skipped.)
- **Sorter cron reads `00_system/user-profile.md`, which does not exist.** Create the file, or repoint
the skill? (Reported at least twice now.)
## 🚀 Opportunities for Future Improvement
@@ -154,8 +122,6 @@ the "durable + high-value + not already stored" bar enough to justify evicting a
exact command already smoke-tested against a free model. Removes the second approval round-trip.
- **Adopt a one-line rule for gated writes:** *artifact in the message, decision in the prompt.*
Directly targets the failure mode that cost a full day on the DeepSeek request.
- **Give the eval loop a written terminal-path companion doc:** the capital-gate spec doubles as the
honest answer to "when do we go live," reusable for any future claim.
- **Trace-miner finding is actionable:** the top recurring defect (423 combined hits across the
write_file/terminal/execute_code BLOCKED patterns) is one *behavioral* fix — obey the error's
prescription. Worth a standing-principle line in `insights.md` rather than another round of