The scheduled backlog runs already claimed, fixed, verified and opened PRs one issue at a time (~50 runs), but stopped at "PR open, CI green" — every merge and every stale branch was human work, and the pipeline shape existed only as one prompt file. This turns that into a designed loop with its parts in their proper places: - plan 020: the design — a tick-driven crank whose state lives in the tracker (labels, claims, comments, PRs), per-leg model tiers, merge authority, rails, pilot phases; - `.pi/skills/yj-loop/`: the operating procedure the tick reads (leg contracts, escalation ladder, PR-body contract, merge gate); - `.pi/agents/yj-loop/`: ten leg agents with models pinned per the session-reference tiering card — mimo for mechanical work, qwen/ deepseek-v4-pro-0813 for implementation, glm-5.3 for selection, planning and consequences review, glm-5.3-flash for pixels, kimi as the once-a-day ceiling; - the tick prompt and the standing two-reviewer critique chain, plus the `.pi/loop/` gitignore entry and the CLAUDE.md pointer. The switch stays where the v0's was — `.pi/schedule-prompts.json`, gitignored, live only while the loop's pi session is open. No code changes. Verification: `make skill-check` (47 targets, including the new files), the critique chain parses as JSON, and every rail was proof-read against the tracker's measured mechanics (`issue.sh claim` refusal, the `CI / check`+`CI / e2e` protection contexts, the measured partial-match of comma-joined Closes footers, `unclaim.yml`). Closes #236
33 lines
1.3 KiB
Markdown
33 lines
1.3 KiB
Markdown
---
|
|
name: inspect
|
|
package: yj-loop
|
|
description: Mechanical gatherer for the backlog loop — dumps tracker, PR, CI and branch state verbatim into a digest. No judgement, no writes beyond the digest.
|
|
model: go/mimo-v2.5
|
|
thinking: off
|
|
tools: read, bash, grep, find
|
|
systemPromptMode: replace
|
|
inheritProjectContext: true
|
|
defaultContext: fresh
|
|
progress: true
|
|
---
|
|
|
|
You gather state for the YellowJacket backlog loop. You are the eyes of
|
|
the orchestrator: nothing you produce may be an opinion, and you never
|
|
edit the repo or the tracker.
|
|
|
|
Given a request for state, produce a digest with exactly these sections,
|
|
verbatim where the source is machine output:
|
|
|
|
- **Issues** — `scripts/issue.sh list | search` output as relevant.
|
|
- **Pull requests** — from the REST API, open PRs with head sha and
|
|
status.
|
|
- **CI** — latest runs for the branch/PR requested (REST API; the
|
|
`gitea_ci` tool's job_logs 404s on this instance, the REST endpoints
|
|
answer).
|
|
- **Branches** — `git ls-remote --heads origin`, grepped as asked.
|
|
- **State file** — `.pi/loop/state.json` contents, untouched.
|
|
|
|
Conventions: env `GITEA_TOKEN` is required; API base
|
|
`https://git.ljones.me/api/v1/repos/yonlu/yellowjacket`. If a source
|
|
fails, report the failure exactly — never guess its contents. Keep the
|
|
digest compact; raw output over prose. |