Agent skill

Dependency Watch

by telegramdesktop in telegramdesktop/tdesktop

Audit Telegram Desktop dependencies on freshly fetched origin/dev for releases and security fixes, including upstream lag and backport candidates in patched forks.

GPL-3.0Auto-check passedProductivity & Automation

Install Dependency Watch

skills CLI
$ npx skills add telegramdesktop/tdesktop --skill dependency-watch -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install telegramdesktop/tdesktop dependency-watch --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/telegramdesktop/tdesktop.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/dependency-watch .claude/skills/dependency-watch && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
dependency-watch
GitHub stars
33k
Used in
1 other repo
Token cost
~2.2k tokens
SKILL.md length
1,173 words
Files
6 (incl. scripts, references)
Skills in repo
5
Repo updated
First seen
Licence
GPL-3.0

At a glance

Audit Telegram Desktop dependencies on freshly fetched origin/dev for releases and security fixes, including upstream lag and backport candidates in patched forks.

  • Works in 2 steps: Most pressing updates pending. All… → Review someday. Minor upgrades as weaker…
  • The daily dependency monitor
  • SKILL.md covers Snapshot and scope, Release and advisory checks, Incremental work and evidence and Report contract
  • Runs Python scripts from its folder; calls python3

What it does

Dependency Watch is an agent skill from telegramdesktop/tdesktop. Audit Telegram Desktop dependencies on freshly fetched origin/dev for releases and security fixes, including upstream lag and backport candidates in patched forks. Use for the daily dependency monitor or an explicitly requested dependency report.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts and reference files (for example `agents/openai.yaml`, `references/forks.md` and `references/release-trust.md`).

It sits in Productivity & Automation. It works with Telegram and Git. The repository describes itself as: Telegram Desktop messaging app. The licence is GPL-3.0.

When your agent uses it

  • The daily dependency monitor
  • An explicitly requested dependency report

Example prompts

  • “/dependency-watch”

Requirements

  • Python 3
  • Docker

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Most pressing updates pending. All unresolved strong suggestions, highest
  2. Review someday. Minor upgrades as weaker suggestions; major upgrades as

What it can do on your machine

Read from SKILL.md and the folder at commit 6fed91f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Dependency Watch loads about 2.2k tokens when it runs, and up to ~4.8k if it reads all its reference files. Until then it costs about 66 tokens; SKILL.md has 1,173 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~66
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from telegramdesktop/tdesktop at commit 6fed91f, republished under its GPL-3.0 licence (© telegramdesktop). 1,173 words, ~2,233 tokens.

Download SKILL.mdSave it as .claude/skills/dependency-watch/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
dependency-watch
description
Audit Telegram Desktop dependencies on freshly fetched origin/dev for releases and security fixes, including upstream lag and backport candidates in patched forks. Use for the daily dependency monitor or an explicitly requested dependency report.

Dependency watch

Produce an advisory report about dependencies consumed by origin/dev. This workflow does not bump dependencies, build Telegram, create queue records, commit, push, open PRs, or apply backports. Those are separate implementation requests.

Snapshot and scope

Run from the repository root:

bash
python3 .agents/skills/dependency-watch/scripts/watch.py snapshot

The helper fetches only origin/dev, resolves it once, and reads Git blobs at that exact commit without switching branches or touching working files. It prints the snapshot directory and report storage root. A failed fetch is a failed current check; do not present an older remote ref as freshly checked. --no-fetch is for offline testing only and marks its snapshot as unverified.

Read snapshot.json, candidates.json, and the relevant files in sources/. Candidates are navigation aids, not a complete parsed dependency inventory. Inspect the full union of prepare, Docker, Snap, Qt selection, workflow and package/lock files. Snapshot gitlinks and .gitmodules identify exact submodule revisions; inspect their dependency declarations recursively, especially CMake, WebRTC, codecs, and bundled image/font/compression/crypto libraries. Add newly discovered dependencies on every run; never restrict coverage to yesterday's list. Distinguish shipped libraries, system-provided components and build tools.

Read repository history at the snapshot commit to explain divergent pins and holds. Derive platform conditions from the recipes. A library disabled in one configuration can still be relevant on another platform. A source manifest does not establish what is installed or what already shipped to users.

Store research caches and reports in the helper's storage_root, inside Git's common directory. Read its previous latest.json and latest.md when present. Inspect external Git repositories through APIs or isolated caches there; do not fetch, checkout, or reset the user's prepared libraries or live submodules. Do not execute downloaded build scripts or import the prepare script to read it.

Release and advisory checks

For every dependency record its identity, upstream, current version/revision, manifest locations, platform/configuration, release scheme and supported series. Fetch official release/tag metadata and release notes; check security advisories independently, including advisories published since a release. Search vendor security pages and GHSA/OSV/CVE sources as appropriate; native C/C++ projects may not have package identifiers in advisory databases. Absence from a database is not evidence of safety. Cite primary sources and dates for actionable claims.

Use watch.py compare CURRENT CANDIDATE for ordinary three-component stable versions. It rejects prereleases and unsupported schemes as unknown; inspect upstream version policy for those instead of forcing SemVer on commit hashes, dates, Chromium milestones, OpenSSL legacy letters, or four-component versions. For 0.x, also assess compatibility from upstream notes. Compare all maintained release series we consume, not just the upstream API's single latest release.

Read release-trust.md before recommending any candidate. Track update urgency separately from the decision to update, backport, hold, skip, or track. A patch number sets a review priority; it does not establish release trust, compatibility, or readiness to adopt.

Rank findings as follows, subject to that assessment:

  • Strong suggestion: a newer stable patch in a consumed series that passes the release assessment, or a confirmed applicable security fix missing from our pinned sources/patches with an assessed update/backport route. Known exploitation or exposed memory-safety flaws rank above routine patches.
  • Weaker suggestion: a minor release, with concrete benefits and migration costs where known.
  • Track only: a major release or upstream milestone gap without an identified applicable security fix. Track end-of-support dates; an unsupported consumed branch or security fix available only in a newer series can require urgent migration despite its version classification. A suspect replacement does not become acceptable merely because the current branch is unsupported.

An intentional hold does not hide patch releases or security findings. Show the reason for the hold beside the recommendation. Deduplicate the same dependency across recipes, preserving different platform series and patch revisions. For distro-provided packages, check the distribution's full package revision, security tracker and backports. Record artifact/package resolution as unknown when unavailable; an old upstream version alone does not prove vulnerability. Track Docker base images, mutable package installs and Snap runtime/content snaps as separate update/rebuild concerns even when no source pin changed.

Read forks.md when checking patched or copied upstreams; always apply it to tg_owt and tg_angle when present in the snapshot.

Show full SKILL.md (495 more words)Show less

Incremental work and evidence

On the first audit establish a baseline across all discovered dependencies. On subsequent runs reuse verified source mappings, imported revisions and backport evidence, but refresh release/advisory metadata daily even if origin/dev did not move. Recheck evidence when a pin, patch set, relevant code, upstream fix or advisory changes. First inspect high-exposure libraries and existing urgent findings, then finish the rest. Follow API pagination; conditional requests and cached Git objects can reduce work without skipping unresolved history.

Maintain latest.json with the snapshot commit/time, per-dependency check times, coverage (checked, partial, unavailable, or not-checked), current and candidate versions, findings, source links, and fork evidence. Give each finding a stable identity based on dependency, consumed series/platform and advisory or target version. Record first/last seen and whether it remains pending. Preserve pending findings across failures; only resolve them with evidence from the new snapshot. A revision change alone does not prove that a fix was incorporated. Persist each candidate's decision and reason, release date, assessed source identity, trust/regression evidence, unknown checks, and next review date or condition. A hold or skip does not resolve an outstanding security problem.

If access or time prevents full coverage, save a partial report naming the gaps and last successful checks. Never write "all up to date" after an incomplete scan. Record stale security coverage prominently when it affects pressing items. A first run may need substantial fork archaeology; keep its evidence and resume unresolved ranges next time instead of repeatedly starting over. A keyword scan of recent commit subjects does not complete a security review of an older tail.

Report contract

Save report.md and findings.json beside that run's snapshot, then replace latest.md and latest.json in the storage root using temporary files and atomic rename. Preserve prior run reports. Date reports in Asia/Dubai and give the exact origin/dev commit, fetch time, and whether the audit was complete or partial.

Use two main blocks, in this order:

  1. Most pressing updates pending. All unresolved strong suggestions, highest urgency first, including previously reported items. For each: dependency, affected platforms, current → target version or fix, why it matters, evidence, existing patch/backport status, and the recommended update/backport action. Distinguish confirmed missing fixes from urgent investigations whose applicability or backport status remains unknown. Keep urgent holds or rejected replacements here when the existing dependency still needs action; state the safer alternative and what would unblock the decision.
  2. Review someday. Minor upgrades as weaker suggestions; major upgrades as tracking entries; fork milestone/revision lag; routine holds and skipped candidates with reasons; unavailable checks, unclassified versions, and other coverage limitations. Clearly mark newly discovered, changed and resolved findings and link the full inventory.

Both blocks must be present, even when empty. End with a compact coverage line (checked/total, unavailable checks and oldest outstanding coverage). A scan of source declarations alone must not claim that distributed binaries are fixed. The scheduler decides when to post this report in the chat; the saved report always retains the complete pending list.

© telegramdesktop, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files (scripts, references) in .agents/skills/dependency-watch of telegramdesktop/tdesktop.

  • SKILL.md
  • agents/openai.yaml
  • references/forks.md
  • references/release-trust.md
  • scripts/watch.py
  • scripts/watch_test.py

Open the folder on GitHubat commit 6fed91f

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in telegramdesktop/tdesktop, which our catalogue first saw on October 9, 2026.

Compare with similar skills

Dependency Watch next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Dependency Watch compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Dependency Watch this skilltelegramdesktop/tdesktop33k1 repos~2.2kAutomated safety check: PassGPL-3.0
Telegram Plugin Updaterk1p1l0/claude-telegram-supercharged132—~764Automated safety check: PassApache-2.0
Process InboxTDesktop-x64/tdesktop3k—~4.3kAutomated safety check: PassGPL-3.0
Telegrambubbuild/bub1.7k—~2.2kAutomated safety check: PassApache-2.0
Challenge Baseline ModelAgibotTech/genie_sim1.4k—~2.4kAutomated safety check: PassCustom licence
Keen Pbr Release Postmaksimkurb/keen-pbr141—~844Automated safety check: PassGPL-3.0

Similar skills

  • Telegram Plugin Updater

    k1p1l0/claude-telegram-supercharged

    Updates the enhanced Telegram plugin for Claude Code from its GitHub repository: compares file hashes, shows recent commits, asks first, then runs the installer.

    132 GitHub stars~764 tokensUpdated 15 days ago
    Productivity & AutomationAuto-check passed
  • Process Inbox

    TDesktop-x64/tdesktop

    Process the local ignored ai-tdesktop inbox into durable, independently testable Telegram Desktop task records while task execution worktrees remain active.

    3k GitHub stars~4.3k tokensUpdated 19 days ago
    Productivity & AutomationAuto-check passed
  • Telegram

    bubbuild/bub

    Telegram Bot skill for sending and editing Telegram messages via Bot API.

    1.7k GitHub stars~2.2k tokensUpdated yesterday
    Productivity & AutomationAuto-check passed
  • Challenge Baseline Model

    AgibotTech/genie_sim

    Provision and launch the Simulation Challenge baseline inference model end to end: clone the inference code from a given git repo/branch, download the checkpoints from ModelScope into the repo's…

    1.4k GitHub stars~2.4k tokensUpdated 1 mo ago
    Productivity & AutomationAuto-check passed
  • Keen Pbr Release Post

    maksimkurb/keen-pbr

    Draft keen-pbr release posts for GitHub and Telegram from git history.

    141 GitHub stars~844 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Pytdbot

    pytdbot/client

    Write Telegram bots and userbots with Pytdbot (async TDLib wrapper with high-level helpers; not the Telegram Bot API).

    137 GitHub stars~4.3k tokensUpdated today
    Productivity & AutomationAuto-check passed

More from telegramdesktop/tdesktop

  • Perform Task

    telegramdesktop/tdesktop

    Resolve, start or resume, implement, review, test, and publish exactly one existing ai-tdesktop task by short slug or full dated id, including rare blocked retries and split-required results.

    33k GitHub starsUsed in 2 repos~3k tokens
    Auto-check passed
  • Continue

    telegramdesktop/tdesktop

    Continue autonomous Telegram Desktop development from the shared ai-tdesktop repository.

    33k GitHub starsUsed in 2 repos~9.4k tokens
    Auto-check passed
  • Process Inbox

    telegramdesktop/tdesktop

    Process the local ignored ai-tdesktop inbox into durable, independently testable Telegram Desktop task records while task execution worktrees remain active.

    33k GitHub starsUsed in 1 repo~5.4k tokens
    Auto-check passed
  • Rebase

    telegramdesktop/tdesktop

    Drive an intent-aware rebase of the current checkout, resolving every conflict by reading the history behind both sides instead of by making the markers disappear.

    33k GitHub starsUsed in 1 repo~3.7k tokens
    Auto-check passed

Works with

Questions about Dependency Watch

What does Dependency Watch do?

Audit Telegram Desktop dependencies on freshly fetched origin/dev for releases and security fixes, including upstream lag and backport candidates in patched forks. Dependency Watch is an agent skill from telegramdesktop/tdesktop. Audit Telegram Desktop dependencies on freshly fetched origin/dev for releases and security fixes, including upstream lag and backport candidates in patched forks.

When should I use Dependency Watch?

Dependency Watch fits situations like: the daily dependency monitor; an explicitly requested dependency report.

How do I install Dependency Watch in Claude Code?

Run `npx skills add telegramdesktop/tdesktop --skill dependency-watch -a claude-code`. Or copy the skill folder (.agents/skills/dependency-watch in telegramdesktop/tdesktop) into .claude/skills/dependency-watch in your project. Claude Code loads it when a task matches its description.

How do I install Dependency Watch in Codex?

Run `npx skills add telegramdesktop/tdesktop --skill dependency-watch -a codex`. Or copy the skill folder (.agents/skills/dependency-watch in telegramdesktop/tdesktop) into .agents/skills/dependency-watch in your project. Codex loads it when a task matches its description.

Can I use Dependency Watch in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add telegramdesktop/tdesktop --skill dependency-watch -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dependency-watch, .gemini/skills/dependency-watch, .github/skills/dependency-watch and .opencode/skills/dependency-watch in your project.

What does Dependency Watch need to run?

Going by SKILL.md and its folder, Dependency Watch needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3; Docker.

Does Dependency Watch access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Dependency Watch safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Dependency Watch use?

Dependency Watch is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Dependency Watch use?

About 2.2k tokens (SKILL.md is roughly 8.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.6k tokens, read only when the agent opens those files.

What are the alternatives to Dependency Watch?

Skills that share tags, products or a category with Dependency Watch: Telegram Plugin Updater (k1p1l0/claude-telegram-supercharged, 132 stars), Process Inbox (TDesktop-x64/tdesktop, 3k stars), Telegram (bubbuild/bub, 1.7k stars) and Challenge Baseline Model (AgibotTech/genie_sim, 1.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Dependency Watch?

telegramdesktop (a GitHub organization) maintains it in telegramdesktop/tdesktop, which has 33,193 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 10, 2026.

Source: telegramdesktop/tdesktop on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.