Skip to content
Back to skills

Bead Workflow

ASecurity

Manage beads correctly including claiming, closing, announcements, and dependencies. Use when starting work on a task, when finishing a task, when the user mentions beads or tasks, or when coordinating with other agents on task ownership.

  • 18 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added June 1, 2026
researchpythonbashdebugginggitsecurity

Works with

  • mcp

Security analysis

A100/100

Scanned June 1, 2026

npx -y skills add majiayu000/claude-skill-registry-data --skill bead-workflow --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Bead Workflow?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Bead Workflow
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-bead-workflow/badge)](https://www.skillsdirectory.com/skills/majiayu000-bead-workflow)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
name: bead-workflow
description: Manage beads correctly including claiming, closing, announcements, and dependencies. Use when starting work on a task, when finishing a task, when the user mentions beads or tasks, or when coordinating with other agents on task ownership.
---

# Bead Workflow

Proper bead lifecycle: claim → work → close.

---

## When This Applies

| Signal | Action |
|--------|--------|
| Starting work on a task | Run claim protocol |
| Finishing a task | Run close protocol |
| User says "claim" or "start" | Run claim protocol |
| User says "done" or "close" | Run close protocol |
| Multiple agents active | Extra care on announcements |

---

## Claim Protocol

```
1. CHECK
   Inbox, reservations, blockers
        ↓
2. CLAIM
   Parent + ALL sub-beads + assignee
        ↓
3. RESERVE
   Files you'll touch
        ↓
4. ANNOUNCE
   [CLAIMED] message to all agents
```

### Step 1: Check

```bash
# What's ready?
bd ready --json

# What's recommended?
bv --robot-next

# Who's active? (multi-agent)
# ReadMcpResourceTool: resource://agents/{project}

# What's reserved?
# Check file_reservation_status
```

### Step 2: Claim

**CRITICAL: Claim parent AND all sub-beads together.**

```bash
bd update {id} --status in_progress --assignee {YOUR_NAME}
bd update {id}.1 --status in_progress --assignee {YOUR_NAME}
bd update {id}.2 --status in_progress --assignee {YOUR_NAME}
# ... all sub-beads
```

Why: If you only claim parent, other agents see sub-beads as "ready" → conflict.

### Step 3: Reserve Files

```python
file_reservation_paths(
    project_key=PROJECT_PATH,
    agent_name=YOUR_NAME,
    paths=["src/module/**", "tests/test_module.py"],
    ttl_seconds=3600,
    exclusive=True,
    reason="{bead-id}: {description}"
)
```

### Step 4: Announce

```python
send_message(
    project_key=PROJECT_PATH,
    sender_name=YOUR_NAME,
    to=[ALL_AGENTS],
    subject="[CLAIMED] {id} - {title}",
    body_md="Starting work on **{id}**.\n\nSub-beads: .1, .2, .3\nFiles: `src/module/**`",
    importance="normal",
    thread_id="{id}"
)
```

---

## Close Protocol

```
1. VERIFY
   Tests pass, ubs clean
        ↓
2. COMMIT
   Include .beads/issues.jsonl
        ↓
3. CLOSE
   Sub-beads FIRST, then parent
        ↓
4. RELEASE
   File reservations
        ↓
5. ANNOUNCE
   [CLOSED] message
```

### Step 1: Verify (MANDATORY GATES)

```bash
# Run tests
pytest  # or your test command

# Security gate (MANDATORY - do not skip)
ubs --staged
```

**Gate requirements:**
- All tests must pass
- `ubs --staged` must return zero high/critical findings
- Medium findings require documented justification

**If `ubs` reports issues:** Fix them. This counts toward your 3-iteration cap.

### Step 2: Commit

```bash
git add -A  # Includes .beads/issues.jsonl
git commit -m "Implement {feature}

Closes {bead-id}"
```

### Step 3: Close

**CRITICAL: Close sub-beads FIRST, then parent.**

```bash
bd close {id}.1 --reason "Completed: {summary}"
bd close {id}.2 --reason "Completed: {summary}"
bd close {id} --reason "Completed: {summary}"
```

### Step 4: Release

```python
release_file_reservations(
    project_key=PROJECT_PATH,
    agent_name=YOUR_NAME
)
```

### Step 5: Announce

```python
send_message(
    project_key=PROJECT_PATH,
    sender_name=YOUR_NAME,
    to=[ALL_AGENTS],
    subject="[CLOSED] {id} - {title}",
    body_md="Completed **{id}**.\n\nFiles changed: ...\nTests: passing\nReservations released.",
    thread_id="{id}"
)
```

---

## TDD-First & Security Gates (2025 Research)

Based on `research/052-llm-security-vulnerabilities.md`, `research/053-feedback-loop-security.md`, and `research/054-tdd-ai-code-gen.md`:

### Before Starting Any Bead

1. **Check if tests exist in bead description**
2. If not, **write tests FIRST** (do not implement without tests)
3. TDD yields 45.97% higher pass@1 rate—this is not optional

### During Implementation

**Max 3 repair iterations per bead.**

After 3 attempts:
1. **STOP** implementation immediately
2. **Spawn spike bead** to investigate root cause
3. **Notify operator** via Agent Mail with `importance: high`

```python
send_message(
    project_key=PROJECT_PATH,
    sender_name=YOUR_NAME,
    to=["operator"],  # or broadcast
    subject="[BLOCKED] {id} - Needs investigation",
    body_md="Bead {id} failed after 3 repair attempts.\n\nLast error: ...\nSpike created: {spike-id}",
    importance="high",
    thread_id="{id}"
)
```

**Why the cap?** Security degrades with repeated self-correction. Models flip-flop on correct answers. Failing fast is safer than debugging loops.

### Before Closing Any Bead

1. Run `ubs --staged`
2. If findings, fix them (counts toward 3-iteration cap)
3. Only close when `ubs` passes with zero high/critical

**Gate:** Bead cannot close if `ubs --staged` reports high/critical findings.

---

## Quick Reference

```bash
# Find work
bd ready --json
bv --robot-next

# Claim (always include sub-beads + assignee)
bd update {id} --status in_progress --assignee YOUR_NAME

# Close (sub-beads first)
bd close {id}.1 --reason "..."
bd close {id} --reason "..."

# Dependencies
bd dep add {child} {blocker} --type blocks
bd dep tree {id}
bd blocked
```

---

## Anti-Patterns

| Don't | Why | Do Instead |
|-------|-----|------------|
| Claim only parent | Sub-beads appear "ready" to others | Claim all sub-beads |
| Skip assignee | Can't track who's working | Always `--assignee` |
| Skip [CLAIMED] | Duplicate work | Always announce |
| Skip [CLOSED] | Stale state | Always announce |
| Close parent first | Sub-beads orphaned | Close sub-beads first |
| Hoard tasks | Blocks others | One task at a time |
| Skip file reservations | Merge conflicts | Reserve before editing |
| **Implement before tests** | 45.97% lower success rate | **TDD-first always** |
| **Skip `ubs --staged`** | ~40% of LLM code has vulnerabilities | **Mandatory gate** |
| **Unlimited repair loops** | Security degrades, models flip-flop | **Max 3 iterations** |
| **Continue after 3 failures** | Wastes time, introduces bugs | **Stop, spike, escalate** |

---

## See Also

- `dependencies.md` — Dependency management patterns
- `multi-agent.md` — Coordination with other agents

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.