feat(aidd-vcs): ci-watch skill with compact GitHub status script
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- github, github-actions
- Domain
- ci-cd, developer-experience, tooling
Research direction
Start by reading plugins/aidd-vcs/skills/02-pull-request/, plugins/aidd-dev/skills/00-sdlc/SKILL.md, and the async review path under plugins/aidd-orchestrator/skills/00-async-dev/actions/review/. Trace the existing ship/finalize flow and inspect how .aidd/config.yml features are handled. Done means the read-only ci-watch script and skill provide tested exit-code behavior, and the flag-enabled ship path blocks success on red checks without changing the default path.
Written by the indexing model from the issue text.
Description
Problem
Ship / open-PR paths do not wait on CI deterministically. Free-form agent polling is verbose and inconsistent. Sessions can treat work as done while checks are still red. The async orchestrator path (#149) does not give interactive sessions a compact exit-code contract.
Not a duplicate of #149
| #149 | This issue | |
|---|---|---|
| Caller | Async bot / orchestrator | Interactive session skill |
| Mechanism | React to checks/comments in bot loop | Local script + skill mapping exit codes |
| Integration | Auto finalize rules | Opt-in via features.ci_watch_before_ship |
Scope
- Skill
ci-watch: resolve PR | branch | run id → run script → map exit code. - Bundled script (GitHub-first), e.g. plugin
scripts/ci-watch:- deps:
gh,jq; - flags:
--repo,--pr|--run|--branch, optional--workflow,--interval; - compact stdout (state-change lines; failed job logs only on red);
- stable exit codes documented in script header + skill (pass / fail / cancelled / other / pass-but-not-merged if merge watch);
- pure classifiers unit-testable without network.
- deps:
- Integration contract (non-vacuous):
- Feature flag
features.ci_watch_before_shipin.aidd/config.yml(default false = non-breaking). - When true, ship/finalize path must run ci-watch and must not claim success on non-zero failure exit.
- When false, skill remains manually invocable (standalone value).
- Feature flag
- Skill does not re-implement polling in prose as the primary path.
Standalone value: Any session can wait on CI with stable exit codes without an async bot.
Acceptance criteria
- Green PR: exit 0; short summary.
- Red PR: non-zero failure; failed check names (+ failed logs only).
- Skill invokes script and maps exit codes (no primary agent poll loop).
- Read-only (no commits / force-push).
- With
features.ci_watch_before_ship: trueand red checks, ship path does not report success (doc + action test or fixture). - With flag false/absent, ship behavior unchanged; skill still runnable alone.
- Issue body states non-duplicate vs #149 (this section).
Prior art in this repo
- #149 — async bot reacts to failing checks / quality gates (
plugins/aidd-orchestrator/skills/00-async-dev/actions/review/) plugins/aidd-vcs/skills/02-pull-request/— open PR / ship-adjacent external pathplugins/aidd-dev/skills/00-sdlc/SKILL.md— ship step in interactive SDLC (no CI wait today)
Relations
Intended graph (same fields as GitHub parent / blocked-by / blocks). Formal GraphQL edges need maintainer write — see comment on #584.
| Field | Value |
|---|---|
| parent | #584 |
| blocked-by | #585 |
| blocks | — |
| related | #149 |
| MVP | 1 |
Out of scope
- Auto-fix on red CI
- Non-GitHub forges in v1 (same exit-code contract later)
- Async bot loop (#149)
- Dominant language
- TypeScript
- Stars
- 481
- Forks
- 45
- Avg merge
- 14h 36m
- Merged PRs (30d)
- 110
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ai-driven-dev/framework
-
refactor(aidd-orchestrator): the check zone says when to stop, and reviews its axes in one round Open
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
ai-driven-dev/framework#887 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
ai-driven-dev/framework#873 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
ai-driven-dev/framework#872 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
ai-driven-dev/framework#625 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
ai-driven-dev/framework#467 · 1 comment ·
All issues in ai-driven-dev/framework
Similar issues
-
S: triage
Difficulty 1/5 Under an hour Newbie friendliness 85/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
fix(errors): EHOSTUNREACH from a happy-eyeballs connect is reported as a resolver error (STAMP-80) Open
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
snapshot-labs/stamp#666 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
GauravKarakoti/SecureFlow#1070 · 1 comment ·
-
feature:Languages/Translations good first issue ready Web
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
digitalfabrik/integreat-app#4394 ·