Agent skill

Perform Task

by telegramdesktop in 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.

GPL-3.0Auto-check passedProductivity & Automation

Install Perform Task

skills CLI
$ npx skills add telegramdesktop/tdesktop --skill perform-task -a claude-code

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

GitHub CLI
$ gh skill install telegramdesktop/tdesktop perform-task --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/perform-task .claude/skills/perform-task && 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
perform-task
GitHub stars
33k
Used in
2 other repos
Token cost
~3k tokens
SKILL.md length
1,571 words
Files
5 (incl. references)
Skills in repo
4
Repo updated
First seen
Licence
GPL-3.0

At a glance

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.

  • Works in 3 steps: one or more tested source… → local tracked phase artifacts in the AI… → one canonical Approve commit containing…
  • The user invokes $perform-task
  • SKILL.md covers Read the complete engine, Resolve the workspace and task, Acquire exactly this task and Run and publish
  • Calls python3

What it does

Perform Task is an agent skill from 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. Use when the user invokes $perform-task or /perform-task with a known task name, or when the continue scheduler delegates one selected task. Runs standard review lenses with fast applicability bailouts and selects task-specific domain and evidence instruments without selecting additional work.

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `agents/openai.yaml`, `references/computer-use-testing.md` and `references/phase-prompts.md`).

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

When your agent uses it

  • The user invokes $perform-task
  • /perform-task with a known task name
  • The continue scheduler delegates one selected task

Example prompts

  • “/perform-task”

Requirements

  • Python 3

Workflow steps

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

  1. one or more tested source implementation-attempt commits, each with an
  2. local tracked phase artifacts in the AI slot worktree, without
  3. one canonical Approve commit containing all final AI

What it can do on your machine

Read from SKILL.md and the folder at commit d346b42. 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

    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

Perform Task loads about 3k tokens when it runs, and up to ~35k if it reads all its reference files. Until then it costs about 125 tokens; SKILL.md has 1,571 words of instructions outside code blocks.

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

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from telegramdesktop/tdesktop at commit d346b42, republished under its GPL-3.0 licence (© telegramdesktop). 1,571 words, ~2,962 tokens.

Download SKILL.mdSave it as .claude/skills/perform-task/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
perform-task
description
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. Use when the user invokes $perform-task or /perform-task with a known task name, or when the continue scheduler delegates one selected task. Runs standard review lenses with fast applicability bailouts and selects task-specific domain and evidence instruments without selecting additional work.

Perform One AI Task

When running in Grok Build, read .grok/ai-workflow-adapter.md completely before any other host-specific delegation rule and apply its substitutions.

Own exactly one task through its retained change, or a proved already-satisfied outcome, and a canonical AI Approve or exceptional Block, or a canonical Split-required result. Do not process the inbox, create replacement tasks, drain the queue, select a follow-up, or consolidate pending tasks afterward. The continue scheduler isolates discovery routing and queue consolidation in fresh workers after this performer returns.

Read the complete engine

Read these files completely before phase work:

  • Phase effort for effort selection and host mappings before assigning phase workers;
  • On Codex, child completion and recovery for result-driven waits and recovery of stopped agents;
  • references/pipeline.md for the authoritative end-to-end runner contract;
  • references/phase-prompts.md for exact leaf prompts and retry rules;
  • .agents/shared/test-loop.md for the implementation/test state machine;
  • .agents/shared/build-lock-recovery.md for bounded exact-checkout Windows build-lock recovery;
  • references/computer-use-testing.md when UI-driver selection or operation is relevant.

The pipeline reference adapts conflicting generic test-loop mechanics for the external AI worktree and exact-path safety. Its named adapter wins at those points; retain every other test-loop rule.

Resolve the workspace and task

Run from a Telegram Desktop checkout. Use the host's Python 3 command:

bash
python3 .agents/skills/process-inbox/scripts/workspace.py resolve \
  --name <short-slug-or-full-task-id>

Use python or py -3 when appropriate. The helper reads the ignored machine tag, derives the checkout tag, synchronizes clean AI state, and resolves an exact full id, exact final path slug, or exact normalized friendly title. Prefer a unique unfinished match over approved history. Never guess among several unfinished matches; report their full ids.

An interactive invocation requires a nonempty name. If none was supplied, ask for the friendly short name or full id. A continue delegation always supplies the full id and explicit workspace values; still resolve and verify them.

If commits.slot_only is nonzero and the slot is clean, run the helper's publish command and resolve again. A dirty slot is valid only when every change belongs to this checkout's one in-progress task. Those files are local resumable phase state; never discard them. Any unrelated dirty or divergent state is a hard stop.

Acquire exactly this task

Inspect the resolved task, readiness, other_active_task, status, and owner.

  • If another task is already in-progress for this checkout, stop.

  • If this task is approved, report its completed result and stop.

  • If it is split-required, report its published split proposal and stop. A direct invocation leaves routing to the human; a scheduler invocation returns control so continue can launch the dedicated split worker.

  • If it is owned by another checkout, stop. Cross-checkout restart is a rare explicit human reassignment, never an implicit steal.

  • If its dependencies are unfinished, report them and stop without starting.

  • Inspect task.md for approved source-task prerequisites in addition to depends_on, then run workspace.py source-lineage --task <full-task-id> with one --require <source-task-id> for each explicit prerequisite. Require current_satisfies: true before Phase 1. For start or retry, pass the same --require arguments so claiming is machine-gated too.

  • If it is todo and either unclaimed or owned by this checkout, atomically assign and activate it:

    bash
    python3 .agents/skills/process-inbox/scripts/workspace.py start \
      --task <full-task-id>
  • If it is blocked and owned by this checkout, reopen it locally:

    bash
    python3 .agents/skills/process-inbox/scripts/workspace.py retry \
      --task <full-task-id>

    Preserve all source recovery, plans, reviews, tests, result, and evidence. Continue from the first incomplete validated boundary. This creates no Resume commit.

  • If it is already in-progress and owned by this checkout, resume it without another state commit.

Refresh with resolve after each mutation. The source pipeline begins only after the slot state shows this task in-progress for this checkout. For a new task, canonical master must already contain its Start commit.

A source-lineage mismatch found before Phase 1 is a pre-phase routing stop, not a task Block: create no phase artifacts, source edits, retained commit, or integration task. Return the lineage report to the continue scheduler, which may safely switch an existing local branch and resume. In a direct interactive invocation, report it and ask the human. If the mismatch is first discovered only after Phase 1 has completed, restore every owned/disposable source change to a clean boundary and publish a genuine blocked result naming the exact missing source task and appropriate branch evidence. Do not cherry-pick, rebase, merge, or manufacture the prerequisite. This blocker is task-local; the scheduler may continue work that does not depend on it.

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

Run and publish

Execute references/pipeline.md exactly. A task that changes the repository and is approved produces:

  1. one or more tested source implementation-attempt commits, each with an exact one-line subject using the pipeline's conditional [ai] prefix, blank line, and Task: <full-task-id>;
  2. local tracked phase artifacts in the AI slot worktree, without phase commits;
  3. one canonical Approve <full-task-id> commit containing all final AI artifacts and state.

New and unfinished tasks use the single adaptive implement path. Assessment must first confirm that the request is one cohesive implementation/review/test unit. If it contains independently useful and independently testable product boundaries, record Scope: split-required and a concrete split proposal before source edits. The same result may arise later from the bounded convergence assessment when the retained implementation proves that one review/evidence campaign is not coherent. Do not force the broad request through smaller implementation phases and call it one task. The independent assessment has veto authority over further implementation, not authority to create, retire, or rewrite tasks. The performer writes the split result, preserves any owned implementation and source refs, and publishes it with finish --status split-required. The checkout scheduler owns the later queue mutation and implementation transfer. A direct invocation returns the published proposal to the human.

For a cohesive task, use one mandatory general review, all five standard review lenses, and a falsifiable evidence plan. On the initial implementation the general reviewer and all lenses inspect the task and complete diff without seeing one another's findings. A lens may return a compact NOT_APPLICABLE immediately after that scan when it proves the diff affects no mechanism it owns; otherwise it reads the relevant changed files and adjacent code and returns CLEAN or FINDINGS. The evidence loop may use static readings, commands and artifacts, unit tests, a standalone probe or component binary, a Telegram Debug build with logged assertions, an in-app overlay, Computer Use, screenshots, or any necessary combination. Do not require a portable account, Telegram executable, or desktop unless a selected check uses it. Do not weaken a runtime or visual check merely because another instrument is cheaper.

The general reviewer examines every changed file in full and the evidence plan, may reject an unsupported NOT_APPLICABLE, require a named domain specialist or stronger instrument, and cannot defer its own concern. Its approval and every clean or proved-not-applicable lens result carry forward. A fix invalidates only the findings, changed invariants, specialists, validations, and evidence checks it actually affects. Review fixes receive a focused general delta review plus only those invalidated specialists; they do not restart the full review or evidence design.

Automatic replay is bounded. If two review verdicts need changes, findings are not converging, or a fix expands the architecture or owned paths, run the pipeline's independent convergence assessment instead of another broad round. It chooses a bounded focused repair, a coherent replan, or RESCOPE_REQUIRED; unresolved findings are never approved merely to meet the bound. A task whose desired outcome was already present may finish without a source commit only after the same general review and evidence loop prove Outcome: already-satisfied.

Only a genuine exhausted task blocker produces a canonical Block <full-task-id> commit. Agent interruption, tool loss, and global environment stops leave the task in-progress with its task-scoped local state intact for the next invocation.

A repeated evidence setup failure is not exhausted recovery by itself. Follow the shared directness ladder: forbid the failed command, fixture, probe, or capture technique and make the next run closer to the changed surface. The configured test-run cap closes one campaign: preserve prior passes, isolate the unmet checks, and start at most one focused recovery campaign unless a fresh assessment proves every direct strategy exhausted. A second campaign cap or a repeated non-converging focused signature stops automatic work for an explicit human/convergence decision; it does not start another campaign. A cap and a TEST_FLAW can never by themselves publish BLOCKED or approval.

A pre-Runner crash or DeadlockDetector event is not an evidence setup failure merely because the scenario did not start. Apply the shared crash diagnostics and debugger fallback before changing an account fixture. An empty or unusable dump requires live debugging after at most one confirmation run; it never supports a fixture verdict.

A locked macOS session is not an environment stop or evidence blocker for a selected Telegram runtime check. Skip interactive Computer Use and complete the same coverage through the in-binary overlay: drive the flow, log/assert, capture widgets or windows, quit, and assess the saved artifacts. Non-app instruments are unaffected.

A Windows build-output lock is not an immediate environment stop. Follow the shared bounded recovery contract, including exact-path cleanup before builds. Only its exhausted or unsafe outcome is a global hard stop; it never becomes a task Block.

Do not report success from a source commit alone. The final AI commit must be canonical. Retry ordinary concurrent-master publication races until success. On a semantic conflict, unsafe checkout, or unreachable remote, preserve resumable state and report a hard stop.

Return a compact result with the full task id, status or hard stop, attempts, touched files, canonical final-publication confirmation, and exact evidence or unverified behavior. Never persist or report commit hashes; the full task id is the only cross-repository link.

© 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 4 other files (references) in .agents/skills/perform-task of telegramdesktop/tdesktop.

  • SKILL.md
  • agents/openai.yaml
  • references/computer-use-testing.md
  • references/phase-prompts.md
  • references/pipeline.md

Open the folder on GitHubat commit d346b42

Used in 2 other repositories

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

Compare with similar skills

Perform Task 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.

Perform Task compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Perform Task this skilltelegramdesktop/tdesktop33k2 repos~3kAutomated safety check: PassGPL-3.0
Telegrambubbuild/bub1.7k—~2.2kAutomated safety check: PassApache-2.0
Send User MessageTinyAGI/tinyagi3.6k—~829Automated safety check: PassMIT
Tlivey49/tlive2141 repos~1.7kAutomated safety check: NotesMIT
Tg CLIjackwener/tg-cli293—~1.2kAutomated safety check: PassApache-2.0
Pytdbotpytdbot/client137—~4.3kAutomated safety check: PassMIT

Similar skills

  • Telegram

    bubbuild/bub

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

    1.7k GitHub stars~2.2k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Send User Message

    TinyAGI/tinyagi

    Send a proactive message to a paired user via their channel (Discord, Telegram, or WhatsApp).

    3.6k GitHub stars~829 tokensUpdated 6 mo ago
    Productivity & AutomationAuto-check passed
  • Tlive

    y49/tlive

    tlive — remote approvals (Telegram/Feishu/web), live web terminal, and session monitoring for Claude Code / Codex.

    214 GitHub starsUsed in 1 repo~1.7k tokens
    Productivity & AutomationAuto-check: notes
  • Tg CLI

    jackwener/tg-cli

    CLI skill for Telegram to sync chats, search messages, filter keywords, and monitor groups from the terminal

    293 GitHub stars~1.2k tokensUpdated 6 mo ago
    Productivity & AutomationAuto-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 10 days ago
    Productivity & AutomationAuto-check passed
  • Setup

    terranc/claude-telegram-bot-bridge

    Install and configure the Telegram Skill Bot. An agent skill from terranc/claude-telegram-bot-bridge.

    134 GitHub stars~1.5k tokensUpdated 4 mo ago
    Productivity & AutomationAuto-check: notes

More from telegramdesktop/tdesktop

  • 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 2 repos~4.5k 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
  • 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 Perform Task

What does Perform Task do?

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. Perform Task is an agent skill from 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.

When should I use Perform Task?

Perform Task fits situations like: the user invokes $perform-task; /perform-task with a known task name; the continue scheduler delegates one selected task.

How do I install Perform Task in Claude Code?

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

How do I install Perform Task in Codex?

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

Can I use Perform Task 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 perform-task -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/perform-task, .gemini/skills/perform-task, .github/skills/perform-task and .opencode/skills/perform-task in your project.

What does Perform Task need to run?

Going by SKILL.md and its folder, Perform Task needs the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Perform Task 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 Perform Task 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. Review the folder before installing.

What licence does Perform Task use?

Perform Task 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 Perform Task use?

About 3k tokens (SKILL.md is roughly 12k 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 32k tokens, read only when the agent opens those files.

What are the alternatives to Perform Task?

Skills that share tags, products or a category with Perform Task: Telegram (bubbuild/bub, 1.7k stars), Send User Message (TinyAGI/tinyagi, 3.6k stars), Tlive (y49/tlive, 214 stars) and Tg CLI (jackwener/tg-cli, 293 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Perform Task?

telegramdesktop (a GitHub organization) maintains it in telegramdesktop/tdesktop, which has 33,131 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 7, 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.