Skip to main content

max / everycycle

chore: move todo.md to private layer (gitignored)
Author: Max Johnson <me@maxj.phd> · 2026-06-05 00:22 UTC
Signed with PGP, not checked
Commit: e582881e4877fbdc68cb5a2c453dc6881976587b
Parent: 68634f6
2 files changed, +3 insertions, -77 deletions
M .gitignore +3
@@ -3,3 +3,6 @@
3 3 .DS_Store
4 4 *.swp
5 5 *.swo
6 +
7 + # Private working files — live in _private/, synced via Syncthing
8 + todo.md
D todo.md -77
@@ -1,77 +1,0 @@
1 - # EveryCycle TODO
2 -
3 - Open work only. Completed items move to `todo_done.md` (sibling) when one exists. Design notes go in `docs/<name>.md`, not folded into checkboxes.
4 -
5 - Format rule: every actionable line is a `- [ ]` checkbox. Headings group phases and themes; do not put status updates in them.
6 -
7 - Live roadmap: `docs/roadmap.md`. This file is the execution queue against that roadmap.
8 -
9 - ## Key Paths
10 -
11 - Read these to orient before working on EveryCycle:
12 -
13 - - `docs/roadmap.md` — threads, milestones, settled decisions
14 - - `docs/architecture.md` — component layout, executor model
15 - - `Cargo.toml` — workspace members
16 - - `crates/hal/src/lib.rs` — device enumeration entry point (Thread D1)
17 - - `crates/runtime/src/lib.rs` — executor trait host (Thread A1)
18 - - `crates/tui/src/lib.rs` — operator UX, audit screen target (Thread G)
19 - - `docs/hardware/mm-v1-bom.md` — MakeMachine v1 BOM (substrate)
20 -
21 - ---
22 -
23 - ## Phase 0 — First code, no GPU required
24 -
25 - Hardware-free work to land before the A1 hardware arrives.
26 -
27 - - [ ] Sketch `hal::DeviceInventory` shape (PCI, DRM nodes, NVML when present, hwmon). Land minimal enumeration that runs on any Linux box.
28 - - [ ] Define the executor trait in `runtime/` with cross-vendor activation-handoff signatures present from day one (forward-compat for A4 per roadmap line 43).
29 - - [ ] Sketch the native client API surface in `crates/api/` (or `crates/serving/` — see Phase 1 rename decision). Just types and the IPC shape; no implementation. This is Thread I starting at A1.
30 - - [ ] Write `docs/api-stability.md` capturing the v1-freeze gate, semver policy, and deprecation window from the new "Client API stability" settled decision.
31 - - [ ] Wire `everycycle-tui`'s audit screen against real `hal` data — even on a GT-710-only box. Thread G brand moment.
32 -
33 - ## Phase 1 — Open roadmap decisions
34 -
35 - - [ ] Decide on rename `serving` → `api` (or `client-api`) and reframe Thread B from "serve models" to "first workload class" (item E from 2026-05-23 roadmap review). If yes, do the crate rename + B-thread heading rewrite in one pass.
36 - - [ ] Decide executor isolation final shape for the CPU executor (in-process dlopen vs sidecar; CUDA/ROCm are already forced sidecar).
37 - - [ ] Decide A1 dispatch planner sophistication (greedy heuristic vs real optimizer up front).
38 - - [ ] Decide first-boot online vs offline default.
39 - - [ ] Decide BMC agent A1-equivalent scope (just enumerate Redfish, or already running flashed OpenBMC).
40 -
41 - ## Phase 2 — A1 hardware
42 -
43 - - [ ] Order Tesla P40 (24 GB GDDR5, Pascal) + GT 710 boot card. ~$230 per roadmap A1.
44 - - [ ] Install P40 in MakeMachine v1; verify thermals and PCIe link state via hal enumeration.
45 - - [ ] Vendor ggml-cuda in-tree at a known good commit; build glibc sidecar that wraps it.
46 - - [ ] First Qwen 0.6B Q8 smoke test (B1) end-to-end: audit → plan → serve.
47 -
48 - ## Phase 3 — Multi-client (Thread C, A2)
49 -
50 - - [ ] Stand up two-client arbitration demo on a single P40 with fair-share scheduling. This is the load-bearing PipeWire-analogy demo per the revised Thread C.
51 -
52 - ## Phase 4 — Compatibility shims (Thread J)
53 -
54 - - [ ] Ship J1: OpenAI Chat Completions shim as a separate process that consumes the native client API. Land alongside B2 (first useful responses).
55 - - [ ] Ship J2: llama.cpp server protocol shim.
56 - - [ ] Defer J3 (Ollama), J4 (vLLM/TGI), J5 (ComfyUI) until J1/J2 are stable.
57 -
58 - ---
59 -
60 - ## Business and governance (Make Creative, LLC)
61 -
62 - Captured from the 2026-05-23 Fellow-lead framework discussion. Not coding work, but blocks scaling the project beyond solo operation.
63 -
64 - - [ ] File "EveryCycle" trademark under Make Creative, LLC. Mark ownership controls brand identity through any future structural change.
65 - - [ ] Draft `docs/governance.md` charter: who decides what at Phase 1 (Fellow inside Make Creative). Includes technical-direction authority, brand/trademark gate, profit-share structure on MakeMachine sales attributable to EveryCycle.
66 - - [ ] Draft CLA / IP assignment template for contributors (Fellow, residents, interns, contractors). Standard work-for-hire; code stays MIT outward.
67 - - [ ] Decide profit-share parameters for the eventual Fellow lead (% of MakeMachine gross margin, duration, vesting).
68 - - [ ] Document Phase 2 trigger conditions (when to spin out `EveryCycle, LLC` as a subsidiary of Make Creative). Don't act on this until triggered.
69 -
70 - ---
71 -
72 - ## Backlog (not yet ordered)
73 -
74 - - [ ] Ship .deb packaging for Ubuntu LTS 24.04 (the single supported target). Other distros are best-effort, no formal packaging commitment.
75 - - [ ] Thread E first deliverable: regression suite stub that records what hardware passes today.
76 - - [ ] Thread F: enumerate Redfish on MakeMachine v1's AST2600; defer OpenBMC flash.
77 - - [ ] Long-arc: when v1 API freeze approaches, write the migration document and the deprecation window policy as their own published doc.