Agent skill

Tracelab Public Release

by uw-syfi in uw-syfi/TraceLab

Publish TraceLab snapshots from the internal repo to the public uw-syfi/TraceLab GitHub repo as clean, mergeable, incremental pull requests from a persistent public mirror branch.

Apache-2.0Auto-check passedDevelopment

Install Tracelab Public Release

skills CLI
$ npx skills add uw-syfi/TraceLab --skill tracelab-public-release -a claude-code

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

GitHub CLI
$ gh skill install uw-syfi/TraceLab tracelab-public-release --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/uw-syfi/TraceLab.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.codex/skills/tracelab-public-release .claude/skills/tracelab-public-release && 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
tracelab-public-release
GitHub stars
142
Token cost
~2.7k tokens
SKILL.md length
970 words
Files
2
Skills in repo
7
Repo updated
First seen
Licence
Apache-2.0

At a glance

Publish TraceLab snapshots from the internal repo to the public uw-syfi/TraceLab GitHub repo as clean, mergeable, incremental pull requests from a persistent public mirror branch.

  • Works in 7 steps: Sync and inspect → Land intentional changes on the mirror → Re-link ancestry (the key step) → …
  • Refreshing the public site/artifacts
  • SKILL.md covers Purpose, Mental model — why ancestry…, Remotes and Guardrails, plus 3 more sections
  • Calls git, gh and rg; reaches github.com; needs API_KEY

What it does

Tracelab Public Release is an agent skill from uw-syfi/TraceLab. Publish TraceLab snapshots from the internal repo to the public uw-syfi/TraceLab GitHub repo as clean, mergeable, incremental pull requests from a persistent public mirror branch. Use when refreshing the public site/artifacts, drafting a public release PR, reconciling a diverged public branch, or creating GitHub releases with syficodingtrace.jsonl.gz and syficodingtrace.duckdb assets after the PR is merged.

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 `agents/openai.yaml`).

It sits in Development, covering Pull requests. It works with GitHub and DuckDB. The repository describes itself as: An open toolkit and public dataset hub for collecting, sanitizing, analyzing, and visualizing coding agent traces. The licence is Apache-2.0.

When your agent uses it

  • Refreshing the public site/artifacts
  • Drafting a public release PR
  • Reconciling a diverged public branch
  • Creating GitHub releases with syficodingtrace.jsonl.gz and syficodingtrace.duckdb assets after the PR is merged

Example prompts

  • “/tracelab-public-release”

Requirements

  • A credential in API_KEY

Workflow steps

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

  1. Sync and inspect
  2. Land intentional changes on the mirror
  3. Re-link ancestry (the key step)
  4. Review the real net diff
  5. Public-safety checks
  6. Push the mirror and open a draft PR
  7. Keep ancestry intact on merge

What it can do on your machine

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

    Shell commands in SKILL.md call:

    • git
    • gh
    • rg

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Tracelab Public Release loads about 2.7k tokens when it runs. Until then it costs about 110 tokens; SKILL.md has 970 words of instructions outside code blocks.

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

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 uw-syfi/TraceLab at commit 11b8b14, republished under its Apache-2.0 licence (© uw-syfi). 970 words, ~2,713 tokens.

Download SKILL.mdSave it as .claude/skills/tracelab-public-release/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
tracelab-public-release
description
Publish TraceLab snapshots from the internal repo to the public uw-syfi/TraceLab GitHub repo as clean, mergeable, incremental pull requests from a persistent public mirror branch. Use when refreshing the public site/artifacts, drafting a public release PR, reconciling a diverged public branch, or creating GitHub releases with syfi_coding_trace.jsonl.gz and syfi_coding_trace.duckdb assets after the PR is merged.

TraceLab Public Release

Purpose

Publish curated TraceLab snapshots from the internal repository to the public repository:

text
https://github.com/uw-syfi/TraceLab.git

as incremental, mergeable pull requests that preserve git ancestry, so every release shows only its true net diff and can be merged without conflicts. Do not push snapshots directly to the public main; open a (draft) PR for review.

Mental model — why ancestry matters

The public repo must always be reachable as an ancestor of the branch you open the PR from. When that holds, GitHub's PR diff (merge-base...head) equals the real net change and the PR merges cleanly. When it does not, git falls back to an ancient common ancestor and reports phantom conflicts — add/add on every new file and content conflicts on every edited file — even though the branch is a clean superset of what the public repo already has.

This is exactly what the old "export to a temp dir, wipe a clean clone of public, copy the export, commit one snapshot" method caused: each release landed in public as a detached snapshot commit with no shared history with the source branch. The next fork→public PR then diffed against the last truly shared commit (e.g. an early Merge PR #1), surfacing hundreds of files that were never actually in conflict. Do not publish by wipe-and-snapshot anymore. Publish from a persistent mirror whose history stays linked to public.

Remotes

RemoteURLRole
origininternal source of truth (private)Internal development. Never the PR target.
publichttps://github.com/uw-syfi/TraceLab.gitPR target. Never push to its main directly.
forkhttps://github.com/serendipity-zk/TraceLab.gitThe public mirror. Push the release branch here; open the PR from it.

The mirror branch (the fork's main; commonly checked out locally as fork-main) is the public-safe history. Keep it linked to public/main.

Guardrails

  1. Treat origin as the internal/source-of-truth remote unless the user says otherwise.
  2. Never push to the public main. Push only to the fork mirror (its main or a release branch) and open a PR into public:main.
  3. Keep public/main an ancestor of the branch you open the PR from. Reconcile first (below) whenever it is not — never open a PR that GitHub reports as conflicting.
  4. Do not commit trace data to Git. Release data files belong only on GitHub Releases. Keep ignored/local files such as trace/*.jsonl*, trace/*.duckdb, trace.tar.gz, generated artifact outputs, and server runtime data out of the public tree.
  5. When a reconciling merge conflicts, resolve in favor of the mirror for content the mirror has advanced — but first confirm no genuine public-only commit (community PR, hotfix) or public-only file is being dropped.
  6. Preserve the web product title SyFI Trace Atlas unless the user explicitly asks to rename it.
  7. Do not put dates in PR titles or branch names. Name the branch after the actual release theme.

Release workflow

1. Sync and inspect
bash
git fetch public
git fetch fork
git status --short --branch
git remote -v

Add the public/fork remotes if missing:

bash
git remote add public https://github.com/uw-syfi/TraceLab.git
git remote add fork   https://github.com/serendipity-zk/TraceLab.git
2. Land intentional changes on the mirror

Check out the mirror branch (e.g. fork-main) and make sure every change you intend to publish is committed there. Do not try to snapshot a dirty worktree — commit the intentional source/doc changes first, and leave ignored trace data and generated outputs uncommitted.

Make public/main an ancestor of the mirror by merging it in:

bash
git merge --no-ff public/main
  • If public/main is already an ancestor, this is a no-op or fast-forward — skip to step 4.

  • If it conflicts, the conflicts are almost certainly phantom (public holds an older copy of the same lineage from a prior snapshot release). Confirm the mirror is the newer superset and resolve every conflict to the mirror, then verify nothing real was dropped:

    bash
    # see why each side diverged — public's version should be a subset of the mirror's
    git diff <merge-base> public/main -- <file>     # what the public snapshot changed
    git diff <merge-base> fork-main  -- <file>      # what the mirror changed (should subsume it)
    
    # resolve all conflicts to the mirror
    for f in $(git diff --name-only --diff-filter=U); do git checkout --ours -- "$f" && git add -- "$f"; done
    
    # SAFETY: no files exist only in public, and no non-export public commits are being skipped
    comm -23 <(git ls-tree -r --name-only public/main | sort) <(git ls-tree -r --name-only fork-main | sort)
    git log --oneline <merge-base>..public/main      # every entry should be an export/snapshot, not a community PR

    If a real public-only file or community commit exists, stop and merge it into the mirror properly instead of discarding it. Otherwise commit the reconciling merge:

    bash
    git commit --no-edit

Verify ancestry is now linked and the PR will be clean:

bash
git merge-base --is-ancestor public/main fork-main && echo linked
git diff --name-only public/main...fork-main | wc -l   # three-dot (what GitHub shows)
git diff --name-only public/main    fork-main | wc -l   # two-dot (true delta) — must match
Show full SKILL.md (335 more words)Show less
4. Review the real net diff

Review the entire net diff before naming the branch/PR — this is what you are publishing. Do not summarize only your own recent edits.

bash
git diff --name-status public/main fork-main
git diff --stat        public/main fork-main

Read enough changed files to understand the release scope, by area:

  • top-level docs and config (README.md, artifacts/README.md, config/services.json, .gitignore)
  • new/changed artifact READMEs and analysis scripts, grouped by category
  • renamed or moved tools (e.g. replay/, web/AI infrastructure)
  • web UI changes under web/app/src and helper scripts under web/scripts / web/tools
  • deleted files, renames, and generated-file removals
5. Public-safety checks
bash
find trace -maxdepth 2 -type f 2>/dev/null | sort
find . -maxdepth 4 \( -name '*.duckdb' -o -name '*.jsonl.gz' -o -name '*.jsonl' \)
rg -n '/m-coriander|coding_trace_refactor|serendipity-zk|coding-trace-collect|API_KEY=' . -g '!web/app/dist/**' -g '!.codex/**'
git diff --check

Benign matches (documentation naming environment variables, this skill referencing the scan patterns) are fine. Internal absolute paths, private remotes, secrets, trace data, or generated runtime data must be removed or explicitly justified before continuing. Scan the net diff added lines specifically:

bash
git diff public/main fork-main | grep -E '^\+' | rg '/m-coriander|coding_trace_refactor|serendipity-zk|API_KEY='
6. Push the mirror and open a draft PR

Push the mirror branch to the fork (its main, or a dedicated release branch if you prefer not to move the mirror's main until merge):

bash
git push fork fork-main:main
# or a topic branch off the mirror:
# git push fork fork-main:refresh-meaningful-topic

Choose a descriptive topic from the actual diff (not "public-snapshot", no dates). Open a draft PR into the public main:

bash
gh pr create \
  --repo uw-syfi/TraceLab \
  --base main \
  --head serendipity-zk:main \
  --draft \
  --title "Refresh artifact analyses, detail UI, and Chinese docs" \
  --body-file /tmp/tracelab-public-pr-body.md

Suggested PR body structure:

markdown
## What this changes
One paragraph describing the actual release theme.

## Main updates
- Artifacts / analyses: ...
- Web UI: ...
- Tooling / docs: ...

## Public-release safety
- public/main is an ancestor of this branch; the diff is the true net change and merges cleanly.
- No trace release data files are committed to Git.
- Internal absolute paths, private remotes, and secrets were scanned.
- Release assets will be uploaded only after review and merge.
7. Keep ancestry intact on merge

How the public PR is merged decides whether the next release is clean:

  • Prefer "Create a merge commit" or "Rebase and merge" — these keep public/main reachable from the mirror, so the next release needs no reconciliation.
  • A squash merge re-detaches history (it creates a new commit not in the mirror). That is allowed, but the next release must redo the step-3 reconciling merge to re-link ancestry.

After merge, fast-forward the mirror so it tracks the merged public state:

bash
git fetch public
git merge --ff-only public/main   # or merge --no-ff if it cannot fast-forward
git push fork fork-main:main

Standard release assets

Upload both assets when creating a public data release (only after the PR is merged):

text
trace/syfi_coding_trace.jsonl.gz
trace/syfi_coding_trace.duckdb

Before upload, verify:

bash
gzip -t trace/syfi_coding_trace.jsonl.gz
sha256sum trace/syfi_coding_trace.jsonl.gz trace/syfi_coding_trace.duckdb

Create the release:

bash
gh release create vYYYY-MM-DD-syfi-trace \
  trace/syfi_coding_trace.jsonl.gz \
  trace/syfi_coding_trace.duckdb \
  --repo uw-syfi/TraceLab \
  --target main \
  --title "TraceLab public trace snapshot YYYY-MM-DD" \
  --notes "Public sanitized trace release. Assets include the compressed JSONL rows and a DuckDB database."

If the release already exists, use gh release upload --clobber.

Verification

After drafting the PR:

bash
gh pr view --repo uw-syfi/TraceLab --web
gh pr view --repo uw-syfi/TraceLab --json mergeable,mergeStateStatus   # expect MERGEABLE / clean
git ls-remote fork refs/heads/main

After merge and release:

bash
gh release view vYYYY-MM-DD-syfi-trace --repo uw-syfi/TraceLab

Check that release download URLs in README.md point to uw-syfi/TraceLab, and that the public commit carries no internal remote URLs except intentional historical references.

© uw-syfi, 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

SKILL.md and 1 other file in .codex/skills/tracelab-public-release of uw-syfi/TraceLab.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit 11b8b14

Compare with similar skills

Tracelab Public Release 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.

Tracelab Public Release compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Tracelab Public Release this skilluw-syfi/TraceLab142—~2.7kAutomated safety check: PassApache-2.0
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Check PRonyx-dot-app/onyx32k2 repos~2.3kAutomated safety check: PassMIT
Contributor-First PR MergeHKUDS/OpenHarness16k1 repos~847Automated safety check: PassMIT
Create Pull Requestcline/cline70k1 repos~1.6kAutomated safety check: PassApache-2.0
Pull Request Title and Body Writeropeninterpreter/openinterpreter69k2 repos~1.1kAutomated safety check: PassApache-2.0

Similar skills

  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Check PR

    onyx-dot-app/onyx

    Checks a GitHub, GitLab, or Perforce (p4) pull request (or merge request, or shelved changelist) for unresolved review comments, failing status checks, and incomplete PR descriptions.

    32k GitHub starsUsed in 2 repos~2.3k tokens
    DevelopmentAuto-check passed
  • Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.

    16k GitHub starsUsed in 1 repo~847 tokens
    DevelopmentAuto-check passed
  • Opens a GitHub pull request from your current branch with the gh CLI, after reviewing the commits and diff and gathering the details the PR needs.

    70k GitHub starsUsed in 1 repo~1.6k tokens
    DevelopmentAuto-check passed
  • Pull Request Title and Body Writer

    openinterpreter/openinterpreter

    Rewrites the title and body of one or more pull requests with gh, leading with why the change was made, then what changed, and describing only the net result.

    69k GitHub starsUsed in 2 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Official

    Runs a loop on a GitHub pull request: fetch review state, triage comments into actions, implement them and resolve threads, repeating until nothing actionable is left.

    48k GitHub stars~2.2k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from uw-syfi/TraceLab

  • Prepare, publish, refresh, or validate the TraceLab public dataset on Hugging Face under UW-SyFI/TraceLab.

    142 GitHub stars~1.4k tokensUpdated 1 mo ago
    Auto-check passed
  • Coding Trace Analyze

    uw-syfi/TraceLab

    Run, summarize, plot, validate, and export normalized coding-trace JSONL files.

    142 GitHub stars~2.5k tokensUpdated 1 mo ago
    Auto-check passed
  • Coding Trace Collect

    uw-syfi/TraceLab

    Collect, count, and extract Claude Code and Codex CLI local histories into normalized coding-trace JSONL files.

    142 GitHub stars~1.9k tokensUpdated 1 mo ago
    Auto-check: notes
  • Coding Trace Normalize

    uw-syfi/TraceLab

    Explain and work with the normalized coding-trace JSONL row format produced by extractclauderounds.py, extractcodexrounds.py, and collectllmtraces.py.

    142 GitHub stars~1.6k tokensUpdated 1 mo ago
    Auto-check passed
  • Coding Trace Raw

    uw-syfi/TraceLab

    Read and explain raw Claude Code and Codex CLI session logs in this coding-trace repo.

    142 GitHub stars~1.3k tokensUpdated 1 mo ago
    Auto-check passed
  • Coding Trace Sanitize

    uw-syfi/TraceLab

    Sanitize normalized coding-trace JSONL rows for public sharing.

    142 GitHub stars~1.3k tokensUpdated 1 mo ago
    Auto-check: notes

Works with

Categories

Questions about Tracelab Public Release

What does Tracelab Public Release do?

Publish TraceLab snapshots from the internal repo to the public uw-syfi/TraceLab GitHub repo as clean, mergeable, incremental pull requests from a persistent public mirror branch. Tracelab Public Release is an agent skill from uw-syfi/TraceLab. Publish TraceLab snapshots from the internal repo to the public uw-syfi/TraceLab GitHub repo as clean, mergeable, incremental pull requests from a persistent public mirror branch.

When should I use Tracelab Public Release?

Tracelab Public Release fits situations like: refreshing the public site/artifacts; drafting a public release PR; reconciling a diverged public branch; creating GitHub releases with syficodingtrace.jsonl.gz and syficodingtrace.duckdb assets after the PR is merged.

How do I install Tracelab Public Release in Claude Code?

Run `npx skills add uw-syfi/TraceLab --skill tracelab-public-release -a claude-code`. Or copy the skill folder (.codex/skills/tracelab-public-release in uw-syfi/TraceLab) into .claude/skills/tracelab-public-release in your project. Claude Code loads it when a task matches its description.

How do I install Tracelab Public Release in Codex?

Run `npx skills add uw-syfi/TraceLab --skill tracelab-public-release -a codex`. Or copy the skill folder (.codex/skills/tracelab-public-release in uw-syfi/TraceLab) into .agents/skills/tracelab-public-release in your project. Codex loads it when a task matches its description.

Can I use Tracelab Public Release 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 uw-syfi/TraceLab --skill tracelab-public-release -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tracelab-public-release, .gemini/skills/tracelab-public-release, .github/skills/tracelab-public-release and .opencode/skills/tracelab-public-release in your project.

What does Tracelab Public Release need to run?

Going by SKILL.md and its folder, Tracelab Public Release needs the command-line tools its instructions call (git, gh and rg) and credentials named API_KEY. Our summary lists: A credential in API_KEY.

Does Tracelab Public Release access the network?

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.

Is Tracelab Public Release 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 Tracelab Public Release use?

Tracelab Public Release 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 Tracelab Public Release use?

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.

What are the alternatives to Tracelab Public Release?

Skills that share tags, products or a category with Tracelab Public Release: PR Babysitter (openinterpreter/openinterpreter, 69k stars), Check PR (onyx-dot-app/onyx, 32k stars), Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars) and Create Pull Request (cline/cline, 70k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Tracelab Public Release?

uw-syfi (a GitHub organization) maintains it in uw-syfi/TraceLab, which has 142 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on August 22, 2026.

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