watch-ci-and-advance
Monitor CI as a queue system. Advance other ready work while waiting. Report gate deltas, not polls.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Monitor CI as a queue system. Advance other ready work while waiting. Report gate deltas, not polls.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
ICN development companion for the InterCooperative Network Rust monorepo. Use when working on ICN code, docs, deployment, or protocol design. Provides crate-aware routing to specialist agents (icn-architect, icn-economist, icn-ops), enforces project conventions, and understands the current sprint state, cluster topology, and demo flow status. Triggers on: any ICN crate names, "cooperative contract", "mutual credit", "governance", "gossip", "K3s", "icn-dev", "ops/mcp", "Sprint", "demo flow", "CCL", "federation", "DID", "ledger", "trust graph", "icnd", "icnctl".
Full sprint-batch or stacked-PR integration pipeline. Owns merge order, rebases, local gates, and main sync.
Full sprint-batch or stacked-PR integration pipeline. Owns merge order, rebases, local gates, and main sync.
Show full ICN development status dashboard — active sessions, sprint tasks, worktree freshness, CI state, and cluster health
ICN session preflight. This skill should be used when the user explicitly invokes "/icn-agent-pack:preflight", or asks to "run preflight", "orient me on ICN", or "check the ICN session environment". Loads canonical docs and the latest handoff, then verifies branch, gh auth, ports, toolchain, and a light cargo check. Read-only; reports, never fixes.
ICN repo navigator / knowledge graph. This skill should be used when the user explicitly invokes "/icn-agent-pack:navigator", or asks to "map the repo", "build/refresh the knowledge graph", "trace this concept to its source", or "show the conceptual map / impact map". Begins the living repository knowledge-graph and conceptual-map workflow, grounded in the icn-ops MCP tools and (future) generated graph artifacts.
| name | watch-ci-and-advance |
| description | Monitor CI as a queue system. Advance other ready work while waiting. Report gate deltas, not polls. |
| argument-hint | [PR number | run ID] |
| user-invocable | true |
| allowed-tools | Bash |
| truth_contract | {"canonical_sources":["ops/state/truth/policy.json","ops/state/config/repo-map.json"],"live_load_required":["gh run list --limit 5 --json databaseId,status,name,conclusion,createdAt","gh api repos/InterCooperative-Network/icn/actions/runners --jq '.runners[]'"],"examples_only":["The 4-check example in Phase 3 is illustrative — always use all required checks from policy.json"],"never_hardcode":["required check set or count (read from ops/state/truth/policy.json#merge.required_checks or branch protection API)","runner IP (read from ops/state/config/repo-map.json#infrastructure.k3s.ci_runner)"]} |
Treat CI as a queue system. While the runner is busy, do useful work. Report only meaningful state changes, not repetitive status dumps.
The transcript spent significant time in a passive poll cycle: check → still pending → wait → check. Meanwhile, other PRs could have been rebased, verified, and readied. This skill turns waiting time into advance work.
# Check if runner is actively processing or just queued
gh run list --limit 5 --json databaseId,status,name,conclusion,createdAt \
--jq '.[] | "\(.databaseId) \(.name) \(.status) \(.conclusion // "running")"'
Classify:
in_progress: runner is actively working — productive waitqueued + age > 5 min: runner contention likelyqueued + age > 30 min: definitely queue-stalled, likely safe to --admin merge after manual local verify# Check runner health
gh api repos/InterCooperative-Network/icn/actions/runners \
--jq '.runners[] | {name:.name, status:.status, busy:.busy}'
While CI runs, prioritize in this order:
# Find PRs not currently in CI queue
gh pr list --json number,headRefName,statusCheckRollup \
--jq '.[] | select(.statusCheckRollup | length == 0 or all(.[]; .state != "IN_PROGRESS")) | .number'
Instead of printing the full check table every poll, track which gates changed:
# Snapshot required gates only (read policy.json for the canonical list — never hardcode)
REPO_ROOT="$(git rev-parse --show-toplevel)"
REQUIRED=$(python3 -c "
import json
p = json.load(open('${REPO_ROOT}/ops/state/truth/policy.json'))
print(repr(set(p['merge']['required_checks'])))
")
gh pr checks <N> --json name,state,conclusion \
| python3 -c "
import sys, json
required = $REQUIRED
checks = {c['name']:c for c in json.load(sys.stdin) if c['name'] in required}
for name, c in sorted(checks.items()):
status = c['conclusion'] if c['state'] == 'COMPLETED' else c['state']
print(f'{name:20s} {status}')
"
Output format — only report changes, not repeats:
[CI delta] Clippy: pass (was pending)
[CI delta] Build Release: pass (was pending)
[CI delta] Test: still running
When required gates resolve:
integrate-pr-stack for sequencing)fix-ci or fix-rust-lints to address| Signal | Meaning |
|---|---|
pending / 0s for < 5 min | Normal startup delay |
pending / 0s for 5–30 min | Likely queue contention |
pending / 0s for > 30 min | Queue-stalled; local verify + --admin is valid |
in_progress for > 20 min | Likely running (full workspace test suite takes ~14 min) |
| Check disappears after push | Normal: new commit resets CI identity |
ci-runner). IP in ops/state/config/repo-map.json#infrastructure.k3s.ci_runner. Parallel PR merges cause queue.Test Coverage and Compare Against Base often tail the required gates — ignore them for merge decisions.--admin after local verify
if the queue is stalled.--admin
is viable rather than waiting indefinitely.