KeiSeiKit-1.0/_primitives/_rust/kei-task/atoms/create.md
Parfii-bot 0be354a920 KeiSeiKit-public — clean state
Single-commit clean baseline after security scrub of niche-tells,
project codenames, internal jargon, and contributor-email leaks.

Contents:
- 100 Rust crates (_primitives/_rust/)
- 37 agent manifests (_manifests/) + generated specs (_generated/)
- 67 user-invocable skills (skills/)
- 33 hooks (hooks/)
- Composition blocks (_blocks/)
- Documentation (docs/, README.md)
- TS adapter packages (_ts_packages/)
- Assembler (_assembler/)
- Roles (_roles/)
- Templates (_templates/)
- Forgejo CI (.forgejo/)

Author: Denis Parfionovich <info@greendragon.info>

License: see LICENSE.
2026-05-01 12:09:03 +08:00

73 lines
1.9 KiB
Markdown

---
atom: kei-task::create
kind: command
version: "0.1.0"
input:
schema: schemas/create-input.json
required: [title]
example: { title: "Fix auth bug", priority: "high" }
output:
schema: schemas/create-output.json
example: { id: 42, created_at: 1714000000 }
errors:
- code: InvalidPriority
http_analog: 400
description: "Priority must be one of: critical, high, medium, low"
- code: InvalidTitle
http_analog: 400
description: "Title must be non-empty"
- code: StoreError
http_analog: 500
description: "Underlying SQLite store failed to insert the task"
side_effects:
- { op: write, domain: kei-task-db }
idempotent: false
timeout_ms: 5000
deprecated: null
stability: stable
keywords: [task, todo, create, dag, planning]
related:
- "[[kei-task::add-dependency]]"
- "[[kei-task::search]]"
---
# kei-task::create
Creates a new task row in the kei-task SQLite DAG. Returns the inserted
row id and the `created_at` unix timestamp. Also indexes title +
description into the FTS table used by `kei-task::search`.
## Example
kei-task create "Fix auth bug" --priority high --description "Token rotation fails on leap second"
Returns the new task id on stdout:
42
Programmatic callers (runtime invocation) receive:
{ "id": 42, "created_at": 1714000000 }
## Gotchas
- `priority` defaults to `"medium"` if omitted. Case sensitive —
`High` returns `InvalidPriority`.
- `description` defaults to empty string; blank descriptions are still
indexed by FTS but yield no search hits until populated.
- `milestone_id` in the input schema is reserved for future use; the
current CLI does NOT accept it — link via `kei-task link-milestone`
after creation.
- Title uniqueness is NOT enforced at DB level; duplicate titles are
allowed and will all be returned by `kei-task::search`.
## Related
- [[kei-task::add-dependency]] — wire the new task into the DAG
- [[kei-task::search]] — look up by title / description