aboutsummaryrefslogtreecommitdiff
path: root/.ai/scripts
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-24 07:00:48 -0400
committerCraig Jennings <c@cjennings.net>2026-06-24 07:00:48 -0400
commit06b6cbcf086729414ff9a533b1f031fb41c4088b (patch)
treefd9ce04b5b749567ebcb8bf65ce54e2bee5af7fb /.ai/scripts
parent0127889a41fc4f870def2982d822023e0dcb49dd (diff)
downloadrulesets-06b6cbcf086729414ff9a533b1f031fb41c4088b.tar.gz
rulesets-06b6cbcf086729414ff9a533b1f031fb41c4088b.zip
feat(tasks): make cross-project dependencies bidirectional
The :blocked: tag only marked the waiting side, so a blocker could stay unaware it was holding up another project: the dependency was visible to the one project that couldn't act on it and invisible to the one that could. This closes that gap. Setting :blocked: now requires a reciprocal inbox-send to the blocker, which files the work with a :BLOCKS: <project>: <what> property on its side. open-tasks.org surfaces :BLOCKS: tasks first, since clearing one unblocks another project (the highest-leverage pick), the mirror of pulling :blocked: tasks out of the cascade. Inbox process mode recognizes the blocking-dependency handoff shape, and the convention documents the resolution flow (drop :BLOCKS:, notify the waiter, who lifts :blocked:). This works for any project pair, since the convention (todo-format.md) and the surfacing (open-tasks.org) live in the shared rule and workflow layer, not in one project. Claude-Session: https://claude.ai/code/session_017PtX1nt1rtYVATuzmzBS4f
Diffstat (limited to '.ai/scripts')
0 files changed, 0 insertions, 0 deletions