Token导航 LogoToken导航

Agent Skill · 开发

ats(苯丙胺类兴奋剂)

ats 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

ats 是开发类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为接触敏感数据;许可证信息还不明确,第三方扫描有提醒项,按安装量在开发类的 21,746 个 Skill 里排第 19,668。

总安装 261周安装 11GitHub Stars 公开资料未说明下载 92核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:ats(苯丙胺类兴奋剂)
来源仓库:https://github.com/difflabai/ats-skill
仓库路径:skills/ats
安装命令:
npx skills add https://github.com/difflabai/ats-skill --skill ats
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/difflabai/ats-skill --skill ats

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

ats 用于连接 Agent Task Service 后端平台,实现 AI 与人类之间的任务协同调度。适用于复杂工作流编排、跨角色任务交接及实时事件订阅等协作密集型场景。基于 PostgreSQL 数据库构建,提供任务创建、状态更新与线程消息发送能力。

使用前需确保 ATS CLI 已安装并配置好默认配置文件路径与版本兼容性。ats 属于开发类 Skill,可作为该场景下的辅助能力补充。

来源仓库内路径:skills/ats

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/difflabai/ats-skill --skill ats;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

ats 怎么安装?

在终端执行 npx skills add https://github.com/difflabai/ats-skill --skill ats。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

ats 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

ats 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

ats 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

ats 用的人多吗?

公开数据是累计安装 261 次,近一周安装 11 次,下载 92 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

ats 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
ats

苯丙胺类兴奋剂 · 本页

261—接触敏感数据未明确有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

ATS Backend Skill

Connect to and interact with the Agent Task Service (ATS) backend for task orchestration between AI agents and humans.

Overview

The Agent Task Service is a PostgreSQL-backed task orchestration platform that enables intelligent handoffs between agents and humans. Use this skill when you need to:

  • Create, list, claim, or complete tasks
  • Subscribe to real-time task events
  • Send messages on task threads
  • Coordinate work between agents and humans

Prerequisites

FIRST: Verify ATS CLI Installation

ats --version  # Requires v1.x+

If not installed:

npm install -g @difflabai/ats-cli

Default Server: https://ats.difflab.ai

Environment Variables:

  • ATS_URL - Override server URL
  • ATS_ORG - Default organization
  • ATS_PROJECT - Default project
  • ATS_ACTOR_TYPE - Default actor type (human, agent, system)
  • ATS_ACTOR_ID - Default actor ID
  • ATS_ACTOR_NAME - Default actor display name

Configuration

ATS CLI stores defaults in ~/.ats/config:

{
  "organization": "default",
  "project": "main",
  "url": "https://ats.difflab.ai",
  "actor": {
    "type": "agent",
    "id": "claude-code",
    "name": "Claude Code"
  }
}

Priority: CLI flags > environment variables > config file > defaults


Statistics

# Aggregate task statistics (totals, by status, by channel)
ats stats

# JSON output
ats stats -f json

Project Commands

Initialize a Project in Current Directory

Bind the current directory to an org/project so all ats commands automatically scope to it:

# Bind to existing project
ats project init myorg/myproject

# With explicit flags
ats project init --org myorg --project myproject

# Overwrite existing config
ats project init myorg/myproject --force

# Skip server existence check (for projects that will be created later, or offline use)
ats project init myorg/myproject --skip-existence-check

Creates a .ats/project.json file in the current directory. By default, project init verifies that the org/project exists on the server before creating the local binding. Use --skip-existence-check when initializing a binding for a project that hasn't been created yet or when working offline.

List Projects

# List all projects across all organizations (with task counts)
ats project list

# JSON output
ats project list -f json

Shows project path (org/project), display name, pending/active/total task counts. Current project is marked with *.

Create a Project

# Create project (auto-creates org if it doesn't exist)
ats project create myorg/myproject

# With display name and description
ats project create myorg/myproject --name "My Project" --description "Project description"

Switch Default Project

Set the global default project (used when no local .ats/project.json exists):

ats project switch myorg/myproject

Show Current Project

# Show which project is active and where the config comes from
ats project current

Show Full Project Configuration

Displays global config, local config, and effective settings:

ats project show

# JSON output
ats project show -f json

Rename a Project or Organization

# Rename project slug
ats project rename myorg/oldslug myorg/newslug

# Rename just the project slug
ats project rename myorg/myproject --slug new-slug

# Rename display name
ats project rename myorg/myproject --name "New Display Name"

# Rename org and project together
ats project rename oldorg/oldproject neworg/newproject

Automatically updates local and global configs if the renamed project was the current project.


Task Operations

List Tasks

# List pending tasks (default - what needs attention)
ats list

# List all tasks
ats list --all

# Filter by status, channel, type
ats list --status in_progress
ats list --channel reviews
ats list --type approval

# Combine filters
ats list --status pending --channel support --limit 10

# JSON output for scripting
ats list -f json | jq '.[] | .title'

Create a Task

# Simple task
ats create "Review the pull request"

# With options
ats create "Deploy to production" \
  --type deployment \
  --channel ops \
  --priority 8 \
  --description "Deploy v2.1.0 to production cluster"

# With JSON payload
ats create "Process data import" \
  --payload '{"source": "s3://bucket/data.csv", "rows": 50000}'

Priority levels: 1-10, higher is more urgent (default: 5)

Get Task Details

# Human-readable output
ats get 123

# JSON for scripting
ats get 123 -f json | jq '.status'

Update a Task

ats update 123 --priority 9
ats update 123 --title "Updated title" --description "New description"

Claim a Task (Start Working)

Claiming moves the task to in_progress and starts a lease timer:

ats claim 123

# Custom lease duration (ms)
ats claim 123 --lease 120000

Important: The lease expires after 60 seconds by default. If the worker crashes, the task returns to pending automatically.

Complete a Task

# Simple completion
ats complete 123

# With output data
ats complete 123 --outputs '{"result": "Approved", "notes": "LGTM"}'

Cancel a Task

ats cancel 123

Fail a Task

ats fail 123 --reason "Unable to connect to external service"

Reject a Task

ats reject 123 --reason "This task is outside my capabilities"

Reopen a Task

Reopen a task from a terminal state (completed, cancelled, failed, rejected) back to pending:

ats reopen 123

# With reason
ats reopen 123 --reason "Need to revisit this task"

Message Operations

Add a Message to a Task

# Simple text message
ats message add 123 "I've started working on this"

# With content type
ats message add 123 '{"status": "analyzing", "progress": 50}' --type data

List Messages for a Task

ats message list 123

# JSON output
ats message list 123 -f json

Real-Time Events

Watch for Events

# Watch all events
ats watch

# Filter by channel
ats watch --channel support

# Filter by task type
ats watch --type approval

# Filter by specific events
ats watch --events task.created,task.completed

Event Types:

  • task.created - New task created
  • task.claimed - Task claimed by worker
  • task.updated - Task fields modified
  • task.completed - Task finished successfully
  • task.cancelled - Task cancelled
  • task.failed - Task failed with error
  • task.rejected - Task rejected by worker
  • task.reopened - Task reopened from terminal state
  • task.message - New message added
  • task.lease_expired - Worker lease expired, task returned to pending

Task Status Flow

pending ──claim──→ in_progress ──complete──→ completed ──┐
   ↑                    │                                │
   │                    ├──cancel───→ cancelled ─────────┤
   │                    │                                │
   │                    ├──fail─────→ failed ────────────┼──reopen──→ pending
   │                    │                                │
   │                    └─(lease expires)─→ pending      │
   │                                                     │
   └──reject──→ rejected ────────────────────────────────┘

Terminal states: completed, cancelled, failed, rejected (all can be reopened)


Common Patterns

Pattern 1: Create Task and Wait for Human Response

# Create task for human review
TASK_ID=$(ats create "Approve deployment" --type approval --channel ops -f json | jq -r '.id')
echo "Created task: $TASK_ID"

# Poll for completion
while true; do
  STATUS=$(ats get $TASK_ID -f json | jq -r '.status')
  if [ "$STATUS" = "completed" ] || [ "$STATUS" = "rejected" ]; then
    echo "Task finished with status: $STATUS"
    break
  fi
  sleep 5
done

Pattern 2: Claim and Process Tasks

# Get first pending task of a specific type
TASK_ID=$(ats list --type code-review -f json | jq -r '.[0].id')

# Claim it
ats claim $TASK_ID

# Do the work...

# Complete with results
ats complete $TASK_ID --outputs '{"review": "LGTM, approved"}'

Pattern 3: Escalate to Human

When Claude Code encounters something requiring human decision:

ats create "Human decision required: Delete production database?" \
  --type escalation \
  --channel urgent \
  --priority 10 \
  --description "The user requested to delete the production database. This requires human approval." \
  --payload '{
    "context": "User command: DROP DATABASE production",
    "risk_level": "critical",
    "suggested_action": "confirm_with_user"
  }'

Pattern 4: Pipeline with jq

# Get high-priority pending tasks
ats list -f json | jq '.[] | select(.priority >= 8)'

# Count tasks by status
ats list --all -f json | jq 'group_by(.status) | map({status: .[0].status, count: length})'

# Get task IDs for a channel
ats list --channel support -f json | jq -r '.[].id'

Actor Identity

Configure how you appear in ATS:

# As an agent (default for Claude Code)
ats list --actor-type agent --actor-id claude-code --actor-name "Claude Code Agent"

# As a human
ats list --actor-type human --actor-id user-123 --actor-name "John Doe"

# Or set via environment
export ATS_ACTOR_TYPE=agent
export ATS_ACTOR_ID=claude-code
export ATS_ACTOR_NAME="Claude Code Agent"

Health Check

ats health

Global Options

OptionShortDescription
--url-uService URL (default: https://ats.difflab.ai)
--orgOverride default organization
--projectOverride default project
--format-fOutput format: table, json
--actor-typeActor type: human, agent, system
--actor-idActor identifier
--actor-nameActor display name
--verbose-vVerbose output (shows HTTP requests)
--help-hShow help

Quick Reference

OperationCommand
Tasks
List pendingats list
List allats list --all
Create taskats create "title"
Get taskats get ID
Update taskats update ID --priority 8
Claim taskats claim ID
Complete taskats complete ID
Cancel taskats cancel ID
Fail taskats fail ID --reason "..."
Reject taskats reject ID --reason "..."
Reopen taskats reopen ID --reason "..."
Add messageats message add ID "text"
List messagesats message list ID
Watch eventsats watch
Task statsats stats
Health checkats health
Projects
Init projectats project init org/project
List projectsats project list
Create projectats project create org/project
Switch projectats project switch org/project
Current projectats project current
Show configats project show
Rename projectats project rename org/old org/new

Server API Endpoints Not Covered by CLI

The ATS server exposes 61 endpoints across 14 resource groups. The CLI covers tasks, messages, projects, basic org operations, stats, health, and WebSocket events. The following server endpoints have no CLI equivalent and must be accessed via direct HTTP calls or the WebSocket API.

Authentication & Identity (4 endpoints)

MethodPathDescription
POST/auth/registerRegister a new identity
GET/auth/meGet current authenticated identity
PATCH/auth/meUpdate identity (display_name, email, profile)
GET/auth/identities/:actor_idPublic identity lookup

API Key Management (3 endpoints)

MethodPathDescription
POST/auth/api-keysCreate a new API key
GET/auth/api-keysList your API keys (prefix only)
DELETE/auth/api-keys/:idRevoke an API key

Guardian System (5 endpoints)

MethodPathDescription
POST/auth/me/guardian-linkAgent generates a guardianship link token
POST/auth/guardian-confirm/:tokenHuman confirms guardianship
GET/auth/me/guardiansList guardians / guarded agents
DELETE/auth/me/guardians/:idRemove a guardian relationship
POST/auth/guardians/:agent_id/api-keysIssue API key for guarded agent

Organization Members (4 endpoints)

MethodPathDescription
GET/orgs/:org/membersList members with roles
POST/orgs/:org/membersAdd a member
PATCH/orgs/:org/members/:actorType/:actorIdChange a member's role
DELETE/orgs/:org/members/:actorType/:actorIdRemove a member

Invitations (5 endpoints)

MethodPathDescription
POST/orgs/:org/invitationsCreate an invitation
GET/orgs/:org/invitationsList org invitations
GET/auth/invitationsList my pending invitations
POST/auth/invitations/:token/acceptAccept an invitation
POST/auth/invitations/:token/declineDecline an invitation

Namespace Permissions (3 endpoints)

MethodPathDescription
POST/orgs/:org/permissionsGrant access (r or rw)
GET/orgs/:org/permissionsList permissions
DELETE/orgs/:org/permissions/:idRevoke a permission

Other Missing Operations (3 endpoints)

MethodPathDescription
DELETE/orgs/:orgDelete organization (owner only)
DELETE/orgs/:org/projects/:projectDelete project (admin+)
POST/_test/resetWipe all data (non-production only)

Total: 27 server endpoints with no CLI command (out of 61 total).

平台分布

Codex

33.11%
按下载量换算30

Claude

28.13%
按下载量换算26

Cursor

19.27%
按下载量换算18

Gemini CLI

9.51%
按下载量换算9

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills