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.
2 KiB
2 KiB
| atom | kind | version | input | output | errors | side_effects | idempotent | timeout_ms | deprecated | stability | keywords | related | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| kei-task::add-dependency | command | 0.1.0 |
|
|
|
|
false | 5000 | null | stable |
|
|
kei-task::add-dependency
Inserts a typed edge from -> to in the task DAG, rejecting cycles
and self-loops at write time. Edge is stored idempotently via
INSERT OR IGNORE — re-adding the same triple is a no-op.
Example
kei-task add-dependency 42 17 --dep-type blocks
Stdout:
dep: 42 -> 17 (blocks)
Programmatic callers receive:
{ "ok": true }
Gotchas
dep_typedefaults to"blocks". Empty string is also treated as"blocks"for CLI convenience.- Cycle check is transitive — the implementation walks the existing
DAG from
toand refuses if it can reachfrom. - Both task ids must already exist; missing ids do NOT surface a
dedicated error code in the current impl and bubble up as
StoreErrorvia foreign-key violation. - Re-adding an existing edge is silently idempotent (
INSERT OR IGNORE) even though the atom declaresidempotent: false— that flag reflects the CONTRACT (callers should not rely on retry semantics), not the specific SQL behaviour.
Related
- kei-task::create — create endpoints of the edge first