Skip to content

Latest commit

 

History

History
135 lines (102 loc) · 4.46 KB

File metadata and controls

135 lines (102 loc) · 4.46 KB

Project Instructions for AI Agents

This file provides instructions and context for AI coding agents working on this project.

Issue Tracking with bd (beads)

IMPORTANT: This project uses bd (beads) for ALL issue tracking. Do NOT use markdown TODOs, task lists, or other tracking methods.

Why bd?

  • Dependency-aware: Track blockers and relationships between issues
  • Git-friendly: Auto-syncs to JSONL for version control
  • Agent-optimized: JSON output, ready work detection, discovered-from links
  • Prevents duplicate tracking systems and confusion

Quick Start

Check for ready work:

bd ready --json

Create new issues:

⚠️ the --description can't accept \n directly, use --description "$(cat <<'EOF' message here )"

bd create "Issue title" --description="Detailed context" -t bug|feature|task -p 0-4 --json
bd create "Issue title" --description="What this issue is about" -p 1 --deps discovered-from:bd-123 --json

Claim and update:

bd update bd-42 --status in_progress --json
bd update bd-42 --priority 1 --json

Complete work:

bd close bd-42 --reason "Completed" --json

Issue Types

  • bug - Something broken
  • feature - New functionality
  • task - Work item (tests, docs, refactoring)
  • epic - Large feature with subtasks
  • chore - Maintenance (dependencies, tooling)

Priorities

  • 0 - Critical (security, data loss, broken builds)
  • 1 - High (major features, important bugs)
  • 2 - Medium (default, nice-to-have)
  • 3 - Low (polish, optimization)
  • 4 - Backlog (future ideas)

Workflow for AI Agents

  1. Check ready work: bd ready shows unblocked issues
  2. Claim your task: bd update <id> --status in_progress
  3. Work on it: Implement, test, document
  4. Discover new work? Create linked issue:
    • bd create "Found bug" --description="Details about what was found" -p 1 --deps discovered-from:<parent-id>
  5. Complete: bd close <id> --reason "Done"

Auto-Sync

bd automatically syncs with git:

  • Exports to .beads/issues.jsonl after changes (5s debounce)
  • Imports from JSONL when newer (, treat it as it's your last words to pass on into someone newe.g., after git pull)
  • No manual export/import needed!

Important Rules

  • ✅ Use bd for ALL task tracking
  • ✅ Always use --json flag for programmatic use
  • ✅ Link discovered work with discovered-from dependencies
  • ✅ Check bd ready before asking "what should I work on?"
  • ❌ Do NOT create markdown TODO lists
  • ❌ Do NOT use external issue trackers
  • ❌ Do NOT duplicate tracking systems

For more details, see README.md and docs/QUICKSTART.md.

Task Creation

When creating a task, each task should:

  • Assumed that the one that will work on it, ISN'T YOU, but someone else, so be VERY CLEAR about the context
  • Dump all your thinking and context into the task, treat it as it's your last words to pass on into someone new
  • Fulfill the principles
    • Maintainability
    • Usability
    • Accessiblity
    • Performance
    • Scalablity
    • Security
    • Reliability
  • Document
    • Problem that we're trying to solve
    • References of the problem
    • Goal
    • Detailed task description
    • What to do
    • Do's and don't
    • References to related files
    • Current progress
      • tell them to always update this because they can be cut off while working due to token limit, updating this regularly ensures that the progress context continues
    • pnpm check:biome and pnpm check:tsc

Landing the Plane (Session Completion)

When ending a work session, you MUST complete ALL steps below

MANDATORY WORKFLOW:

  1. File issues for remaining work - Create issues for anything that needs follow-up
  2. Run quality gates (if code changed) - Tests, linters, builds
  3. Update issue status - Close finished work, update in-progress items
  4. Verify - All changes committed AND pushed
  5. Hand off - Provide context for next session

CRITICAL RULES:

  • Work is NOT complete until git commit succeeds
  • NEVER stop before commit - that leaves work stranded locally
  • If commit fails, resolve and retry until it succeeds
  • I code alongside you, so if there's unrelated changes, it's from me
  • You will often get get limited by the token limit midway, so update the progress frequently
  • If midway you found task that could be split midway, then split it by creating a new task and update the existing