用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/tools-only/X-Skills --skill atac命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Index of Build Systems Skills
Coordination patterns for distributed dataflow systems including barriers, epochs, and distributed snapshots
Windowing, sessionization, time-series aggregation, and late data handling for streaming systems
基于 SOC 职业分类
正在显示 SKILL.md
| name | atac |
| description | DSL and CLI for building and running Agentic Trajectories (ATaC). |
ATaC enables building automated "trajectories" (workflows) that combine MCP tools and Bash commands with standard programming logic (loops, conditionals).
init <name> --description <str>
Creates a new trajectory workspace at .atac/<name>/index.yaml.
Example: atac init my_task --description "Iterate via Amap"
add-input <name> --name <n> --type [string|integer|boolean|float|list|object] [--default <json>]
Defines parameters users pass at runtime.
Example (List): atac add-input my_task --name cities --type list --default '["Beijing", "Shanghai"]'
add-variable <name> --name <n> --type <t> [--value <json>]
Defines initial runtime variables (state).
schema
Prints the full JSON schema of the ATaC trajectory.
Use this to understand the valid YAML structure for direct editing.
add-for <name> --in <expr> --item <name> [--at <path>]
Iterates over a list expression.
Example: atac add-for my_task --in '${inputs.cities}' --item city
add-if <name> --condition <expr> [--at <path>]
Branches based on a Jinja2 expression.
Example: atac add-if my_task --condition "${city == 'Beijing'}" --at 0
add-set <name> --var <key=val> [--at <path>]
Assigns or updates a variable.
Example: atac add-set my_task --var "status=processed" --at 0.2.then
add-action <name> --id <id> --action <url> [--args <json>] [--output-to <var>] [--at <path>]
Invokes an MCP tool (mcp://server/method) or Bash command (bash://run).
Example (MCP): atac add-action my_task --id geo --action "mcp://amap-maps/maps_geo" --args '{"address": "${city}"}' --at 0Use atac list to see all available workspaces in the current directory and their descriptions.
Use atac show <name> to view current step indices. The --at flag targets where to insert or delete steps:
None: Root level (append).
0: Inside the body of step index 0 (if it's a loop).
0.2.then: Step 0 (Loop) -> Step 2 (If) -> inside then branch.
rm <name> --at <path>
Deletes a specific step by its index path.
Example: atac rm my_task --at 0.2.then.1
Build a workflow that geocodes a list of cities and logs results:
# 1. Setup
atac init demo --description "Geocode loop"
atac add-input demo --name cities --type list --default '["北京市", "成都市"]'
# 2. Add For-Loop (Index 0)
atac add-for demo --in '${inputs.cities}' --item city
# 3. Add Geocode Action inside loop (at path 0)
atac add-action demo --id geo --action "mcp://amap-maps/maps_geo" \
--args '{"address": "${city}"}' --at 0
# 4. Extract location to a variable (at path 0)
# Reference: content[0].text is the standard MCP output structure
atac add-set demo --var 'pos=${geo.output.content[0].text.return[0].location}' --at 0
# 5. Log via Bash (at path 0)
atac add-action demo --id log --action "bash://run" \
--args '{"command": "echo City: ${city} is at ${pos}"}' --at 0
# 6. Execute (ensure MCP_CONFIG is set)
atac run demo
You can use bash://run to invoke another ATaC workspace natively, enabling modular and nested workflows. Ensure the environment has the correct configurations (like ATAC_MCP_SERVER_CONFIGS) since the nested command runs in a sub-shell.
atac add-action wrapper_task --id nested_call --action "bash://run" \
--args '{"command": "atac run inner_task --input param=val"}'
${inputs.key}${key} (shorthand for ${variables.key})${step_id.output}
${id.output.content[0].text.key}.${id.output.stdout}.atac run, repeated IDs (like those in loops) are returned as lists containing every result.While CLI commands ensure structural safety, agents can edit the .atac/<name>/index.yaml trajectory directly for speed or bulk changes.
atac schema to see the expected structure (e.g., specific field names for loops/ifs).atac show <name> to verify if the structure is still correctly parsed.