Agent skill

Qv Asana Sync

by tetherto in tetherto/qvac

Look up and update Asana tasks using local developer-workflow config and direct Asana REST calls.

Apache-2.0Auto-check passedAI & LLM Engineering

Install Qv Asana Sync

skills CLI
$ npx skills add tetherto/qvac --skill qv-asana-sync -a claude-code

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

GitHub CLI
$ gh skill install tetherto/qvac qv-asana-sync --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/tetherto/qvac.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/qv-asana-sync .claude/skills/qv-asana-sync && 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
qv-asana-sync
GitHub stars
683
Token cost
~1.2k tokens
SKILL.md length
460 words
Files
2
Skills in repo
50
Repo updated
First seen
Licence
Apache-2.0

At a glance

Look up and update Asana tasks using local developer-workflow config and direct Asana REST calls.

  • Works in 7 steps: Open Asana developer console. → Create a Personal Access Token with a… → Permission model: Asana Personal Access… → …
  • The user asks to sync an Asana task
  • SKILL.md covers Default Behavior, Prerequisites, Common Operations and Lifecycle Mapping, plus 1 more section
  • Calls node and curl; reaches github.com; needs ASANA_ACCESS_TOKEN

What it does

Qv Asana Sync is an agent skill from tetherto/qvac. Look up and update Asana tasks using local developer-workflow config and direct Asana REST calls. Use when the user asks to sync an Asana task, move task status, add a PR link to Asana, or validate Asana configuration.

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).

It sits in AI & LLM Engineering. It works with Asana. The repository describes itself as: Open-source local AI SDK - run AI on-device with no cloud, no API keys. Supports GGUF, RAG, image, music, and video generation, speech-to-text, P2P inference, and more… The licence is Apache-2.0.

When your agent uses it

  • The user asks to sync an Asana task
  • Move task status
  • Add a PR link to Asana
  • Validate Asana configuration

Example prompts

  • “/qv-asana-sync”

Requirements

  • A credential in ASANA_ACCESS_TOKEN

Workflow steps

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

  1. Open Asana developer console.
  2. Create a Personal Access Token with a clear description, e.g. Local qvac-pr-skills.
  3. Permission model: Asana Personal Access Tokens do not require choosing scopes in this setup. The token acts as the current Asana user and…
  4. For status enrichment, the user must be able to read the configured workspace/project/tasks. For sync actions, the user must also be…
  5. No OAuth app or Asana MCP server is needed.
  6. Store it in your default shell startup file or export it locally. Coding agents may not inherit the app environment, so the helper falls…
  7. Verify

What it can do on your machine

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

    • node
    • curl

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    Also links to:

    • developers.asana.com

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

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • ASANA_ACCESS_TOKEN

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

Context cost

Qv Asana Sync loads about 1.2k tokens when it runs. Until then it costs about 58 tokens; SKILL.md has 460 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~58
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k

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 tetherto/qvac at commit f874b3a, republished under its Apache-2.0 licence (© tetherto). 460 words, ~1,162 tokens.

Download SKILL.mdSave it as .claude/skills/qv-asana-sync/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
qv-asana-sync
description
Look up and update Asana tasks using local developer-workflow config and direct Asana REST calls. Use when the user asks to sync an Asana task, move task status, add a PR link to Asana, or validate Asana configuration.
disable-model-invocation
true

Asana Sync

Manual Asana task lookup and lifecycle sync using direct REST helpers. No Asana MCP binary.

Default Behavior

If the user invokes this skill without a ticket, task GID, or specific action, do not only run config validation and exit. Show the operation menu below and ask what they want to do.

Ask for the missing input:

  • Ticket ID or task GID
  • Desired action: find, status, move, comment, or complete
  • Target status for move
  • Comment text for comment

Prerequisites

  • Local config at ~/.config/qvac-pr-skills/config.json
  • ASANA_ACCESS_TOKEN set in the current environment or available from the user's default shell startup files, unless config uses a different asana.tokenEnv

Create the token:

  1. Open Asana developer console.
  2. Create a Personal Access Token with a clear description, e.g. Local qvac-pr-skills.
  3. Permission model: Asana Personal Access Tokens do not require choosing scopes in this setup. The token acts as the current Asana user and can access whatever that user can access.
  4. For status enrichment, the user must be able to read the configured workspace/project/tasks. For sync actions, the user must also be allowed to comment, move, and complete tasks in that project.
  5. No OAuth app or Asana MCP server is needed.
  6. Store it in your default shell startup file or export it locally. Coding agents may not inherit the app environment, so the helper falls back to asking your default shell for this variable.
bash
export ASANA_ACCESS_TOKEN='<token>'
  1. Verify:
bash
curl https://app.asana.com/api/1.0/users/me \
  -H "Authorization: Bearer $ASANA_ACCESS_TOKEN"

Docs: Asana personal access token

Validate:

bash
node .agents/skills/_lib/developer-workflow/config-init.mjs --validate --asana
Show full SKILL.md (219 more words)Show less

Common Operations

Show these options when no action is provided:

  • status - validate local Asana config and token access
  • find <ticket> - find an Asana task by ticket
  • task <task-gid> - read a task by Asana GID
  • move <ticket-or-task-gid> <status> - move task to configured status
  • comment <ticket-or-task-gid> <text> - add task comment
  • complete <ticket-or-task-gid> - mark task complete and move to completed

Available statuses: todo, inProgress, blocked, inReview, readyForQa, qaPassed, staging, storeReview, readyForProd, completed, closed.

Status / config validation:

bash
node .agents/skills/_lib/developer-workflow/asana-cli.mjs status

Find a task by ticket:

bash
node .agents/skills/_lib/developer-workflow/asana-cli.mjs find QVAC-12345

Read a task by Asana task GID:

bash
node .agents/skills/_lib/developer-workflow/asana-cli.mjs task <task-gid>

Move a ticket/task to a configured status. If asana.statusOptions is configured, this uses Asana's custom_type_status_option. Otherwise it falls back to old section movement:

bash
node .agents/skills/_lib/developer-workflow/asana-cli.mjs move QVAC-12345 inProgress
node .agents/skills/_lib/developer-workflow/asana-cli.mjs move QVAC-12345 inReview
node .agents/skills/_lib/developer-workflow/asana-cli.mjs move QVAC-12345 blocked
node .agents/skills/_lib/developer-workflow/asana-cli.mjs move QVAC-12345 completed

Add a comment, for example a PR URL:

bash
node .agents/skills/_lib/developer-workflow/asana-cli.mjs comment QVAC-12345 "PR opened: https://github.com/owner/repo/pull/123"

Complete a task and move it to configured completed status:

bash
node .agents/skills/_lib/developer-workflow/asana-cli.mjs complete QVAC-12345

Lifecycle Mapping

Use this mapping after user confirmation:

  • Start working: move <ticket> inProgress
  • PR opened: move <ticket> inReview, then comment <ticket> "PR opened: <url>"
  • Blocked: move <ticket> blocked, then comment with blocker context
  • PR merged/done: complete <ticket>

For mutations, show the exact planned command first and wait for explicit user confirmation.

Safety

  • Never write tokens or Asana IDs into repo files.
  • Do not mutate Asana without user confirmation unless the user already approved the lifecycle action in the current workflow.
  • Use /users/me to discover the current user; never copy another developer's user GID.

© tetherto, Apache-2.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 1 other file in .agents/skills/qv-asana-sync of tetherto/qvac.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit f874b3a

Compare with similar skills

Qv Asana Sync 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.

Qv Asana Sync compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Qv Asana Sync this skilltetherto/qvac683—~1.2kAutomated safety check: PassApache-2.0
Project Opsericrisco/rsc-harness174—~2.4kAutomated safety check: PassMIT
Agent BuildershareAI-lab/learn-claude-code78k5 repos~1.2kAutomated safety check: PassMIT
Add Uint Supportpytorch/pytorch104k2 repos~2.3kAutomated safety check: PassCustom licence
LLM Benchmarking with lm-evaluation-harnessOrchestra-Research/AI-Research-SKILLs13k8 repos~3kAutomated safety check: PassMIT
Segment Anything Model GuideOrchestra-Research/AI-Research-SKILLs13k8 repos~3.3kAutomated safety check: PassMIT

Similar skills

  • Project Ops

    ericrisco/rsc-harness

    A skill your agent uses when an operator wants to run a small or mid-sized project from a flat file instead of standing up Jira or Asana — dated milestones each with one named owner and a binary…

    174 GitHub stars~2.4k tokensUpdated 2 days ago
    Product & Project ManagementAuto-check passed
  • Agent Builder

    shareAI-lab/learn-claude-code

    Design and build AI agents for any domain. An agent skill from shareAI-lab/learn-claude-code.

    78k GitHub starsUsed in 5 repos~1.2k tokens
    AI & LLM EngineeringAuto-check passed
  • Add Uint Support

    pytorch/pytorch

    Add unsigned integer (uint) type support to PyTorch operators by updating ATDISPATCH macros.

    104k GitHub starsUsed in 2 repos~2.3k tokens
    AI & LLM EngineeringAuto-check passed
  • LLM Benchmarking with lm-evaluation-harness

    Orchestra-Research/AI-Research-SKILLs

    Runs lm-evaluation-harness to benchmark language models on academic suites such as MMLU, GSM8K and HumanEval, compare models and track training checkpoints.

    13k GitHub starsUsed in 8 repos~3k tokens
    AI & LLM EngineeringAuto-check passed
  • Segment Anything Model Guide

    Orchestra-Research/AI-Research-SKILLs

    Guide to using Meta's Segment Anything Model for zero-shot image segmentation with point, box or mask prompts, or automatic mask generation.

    13k GitHub starsUsed in 8 repos~3.3k tokens
    AI & LLM EngineeringAuto-check passed
  • 1password

    trpc-group/trpc-agent-go

    Set up and use 1Password CLI (op). An agent skill from trpc-group/trpc-agent-go.

    1.9k GitHub starsUsed in 14 repos~656 tokens
    AI & LLM EngineeringAuto-check passed

More from tetherto/qvac

All 50 skills in this repo
  • Creates a Solutions page in the QVAC documentation website from a real use case, generalizing the case into reusable guidance and registering the page in the site navigation.

    683 GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Qv Docs Update

    tetherto/qvac

    Updates the docs website after a change to the SDK or CLI. An agent skill from tetherto/qvac.

    683 GitHub stars~11k tokensUpdated today
    Auto-check passed
  • Qv Agent Stack Sync

    tetherto/qvac

    Plan and prepare the QVAC agent-stack release cascade across @qvac/inference, @qvac/sdk, @qvac/cli, @qvac/ai-sdk-provider, @qvac/opencode-plugin, and @qvac/openclaw-plugin.

    683 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Run the deterministic code-quality audit, turn related findings into contextual remediation groups, prepare approval-gated Asana proposals, reconcile recurring runs, or configure twice-monthly…

    683 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Review C++ changes for string parameter and call-site efficiency conventions (std::stringview, std::string&&, const std::string&, const char, and TransparentStringMap lookup).

    683 GitHub stars~702 tokensUpdated today
    Auto-check passed
  • Qv Addon Changelog

    tetherto/qvac

    Generate changelog entries for a target add-on package. An agent skill from tetherto/qvac.

    683 GitHub stars~1.7k tokensUpdated today
    Auto-check passed

Works with

Questions about Qv Asana Sync

What does Qv Asana Sync do?

Look up and update Asana tasks using local developer-workflow config and direct Asana REST calls. Qv Asana Sync is an agent skill from tetherto/qvac. Look up and update Asana tasks using local developer-workflow config and direct Asana REST calls.

When should I use Qv Asana Sync?

Qv Asana Sync fits situations like: the user asks to sync an Asana task; move task status; add a PR link to Asana; validate Asana configuration.

How do I install Qv Asana Sync in Claude Code?

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

How do I install Qv Asana Sync in Codex?

Run `npx skills add tetherto/qvac --skill qv-asana-sync -a codex`. Or copy the skill folder (.agents/skills/qv-asana-sync in tetherto/qvac) into .agents/skills/qv-asana-sync in your project. Codex loads it when a task matches its description.

Can I use Qv Asana Sync 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 tetherto/qvac --skill qv-asana-sync -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/qv-asana-sync, .gemini/skills/qv-asana-sync, .github/skills/qv-asana-sync and .opencode/skills/qv-asana-sync in your project.

What does Qv Asana Sync need to run?

Going by SKILL.md and its folder, Qv Asana Sync needs the command-line tools its instructions call (node and curl) and credentials named ASANA_ACCESS_TOKEN. Our summary lists: A credential in ASANA_ACCESS_TOKEN.

Does Qv Asana Sync access the network?

SKILL.md names 2 domains. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. As links in the text: developers.asana.com. This is read from the text; nothing was executed.

Is Qv Asana Sync 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 Qv Asana Sync use?

Qv Asana Sync is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Qv Asana Sync use?

About 1.2k tokens (SKILL.md is roughly 4.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Qv Asana Sync?

Skills that share tags, products or a category with Qv Asana Sync: Project Ops (ericrisco/rsc-harness, 174 stars), Agent Builder (shareAI-lab/learn-claude-code, 78k stars), Add Uint Support (pytorch/pytorch, 104k stars) and LLM Benchmarking with lm-evaluation-harness (Orchestra-Research/AI-Research-SKILLs, 13k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Qv Asana Sync?

tetherto (a GitHub organization) maintains it in tetherto/qvac, which has 683 GitHub stars. The repository holds 50 skills in this directory. The repository was last updated on October 9, 2026.

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