generated from eblume/project-template
Some checks failed
Build / validate (pull_request) Failing after 3s
Slice 4 — the flagship Tactical blank-slate engine. Pure and clock-injected, two stages: - Candidacy filter: committed ∧ outstanding ∧ ¬tombstoned ∧ ≠blue ∧ actionable (do_date NULL or ≤ now) ∧ in scope. do_date is used ONLY here — a boolean "can I do this now?" gate, never urgency. - Order: an ordered list of named Dimensions applied lexicographically (PastLateOn → LateOverdueAmount → Attention band → CreatedAt FIFO), with node_id as final tiebreak for a total order. Reorder RANKING in one place to retune. late_on is the sole urgency signal (global tier); age never becomes urgency. blue hidden; red always shown past limit. Storage `Store::next` loads candidates via a SQL join (project + canonical-context links) and runs the pure engine with the store clock. 13 table-driven unit cases + 3 proptests (antisymmetry, sorted output fully ordered, equality ⇒ identity) + 2 end-to-end. 38 tests green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1.1 KiB
1.1 KiB
Begin the v1 prototype (Phase 1, tech-spec §11.1), built in TDD slices:
- Cargo workspace +
heph-corecrate; migration-run SQLite schema (§4.5); clock-injectedStoretrait +LocalStorenode create/get; single local-user bootstrap. - Markdown extraction (§5):
[[wiki-links]]and GFM- [ ]checkbox context-items derived purely and idempotently from a body, skipping code blocks. - Committed tasks (§4.3, §6):
task.createauto-creates the canonical contextdoc+canonical-contextlink; attention/do-date/late-on/state/recurrence columns; set-state/set-attention. Links CRUD (outgoing/backlinks). A body update reconcileswikilinks (diff-based, resolved by alias/title, idempotent). - "What is next?" ranking (§7): pure, clock-injected, two-stage engine — candidacy filter (do-date as a boolean gate only) then a reorderable list of named dimensions (past-late-on → overdue-amount → attention band → FIFO).
late_onis the sole urgency signal; blue hidden; red always shown. Proptest-checked total order.Store::nextsurfaces it over SQLite. - CI runs the Rust suite (fmt/clippy/test) via the project build hook.