Official agent skill

Trailblaze Author

by block in block/trailblaze

A skill your agent uses when turning a captured human demonstration (a Trailblaze App demonstration bundle: demo.yaml + actions.ndjson + per-action screenshots and view hierarchies) into a durable…

OfficialApache-2.0Auto-check passed

Install Trailblaze Author

skills CLI
$ npx skills add block/trailblaze --skill trailblaze-author -a claude-code

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

GitHub CLI
$ gh skill install block/trailblaze trailblaze-author --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/block/trailblaze.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/trailblaze-author .claude/skills/trailblaze-author && 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
trailblaze-author
GitHub stars
321
Token cost
~2.8k tokens
SKILL.md length
1,541 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses when turning a captured human demonstration (a Trailblaze App demonstration bundle: demo.yaml + actions.ndjson + per-action screenshots and view hierarchies) into a durable…

  • Works in 4 steps: Understand → Author → Refine (two mandatory audit passes) → …
  • Independently runnable Trailblaze trail
  • SKILL.md covers The demonstration bundle, Working method, Phase 1 - Understand and Phase 2 - Author, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Trailblaze Author is an agent skill from block/trailblaze, published by the product's own GitHub organization. Use when turning a captured human demonstration (a Trailblaze App demonstration bundle: demo.yaml + actions.ndjson + per-action screenshots and view hierarchies) into a durable, independently runnable Trailblaze trail. Trigger when a prompt hands you a demonstration bundle directory and asks you to author, generate, or produce the trail for it - or to add another platform's recordings to an existing trail from a new demonstration.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: 🥾 AI-Driven UI Testing Framework with Recorded Trails. The licence is Apache-2.0.

When your agent uses it

  • Independently runnable Trailblaze trail
  • A prompt hands you a demonstration bundle directory and asks you to author
  • Produce the trail for it -
  • Add another platforms recordings to an existing trail from a new demonstration

Example prompts

  • “/trailblaze-author”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Understand
  2. Author
  3. Refine (two mandatory audit passes)
  4. Prove it

What it can do on your machine

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

    No scripts in the folder and no shell commands in SKILL.md.

    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

Trailblaze Author loads about 2.8k tokens when it runs. Until then it costs about 113 tokens; SKILL.md has 1,541 words of instructions outside code blocks.

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

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 block/trailblaze at commit ec49f40, republished under its Apache-2.0 licence (© block). 1,541 words, ~2,755 tokens.

Download SKILL.mdSave it as .claude/skills/trailblaze-author/SKILL.md (or your agent's skills folder).
name
trailblaze-author
description
Use when turning a captured human demonstration (a Trailblaze App demonstration bundle: demo.yaml + actions.ndjson + per-action screenshots and view hierarchies) into a durable, independently runnable Trailblaze trail. Trigger when a prompt hands you a demonstration bundle directory and asks you to author, generate, or produce the trail for it - or to add another platform's recordings to an existing trail from a new demonstration.

Author a trail from a demonstration bundle

A human demonstrated a flow on a live device. Every interaction was captured with evidence. Your job is to produce a trail that runs on its own: deterministic where possible, resilient where the screen is dynamic, and proven by you actually running it before you call it ready. You are not transcribing clicks; you are authoring a test that validates what the human said they were validating.

Work in explicit phases, in order. Do not skip the audit passes and do not claim ready without a passing verification run.

The demonstration bundle

The launching prompt gives you the bundle directory. A bundle holds ONE platform's demonstration - bundles are keyed by platform (the directory is named like demos/iphone/, demos/android/, demos/android-tablet/), and sibling platform bundles from earlier sessions may sit beside it. Inside:

FileWhat it is
demo.yamlManifest: target, platform, device classifiers, the trailhead the human picked (name + args) or manual: true, and the human's stated objective + notes.
actions.ndjsonOne JSON line per interaction, in order. phase: "setup" lines are how the human positioned the app before pressing Start; phase: "step" lines are the demonstrated flow itself. Each line carries the gesture (kind, coordinates or text), the hit-tested element, recorded tool YAML, ranked selector candidates, and evidence file names.
start-state.png / start-state-hierarchy.txtThe screen at the moment the human pressed Start. This is what the trailhead must reach.
<seq>-before.png, <seq>-after.png, <seq>-*-hierarchy.txtPer-action evidence. The hierarchy text has one line per element: bounds, type, label, id, interactive flag.
events/*.ndjson, network.ndjsonCaptured app event streams and network traffic, when available. Each line has timeMs; correlate to actions by time window (between one action's timeMs and the next).

Working method

Prefer the Trailblaze CLI and its MCP tools over shell spelunking. To learn what a target supports or how a selector resolves, drive the CLI (and the MCP device tools) and read this skill's references/, rather than grepping the framework source. When you do need to explore the codebase or read many files at once, hand that read-only legwork to a cheaper-model subagent and keep the authoring and verification on yourself.

After every change you make to a trail file, emit a trail_output so the Trailblaze App can show the current file. Tool calls that need a human decision pause in Trailblaze App until the human approves them, so a slow tool call is waiting on a person, not hung; keep working the plan and it will resume once approved.

Phase 1 - Understand

  1. Read demo.yaml and all of actions.ndjson first. Reconstruct the story in one or two sentences: where the flow starts, what the human did, what the objective says it validates.
  2. Read the start-state-hierarchy.txt and the before/after hierarchy of each step action. You need these to ground selectors and to pick assertions later; do not author from screenshots alone.
  3. If event streams exist, slice them per step by timeMs and note which steps fired meaningful app events. These tell you what the app itself considered to have happened; use them to decide what is worth asserting on screen.
  4. List the proof points: the on-screen facts that, if visible, prove the objective was met. A trail that taps every button but asserts nothing has validated nothing.

Phase 2 - Author

Write a unified-format trail: config: + trailhead: + trail:. Read one existing unified trail from the library for the exact schema before writing yours. The trailhead is a first-class block, never an ordinary first step.

Trailhead:

  • If demo.yaml names a picked trailhead, use it verbatim (name + args) as the trailhead: recording for the demonstrated platform.
  • If positioning was manual, inspect the setup actions. Prefer a durable route: if the target's trailmap has a deeplink-style or bootstrap trailhead tool that reaches the observed start state, use it (check the toolbox before naming any tool - never invent one). Only if nothing durable exists, write the trailhead as a descriptive step ("Start at <screen>") so agent-mode execution can reach it, and say so in your final summary - it is a weakness the human should know about.

One trail step per demonstrated action, plus assertions:

  • Step text is a natural-language direction a human could follow ("Tap the Pay button", not "tapOnElementBySelector ..."). This is the cross-platform source of truth and the agent-mode fallback.
  • The recording: for the demonstrated platform's classifier comes from the action's recorded tool YAML and ranked selector candidates. Apply the selector rules below; do not blindly copy the default.
  • Coalesce noise: a mis-tap the human immediately corrected, or a scroll that was purely exploratory, does not deserve a step. The trail is the intended flow, not the raw motion log.
  • Insert verify: true steps at the checkpoints where the objective is actually proven (usually after the last action, often mid-flow too). Each verify step asserts a proof point from Phase 1, grounded in an element you saw in the captured hierarchy - typically a recorded visibility assertion on that element plus step text that states the expectation in plain language.

Selector rules (durability order):

  1. Semantic and unique: visible text, content description, or resource/accessibility id that appears exactly once in the captured hierarchy. Prefer these; they survive layout changes.
  2. Structural (child/containment patterns) only when nothing semantic is unique.
  3. Index-based only as a last resort, with a comment-worthy reason.
  4. Raw coordinates: never, unless the ranked candidates offer nothing else at all - and then flag it in your summary as fragile.
  • Selector strings match the WHOLE property value: Save matches only a node whose text is exactly Save. To match a substring write the regex explicitly: .*Save.*.
  • Dynamic content (prices, dates, counters, usernames) must not be pinned exactly. Use a pattern that captures the stable part: .*\$\d+\.\d\d.* style regex, or assert the stable neighboring label instead.
  • Keep any \Q...\E escaping the recorder emitted; it exists because the value contains regex metacharacters.
Show full SKILL.md (569 more words)Show less

Phase 3 - Refine (two mandatory audit passes)

Selector audit. For every step, check the selector against the captured hierarchies: is it unique on the screen where it fires (the before-hierarchy of its own action)? Does it accidentally also match something on an earlier screen (which would break a retry or a slow transition)? Tighten anything ambiguous.

Validation audit. Re-read the human's objective, then read your draft top to bottom and answer: if every step passes, is the objective actually proven, or did the trail merely navigate? Add or strengthen verify steps until the answer is yes. Also check the opposite: remove assertions on incidental content that would make the trail fail for reasons unrelated to the objective. Test the what, not the how.

Phase 4 - Prove it

Run the trail yourself with the trail MCP tool, action=RUN, against the same device. This executes the recorded steps deterministically, runs the trailhead first, and returns per-step pass/fail.

  • On failure: diagnose from the returned step results and the session's artifacts. Distinguish a bad selector (fix the selector) from a timing issue (the screen was not settled; prefer asserting a landmark of the new screen in the prior step over sleeps) from a wrong expectation (fix the assertion).
  • Fix and re-run. Budget: three verification runs. Never weaken an assertion just to get green; if an assertion is genuinely wrong, fix it, and if the flow itself cannot pass (environment or data problems), stop and report honestly.
  • Do not run the trailblaze CLI through your shell tool; use the MCP trail tool.

Adding a platform to an existing trail

When the launching prompt says the trail already exists and names the platform being added, you are extending it, not re-authoring it:

  • Read the existing trail first. Its step structure and step text are the contract; do not restructure or reword them.
  • For each step, add a recording: for the new platform's classifier, built from this bundle's demonstrated actions under the same selector rules. Leave every other platform's recordings untouched.
  • Add the new platform's trailhead recording the same way.
  • If this platform's flow genuinely differs (an extra screen, a field that does not exist), keep the shared step text platform-neutral; add a platform-specific step only when unavoidable and call it out in your final summary.
  • Both audit passes and the verification run still apply - and the run must pass on THIS platform's device. A pass recorded earlier on another platform does not count.

Deliver

Write the trail into the destination folder the launching prompt gave you, then declare the result with exactly one standalone line:

TRAILRUNNER_UI {"version":1,"action":"trail_output","trailId":"0/<area>/<slug>","message":"<one line: what the trail validates and its verification status>","params":{"status":"ready","files":"<files you wrote>"}}
  • status:"ready" is allowed ONLY after a verification run passed in this conversation. Otherwise emit status:"draft" and say plainly in message what still fails and why.
  • Your final text summary must include: the platform this demonstration covered, the trailhead choice (and why, if the demonstration was positioned manually), any fragile selectors you could not avoid, which steps carry assertions and what they prove, and the verification outcome (runs attempted, final result).

Anti-patterns

  • Claiming ready without a passing run in this conversation.
  • Coordinates when a semantic selector existed.
  • Exact-matching dynamic text (prices, timestamps, counts).
  • One assertion at the very end of a long flow when the objective has intermediate proof points.
  • Inventing tool names that are not in the target's toolbox.
  • Transcribing every raw gesture, including mistakes, instead of authoring the intended flow.
  • Weakening or deleting an assertion to make verification pass.

© block, 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

Just SKILL.md in skills/trailblaze-author of block/trailblaze.

Open the folder on GitHubat commit ec49f40

Compare with similar skills

Trailblaze Author 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.

Trailblaze Author compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Trailblaze Author this skillblock/trailblaze321—~2.8kAutomated safety check: PassApache-2.0
Capturealirezarezvani/claude-skills28k1 repos~2.8kAutomated safety check: PassMIT
Hermes Agent Skill AuthoringNousResearch/hermes-agent252k—~3.6kAutomated safety check: PassMIT
Configuring Oauth2 Authorization Flowmukul975/Anthropic-Cybersecurity-Skills34k—~1.7kAutomated safety check: PassApache-2.0
Authoring Skillsvercel/next.js143k—~1kAutomated safety check: PassMIT
Abp Authorizationabpframework/abp14k—~1.3kAutomated safety check: PassLGPL-3.0

Similar skills

  • Capture

    alirezarezvani/claude-skills

    Captures and organizes chaotic brain dumps into a structured, actionable system with zero information loss.

    28k GitHub starsUsed in 1 repo~2.8k tokens
    Agent WorkflowsAuto-check passed
  • Hermes Agent Skill Authoring

    NousResearch/hermes-agent

    Author in-repo SKILL.md files: frontmatter and structure. An agent skill from NousResearch/hermes-agent.

    252k GitHub stars~3.6k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Configuring Oauth2 Authorization Flow

    mukul975/Anthropic-Cybersecurity-Skills

    Configures secure OAuth 2.0 authorization flows, including Authorization Code with PKCE, Client Credentials, and Device Authorization Grant, covering flow selection, PKCE implementation, token…

    34k GitHub stars~1.7k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • Authoring Skills

    vercel/next.js

    Official

    How to create and maintain agent skills in .agents/skills/. An agent skill from vercel/next.js.

    143k GitHub stars~1k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Abp Authorization

    abpframework/abp

    ABP permission system - PermissionDefinitionProvider, [Authorize] attribute, CheckPolicyAsync, IsGrantedAsync, ICurrentUser, IPermissionManager, multi-tenancy side.

    14k GitHub stars~1.3k tokensUpdated today
    Backend & APIsAuto-check passed
  • Implementing GCP Binary Authorization

    mukul975/Anthropic-Cybersecurity-Skills

    Implements GCP Binary Authorization end to end, including creating KMS-backed attestors, Container Analysis notes, deploy-time policies, and signing image attestations, so that only trusted…

    34k GitHub stars~2k tokensUpdated 1 mo ago
    DevOps & CloudAuto-check passed

More from block/trailblaze

  • Devlog

    block/trailblaze

    Official

    Write or update a devlog entry in the devlog directory. An agent skill from block/trailblaze.

    321 GitHub stars~586 tokensUpdated today
    Auto-check passed
  • Trailblaze Validate Oob

    block/trailblaze

    Official

    A skill your agent uses when validating or evaluating Trailblaze's out-of-box (OOB) user experience — does what the trailblaze skill claims actually match the real installed CLI?

    321 GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Trailblaze

    block/trailblaze

    Official

    A skill your agent uses when working with Trailblaze — natural-language device control for coding agents across iOS, Android, and web, with replayable .trail.yaml files as the artifact.

    321 GitHub stars~3.4k tokensUpdated today
    Auto-check passed

Questions about Trailblaze Author

What does Trailblaze Author do?

A skill your agent uses when turning a captured human demonstration (a Trailblaze App demonstration bundle: demo.yaml + actions.ndjson + per-action screenshots and view hierarchies) into a durable…. Trailblaze Author is an agent skill from block/trailblaze, published by the product's own GitHub organization.ndjson + per-action screenshots and view hierarchies) into a durable, independently runnable Trailblaze trail.

When should I use Trailblaze Author?

Trailblaze Author fits situations like: independently runnable Trailblaze trail; A prompt hands you a demonstration bundle directory and asks you to author; produce the trail for it -; add another platforms recordings to an existing trail from a new demonstration.

How do I install Trailblaze Author in Claude Code?

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

How do I install Trailblaze Author in Codex?

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

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

What does Trailblaze Author need to run?

SKILL.md names no scripts, command-line tools or credentials: Trailblaze Author is instructions for the agent only.

Does Trailblaze Author 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 Trailblaze Author 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 Trailblaze Author use?

Trailblaze Author 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 Trailblaze Author use?

About 2.8k tokens (SKILL.md is roughly 11k 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 Trailblaze Author?

Skills that share tags, products or a category with Trailblaze Author: Capture (alirezarezvani/claude-skills, 28k stars), Hermes Agent Skill Authoring (NousResearch/hermes-agent, 252k stars), Configuring Oauth2 Authorization Flow (mukul975/Anthropic-Cybersecurity-Skills, 34k stars) and Authoring Skills (vercel/next.js, 143k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Trailblaze Author?

block (a GitHub organization, an official publisher) maintains it in block/trailblaze, which has 321 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 7, 2026.

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