Windsurf rules
.windsurf/rules/kickoff-branch.mdCreate a git worktree and feature branch, then verify a clean test baseline before any code is written. Use when starting a new feature or task, when user wants to work in isolation from main, or mentions "start a branch" or "new worktree".
Windsurf rules
Quality
78/100
Scores the file, not the repository.Length
742 words
19 headings · 7 code blocksRepository
114
— · pushed 0 days agoLast changed
3 days ago
First indexed 3 days ago.1234567# story: e51s038# story: e20s0391011# Kickoff Branch1213> **HARD GATE** — Direct work on `main` or `master` is PROHIBITED. Every task MUST start with this skill to create a feature branch or worktree.14>15> **HARD GATE** — Do NOT proceed with development until **Preflight** passes on the default branch. Red Preflight blocks branch creation and all forward work — invoke `quick-fix` or `fix-bug` per CONVENTIONS § Discovered Defects.1617Create an isolated working environment before touching any code. **Preflight must be green** before you write feature code — solo-default owns the whole tree, not just the current task diff.1819## Process2021### 1. Confirm task name2223Ask if not already known: "What's the name of this feature or task?" Use it as the branch name slug (kebab-case, max 40 chars).2425### 2. Anchor on default branch (main or master)2627> **HARD GATE** — Kickoff MUST start from an updated, clean default branch in the **primary** repository root (not a linked worktree).2829```bash30# Detect default branch31DEFAULT=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@' || echo main)3233git checkout "$DEFAULT"34git pull --ff-only origin "$DEFAULT" # skip if no remote35git status # working tree MUST be clean36git log --oneline -537```3839**Spec-only pre-kickoff** — before enforcing the clean-tree gate, check whether dirty files are spec artifacts:4041```bash42DIRTY=$(git status --porcelain | awk '{print $2}')43NON_SPEC=$(echo "$DIRTY" | grep -v '^specs/' || true)4445if [ -z "$DIRTY" ]; then46 : # clean — proceed47elif [ -z "$NON_SPEC" ]; then48 # spec-only dirty tree — offer auto-commit49 echo "Dirty spec artifacts: $(echo $DIRTY | tr '\n' ' ')"50 read -p "Commit spec artifacts before kickoff? [Y/n]: " CONFIRM51 CONFIRM=${CONFIRM:-Y}52 if [[ "$CONFIRM" =~ ^[Yy] ]]; then53 git add specs/54 git commit -m "chore(state): checkpoint before kickoff"55 fi56else57 echo "Dirty tree: $NON_SPEC (not a spec artifact). Stash or commit before proceeding."58 exit 159fi60```6162- **Spec artifacts** match `specs/` — state.yaml, epics YAMLs, execution-status.yaml, etc.63- **Non-spec dirty files** (src/, scripts/, SKILL.md, …) still enforce the full clean-tree gate.64- If not on `$DEFAULT` after checkout, stop and fix before continuing.6566### 3. Pre-flight & Conflict Resolution6768Before creating the worktree, verify the target environment is clean:6970```bash71# 1. Check for existing directory72ls -d ../<task-slug> 2>/dev/null7374# 2. Check for existing branch75git branch --list <task-slug>7677# 3. Check for "ghost" worktrees (metadata exists but directory is gone)78git worktree list | grep "<task-slug>"79```8081**Handling Conflicts:**82- **Directory exists:** If `../<task-slug>` already exists, ask the user if they want to use it or delete it.83- **Branch exists:** If the branch exists but no worktree is attached, ask to use the existing branch (`git worktree add ../<task-slug> <task-slug>`) or delete it.84- **Ghost worktree:** If `git worktree list` shows the path but the directory is missing, run `git worktree prune` to clear the stale metadata. `bash scripts/cleanup-worktrees.sh` does this plus reports any worktree whose branch is already merged or deleted — advisory only, it prints the `git worktree remove`/`git branch -d` commands rather than running them, so review before acting.8586### 4. Create worktree + branch8788```bash89# From the main repo root (not another worktree)90git worktree add ../<task-slug> -b <task-slug>91cd ../<task-slug>92```9394If the user prefers a branch without a worktree:95```bash96git checkout -b <task-slug>97```9899### 4. Verify clean baseline100101> **HARD GATE (e39s02):** Acquire story lock in `specs/agent-locks.yaml` before running tests.102103```bash104LOCK="specs/agent-locks.yaml"; STORY="<story-id>"105if [ -f "$LOCK" ]; then106 python3 -c "107import yaml,sys,datetime108d=yaml.safe_load(open('$LOCK'))or{'locks':[]}109for l in d['locks']:110 if l['story_id']=='$STORY':print(f'LOCKED by {l[\"locked_by\"]} at {l[\"locked_at\"]}');sys.exit(1)111d['locks'].append({'story_id':'$STORY','locked_by':'agent: build-epic','locked_at':datetime.datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ'),'files_touched':[]})112yaml.dump(d,open('$LOCK','w'),default_flow_style=False)113print(f'LOCK ACQUIRED: $STORY')114"115fi116```117118If locked: abort. If unlocked: entry added, proceed.119120Run **Preflight** (from `CLAUDE.md` Commands table, or `BP_PREFLIGHT` from `bash scripts/bp-read-agents.sh`) and confirm green before writing any code:121122```bash123# Preflight — project's full local verification stack124# bigpowers example:125npm run compliance && bash scripts/run-verification-gates.sh126127# Or project-specific from CLAUDE.md / AGENTS.md128```129130- [ ] Preflight passes (all chained gates green)131- [ ] No type errors (`npm run typecheck` or equivalent, if not in Preflight)132- [ ] No lint errors (`npm run lint` or equivalent, if not in Preflight)133134If Preflight is red, **stop** — route to `quick-fix` or `fix-bug`. Fix before kickoff continues.135136### 5. Confirm readiness137138Report: `✓ Preflight green` + branch + worktree. Suggest next: `develop-tdd` or `execute-plan`.139140## Handoff141142Gate: READY -> next: develop-tdd143Writes: state.yaml handoff.next_skill = develop-tdd144
Also in danielvm-git/bigpowers
Diff this repo’s formatsOne repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| danielvm-git/bigpowers.cursor/rules/align-grid.mdc · 114 | Cursor rules | lint-formatdo-notagent-behaviour | 65/100 | 3 days ago | |
| danielvm-git/bigpowers.cursor/rules/assess-impact.mdc · 114 | Cursor rules | testtesting-strategydeployment | 66/100 | 3 days ago | |
| danielvm-git/bigpowers.cursor/rules/audit-code.mdc · 114 | Cursor rules | setuptestlint-formatstyle+4 | 66/100 | 3 days ago | |
| danielvm-git/bigpowers.cursor/rules/audit-plan.mdc · 114 | Cursor rules | buildteststylegit | 74/100 | 3 days ago | |
| danielvm-git/bigpowers.cursor/rules/build-epic.mdc · 114 | Cursor rules | buildgit | 58/100 | 3 days ago | |
| danielvm-git/bigpowers.cursor/rules/change-request.mdc · 114 | Cursor rules | no sections | 48/100 | 3 days ago | |
| danielvm-git/bigpowers.cursor/rules/commit-message.mdc · 114 | Cursor rules | lint-formatstyletypesgit+3 | 82/100 | 3 days ago | |
| danielvm-git/bigpowers.cursor/rules/compose-workflow.mdc · 114 | Cursor rules | styledo-notagent-behaviour | 65/100 | 3 days ago | |
| danielvm-git/bigpowers.cursor/rules/context7-mcp.mdc · 114 | Cursor rules | style | 54/100 | 3 days ago | |
| danielvm-git/bigpowers.cursor/rules/craft-skill.mdc · 114 | Cursor rules | stylearchgitdo-not | 69/100 | 3 days ago | |
| danielvm-git/bigpowers.cursor/rules/deepen-architecture.mdc · 114 | Cursor rules | testtesting-strategydo-not | 57/100 | 3 days ago | |
| danielvm-git/bigpowers.cursor/rules/define-language.mdc · 114 | Cursor rules | lint-formatdo-not | 65/100 | 3 days ago | |
| danielvm-git/bigpowers.cursor/rules/define-success.mdc · 114 | Cursor rules | no sections | 4/100 | 3 days ago | |
| danielvm-git/bigpowers.cursor/rules/delegate-task.mdc · 114 | Cursor rules | git | 62/100 | 3 days ago | |
| danielvm-git/bigpowers.cursor/rules/deploy.mdc · 114 | Cursor rules | setupbuildtestdeployment | 77/100 | 3 days ago | |
| danielvm-git/bigpowers.cursor/rules/design-interface.mdc · 114 | Cursor rules | styleagent-behaviour | 58/100 | 3 days ago | |
| danielvm-git/bigpowers.cursor/rules/develop-tdd.mdc · 114 | Cursor rules | teststylearchtesting-strategy+5 | 85/100 | 3 days ago | |
| danielvm-git/bigpowers.cursor/rules/diagnose-root.mdc · 114 | Cursor rules | no sections | 39/100 | 3 days ago | |
| danielvm-git/bigpowers.cursor/rules/diagnose-stall.mdc · 114 | Cursor rules | no sections | 44/100 | 3 days ago | |
| danielvm-git/bigpowers.cursor/rules/dispatch-agents.mdc · 114 | Cursor rules | git | 54/100 | 3 days ago |
Diff against .cursor/rules/align-grid.mdc Diff against .cursor/rules/assess-impact.mdc Diff against .cursor/rules/audit-code.mdc Diff against .cursor/rules/audit-plan.mdc Diff against .cursor/rules/build-epic.mdc Diff against .cursor/rules/change-request.mdc Diff against .cursor/rules/commit-message.mdc Diff against .cursor/rules/compose-workflow.mdc Diff against .cursor/rules/context7-mcp.mdc Diff against .cursor/rules/craft-skill.mdc Diff against .cursor/rules/deepen-architecture.mdc Diff against .cursor/rules/define-language.mdc Diff against .cursor/rules/define-success.mdc Diff against .cursor/rules/delegate-task.mdc Diff against .cursor/rules/deploy.mdc Diff against .cursor/rules/design-interface.mdc Diff against .cursor/rules/develop-tdd.mdc Diff against .cursor/rules/diagnose-root.mdc Diff against .cursor/rules/diagnose-stall.mdc Diff against .cursor/rules/dispatch-agents.mdc
Similar configs
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| danielvm-git/bigpowers.windsurf/rules/organize-workspace.md · 114 | Windsurf rules | buildstylegitdeployment+2 | 89/100 | 3 days ago | |
| danielvm-git/bigpowers.windsurf/rules/guard-git.md · 114 | Windsurf rules | stylearchgitsecurity+2 | 89/100 | 3 days ago | |
| danielvm-git/bigpowers.windsurf/rules/quick-fix.md · 114 | Windsurf rules | teststylegitdeployment+1 | 85/100 | 3 days ago | |
| danielvm-git/bigpowers.windsurf/rules/develop-tdd.md · 114 | Windsurf rules | teststylearchtesting-strategy+5 | 85/100 | 3 days ago | |
| danielvm-git/bigpowers.windsurf/rules/session-state.md · 114 | Windsurf rules | lint-formatstyleagent-behaviour | 82/100 | 3 days ago | |
| danielvm-git/bigpowers.windsurf/rules/commit-message.md · 114 | Windsurf rules | lint-formatstyletypesgit+3 | 82/100 | 3 days ago | |
| danielvm-git/bigpowers.windsurf/rules/extract-design.md · 114 | Windsurf rules | lint-formatstyledependenciesui | 82/100 | 3 days ago | |
| danielvm-git/bigpowers.windsurf/rules/setup-environment.md · 114 | Windsurf rules | setupstylesecuritydo-not+1 | 81/100 | 3 days ago |
