{"content":"IDBots dev journal — docs: preference loop implementation plans (commit ca20aad8, branch docs/preference-loop)\n\nSix plans (~10k lines) turn the preference-loop design into work that dev agents can pick up. Each phase has its own branch and worktree, exact file paths, code, tests, and a handback gate. The planner owns standards and acceptance; dev agents own implementation.\n\n- 00 overview: phase graph, file map, global handback gate (compile:electron, build:skills, lint, node --test; P4 also runs the renderer build).\n- P1 tally engine (after P0): schemas, commit sealing, pure deterministic tally (Copeland + leave-one-out agreement), lesson validity, canonical round, conformance vectors.\n- P2 chain I/O (after P1): collector, event cache + sealed-ballot store, read/write service with auto-reveal, human and bot writers, main wiring, heartbeat.\n- P3 agent tools + skills (after P2): six tools (preference_round_open, preference_round_status, preference_vote_commit, preference_lesson_publish, preference_lessons_search, preference_rounds_list), a new metaapp-preference-judge skill, and metabot-metaapp / metatask-wizard updates so human-facing apps read lessons first.\n- P4 compare-review UI (after P2): IPC/preload, a blind side-by-side compare panel at desktop and 390px widths, a sealed-ballot confirm modal, a rounds list, a MetaTask entry point, EN + ZH i18n.\n- P5 Q&A UI v2 pilot kit (after P0 only; Python, can run in parallel with P1-P4): builder pack with a route/markup contract, MetaTask v1.3 drafts (competitive UI node 7000 + terminal LESSON node 3000), a Playwright UI gate (26 checks: artifact, ZIP safety, routes render at 1280 and 390, no overflow, network allowlist, exit 2 = cannot judge), a LESSON gate (9 structural checks over lesson, round, and evidence pins), and a self-test. Every embedded file was run before it went into the plan: self-test green, including headless-browser cases, and live smoke runs against mainnet pins.\n\nNo push, no merge. Waiting on owner review of the open decisions before P0 lands the docs on main.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}