sprint

작성자: huggingface

Agent Teams를 사용하여 GitHub 이슈 배치를 병렬로 처리합니다. TDD 적용과 함께 이슈별로 하나의 작업 트리를 생성하고, 리드 에이전트를 통해 조정한 후...

npx skills add https://github.com/huggingface/openenv --skill sprint

/sprint

Work on multiple GitHub issues in parallel. Each issue gets its own worktree with TDD enforcement. A lead agent coordinates, and stacked PRs are created when all work is done.

EXECUTE THESE STEPS NOW

When this skill is invoked, you MUST execute these steps immediately.

Step 0: Check Agent Teams Support

Check if Agent Teams are available:

echo "${CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS:-not_set}"

If the value is not_set or empty, fall back to setup-only mode:

  • Parse the comma-separated issue numbers
  • Fetch requirements for all issues (parallel issue-worker agents)
  • Create worktrees and activate TDD for each
  • Report the list of prepared worktrees and tell the user: "Agent Teams not enabled. Worktrees are prepared with TDD active. cd into each worktree and run /write-tests to begin the TDD cycle, or set CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 and re-run /sprint."
  • Do NOT invoke /work-on-issue — it would create duplicate worktrees. The worktrees and TDD markers are already set up.

Step 1: Parse Issue Numbers

Extract comma-separated issue numbers from $ARGUMENTS:

  • Remove # prefixes, spaces, and other punctuation
  • Example: 67,68,69,70 or #67 #68 #69
  • Store as a list: ISSUES=(67 68 69 70)

Step 2: Fetch Requirements (Parallel)

Spawn one issue-worker agent per issue, all in a single message so they run in parallel:

Task tool (ALL in one message):
  For issue 67:
    subagent_type: issue-worker
    description: "issue-worker #67"
    prompt: "Read GitHub issue #67 and extract:
      1. Goal
      2. Acceptance criteria
      3. Edge cases and constraints
      4. Files likely to be touched"

  For issue 68:
    subagent_type: issue-worker
    description: "issue-worker #68"
    prompt: "Read GitHub issue #68 and extract: ..."

  (etc.)

Wait for all agents to return. Collect requirements for each issue.

Step 3: Create Worktrees and Activate TDD

For each issue, create a worktree and activate TDD:

.claude/scripts/worktree-create.sh issue-<N>-<short-desc> && \
  cd .worktrees/issue-<N>-<short-desc> && \
  bash .claude/hooks/tdd-state.sh activate <N> && \
  cd -

Step 4: Check for Conflicts

Before launching parallel work, check if any issues touch the same files:

  • Compare the "files likely to be touched" from each issue
  • If overlap detected, note it — the lead will need to mediate
  • If issues are tightly coupled, warn the user and suggest sequential work

Step 5: Create Agent Team

Create an Agent Team with one teammate per issue.

Lead (delegate mode — coordinates only, does not implement):

  • Monitors teammate progress
  • Mediates if teammates report conflicts on the same files
  • After all complete: collects reports and determines PR ordering

Teammates (one per issue, spawned as parallel Task agents):

Task tool (ALL in one message):
  For issue 67:
    subagent_type: general-purpose
    description: "sprint-teammate #67"
    prompt: |
      You are working on GitHub issue #67.
      Working directory: .worktrees/issue-67-<desc>/
      TDD enforcement is active.

      Requirements:
      <requirements from step 2>

      Your workflow:
      1. cd into your worktree
      2. Create todos from acceptance criteria (TaskCreate)
      3. For each todo, use the Task tool to spawn:
         - subagent_type: tester (to write failing tests)
         - subagent_type: implementer (to make tests pass)
         Then run /update-docs if APIs changed
      4. When all todos complete, report:
         - Files you touched (git diff --name-only)
         - APIs you changed (old → new signatures)
         - Dependencies on other issues (if any)
         - Any conflicts you encountered

  For issue 68:
    subagent_type: general-purpose
    description: "sprint-teammate #68"
    prompt: ...

  (etc.)

Step 6: Collect Results

After all teammates finish, collect from each:

  • Files touched
  • APIs changed
  • Conflict reports
  • Test pass/fail status

Step 7: Create Stacked PRs

Spawn the pr-planner agent to determine dependency ordering:

Task tool:
  subagent_type: pr-planner
  description: "pr-planner for sprint"
  prompt: "Given these completed issues and their changes, determine
    the optimal PR ordering. Consider file dependencies, API changes,
    and which PRs can merge independently vs. which must be stacked.

    Issue reports:
    <collected reports>

    Output: ordered list of PRs with base branches"

Then create branches and PRs. For stacked PRs, rebase each branch onto the previous one before creating the PR:

# First PR targets main directly
gh pr create --base main --head issue-67-branch ...

# Subsequent PRs: rebase onto the previous branch first
git checkout issue-68-branch
git rebase issue-67-branch
git push --force-with-lease
gh pr create --base issue-67-branch --head issue-68-branch ...

If rebase conflicts arise, report them to the user rather than auto-resolving.

Step 8: Summary

Output a summary table:

## Sprint Complete

| Issue | PR | Base | Status | Files Changed |
|-------|-----|------|--------|---------------|
| #67 | #XX | main | Created | 3 files |
| #68 | #YY | issue-67-branch | Created | 5 files |
| #69 | #ZZ | issue-68-branch | Created | 2 files |

Stacked PR order: #XX → #YY → #ZZ

When to Use

  • Multiple related or independent issues to batch together
  • You want maximum parallelism
  • Issues are small-to-medium sized (each < ~200 lines of change)

When NOT to Use

  • Single issue (use /work-on-issue instead)
  • Issues that are tightly coupled and must be done sequentially
  • Very large issues (each needs its own focused session)

Requirements

  • CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS env var must be set to 1
  • Falls back to setup-only mode (worktree creation) if not available

Architecture

/sprint 67,68,69
    │
    ├─ Fetch requirements (parallel issue-worker agents)
    ├─ Create worktrees + activate TDD
    ├─ Create Agent Team (lead = delegate, teammates = workers)
    │
    ├─ Teammate #67 (worktree, TDD, subagents for test/impl/docs)
    ├─ Teammate #68 (worktree, TDD, subagents for test/impl/docs)
    ├─ Teammate #69 (worktree, TDD, subagents for test/impl/docs)
    │
    ├─ Lead mediates conflicts
    ├─ pr-planner determines ordering
    ├─ Rebase for stacking (conflicts reported to user)
    └─ Stacked PRs created

huggingface의 다른 스킬

sync-models
huggingface
chat-ui의 모델 구성을 HuggingFace 라우터와 동기화 — 새 모델에 대한 설명을 추가하고, 추론 기능이 있는 모델을 표시하며, 32B 이상 모델에 대해 아티팩트를 활성화합니다…
custom-blocks
huggingface
Use when the user has written (or wants to write) a `ModularPipelineBlocks` subclass in a local Python file and needs to package it into a Hub-uploadable…
self-review
huggingface
Use before opening a PR, or whenever asked to self-review a diffusers contribution. Applies the same rubric as the `@claude` CI (checks the diff against…
hf-cloud-sagemaker-production-defaults
huggingface
SageMaker 엔드포인트(실시간 또는 비동기)를 생성하며, 자동 확장, CloudWatch 알람, 태깅이 기본적으로 활성화됩니다. 이 스킬은 엔드포인트를 생성하려고 할 때마다 사용하세요.
hf-cloud-serving-image-selection
huggingface
SageMaker 모델 배포에 적합한 서빙 컨테이너를 선택하고 현재 이미지 URI를 찾습니다. 모델을 배포하려 할 때마다 이 스킬을 사용하세요.
Hugging Face Cli
huggingface
Execute Hugging Face Hub operations using the `hf` CLI. Use when the user needs to download models/datasets/spaces, upload files to Hub repositories, create repos, manage local cache, or run compute jobs on HF infrastructure. Covers authentication, file transfers, repository creation, cache operations, and cloud compute.
Hugging Face Datasets
huggingface
허깅 페이스 허브에서 데이터셋을 생성하고 관리합니다. 리포지토리 초기화, 설정/시스템 프롬프트 정의, 행 업데이트 스트리밍, SQL 기반 데이터셋 쿼리/변환을 지원합니다. 포괄적인 데이터셋 워크플로를 위해 HF MCP 서버와 함께 작동하도록 설계되었습니다.
Hugging Face Evaluation
huggingface
Hugging Face 모델 카드에 평가 결과를 추가하고 관리합니다. README 콘텐츠에서 평가 테이블 추출, Artificial Analysis API에서 점수 가져오기, vLLM/lighteval을 사용한 사용자 정의 모델 평가 실행을 지원합니다. model-index 메타데이터 형식과 함께 작동합니다.