Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.
npx skills add jwmossmoz/agent-skills --skill "taskcluster"
Install specific skill from multi-skill repository
# Description
>
# SKILL.md
name: taskcluster
description: >
Interact with Mozilla Taskcluster CI using the taskcluster CLI.
Query task status, view logs, download artifacts, retrigger tasks, and manage task groups.
Use when working with CI tasks from firefox-ci-tc.services.mozilla.com or debugging worker pool issues.
Triggers on "taskcluster", "task status", "task log", "artifacts", "retrigger", "task group".
Taskcluster
Interact with Mozilla Taskcluster CI using the official taskcluster CLI.
Usage
Run from the skill directory:
# Query task status
uv run scripts/tc.py status <TASK_ID>
# Get task logs
uv run scripts/tc.py log <TASK_ID>
# List task artifacts
uv run scripts/tc.py artifacts <TASK_ID>
# Get full task definition
uv run scripts/tc.py definition <TASK_ID>
# Retrigger a task (new task ID, updated timestamps)
uv run scripts/tc.py retrigger <TASK_ID>
# Rerun a task (same task ID)
uv run scripts/tc.py rerun <TASK_ID>
# Cancel a task
uv run scripts/tc.py cancel <TASK_ID>
# List tasks in a group
uv run scripts/tc.py group-list <TASK_GROUP_ID>
# Get task group status
uv run scripts/tc.py group-status <TASK_GROUP_ID>
# Extract task ID from Taskcluster URL
uv run scripts/tc.py status https://firefox-ci-tc.services.mozilla.com/tasks/fuCPrKG2T62-4YH1tWYa7Q
# --- In-Tree Actions (require authentication) ---
# List available actions for a task
uv run scripts/tc.py action-list <TASK_ID>
# Confirm failures - re-run failing tests to determine if intermittent
uv run scripts/tc.py confirm-failures <TASK_ID>
# Backfill - run test on previous pushes to find regression range
uv run scripts/tc.py backfill <TASK_ID>
# Retrigger multiple times (default 5)
uv run scripts/tc.py retrigger-multiple <TASK_ID> --times 10
# Trigger any action by name
uv run scripts/tc.py action <TASK_ID> <ACTION_NAME> --input '{"key": "value"}'
Prerequisites
1. Taskcluster CLI
The skill uses the taskcluster CLI which should be installed via Homebrew:
brew install taskcluster
Check installation:
taskcluster version
2. Authentication (Optional)
Most read-only operations (status, logs, artifacts) work without authentication. For write operations (retrigger, cancel), you need Taskcluster credentials.
Option 1: Environment Variables
export TASKCLUSTER_ROOT_URL=https://firefox-ci-tc.services.mozilla.com
export TASKCLUSTER_CLIENT_ID=your-client-id
export TASKCLUSTER_ACCESS_TOKEN=your-access-token
Option 2: Configuration File
Create ~/.config/taskcluster/credentials.json or use the CLI:
taskcluster signin
Option 3: 1Password CLI
Store credentials in 1Password and configure in config.toml:
cd scripts
cp config.toml.example config.toml
Edit the config.toml to specify your 1Password item and vault.
Common Workflows
Debugging Task Failures
- Check task status:
tc.py status <TASK_ID> - View logs:
tc.py log <TASK_ID> - Inspect full definition:
tc.py definition <TASK_ID> - Check all tasks in group:
tc.py group-list <GROUP_ID>
Working with Treeherder Tasks
When you have a Treeherder URL like:
https://treeherder.mozilla.org/jobs?repo=try&revision=ed901414ea5ec1e188547898b31d133731e77588
- Use the treeherder skill to get task IDs
- Use this skill to query individual tasks
Retriggering Failed Tasks
# Retrigger creates a new task with updated timestamps
uv run scripts/tc.py retrigger <TASK_ID>
# Rerun attempts to rerun the same task
uv run scripts/tc.py rerun <TASK_ID>
In-Tree Actions (Confirm Failures, Backfill)
In-tree actions are defined in the Firefox taskgraph and triggered via Taskcluster hooks.
These are the API equivalent of actions available in Treeherder's "Custom Action" menu.
Required scopes: hooks:trigger-hook:project-gecko/in-tree-action-*
# List available actions for a failed task
uv run scripts/tc.py action-list <TASK_ID>
# Confirm failures - re-runs failing tests to determine if intermittent or regression
# This is what Treeherder does when you: Select task > "..." > Custom Action > confirm-failures
uv run scripts/tc.py confirm-failures <TASK_ID>
# Backfill - runs the test on previous pushes to find when a regression started
uv run scripts/tc.py backfill <TASK_ID>
# Retrigger multiple times - useful for stress-testing intermittent failures
uv run scripts/tc.py retrigger-multiple <TASK_ID> --times 10
# Trigger any action by name with custom input
uv run scripts/tc.py action <TASK_ID> retrigger-custom --input '{"path": "test.js"}'
Common use case: Investigating image rollout failures
# 1. Find failed tasks using treeherder skill
uvx --from lumberjackth lj failures 2012615 -t autoland -p windows11-64-24h2 -n 5
# 2. Confirm if failures are intermittent or real regressions
uv run scripts/tc.py confirm-failures <TASK_ID>
# 3. If regression, backfill to find the culprit push
uv run scripts/tc.py backfill <TASK_ID>
URL Support
The skill automatically extracts task IDs from Taskcluster URLs:
# Both of these work identically:
uv run scripts/tc.py status fuCPrKG2T62-4YH1tWYa7Q
uv run scripts/tc.py status https://firefox-ci-tc.services.mozilla.com/tasks/fuCPrKG2T62-4YH1tWYa7Q
Supported URL formats:
- https://firefox-ci-tc.services.mozilla.com/tasks/<TASK_ID>
- https://stage.taskcluster.nonprod.cloudops.mozgcp.net/tasks/<TASK_ID>
- https://community-tc.services.mozilla.com/tasks/<TASK_ID>
Output Formats
All commands return JSON output that can be piped to jq for processing:
# Get only failed tasks from a group
uv run scripts/tc.py group-list <GROUP_ID> | jq '.tasks[] | select(.status.state == "failed")'
# List artifact names
uv run scripts/tc.py artifacts <TASK_ID> | jq '.artifacts[].name'
Related Skills
- treeherder: Query CI job results by revision to get task IDs
- lando: Check landing job status
- os-integrations: Run Firefox mach try commands
References
references/actions.md- Detailed guide to in-tree actions (confirm-failures, backfill, etc.)references/examples.md- Common usage patterns and workflowsreferences/integration.md- Integration with other Mozilla tools
Documentation
- Taskcluster Docs: https://docs.taskcluster.net/
- Taskcluster CLI: https://github.com/taskcluster/taskcluster/tree/main/clients/client-shell
- Firefox CI: https://firefox-ci-tc.services.mozilla.com/
- Community Taskcluster: https://community-tc.services.mozilla.com/
- Actions Spec: https://docs.taskcluster.net/docs/manual/using/actions/spec
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.