Help us improve
Share bugs, ideas, or general feedback.
From ennam-dev-agent-team
Standard git branching and commit workflow for worker agents operating in isolated worktrees. Covers branch naming, commit conventions, domain boundary rules, self-check procedures, and task completion signaling. Automatically loaded by all worker agents.
npx claudepluginhub en-nam/ennam-claude-agent-team --plugin ennam-dev-agent-teamHow this skill is triggered — by the user, by Claude, or both
Slash command
/ennam-dev-agent-team:branch-worker-protocolThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are working in an isolated git worktree. Follow this protocol for every task.
Enforces trunk-based Git workflows with atomic commits, descriptive messages, and short-lived branches. Use for code changes, committing, branching, resolving conflicts, and organizing parallel work streams.
Creates isolated git worktrees for branch work, auto-installs dependencies, verifies baselines, and handles branch finishing with clean isolation.
Guides technical evaluation of code review feedback: read fully, restate for understanding, verify against codebase, respond with reasoning or pushback before implementing.
Share bugs, ideas, or general feedback.
You are working in an isolated git worktree. Follow this protocol for every task.
<domain>/<task-id>-<short-description>
Examples:
backend/task-001-product-reviews-apifrontend/task-004-review-componentstests/task-006-review-api-testsmobile/task-010-product-listing-screenRules:
git checkout -b <branch-name>
git status # Verify you are on the correct branch
Then immediately confirm to the team-lead:
Branch created: <branch-name>
Starting TASK-<ID>: <title>
Use conventional commits. Commit each logical chunk — do NOT batch all changes into a single commit at the end.
<type>(<scope>): <description>
[optional body]
Task: TASK-<ID>
Types: feat, fix, test, refactor, docs, chore
Scopes: api, services, prisma, components, pages, hooks, styles, tests
Examples:
feat(api): add POST /api/products/[id]/reviews endpoint
Validates review body with Zod, persists via ReviewService,
returns created review with author info.
Task: TASK-003
test(api): add unit tests for review service
Tests create, list, and delete operations.
Covers validation errors and not-found cases.
Task: TASK-006
You may ONLY modify files within your assigned domain directories.
If you discover you need a file outside your domain:
<file-path> because <reason>"Common cross-domain needs:
src/types/ → team-lead owns thesepackage.json → team-lead owns thistsconfig.json, next.config.*) → team-lead owns thesepubspec.yaml → team-lead coordinatesandroid/, ios/) → mobile-dev owns, but team-lead coordinates with backend if neededBefore running self-checks, update your task status:
.serena/memories/ouroboros/tasks/registry.md — update your task status to review.serena/memories/ouroboros/architecture/conventions.mdRun ALL of these before reporting task done. Use the appropriate check commands for your detected stack.
# 1. Verify only your domain files were changed
git diff --name-only main...HEAD
# 2. No uncommitted changes remain
git status
# 3. TypeScript compiles without errors
npx tsc --noEmit
# 4. Linting passes
npx next lint
# 5. Relevant tests pass (if applicable)
npx vitest run --reporter=verbose
# 1. Verify only your domain files were changed
git diff --name-only main...HEAD
# 2. No uncommitted changes remain
git status
# 3. Dart analysis passes
dart analyze
# 4. Format check
dart format --set-exit-if-changed lib/ test/
# 5. Flutter tests pass
flutter test --reporter=expanded
# 1. Verify only your domain files were changed
git diff --name-only main...HEAD
# 2. No uncommitted changes remain
git status
# 3. Type checking passes
mypy .
# 4. Linting passes
ruff check .
# 5. Relevant tests pass (if applicable)
pytest --tb=short
If any check fails, fix the issue and re-run before reporting done.
When all self-checks pass, report to team-lead:
DONE: TASK-<ID>
Branch: <branch-name>
Files changed:
- <path/to/file.ts> (new)
- <path/to/other.ts> (modified)
Summary: <1-3 sentences describing what was implemented>
Tests: <X passed / not applicable>
If you cannot proceed, report immediately:
BLOCKED: TASK-<ID>
Reason: <specific thing that is missing or broken>
Need from: <team-lead | specific teammate>
Do NOT try to work around blockers by modifying files outside your domain.
If you encounter merge conflicts: