diff --git a/AGENTS.md b/AGENTS.md index 085e92f720186f79f9e6c7a249c39a1903b8341d..a9d1ff4490aeab10fe486cefe7f37cc4aceb427f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -14,7 +14,7 @@ - Verify after changes: `make verify` (formats, typechecks, lints, and tests in one pass) ## Implementation details -- Initialization requirement: most commands call `require_root()` and fail unless `.td/` exists somewhere in current dir ancestry (`db::find_root`). Only `init` and `skill` avoid this path. +- Initialization requirement: most commands call `require_root()` and fail unless `.td/` exists somewhere in current dir ancestry (`db::find_root`). Only `project` and `skill` avoid this path. - DB schema is created in `src/db.rs` (`SCHEMA`): - Foreign keys are explicitly enabled on each connection (`PRAGMA foreign_keys = ON`). - Task IDs: @@ -34,7 +34,7 @@ - `predicates` for stdout/stderr assertions - Typical pattern: 1. create temp dir - 2. run `td init` + 2. run `td project init` 3. invoke command under test 4. assert output and/or inspect `.td/tasks.db` directly with `rusqlite` - When adding/changing behavior, prefer extending these CLI tests rather than only unit tests. @@ -45,7 +45,7 @@ - JSON structs rely on serde naming alignment (notably `Task.task_type` renamed to `"type"`). Maintain compatibility for import/export and tests. ## Gotchas -- Running most commands outside an initialized tree yields `not initialized. Run 'td init'` due to upward root search; tests should set `current_dir` to initialized temp dirs. +- Running most commands outside an initialized tree yields `not initialized. Run 'td project init'` due to upward root search; tests should set `current_dir` to initialized temp dirs. - `Cargo.toml` uses `rusqlite` with `bundled` feature, so SQLite is vendored; build behavior differs from system-SQLite setups. ## Contributions