push
Resolve targets, run scoped local gates, then push. The only sanctioned path for pushing Rust changes.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Resolve targets, run scoped local gates, then push. The only sanctioned path for pushing Rust changes.
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 | push |
| description | Resolve targets, run scoped local gates, then push. The only sanctioned path for pushing Rust changes. |
| argument-hint | [--skip-test] [--force-with-lease] |
| user-invocable | true |
| allowed-tools | Bash |
| truth_contract | {"canonical_sources":["ops/state/config/repo-map.json","ops/state/truth/policy.json"],"live_load_required":["git branch --show-current","git diff --name-only $(git merge-base HEAD origin/main)..HEAD","cargo metadata --no-deps --format-version 1"],"examples_only":[],"never_hardcode":["package names (always resolve via cargo metadata)","branch name"]} |
Gated push with scoped verification. Resolves affected packages first, runs the minimum sufficient gate set, classifies any lint failures by known remediation class, then pushes.
REPO_ROOT="$(git rev-parse --show-toplevel)"
bash "${REPO_ROOT}/ops/scripts/drift-check.sh" 2>/dev/null | tail -3 || true
If drift-check reports FAIL → warn loudly. Pushing while agent tooling has drift means CI may evaluate your PR with stale policy. Fix drift or acknowledge explicitly before continuing.
Confirm branch and status:
git branch --show-current
git status --short
Resolve touched packages to determine verification scope:
# Files changed on this branch
git diff --name-only $(git merge-base HEAD origin/main)..HEAD
# Map to workspace package names (never guess)
cargo metadata --no-deps --format-version 1 \
| python3 -c "
import sys, json
md = json.load(sys.stdin)
for p in md['packages']:
root = p['manifest_path'].replace('/Cargo.toml','')
print(f\"{p['name']:40s} {root}\")
" | sort
Scope decision:
icnd/src/main.rs, lifecycle.rs, or cross multiple crate boundaries → workspace-wideRun format check (always workspace-wide, fast):
cargo fmt --all --check
Run clippy (scoped if possible):
# Scoped (preferred — must use --all-targets to match CI):
cargo clippy -p <pkg1> -p <pkg2> --all-targets -- -D warnings
# Workspace (when cross-cutting):
cargo clippy --workspace --all-targets -- -D warnings
On failure, classify before fixing (see fix-rust-lints for canonical patterns):
field_reassign_with_default → struct update syntaxuse of deprecated in tests → replace with recommended APIchecked_sub / checked_mulRun tests (unless $ARGUMENTS includes --skip-test):
cargo test -p <pkg1> -p <pkg2> # scoped
cargo test --workspace # workspace
If any gate fails: report lint class and canonical fix, do NOT push.
If all gates pass:
git push # normal push
git push -u origin <branch> # first push (no upstream)
git push --force-with-lease # after rebase (if $ARGUMENTS includes --force-with-lease)
Report: pushed branch, commit SHA, scope used, gate results.
--skip-test skips the test suite. fmt + clippy always run.cargo clippy -p <crate> pass does NOT guarantee --workspace --all-targets passes.
Use --all-targets to match CI behavior.cargo metadata to confirm. See known confusions below.| Human label | Correct -p argument |
|---|---|
| "ledger" (crate) | icn-ledger |
| "ledger app" / "icn-ledger-app" | icn-ledger-actor (apps/ledger) |
| "obs" | icn-obs |
| "security" | icn-security |
| "compute" | icn-compute |
| "core" | icn-core |
| "daemon" / "icnd" | icnd (bin — triggers workspace-wide) |
| "governance app" | icn-governance-actor |
| "membership app" | icn-membership-app |