본문으로 건너뛰기
cccskills
무료GitHub에 공개

dependency-updater

Resolve failed Renovate or Dependabot dependency update PRs by fixing version constraints, API breaking changes, and verifying build/test/format compliance. Use when a dependency bump PR fails CI, Cargo cannot select versions, or a crate update requires code migration.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md5.0 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Updating Dependencies

Resolve failed dependency update PRs from Renovate or Dependabot by diagnosing version constraints and API breaks, then verifying with the project skills.

Core mission

  1. Diagnose — Understand what Renovate/Dependabot bumped and why it failed
  2. Reproduce — Recreate the failure locally
  3. Resolve — Fix version constraints and API changes methodically
  4. Verify — Follow the AGENTS.md testing sequence

Workflow

Phase 1: Analysis

  1. Read the PR description to understand:

    • Which package was updated (e.g. rand_core 0.9.3 -> 0.10.0)
    • The changelog/release notes for breaking changes
    • Any artifact update errors from Renovate
  2. Check CI logs for:

    • Version constraint conflicts (failed to select a version for the requirement)
    • Compilation errors (API changes, removed types/traits/methods)
    • Test failures
  3. Examine the commit diff to see exactly what changed in Cargo.toml

Phase 2: Reproduce locally

Confirm you are on the PR branch, then:

cargo update
cadmuscli test --features emulator

If cargo update fails with version constraints, note which packages conflict before changing manifests.

Phase 3: Resolve version constraints

When you see errors like:

error: failed to select a version for the requirement `rand_core = "^0.9.0"`
candidate versions found which didn't match: 0.10.0
required by package `rand_xoshiro v0.7.0`

Resolution strategy:

  1. Identify the dependency chain: rand_xoshiro requires rand_core ^0.9.0

  2. Check if dependent packages have updates: Look for versions compatible with the new requirement

  3. Update related dependencies together:

    cargo search rand_xoshiro
    
  4. Edit Cargo.toml (and workspace deps in the root manifest when applicable) so related packages move to compatible versions together

Phase 4: Resolve API breaking changes

After constraints resolve, build/test to surface API changes:

cadmuscli test --features emulator

To understand new APIs:

cargo doc -p <crate_name>

Docs land under target/doc/{crate_name}/. Prefer the crate's CHANGELOG or migration guide when one exists.

Phase 5: Fix compilation errors

For each error:

  1. Read the compiler message carefully — it usually suggests the fix
  2. Check the crate's migration guide if available
  3. Make minimal changes — do not refactor unrelated code

Phase 6: Verification

After Cargo.toml or dependency-related code changes, complete every step in AGENTS.md Testing:

  1. Formatting — fmt skill
  2. Lint — clippy-diff-report or build-cadmus-native skill
  3. Tests — build-cadmus-native skill (--features emulator; a device feature is required)
  4. Kobo ARM build — build-kobo skill (required)

Commit message format

chore(deps): resolve {package} {old_version} -> {new_version} update

- Update {related_package} to {version} for compatibility
- Migrate from {old_api} to {new_api}
- {other changes}

Resolves version constraint conflict with {explanation}

Known Renovate bugs

Cargo workspace packages with +metadata version strings

Affects: Packages that use build metadata in their version (e.g. toml@1.1.0+spec-1.1.0), when those packages are declared in multiple Cargo.toml files within the same workspace.

Symptom: Renovate runs cargo update --manifest-path <crate>/Cargo.toml --package pkg@old+meta --precise new once per manifest file. The first run succeeds and rewrites Cargo.lock. The second run then fails:

error: package ID specification `pkg@old+meta` did not match any packages

because old+meta no longer exists after the first run.

See: https://github.com/renovatebot/renovate/discussions/42208

Fix: Run cargo update from the workspace root, targeting the new version already written into Cargo.lock by the first run:

cargo update -p pkg@<new-version>+<meta> --precise <new-version>

Also bump the minimum version constraint in every affected Cargo.toml to the new version so the intent is explicit, e.g.:

toml = "1.1.2"

Important guidelines

  1. Never downgrade security updates — find forward-compatible solutions
  2. Update related packages together — do not leave partial updates
  3. Preserve existing functionality — API changes should not change behavior
  4. Document non-obvious migrations in commit messages or PR text (not inline code comments)
  5. Test thoroughly — run the full AGENTS.md verification sequence
  6. Keep changes minimal — only modify what the update requires

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Build Cadmus on Linux and macOS hosts using cadmuscli. Use when asked how to compile, test, lint, or run the project locally.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OGKevin/cadmus502026년 10월 22일 업데이트

Build, test, and lint Cadmus from a jj sibling workspace that has no .git (non-colocated checkout). Use when jj workspace root is a sibling tmp/agent workspace and builds fail with git submodule or .gitmodules errors, empty thirdparty/ sources, cache-marker misses, or missing sqlite.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OGKevin/cadmus502026년 10월 22일 업데이트

Cross-compile Cadmus for Kobo e-reader devices (ARM Linux). Use this when asked to build a Kobo release, cross-compile for ARM, or prepare a device binary.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OGKevin/cadmus502026년 10월 22일 업데이트

Run clippy locally and report only issues in the current diff, matching the CI reviewdog flow. Use when asked how to lint changed code or get clippy feedback on a branch before pushing.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OGKevin/cadmus502026년 10월 22일 업데이트

docs

무료

Build the full Cadmus documentation website (mdBook + cargo doc + Storybook + Next.js). Use this when asked to build, preview, or update the documentation site.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OGKevin/cadmus502026년 10월 22일 업데이트

Fetch Cadmus application logs from Loki by run ID. Use when asked to look up logs for a specific run, debug a device session, or find log output for a given run ID.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OGKevin/cadmus502026년 10월 22일 업데이트

OGKevin의 스킬 모두 보기

이 스킬의 문제 신고