Pilot refactor per locked substrate schema. kei-task migrated to atom
layout:
- atoms/<verb>.md — YAML frontmatter + human body for 3 verbs
- atoms/schemas/<verb>-{input,output}.json — JSON Schema draft-07
- src/atoms/<verb>.rs — typed Input/Output/Error + pub fn run()
- src/atoms/mod.rs — module registry
- Cargo.toml [package.metadata.keisei] — crate-level substrate data
- src/main.rs — dispatcher for 3 pilot commands via atoms::
Zero behaviour change: 7/7 integration tests pass before and after
(create_and_get, update_persists, cycle_detected, milestone_linking,
dependency_chain_traversal, task_graph_edges, search_finds_task).
main.rs still has 5 non-migrated subcommands (update, graph,
dependency-chain, milestone, link-milestone) — scope discipline, they
migrate in later passes. main.rs 120 → 132 LOC.
Stream B pilot reference — other crates follow this pattern in v0.24+.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
32 lines
735 B
TOML
32 lines
735 B
TOML
[package]
|
|
name = "kei-task"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
rust-version = "1.75"
|
|
description = "Task DAG with deps + milestones (SQLite). Port of LBM internal/task."
|
|
|
|
[package.metadata.keisei]
|
|
backend = "sqlite"
|
|
db_env = "KEI_TASK_DB"
|
|
db_default = "~/.claude/task/task.sqlite"
|
|
migrations_dir = "migrations/"
|
|
schema_version = 1
|
|
|
|
[[bin]]
|
|
name = "kei-task"
|
|
path = "src/main.rs"
|
|
|
|
[lib]
|
|
name = "kei_task"
|
|
path = "src/lib.rs"
|
|
|
|
[dependencies]
|
|
rusqlite = { version = "0.31", features = ["bundled"] }
|
|
clap = { version = "4", features = ["derive"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
anyhow = "1"
|
|
chrono = { version = "0.4", default-features = false, features = ["clock"] }
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3"
|