agentsclimarketplace

Update

Skill leonhoffmann86/team-sprint/skills/update

🏃 Sprint — every TODO item gets a full mini-sprint: autonomous plan→implement→review for Claude Code via git-hook agent chain, isolated worktree, deterministic gate & fail-closed review

Install
npx -y skills add leonhoffmann86/team-sprint --skill update

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Updates the vendored Sprint chain in bootstrapped repos from the plugin source. Refreshes scripts, subagents, MCP config, and git hooks. Use --all to update every registered repo. Leaves configuration and lifecycle files untouched.

SKILL.md

5.3 KB, as published. Nobody here has run it

You are updating the vendored Sprint chain in already-bootstrapped repos from the freshly-installed plugin templates. The plugin ships the canonical agents/ + .mcp.json (those auto-update with the plugin); this command refreshes the vendored copies that the headless git-hook path depends on, plus the stage scripts and hooks.

Only refresh logic. Never touch the user's config or content: leave sprint.conf, TODO.md, DONE.md, AGENT_LOG.md, AGENTS.md, CLAUDE.md and .gitignore alone.

0. Locate templates + the target repo(s)

Templates come from the plugin as installed — never from a development checkout:

TPL="${CLAUDE_PLUGIN_ROOT:-}/templates"
# Fallback when CLAUDE_PLUGIN_ROOT is unset (e.g. skill executed manually): resolve the
# INSTALLED plugin from the marketplace cache — most recently installed version wins.
[ -d "$TPL" ] || TPL="$(ls -dt "$HOME"/.claude/plugins/cache/*/sprint/*/templates 2>/dev/null | head -1)"
[ -d "${TPL:-}" ] || { echo "sprint is not installed. Run:
  claude plugin marketplace add leonhoffmann86/team-sprint
  claude plugin install sprint@team-sprint"; }
REG="${XDG_CONFIG_HOME:-$HOME/.config}/sprint/registry"   # one repo path per line

If neither resolves, stop with that install instruction. Do NOT search the filesystem for a plugin source tree and do NOT accept a git checkout of the plugin repo as $TPL — only the installed (versioned) copy is a valid template source (see docs/DISTRIBUTION.md).

  • No argument → operate on the current repo only: ROOT="$(git rev-parse --show-toplevel)".
  • --all → read $REG (if present) and operate on each listed path that is still a git repo with a scripts/sprint-lib.sh (i.e. actually bootstrapped). Report missing/!bootstrapped entries and skip them. If $REG is absent, tell the user no repos are registered and that /sprint:bootstrap records repos there (see step 4).

1. Refresh the logic files (overwrite — these are NOT user-owned)

For each target ROOT, copy over (overwrite) ONLY:

cp "$TPL/scripts/sprint-lib.sh"       "$ROOT/scripts/sprint-lib.sh"
cp "$TPL/scripts/sprint-plan.sh"      "$ROOT/scripts/sprint-plan.sh"
cp "$TPL/scripts/sprint-implement.sh" "$ROOT/scripts/sprint-implement.sh"
cp "$TPL/scripts/sprint-review.sh"    "$ROOT/scripts/sprint-review.sh"
cp "$TPL/scripts/sprint-gate.sh"      "$ROOT/scripts/sprint-gate.sh"
cp "$TPL/githooks/post-commit"        "$ROOT/.githooks/post-commit"
cp "$TPL/githooks/README.md"          "$ROOT/.githooks/README.md"
mkdir -p "$ROOT/.claude/agents"
cp "$TPL"/.claude/agents/*.md         "$ROOT/.claude/agents/"
chmod +x "$ROOT/.githooks/post-commit" "$ROOT"/scripts/sprint-*.sh

For .mcp.json: if the repo's file is identical to a prior template version, overwrite it; if the user has customized it (extra servers), merge the codegraph server in rather than clobbering — show the diff and confirm. Before overwriting any file that the user may have hand-edited, show a diff and ask.

2. Surface config drift (don't auto-edit sprint.conf)

Compare the keys defined in $TPL/sprint.conf against the repo's sprint.conf. For any key present in the template but missing in the repo (e.g. a newly added SPRINT_*), print it with its default and a one-line description, and tell the user to add it if they want the new behavior. Never rewrite their sprint.conf automatically.

3. Sanity-check

Run bash -n on each refreshed script; report any failure.

4. Tooling report (MANDATORY — the chain lives on its tool use)

The chain degrades gracefully when supporting tools are missing, but the user must be told EXPLICITLY. Check and report each:

  • codegraph (https://github.com/colbymchenry/codegraph): command -v codegraph and the repo index .codegraph/codegraph.db. Missing binary → roles run WITHOUT code-graph intelligence; missing index → suggest codegraph sync . once.
  • fallow (https://docs.fallow.tools): on PATH or ./node_modules/.bin/fallow (unless SPRINT_FALLOW=off). Missing → the gate runs without static analysis; suggest npm i -g fallow + fallow init.
  • jq and timeout/gtimeout: missing → degraded JSON parsing / no per-phase timeout. For anything missing, print the install command and the concrete impact — the same status appears as the ### Tooling section in every TODO.review.md.

5. Registry (consume-only — NEVER self-register)

$REG is a newline-delimited path list consumed by --all. Registration is exclusively /sprint:bootstrap's job and opt-in there — this command must NOT add the current repo (users keep internal repos out of the registry deliberately; see docs/DISTRIBUTION.md). If an entry no longer exists or isn't bootstrapped, drop it and note the cleanup.

6. Summarize

Print, per repo: which files were refreshed/skipped, any .mcp.json merge, the config-drift keys to consider, the tooling report, and the reminder that sprint.conf + lifecycle files were intentionally left untouched.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.