Skip to content

Latest commit

Β 

History

History
94 lines (70 loc) Β· 3.37 KB

File metadata and controls

94 lines (70 loc) Β· 3.37 KB

Agent Instructions

See AGENT_INSTRUCTIONS.md for full instructions.

This file exists for compatibility with tools that look for AGENTS.md.

Key Sections

  • Issue Tracking - How to use bd for work management
  • Development Guidelines - Code standards and testing
  • Visual Design System - Status icons, colors, and semantic styling for CLI output

Visual Design Anti-Patterns

NEVER use emoji-style icons (πŸ”΄πŸŸ πŸŸ‘πŸ”΅βšͺ) in CLI output. They cause cognitive overload.

ALWAYS use small Unicode symbols with semantic colors:

  • Status: β—‹ ◐ ● βœ“ ❄
  • Priority: ● P0 (filled circle with color)

See AGENT_INSTRUCTIONS.md for full development guidelines.

Agent Warning: Interactive Commands

DO NOT use bd edit - it opens an interactive editor ($EDITOR) which AI agents cannot use.

Use bd update with flags instead:

bd update <id> --description "new description"
bd update <id> --title "new title"
bd update <id> --design "design notes"
bd update <id> --notes "additional notes"
bd update <id> --acceptance "acceptance criteria"

Testing Commands (No Ambiguity)

  • Default local test command: make test (or ./scripts/test.sh).
  • Full CGO-enabled suite: make test-full-cgo (or ./scripts/test-cgo.sh ./...).
  • On macOS, do not run raw CGO_ENABLED=1 go test ./... unless ICU flags are set; use the script/Make target above.
  • If you need package- or test-scoped CGO runs:
./scripts/test-cgo.sh ./cmd/bd/...
./scripts/test-cgo.sh -run '^TestName$' ./cmd/bd/...

Non-Interactive Shell Commands

ALWAYS use non-interactive flags with file operations to avoid hanging on confirmation prompts.

Shell commands like cp, mv, and rm may be aliased to include -i (interactive) mode on some systems, causing the agent to hang indefinitely waiting for y/n input.

Use these forms instead:

# Force overwrite without prompting
cp -f source dest           # NOT: cp source dest
mv -f source dest           # NOT: mv source dest
rm -f file                  # NOT: rm file

# For recursive operations
rm -rf directory            # NOT: rm -r directory
cp -rf source dest          # NOT: cp -r source dest

Other commands that may prompt:

  • scp - use -o BatchMode=yes for non-interactive
  • ssh - use -o BatchMode=yes to fail instead of prompting
  • apt-get - use -y flag
  • brew - use HOMEBREW_NO_AUTO_UPDATE=1 env var

Landing the Plane (Session Completion)

When ending a work session, you MUST complete ALL steps below. Work is NOT complete until git push succeeds.

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. PUSH TO REMOTE - This is MANDATORY:
    git pull --rebase
    git push
    git status  # MUST show "up to date with origin"
  5. Clean up - Clear stashes, prune remote branches
  6. Verify - All changes committed AND pushed
  7. Hand off - Provide context for next session

CRITICAL RULES:

  • Work is NOT complete until git push succeeds
  • NEVER stop before pushing - that leaves work stranded locally
  • NEVER say "ready to push when you are" - YOU must push
  • If push fails, resolve and retry until it succeeds