os-backlog issue-show <number>: print issue title+body JSON; os-sdlc fetches ticket bodies through it #420
Labels
No labels
P0
P1
P2
P3
bug
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#420
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Origin
Discovered by an AI session in an external project (tally-api, forgejo:jared/tally-api) while running /os-sdlc:implement; filed cross-project per the Discoverer convention. Routing decision (via os-backlog CLI, not a tea patch) was made explicitly by Jared in-session on 2026-08-16.
Context
os-sdlc intake fails at ticket body fetch:
tea issues <n> --repo <slug> --output yaml.--output yamland prints a rendered markdown detail view; YAML.safe_load then raises ("found character that cannot start any token"), surfacing asos-sdlc: ticket body fetch failed.-o jsonfor the single-issue view (verified: returns id/index/title/labels/body JSON).-o jsonand works.Scope
issue-show <number>— resolves the cwd repo's configured tracker (forgejo/github/repo:), fetches the issue, prints JSON{"number":..,"title":..,"body":..,"state":..,"labels":[..names..]}to stdout. Forgejo viatea issues <n> --repo <slug> -o json(NOT yaml); GitHub viagh issue view <n> --json title,body,state,labels; repo: trackers read the in-repo issue file. Exit non-zero with a one-line stderr message on missing issue / no tracker.os-backlog issue-show <n>(run from project root) and extractsbody; keep HarnessError wrapping and messages. Remove the directtea ... --output yamlcall.Acceptance criteria
os-backlog issue-show <n>in a forgejo-routed repo prints the JSON object with a non-empty body; unknown number exits non-zeroissue-shownever uses--output yamlos-sdlc-runner intake <n>succeeds against a forgejo tracker under tea 0.13.0Evidence
tea 0.13.0 (
Version: 0.13.0 golang: 1.26.1); repro:tea issues 1 --repo jared/tally-api --output yaml→ markdown; same with-o json→ valid JSON.Work started on branch sdlc/420 (direct TDD implementation, not via the os-sdlc pipeline — the pipeline's intake is itself blocked by this bug).
Work starting via /os-sdlc:implement on branch worktree-sdlc+420.
Resolution
Done: Added os-backlog issue-show subcommand (forgejo via tea -o json, github via gh, repo: via issue file) and rewired os-sdlc Runner::TeaTracker::BodyFetch to shell out to it from the project root; removed the tea --output yaml call and the slug gate on body fetch.
Evidence: Commit
c2b23aaon branch worktree-sdlc+420. os-backlog suite 203 runs / 497 assertions, os-sdlc suite 954 runs / 2342 assertions, all 0 failures. Live check under tea 0.13.0: os-sdlc-runner intake 420 --target os-backlog succeeded and emitted the code-probe dispatch with a non-empty fetched body.Follow-ups: 1) TeaTracker#resolve_slug still swallows TargetSelectionError into a nil slug for the label/comment paths in multi-target repos, misreporting 'no tracker configured'. 2) A failed intake leaves an in-flight tickets row in .sdlc/pipeline.db that blocks re-intake. 3) Consider consolidating Issues#fetch and IssueShow into one canonical single-issue fetch path. 4) os-backlog has no rake test task; tests only run via a manual require glob.