os-backlog: route inspect should classify issue shape and default to split, not migrate #26
Labels
No Label
P0
P1
P2
P3
afk-ready
hitl
next
ready-for-agent
review
semi
waiting
wayfinder:grilling
wayfinder:map
wayfinder:research
wayfinder:task
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: jared/cc-os#26
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
While running /os-status:fix -> /os-backlog:route on the
serversumbrella repo,os-backlog inspectfound an active Forgejo remote with 3 open issues (#4-#6) forming a sequential deployment chain (prereqs -> deploy -> cutover -> verify -> decide) withtriage/blocked/triage/hitldependency labels. The user had already chosen Planka as the tracker for new work, which raised the question: migrate the existing issues into Planka, or keep both?The right call (per the boundary rule already stated in
route's own SKILL.md, and per the cc-os ADR that "git issues = specs" / "Planka = state") was to not migrate — split by kind:planka:serversfor new ad hoc backlog capture, Firecrawl issue chain stays in Forgejo as-is. But nothing in the skill orinspectoutput surfaced that as the recommended path; it took manual inspection (tea issue list --state all, reading labels/titles) to notice the issues were a spec chain rather than flat ad hoc items.Suggestions:
Classify issues during
inspect, not just count them.inspectalready fetches title/labels viatea/gh— cheap heuristics (sequential numbering,blocked/depends-on-style labels, cross-references between issue bodies) can flag "this looks like a spec chain" vs. "this looks like flat ad hoc items," and pre-populate the step-2 proposal instead of leaving the caller to eyeball it. Concretely: add anissue_shape: "sequential-chain" | "flat-adhoc" | "mixed"field toinspect's JSON output.Make "don't migrate, split by kind" a first-class recommendation, not just an option buried in the boundary-rule prose. The skill's decision gate currently frames the choice as "propose ONE destination tracker key," which nudges toward picking a single winner even when the existing tracker already fits its content. Add an explicit branch: "existing tracker already fits its content type -> recommend split (Planka for new/ephemeral, git issues stay as-is), write only the Planka key, skip migration entirely."
Link the ADR. The boundary rule in
route's SKILL.md (Planka = state, git issues = specs, card-as-pointer + issue-chain-as-spec for hybrid work) restates a cc-os ADR without citing it. Point/os-backlog:routeat that ADR by number/link so the rule has a traceable source instead of re-derived prose that can drift from the decision it's based on.Context: this surfaced in the
serversrepo (jared/servers) during a routine/os-status:fixrun, 2026-07-13.Codex review adopted (pre-implementation, 2026-07-13):
Implemented in 9415eb0: inspect metadata fetch + always-present issue_shape (pure classifier, fail-soft null), route step 2 rewritten with split-as-default for spec-shaped issue sets (single tracker key preserved), step-3 never-re-trigger exception, ADR-0033 cited from the boundary rule. 12 new tests incl. CLI contract; suite 103 runs / 0 failures. All 10 adopted review points implemented.