cc-os/plugins/os-backlog/skills/route/references/cross-project-filing.md

1.7 KiB

Cross-project filing (file-don't-fix)

When work surfaces that belongs to a DIFFERENT project than the one this session is working in, do not edit that project — file the work on ITS tracker and continue. The owning project's own session picks it up with full context.

Finding the target's tracker

Query the global project index (derived from every config-write, at ~/.cc-os/projects.json):

os-backlog projects              # full index as JSON
os-backlog projects <substring>  # filter by project name

Each row: canonical repo path -> {name, tracker, remote, updated_at}. If the target project has no row, it hasn't been routed yet — tell the user rather than guessing.

Filing mechanics by tracker kind

  • forgejo:<owner>/<repo>tea issues create --repo <owner>/<repo> --title "..." --description "..."
  • github:<owner>/<repo>gh issue create --repo <owner>/<repo> --title "..." --body "..."
  • repo:<path> — append an NNN-<slug>.md frontmatter file to the target's <path>.

No autonomy or priority label is applied by the filer — that's the receiving project's job, per its own triage. The one tracker holds both state and specs for the target project too (ADR-0042) — there is no second surface to route within.

Discoverer block (append verbatim to the issue description/body)

--------
**Discoverer:** <filing repo or path>, session <claude-code-session-id>, <YYYY-MM-DD>. <one-line motivation>

Session id source: the SessionStart hook receives it as the session_id field of its stdin JSON; a live session can also find it in its transcript filename. If it is genuinely unavailable, write session id unavailable — never fabricate one.