Analyze GitHub Action Logs
withastro/astro
Analyze recent GitHub Actions workflow runs to identify patterns, mistakes, and improvements.
Analyze fullsend agent run transcripts from GitHub Actions artifacts.
$ npx skills add fullsend-ai/fullsend --skill analyze-transcript -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install fullsend-ai/fullsend analyze-transcript --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/fullsend-ai/fullsend.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/analyze-transcript .claude/skills/analyze-transcript && rm -rf skills-srcUse ~/.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/
Install the "analyze-transcript" agent skill from https://github.com/fullsend-ai/fullsend/tree/main/skills/analyze-transcript into .claude/skills/analyze-transcript/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyze-transcript", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/fullsend-ai/fullsend/tree/main/skills/analyze-transcriptType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add fullsend-ai/fullsend --skill analyze-transcript -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install fullsend-ai/fullsend analyze-transcript --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fullsend-ai/fullsend.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/analyze-transcript .agents/skills/analyze-transcript && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "analyze-transcript" agent skill from https://github.com/fullsend-ai/fullsend/tree/main/skills/analyze-transcript into .agents/skills/analyze-transcript/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyze-transcript", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add fullsend-ai/fullsend --skill analyze-transcript -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install fullsend-ai/fullsend analyze-transcript --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fullsend-ai/fullsend.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/analyze-transcript .cursor/skills/analyze-transcript && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "analyze-transcript" agent skill from https://github.com/fullsend-ai/fullsend/tree/main/skills/analyze-transcript into .cursor/skills/analyze-transcript/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyze-transcript", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/fullsend-ai/fullsend.git --path skills/analyze-transcript--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add fullsend-ai/fullsend --skill analyze-transcript -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install fullsend-ai/fullsend analyze-transcript --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fullsend-ai/fullsend.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/analyze-transcript .gemini/skills/analyze-transcript && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "analyze-transcript" agent skill from https://github.com/fullsend-ai/fullsend/tree/main/skills/analyze-transcript into .gemini/skills/analyze-transcript/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyze-transcript", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install fullsend-ai/fullsend analyze-transcriptInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add fullsend-ai/fullsend --skill analyze-transcript -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/fullsend-ai/fullsend.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/analyze-transcript .github/skills/analyze-transcript && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "analyze-transcript" agent skill from https://github.com/fullsend-ai/fullsend/tree/main/skills/analyze-transcript into .github/skills/analyze-transcript/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyze-transcript", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add fullsend-ai/fullsend --skill analyze-transcript -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install fullsend-ai/fullsend analyze-transcript --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fullsend-ai/fullsend.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/analyze-transcript .opencode/skills/analyze-transcript && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "analyze-transcript" agent skill from https://github.com/fullsend-ai/fullsend/tree/main/skills/analyze-transcript into .opencode/skills/analyze-transcript/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyze-transcript", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
analyze-transcriptAnalyze fullsend agent run transcripts from GitHub Actions artifacts.
Analyze Transcript is an agent skill from fullsend-ai/fullsend. Analyze fullsend agent run transcripts from GitHub Actions artifacts. Use when the user wants to inspect what an agent did during a run, debug failures, check tool usage, or search transcript content. Handles downloading artifacts, finding JSONL files, and running the analyzer script.
Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `analyze-transcript.py` and `analyze_transcript_test.py`).
It sits in DevOps & Cloud, covering CI/CD. It works with GitHub Actions. The repository describes itself as: On the path to fully autonomous agentic engineering. The licence is Apache-2.0.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 0d999c2. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Bash(gh run view:*)Bash(mkdir -p .transcripts/*)Bash(find .transcripts/run-*)Bash(ls -lh .transcripts/*)Bash(python3 skills/analyze-transcript/analyze-transcript.py:*)From allowed-tools in the SKILL.md frontmatter.
Ships script files (Python), which the agent can run.
Shell commands in SKILL.md call:
python3ghgitFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Analyze Transcript loads about 2.7k tokens when it runs. Until then it costs about 76 tokens; SKILL.md has 1,033 words of instructions outside code blocks.
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.
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.
The full file from fullsend-ai/fullsend at commit 0d999c2, republished under its Apache-2.0 licence (© fullsend-ai). 1,033 words, ~2,667 tokens.
.claude/skills/analyze-transcript/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Download and analyze fullsend agent JSONL transcripts from GitHub Actions runs.
gh CLI authenticated with access to the target repositorysearch, errors, or
conversation --lines first. Only suggest a subagent if targeted
commands aren't enough — never spawn one silently..transcripts/run-<id>/... to the
script, not absolute paths. Absolute paths trigger permission prompts.DLDIR=..., TRANSCRIPT=..., SANDBOX_LOG=..., BASE_DIR=...,
export .... Inline the literal path in every command. This applies to
the download dir, transcript paths, sandbox log paths, and the script
path. Variables cause commands to drift from the allowed-tools patterns
and trigger unnecessary permission prompts.| head -N, | tail -N, or --lines to keep
transcript output short. Never dump a full conversation into the main
context.find only. Never use -exec, -ls, or -printf with
find. Use find ... -print (the default). If you need file sizes,
run ls -lh on the directory instead.The analyzer script lives alongside this skill:
skills/analyze-transcript/analyze-transcript.pyResolve the path from the skill's base directory. If this skill was loaded
from a base directory, the script is at <base-dir>/analyze-transcript.py.
Route the user's question to the right subcommand before reaching for full conversation output:
| User asks about | Start with |
|---|---|
| network / POST / REST / blocked / denied | network, netsearch |
| error / failed / broke / crash | errors |
| why / decided / reasoning | search "<keyword>", then conversation --lines around hits |
| what changed / commit / diff | search "git diff", search "git commit" |
| how long / duration / timeout | summary |
| token / cost | summary |
| everything / full picture | audit |
The user provides a GitHub Actions run URL. Extract owner, repo, and run ID.
URL formats:
https://github.com/OWNER/REPO/actions/runs/RUN_IDhttps://github.com/OWNER/REPO/actions/runs/RUN_ID/job/JOB_IDhttps://github.com/OWNER/REPO/actions/runs/RUN_ID/attempts/Ngh run view <run-id> --repo OWNER/REPO --json status,conclusion,createdAt,updatedAtIf still running, tell the user and offer to watch it.
mkdir -p .transcripts/run-<run-id>
gh run download <run-id> --repo OWNER/REPO --dir .transcripts/run-<run-id>The .transcripts/ directory is gitignored. Using the working directory avoids
permission prompts for /tmp writes.
Downloaded artifacts have this structure:
.transcripts/run-<run-id>/fullsend-<agent>/
agent-<type>-<id>/
logs/
openshell-sandbox.log # OCSF network/process/sandbox events
openshell-gateway.log # Gateway-side events
iteration-1/
transcripts/
<agent>-<session-id>.jsonl # Main agent transcript (Claude Code)
<agent>-agent-*.jsonl # Subagent transcripts (Claude Code)
<agent>-<timestamp>_<id>.jsonl # pi session file (runtime: pi); same subcommands applyFind transcripts and logs:
find .transcripts/run-<run-id> -name "*.jsonl" -type f -print
find .transcripts/run-<run-id> -name "openshell-sandbox.log" -type f -printEach JSONL file is one agent session (main agent or subagent). The sandbox
log contains all OCSF network events for the run. If you need file sizes,
use ls -lh on the directory.
If find returns no .jsonl transcript files, the run likely failed before
the agent started (security scan, infra failure, OPA denial). Fall back to:
run-summary.json — structured run metadatarun-telemetry.jsonl — OTLP telemetry (not a Claude transcript)python3 <base-dir>/analyze-transcript.py netsearch "DENIED" <sandbox-log>gh run view <run-id> --repo OWNER/REPO --log-failedDo not confuse run-telemetry.jsonl with Claude transcripts. Telemetry
files contain OTLP spans, not conversation messages. The script will detect
this and warn you.
Quick audit (summary + errors + tools in one shot):
python3 <base-dir>/analyze-transcript.py audit <path-to-jsonl>Summary only:
python3 <base-dir>/analyze-transcript.py summary <path-to-jsonl>Shows: agent type, model, duration, message count, token usage, tool call breakdown, and stop reasons.
Use the appropriate subcommand:
Full conversation flow (alias: conv):
python3 <base-dir>/analyze-transcript.py conversation <path> | head -100Shows assistant text, tool calls, and results with line numbers. Use
| head -N for the start or | tail -N for the end of large transcripts.
Use --max-width 0 for full untruncated output.
Note: System prompts and pre-conversation context are not included in
conversation output. If the user asks "why did the agent do X", search for
decision-relevant keywords first, then show surrounding conversation lines.
Tool usage breakdown:
python3 <base-dir>/analyze-transcript.py tools <path>Errors and failures only:
python3 <base-dir>/analyze-transcript.py errors <path>Finds tool errors, permission denials, failed commands, and error mentions.
Search for specific content:
python3 <base-dir>/analyze-transcript.py search "yarn install" <path>Regex search across all tool results and assistant text.
Restrict to line range (place after subcommand; transcript subcommands only):
python3 <base-dir>/analyze-transcript.py conversation <path> --lines 50-100JSON output (available on summary, tools, and network):
python3 <base-dir>/analyze-transcript.py summary <path> --jsonThe openshell-sandbox.log contains OCSF events for all network connections,
HTTP requests, process launches, and policy decisions made inside the sandbox.
Network summary (alias: net):
python3 <base-dir>/analyze-transcript.py network <sandbox-log>Shows: duration, denied connections, destination hosts, OPA policies hit, and event type breakdown.
Network summary with HTTP request list:
python3 <base-dir>/analyze-transcript.py network <sandbox-log> --httpAppends a chronological list of every HTTP request with relative timestamps.
Filter HTTP requests by method or host:
python3 <base-dir>/analyze-transcript.py network <sandbox-log> --http --method POST
python3 <base-dir>/analyze-transcript.py network <sandbox-log> --http --method POST,PUT,PATCH,DELETE
python3 <base-dir>/analyze-transcript.py network <sandbox-log> --http --host github.com
python3 <base-dir>/analyze-transcript.py network <sandbox-log> --http --method POST,PUT,PATCH --host github.comSearch network logs:
python3 <base-dir>/analyze-transcript.py network-search "DENIED" <sandbox-log>
python3 <base-dir>/analyze-transcript.py netsearch "github" <sandbox-log>Regex search across all OCSF event lines. Matches against raw log text, destination hosts, and HTTP URLs.
When the user wants the full picture, run this sequence:
audit <transcript> — summary + errors + tools in one passnetwork <sandbox-log> — denied connections, hosts, policiesconversation <transcript> | head -80 — how the run startedconversation <transcript> | tail -50 — how the run endederrors, then conversation around the
error lines to see what the agent tried.invalid_grant or stale to sign-in:
search "invalid_grant|stale" <path>. Common when runs exceed the ID token
lifetime.git diff or git commit in the
transcript: search "git diff" <path>conversation <path> | tail -30 to see the
final actions. Useful for spotting token expiry, timeouts, or incomplete work.summary duration vs the harness
timeout_minutes.summary shows input/output/cache token counts.network <sandbox-log> shows all denials
at the top. Use netsearch "DENIED" for raw lines.network <sandbox-log> lists hosts
by frequency. Add --http for the full request log.network shows policy hit
counts. netsearch "policy:<name>" filters to a specific policy.network <sandbox-log> --http --method POST,PUT,PATCH --host github.com.transcripts/ in the working directory (gitignored).errors command shows definitive errors (is_error flag, exit codes,
tracebacks) separately from keyword mentions. For targeted searching, prefer
search "pattern" over errors — it produces fewer false positives.replay-session skill instead.finding-agent-runs skill if available.replay-session skill if available.© fullsend-ai, 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
SKILL.md and 2 other files in skills/analyze-transcript of fullsend-ai/fullsend.
Open the folder on GitHubat commit 0d999c2
Analyze Transcript 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Analyze Transcript this skillfullsend-ai/fullsend | 147 | — | ~2.7k | Automated safety check: Pass | Apache-2.0 | |
| Analyze GitHub Action Logswithastro/astro | 63k | 1 repos | ~1.3k | Automated safety check: Pass | Custom licence | |
| GitHub Actions Templatesbartstc/vite-ts-react-template | 122 | 13 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Nushellccusage/ccusage | 19k | — | ~938 | Automated safety check: Pass | Custom licence | |
| Repo Hygiene Scan and FixQwenLM/qwen-code | 28k | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Senior DevOps Toolkitmaslennikov-ig/claude-code-orchestrator-kit | 259 | 6 repos | ~1.1k | Automated safety check: Notes | Custom licence |
withastro/astro
Analyze recent GitHub Actions workflow runs to identify patterns, mistakes, and improvements.
bartstc/vite-ts-react-template
Create production-ready GitHub Actions workflows for automated testing, building, and deploying applications.
ccusage/ccusage
Guides ccusage Nushell scripts. An agent skill from ccusage/ccusage.
QwenLM/qwen-code
Scheduled CI skill that scans a repository for small, certain docs, test and code hygiene issues and fixes them on one branch with a commit per finding.
maslennikov-ig/claude-code-orchestrator-kit
Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup…
Chachamaru127/claude-code-harness
Diagnoses failing CI pipelines and tests, deciding first whether the test or the implementation is at fault, and hands hard cases to a dedicated fixer subagent.
fullsend-ai/fullsend
A skill your agent uses when the user wants to tag a release, cut a release candidate, or ship a new version.
fullsend-ai/fullsend
Build a merged RICE priority table: top unassigned backlog issues plus issues assigned to the current user.
fullsend-ai/fullsend
A skill your agent uses when preparing the Fullsend user forum "What's New" agenda, a Tuesday-to-Tuesday recap, forum-host talk-track notes, or copy-paste HTML of shipped changes for users.
fullsend-ai/fullsend
Find open GitHub pull requests that add or change Architecture Decision Records and report attribution, summaries, discussion points, and dates.
fullsend-ai/fullsend
Build a readiness-oriented queue of open issues/PRs — assigned work plus their open GitHub blockers — and recommend the next action for each.
fullsend-ai/fullsend
A skill your agent uses when checking e2e test health or reviewing recent e2e failures on main.
Works with
Categories
Analyze fullsend agent run transcripts from GitHub Actions artifacts. Analyze Transcript is an agent skill from fullsend-ai/fullsend. Analyze fullsend agent run transcripts from GitHub Actions artifacts.
Analyze Transcript fits situations like: the user wants to inspect what an agent did during a run; check tool usage; search transcript content.
Run `npx skills add fullsend-ai/fullsend --skill analyze-transcript -a claude-code`. Or copy the skill folder (skills/analyze-transcript in fullsend-ai/fullsend) into .claude/skills/analyze-transcript in your project. Claude Code loads it when a task matches its description.
Run `npx skills add fullsend-ai/fullsend --skill analyze-transcript -a codex`. Or copy the skill folder (skills/analyze-transcript in fullsend-ai/fullsend) into .agents/skills/analyze-transcript in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add fullsend-ai/fullsend --skill analyze-transcript -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/analyze-transcript, .gemini/skills/analyze-transcript, .github/skills/analyze-transcript and .opencode/skills/analyze-transcript in your project.
Going by SKILL.md and its folder, Analyze Transcript needs Python for the scripts in its folder and the command-line tools its instructions call (python3, gh and git). Our summary lists: Python 3; Node.js. Its frontmatter pre-approves these tools: Bash(gh run view:*), Bash(mkdir -p .transcripts/*), Bash(find .transcripts/run-*), Bash(ls -lh .transcripts/*), Bash(python3 skills/analyze-transcript/analyze-transcript.py:*).
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
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.
Analyze Transcript 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.
About 2.7k 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.
Skills that share tags, products or a category with Analyze Transcript: Analyze GitHub Action Logs (withastro/astro, 63k stars), GitHub Actions Templates (bartstc/vite-ts-react-template, 122 stars), Nushell (ccusage/ccusage, 19k stars) and Repo Hygiene Scan and Fix (QwenLM/qwen-code, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
fullsend-ai (a GitHub organization) maintains it in fullsend-ai/fullsend, which has 147 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 7, 2026.
Source: fullsend-ai/fullsend on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.