sync-deps — community sync-deps, rss_feed, laceto, community, ai agent skill, ide skills, agent automation, AI agent skills, Claude Code, Cursor, Windsurf

v1.0.0
GitHub

About this Skill

Perfect for Python Development Agents needing automated dependency management and synchronization. Synchronises all dependency files from the actual imports in the codebase. Use when asked to update requirements.txt, sync dependencies, update pyproject.toml dependencies, fix requirements, update de

laceto laceto
[1]
[0]
Updated: 3/11/2026

Quality Score

Top 5%
48
Excellent
Based on code quality & docs
Installation
SYS Universal Install (Auto-Detect)
> npx killer-skills add laceto/rss_feed/sync-deps
Supports 19+ Platforms
Cursor
Windsurf
VS Code
Trae
Claude
OpenClaw
+12 more

Agent Capability Analysis

The sync-deps skill by laceto is an open-source community AI agent skill for Claude Code and other IDE workflows, helping agents execute tasks with better context, repeatability, and domain-specific guidance.

Ideal Agent Persona

Perfect for Python Development Agents needing automated dependency management and synchronization.

Core Value

Empowers agents to derive a project's dependency list from actual imports in source files, eliminating manual bookkeeping and drift between requirements.txt and pyproject.toml, utilizing protocols like dependency scanning and file formats such as requirements.txt and pyproject.toml.

Capabilities Granted for sync-deps

Automating dependency updates after adding or removing packages
Debugging dependency drift between requirements.txt and pyproject.toml
Synchronizing dependency files before a release

! Prerequisites & Limits

  • Requires access to source files and dependency files
  • Python projects only
  • Needs to scan actual imports in source files
Project
SKILL.md
5.8 KB
.cursorrules
1.2 KB
package.json
240 B
Ready
UTF-8

# Tags

[No tags]
SKILL.md
Readonly

Sync Dependencies

Derives the project's dependency list from actual imports in source files — one scan, one canonical list, propagated to every dep file. No manual bookkeeping; no drift between requirements.txt and pyproject.toml.

When to Use This Skill

  • User says "update requirements.txt", "sync deps", "fix requirements", "update deps"
  • User says "update pyproject.toml dependencies", "sync dependency files"
  • After adding or removing a package to the project
  • Before a release or a code review

Single Source of Truth

source files (.py, .ipynb)
        │
        ▼
  sync_deps.py   ← ONE scan, ONE canonical list
        │
        ├──▶ requirements.txt
        ├──▶ pyproject.toml  [project.dependencies]
        ├──▶ environment.yml  (if present)
        └──▶ setup.cfg        (if present)

Everything is derived; never edit dep files by hand.


Step 1 — Run the scanner

Run the bundled script from the repo root (not from inside the skill folder):

bash
1python .claude/skills/sync-deps/scripts/sync_deps.py

The script outputs one package>=X.Y line per third-party dependency, sorted alphabetically, to stdout. Capture it:

bash
1python .claude/skills/sync-deps/scripts/sync_deps.py > /tmp/deps_raw.txt

Inspect the output before writing anything. If a package is missing or wrong, update IMPORT_TO_PACKAGE in the script — that is the only place to change.


Step 2 — Write requirements.txt

Replace the full content of requirements.txt at the repo root with:

# Runtime dependencies — generated by sync-deps, do not edit by hand.
# Regenerate with: python .claude/skills/sync-deps/scripts/sync_deps.py
#
<one line per package from stdout, sorted>

Rules:

  • Keep the header comment exactly as shown.
  • Packages are sorted case-insensitively.
  • Dev-only packages (pytest, mypy, ruff, pytest-cov) must not appear here — they belong in pyproject.toml [project.optional-dependencies].dev only.

Step 3 — Update pyproject.toml [project.dependencies]

Read pyproject.toml. Replace the dependencies = [...] list under [project] with the same package list from Step 1, formatted as TOML strings:

toml
1dependencies = [ 2 "package-a>=X.Y", 3 "package-b>=X.Y", 4]

Rules:

  • Preserve all other sections unchanged (surgical edit only).
  • Dev packages stay in [project.optional-dependencies].dev — do not move them.
  • If [project.optional-dependencies].dev is missing, add it with at minimum: ["pytest>=8", "pytest-cov", "mypy", "ruff"].

Step 4 — Update optional dep files (if present)

Scan the repo root for these files and update them if found:

environment.yml (conda)

Update the dependencies: list. Preserve - pip: sub-list structure. Example shape:

yaml
1dependencies: 2 - python>=3.9 3 - pip: 4 - package-a>=X.Y 5 - package-b>=X.Y

setup.cfg

If install_requires exists under [options], replace it with the new list:

ini
1[options] 2install_requires = 3 package-a>=X.Y 4 package-b>=X.Y

Pipfile

If present, update the [packages] section. Do not modify [dev-packages].


Step 5 — Verify and report

After all edits, print a summary:

sync-deps complete
─────────────────────────────────────────
Source files scanned : <N> .py files, <M> .ipynb files
Third-party imports  : <K>
─────────────────────────────────────────
Updated:
  requirements.txt          — <N> packages
  pyproject.toml            — [project.dependencies] (<N> entries)
  environment.yml           — (skipped — not found)
  setup.cfg                 — (skipped — not found)
─────────────────────────────────────────
Packages:
  <sorted package list, one per line>

Import-to-Package Name Map

The script maintains IMPORT_TO_PACKAGE — a dict mapping Python import names to their canonical PyPI package names. This is the only place to fix name mismatches. Never hardcode a mapping elsewhere.

Import namePyPI package
sklearnscikit-learn
PILPillow
cv2opencv-python
yamlPyYAML
bs4beautifulsoup4
dotenvpython-dotenv
faissfaiss-cpu
rank_bm25rank-bm25
langchain_classiclangchain-classic
langchain_corelangchain-core
langchain_communitylangchain-community
langchain_openailangchain-openai

To add a new mapping: edit IMPORT_TO_PACKAGE in scripts/sync_deps.py.


Exclusion Rules

These are never added to requirements.txt:

  • Standard library modules (os, sys, json, …)
  • The project's own package (auto-detected from pyproject.toml [project].name)
  • Dev-only packages: pytest, pytest-cov, mypy, ruff, black, isort
  • Private names (starting with _)
  • Modules in excluded directories: venv/, .venv/, build/, dist/, .eggs/

Troubleshooting

ProblemCauseFix
Package missing from outputImport name not in IMPORT_TO_PACKAGE and not installedAdd mapping to IMPORT_TO_PACKAGE or install the package
Wrong version shownPackage not installed in active venvActivate the correct venv before running
sys.stdlib_module_names not availablePython < 3.10Script falls back to a static stdlib set; update Python if possible
Package appears but shouldn'tImport from a test fixture or example that shadows a real nameAdd it to DEV_ONLY_PACKAGES in the script
pyproject.toml parse errorNon-standard TOML formattingRead the file carefully and apply a surgical edit

FAQ & Installation Steps

These questions and steps mirror the structured data on this page for better search understanding.

? Frequently Asked Questions

What is sync-deps?

Perfect for Python Development Agents needing automated dependency management and synchronization. Synchronises all dependency files from the actual imports in the codebase. Use when asked to update requirements.txt, sync dependencies, update pyproject.toml dependencies, fix requirements, update de

How do I install sync-deps?

Run the command: npx killer-skills add laceto/rss_feed/sync-deps. It works with Cursor, Windsurf, VS Code, Claude Code, and 19+ other IDEs.

What are the use cases for sync-deps?

Key use cases include: Automating dependency updates after adding or removing packages, Debugging dependency drift between requirements.txt and pyproject.toml, Synchronizing dependency files before a release.

Which IDEs are compatible with sync-deps?

This skill is compatible with Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer. Use the Killer-Skills CLI for universal one-command installation.

Are there any limitations for sync-deps?

Requires access to source files and dependency files. Python projects only. Needs to scan actual imports in source files.

How To Install

  1. 1. Open your terminal

    Open the terminal or command line in your project directory.

  2. 2. Run the install command

    Run: npx killer-skills add laceto/rss_feed/sync-deps. The CLI will automatically detect your IDE or AI agent and configure the skill.

  3. 3. Start using the skill

    The skill is now active. Your AI agent can use sync-deps immediately in the current project.

Related Skills

Looking for an alternative to sync-deps or another community skill for your workflow? Explore these related open-source skills.

View All

openclaw-release-maintainer

Logo of openclaw
openclaw

openclaw-release-maintainer is a specialized AI agent skill for automating release management workflows, ensuring consistency and accuracy in the release process.

333.8k
0
Data

widget-generator

Logo of f
f

Generate customizable widget plugins for the prompts.chat feed system

149.6k
0
Design

flags

Logo of vercel
vercel

The React Framework

138.4k
0
Browser

pr-review

Logo of pytorch
pytorch

Tensors and Dynamic neural networks in Python with strong GPU acceleration

98.6k
0
AI