You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(plan): source the tracker thread once via role="tracker" (#132)
Plan seeding fetched the tracker issue twice in one cycle: seed() ran the legacy
[tracker].notes_cmd (→ notes.json) AND, unconditionally, the [[plan.source]]
providers — so a GitHub-Issues project with a `github` source stored the issue
in both notes.json and sources/github-<id>.json, and a notes_cmd moved into a
`command` source ran twice. A project couldn't de-dupe by dropping notes_cmd
because notes.json is load-bearing by filename (the planner and the id-seeded
batch flow read it), and the providers only wrote into sources/.
Add a `role = "tracker"` declaration on a plan.source: a github/gitlab/command
source so marked writes the canonical notes.json itself (at the bundle root),
and seed() then skips the legacy notes_cmd. notes_cmd and a tracker-role
plan.source are mutually exclusive; notes.json stays available (no planner /
id-seeded-flow regression), and a project with neither sees no change.
This is the minimum unification (issue #132 option C) plus the small role/redirect
needed to keep notes.json present; the fuller option A (read the tracker thread
from sources/ by role) remains future work.
Documented in pdca.toml.jinja and docs/03-plan.md. Tests in test_sources.py:
tracker-role github sources once and skips notes_cmd; tracker-role command
writes notes.json; a non-tracker source leaves notes_cmd running.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments