40 lines
1.7 KiB
Markdown
40 lines
1.7 KiB
Markdown
|
|
# 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 "..."`
|
||
|
|
- `planka:<board>` (planka-only targets) — `os-backlog card-add --board <board> --title "..." [--description "..."]`
|
||
|
|
|
||
|
|
Routing inside the target project still follows ITS boundary rule (ADR-0033: Planka is
|
||
|
|
state, git issues are specs) — a durable spec goes to the git-issue tracker even if the
|
||
|
|
project also has a board.
|
||
|
|
|
||
|
|
## Discoverer block (append verbatim to the issue/card description)
|
||
|
|
|
||
|
|
```
|
||
|
|
--------
|
||
|
|
**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.
|