원클릭으로
ci-debugging
CI/CD Debugging Guide guidance for Fortress Rollback. Use when Debugging CI failures, reproducing CI issues locally.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
CI/CD Debugging Guide guidance for Fortress Rollback. Use when Debugging CI failures, reproducing CI issues locally.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Crate Publishing guidance for Fortress Rollback. Use when Publishing to crates.io, version bumps, release checklist.
Changelog Practices guidance for Fortress Rollback. Use when Writing CHANGELOG entries, deciding what to document.
Design Decision Log Pattern guidance for Fortress Rollback. Use when Architectural decisions, design alternatives, superseding prior choices.
Repository-wide engineering policy and project context for Fortress Rollback. Use when implementing, diagnosing, reviewing, testing, documenting, or releasing changes in this repository.
GitHub Actions Best Practices guidance for Fortress Rollback. Use when Writing GitHub Actions workflows, CI debugging, actionlint, caching.
Workspace Organization guidance for Fortress Rollback. Use when Organizing workspace, splitting crates, module structure decisions.
| name | ci-debugging |
| description | CI/CD Debugging Guide guidance for Fortress Rollback. Use when Debugging CI failures, reproducing CI issues locally. |
| Error Pattern | Category | Quick Fix |
|---|---|---|
cargo fmt --check fails | Formatting | cargo fmt |
| Clippy warnings | Linting | cargo clippy --workspace --all-targets --features tokio,json --fix --allow-dirty |
| Test assertion failures | Test logic | RUST_BACKTRACE=1 cargo test name -- --nocapture |
VERIFICATION RESULT: FAILURE | Kani | Verify assertion matches impl; add #[kani::unwind(N)] |
linker cc not found | Cross-compilation | Check Cross.toml, avoid unstable image tags |
invalid linker name in argument '-fuse-ld=lld' | Missing linker | Install lld, or use cargo_linker.get_cargo_env() fallback |
| Timeout / cancelled | Performance | Add #[kani::unwind(N)]; increase timeout-minutes |
actionlint errors | Workflow syntax | Run actionlint locally |
unresolved link | Documentation | Add link reference definition |
| Markdownlint errors | Markdown | npx markdownlint --fix '**/*.md' |
Run the EXACT same command as CI:
# Check what CI ran
cat .github/workflows/ci-*.yml | grep "run:"
# Common reproductions
cargo fmt --check
cargo clippy --workspace --all-targets --features tokio,json -- -D warnings
RUSTDOCFLAGS="-D warnings" cargo doc --no-deps
cargo nextest run test_name --no-capture
cargo kani --harness proof_function_name
actionlint
cargo kani --harness proof_name --verbose
./scripts/verification/check-kani-coverage.sh # Check registration
Common causes:
#[kani::unwind(N)] for loops (N = max_iterations + 1)Always verify the assertion itself is correct -- check what the code actually returns.
cargo install cross --git https://github.com/cross-rs/cross
CROSS_DEBUG=1 cross build --target aarch64-unknown-linux-gnu
Never use :main or :edge image tags. Use environment variable passthrough:
# Cross.toml
[build.env]
passthrough = ["CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER"]
timeout 600 cargo kani --harness proof_name
cargo build --timings # Profile build time
RUST_BACKTRACE=1 cargo test test_name -- --nocapture
cargo test -- --test-threads=1 # Eliminate race conditions
RUSTDOCFLAGS="-D warnings" cargo doc --no-deps
vale sync && vale docs/
npx markdownlint '**/*.md' --config .markdownlint.json
| Factor | Check Command | Common Issue |
|---|---|---|
| Rust version | rustc --version | Mismatch with rust-toolchain.toml |
| Toolchain | rustup show | Missing components |
| Env vars | env | grep CARGO | CI sets CARGO_TERM_COLOR etc. |
| Cache | N/A | CI has clean cache, local has stale |
| Git state | git status | Uncommitted changes |
cargo clean
CARGO_HOME=$(mktemp -d) cargo build
| Pattern | Meaning |
|---|---|
##[error] | Explicit error from action |
error[E...] | Rust compiler error code |
panicked at | Rust panic occurred |
timeout | Step exceeded time limit |
exit code 1 | Command failed |
Enable debug logging: set repo variable ACTIONS_STEP_DEBUG=true.
cargo c && cargo t # Format + lint + test
cargo doc --no-deps # Doc changes
actionlint # Workflow changes
npx markdownlint '**/*.md' --config .markdownlint.json --fix # Markdown changes