contribute-turbo
This Claude Code skill submits turbo skill improvements from the local turbo repository back to the upstream source. It adapts its workflow based on the repository mode: in fork mode, it creates a pull request, while in source mode it pushes directly to the main branch. Use this skill when users request to contribute turbo changes, submit improvements upstream, create pull requests for their modifications, or push their skill edits back to the original repository.
git clone --depth 1 https://github.com/tobihagemann/turbo /tmp/contribute-turbo && cp -r /tmp/contribute-turbo/claude/skills/contribute-turbo ~/.claude/skills/contribute-turboSKILL.md
# Contribute Turbo Propose an improvement to a turbo skill as an issue on `tobihagemann/turbo`. ## Step 1: Identify the Proposed Change Confirm the local repo exists: ```bash test -d ~/.turbo/repo ``` If it does not, tell the user to run the Turbo setup first and stop. Detect skills whose installed copy has drifted from the repo baseline: ```bash for skill in ~/.claude/skills/*/; do name=$(basename "$skill") repo_dir=~/.turbo/repo/claude/skills/"$name" [ -d "$repo_dir" ] || continue diff -rq "$skill" "$repo_dir" >/dev/null 2>&1 && continue echo "$name" done ``` For each drifted skill, read both versions of every file that differs and the single version of every file present on one side only. Classify each hunk and each one-sided file: - **Correction** — a session edit meant to improve the skill upstream. Include it in the proposal. - **Customization** — a persistent local addition that belongs to this machine only (extra workflow steps, personal paths, machine-specific notes, internal references). Leave it out of the proposal. - **Upstream-newer** — content the repo copy carries and the installed copy lacks, left behind by a Skip or Exclude during an earlier update. Leave it out of the proposal. - **Ambiguous** — use `AskUserQuestion` to confirm classification. When no corrections survive classification, take the proposed change from conversation context instead. When the conversation describes no change either, tell the user there is nothing to contribute and stop. Present the corrections in a summary table: ``` | # | Skill | Change Summary | |---|-------|----------------| | 1 | /evaluate-findings | Added handling for security-default findings | | 2 | /self-improve | Clarified routing for trusted reviewer feedback | ``` Use `AskUserQuestion` to confirm which corrections to propose. ## Step 2: Craft Contribution Context For each change, construct a "why" explanation. The goal: the turbo maintainer should understand what happened and why the existing instructions were insufficient, without learning anything about the contributor's project. Use this template: > During [general workflow description], the skill's instructions [what was missing or wrong]. This caused [what happened]. The change [what it does] so that [benefit]. **Example:** > During a code review session, the evaluate-findings skill encountered a finding with `security-default` severity. The existing instructions only handled `critical`, `high`, `medium`, and `low` severities, causing the finding to be silently dropped. The change adds `security-default` to the severity handling table so these findings are properly triaged. The maintainer implements the change, so state it concretely alongside the "why": the file path under `claude/skills/<name>/`, the step or section it belongs in, and the exact replacement text or a diff. ### Privacy Filter Before finalizing, verify the whole proposal — the "why" explanation, the cited paths, and the proposed replacement text — contains none of the following: - Project or repo names - File paths from the user's project - Company or product names - API keys, URLs, or credentials - Business logic or domain-specific terminology that identifies the project - User names beyond the contributor's GitHub handle Output the drafted proposal as text. Then use `AskUserQuestion` for approval. The user must approve the proposal before proceeding. ## Step 3: Run `/create-issue` Skill Use `TaskCreate` to create a task for each approved concern. Process concerns in order, one concern per issue. For each concern, run the `/create-issue` skill, filing against `tobihagemann/turbo` rather than the current project's repo. The approved text from Step 2 is the issue body; leave it as approved rather than re-deriving it from conversation context. Report each issue URL. Then use the TaskList tool and proceed to any remaining task.
For each reviewer question on a PR, recall implementation reasoning and compose a raw answer. Use when the user asks to \"answer reviewer questions\", \"draft answers to PR questions\", or \"explain reviewer questions\".
Apply findings by making the suggested code changes. Applies accepted verdicts, escalates ambiguous findings to the user, and offers to note genuine improvements for later. Use when the user asks to \"apply findings\", \"apply fixes\", \"apply suggestions\", \"apply accepted findings\", \"fix the findings\", or \"apply the review results\".
Project-wide health audit pipeline that fans out to all analysis skills in parallel, evaluates findings, and produces a unified report at .turbo/audit.md. Use when the user asks to \"audit the project\", \"run a full audit\", \"project health check\", \"audit my code\", \"codebase audit\", or \"comprehensive review\".
Shared changelog conventions and formatting rules referenced by $create-changelog and $update-changelog. Not typically invoked directly.
Enforce existence, reuse, mirror, and symmetry principles to keep new code minimal and consistent with surrounding code. Use when writing new code in an existing codebase, adding new features, refactoring, or making any code changes.
Run autonomous task execution using the codex CLI. Use when the user asks to \"codex exec\", \"run codex exec\", \"execute a task with codex\", or \"delegate to codex\".
Run AI-powered code review using the codex CLI. Use when the user asks to \"codex review\", \"run codex review\", or \"review a commit with codex\".
Shared commit message rules and technical constraints referenced by /stage-commit and /commit-staged. Not typically invoked directly.