Repository navigation
Replies: 1 comment 2 replies
|
Following up from my comment in #2601. I hit the same "shallow beads" problem and landed on a layered approach. Q3: PRIME.md for creation standards — separate themI split workflow context from quality standards into different layers: PRIME.md loads at session start and tells the agent how beads works. Creation standards ("always include When I mixed both into PRIME.md, the agent treated creation standards as optional context rather than hard constraints. Separating them made enforcement reliable. Q4: Getting agents to fill fields — three layersLayer 1: PRIME.md (workflow context)
Here's the shape of mine (stripped to the universal parts): # Beads Workflow Context
> Run `bd prime` after compaction or new session to reload this.
## Session Protocol
1. `bd ready` — find unblocked work
2. `bd show <id>` — read full context before coding
3. `bd update <id> --claim` — claim work atomically
4. Work, appending notes: `bd update <id> --append-notes="session log"`
5. `bd close <id> --reason="what changed + commit ref"`
## Session Close
Before saying "done", complete ALL steps:
- [ ] git add <files>
- [ ] git commit -m "..."
- [ ] git push
- [ ] bd close <id> --reason="..."
Work is NOT done until `git push` succeeds.
## Field Reference
| Field | Purpose |
|-------|---------|
| `--description` | Requirements (what + why) |
| `--design` | Technical approach (how) |
| `--acceptance` | Definition of done |
| `--append-notes` | Session log (append-only — never `--notes`) |Drop this in Layer 2: Rules or AGENTS.md (behavioral constraints) For Claude Code ( # Beads Quality
- Descriptions must be self-contained — no "as discussed", "per the spec",
or session-dependent references. A fresh agent must be able to work the
bead from `bd show` alone.
- Always include --design for features and tasks
- Always include acceptance criteria for bugs and features
- Use --append-notes (never --notes) for session context
- Close with --reason including commit ref
Layer 3: Validation (catch what slips through)
The "as discussed" fixThis was my worst offender. One rule killed it:
That sentence ended "as discussed" and "per the spec" references. The agent now writes descriptions that stand on their own because the constraint is explicit. Something you may have missedBeads ships with ISSUE_CREATION.md in the claude-plugin. It covers when to ask before creating, field usage (design vs acceptance criteria), and making issues resumable across sessions. If your agents aren't loading this resource, the skill may not be wired up. Your bd-health.shI read your gist. Two design choices worth calling out:
I don't have an equivalent. My quality comes from upstream enforcement (rules prevent bad beads at creation) rather than downstream validation (lint catches them after). Both approaches complement each other — upstream catches more, downstream catches what slips through. Your composition is a real contribution; a built-in Connection to #366You referenced #366 — it's the same root cause seen from two angles. Steve found 17.5% of beads had empty descriptions and shipped a bd-side fix (v0.24+). You're discovering that the bd-side fix isn't enough when agents create dozens of beads in a session. The other half of the fix is agent-side enforcement: rules that make "self-contained descriptions" a hard constraint rather than a suggestion the agent optimizes away under context pressure. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
We adopted beads last week and are running it with AI agents (Claude/Cursor). One persistent problem: agents create shallow, context-dependent beads that a sub-agent cannot pick up cold.
They tend to omit
--designand--acceptanceentirely, skip wiring dependencies, and write descriptions that assume session context ("as discussed", "per the spec") rather than being self-contained. The result is a DAG that looks populated but is not actually executable by a fresh agent.We have added cursor rules enforcing the three dedicated fields and a post-creation gate, which helps when agents follow them. But it surfaces a second problem: the health check surface is fragmented and none of it is composed.
Running
bd doctorgives a reassuring✓ 61 passedwhile silently skipping ~9 checks withSkipped: requires CGO, and never touching content quality or DAG structure at all. A conscientious agent runs it, sees green, and moves on — having missed 96 issues with no## Acceptance Criteriaand several disconnected subgraphs.Here is what we are running manually to get a full picture:
bd doctorbd lintbd swarm validate <epic>bd staleNone of these call each other.
Stopgap we built: a shell script at
.beads/bd-health.shthat composes all four into a single no-argument command. It enumerates all open epics automatically, runsbd doctor+bd lint+bd swarm validate+bd staleacross each, and exits non-zero only on cycles or infrastructure errors (lint warnings and cross-epic dependency warnings surface but do not fail). If anyone wants to check out the stopgap: https://gist.github.com/bath-tub/53f29bbe35f393e10429e2ac9967942cQuestions for the community:
bd healthor similar) that I have missed?bd lintorbd swarm validateinto a git hook or CI so structural problems are caught before push?.beads/PRIME.mdthe right place to inject creation standards so agents receive them at session start — or does that makebd primetoo noisy?Happy to be corrected — we are new to this and may be missing obvious answers.
Looks like similar discussions happened a while back: #366
All reactions