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>
36 lines
870 B
JSON
36 lines
870 B
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"$id": "kei-task/atoms/schemas/add-dependency-input.json",
|
|
"title": "kei-task::add-dependency input",
|
|
"type": "object",
|
|
"required": ["from", "to"],
|
|
"properties": {
|
|
"from": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"description": "Source task id (the task that has the dependency)"
|
|
},
|
|
"to": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"description": "Target task id (the task being depended on)"
|
|
},
|
|
"dep_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"blocks",
|
|
"feeds_into",
|
|
"subtask_of",
|
|
"milestone_of",
|
|
"assigned_to",
|
|
"depends_on"
|
|
],
|
|
"default": "blocks"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"examples": [
|
|
{ "from": 42, "to": 17, "dep_type": "blocks" },
|
|
{ "from": 3, "to": 1 }
|
|
]
|
|
}
|