@ahkohd/yagami 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/.beads/.beads-credential-key +1 -0
  2. package/.beads/README.md +81 -0
  3. package/.beads/config.yaml +54 -0
  4. package/.beads/hooks/post-checkout +24 -0
  5. package/.beads/hooks/post-merge +24 -0
  6. package/.beads/hooks/pre-commit +24 -0
  7. package/.beads/hooks/pre-push +24 -0
  8. package/.beads/hooks/prepare-commit-msg +24 -0
  9. package/.beads/metadata.json +7 -0
  10. package/.github/workflows/ci.yml +43 -0
  11. package/.github/workflows/release.yml +115 -0
  12. package/AGENTS.md +150 -0
  13. package/README.md +210 -0
  14. package/biome.json +36 -0
  15. package/config/mcporter.json +8 -0
  16. package/dist/cli/theme.js +202 -0
  17. package/dist/cli/theme.js.map +1 -0
  18. package/dist/cli.js +1883 -0
  19. package/dist/cli.js.map +1 -0
  20. package/dist/config.js +223 -0
  21. package/dist/config.js.map +1 -0
  22. package/dist/daemon.js +745 -0
  23. package/dist/daemon.js.map +1 -0
  24. package/dist/engine/constants.js +131 -0
  25. package/dist/engine/constants.js.map +1 -0
  26. package/dist/engine/deep-research.js +167 -0
  27. package/dist/engine/deep-research.js.map +1 -0
  28. package/dist/engine/defuddle-utils.js +57 -0
  29. package/dist/engine/defuddle-utils.js.map +1 -0
  30. package/dist/engine/github-fetch.js +232 -0
  31. package/dist/engine/github-fetch.js.map +1 -0
  32. package/dist/engine/helpers.js +372 -0
  33. package/dist/engine/helpers.js.map +1 -0
  34. package/dist/engine/limiter.js +75 -0
  35. package/dist/engine/limiter.js.map +1 -0
  36. package/dist/engine/policy.js +313 -0
  37. package/dist/engine/policy.js.map +1 -0
  38. package/dist/engine/runtime-utils.js +65 -0
  39. package/dist/engine/runtime-utils.js.map +1 -0
  40. package/dist/engine/search-discovery.js +275 -0
  41. package/dist/engine/search-discovery.js.map +1 -0
  42. package/dist/engine/url-utils.js +72 -0
  43. package/dist/engine/url-utils.js.map +1 -0
  44. package/dist/engine.js +2030 -0
  45. package/dist/engine.js.map +1 -0
  46. package/dist/mcp.js +282 -0
  47. package/dist/mcp.js.map +1 -0
  48. package/dist/types/cli.js +2 -0
  49. package/dist/types/cli.js.map +1 -0
  50. package/dist/types/config.js +2 -0
  51. package/dist/types/config.js.map +1 -0
  52. package/dist/types/daemon.js +2 -0
  53. package/dist/types/daemon.js.map +1 -0
  54. package/dist/types/engine.js +2 -0
  55. package/dist/types/engine.js.map +1 -0
  56. package/package.json +66 -0
  57. package/packages/pi-yagami-search/README.md +39 -0
  58. package/packages/pi-yagami-search/extensions/yagami-search.ts +273 -0
  59. package/packages/pi-yagami-search/package.json +41 -0
  60. package/src/cli/theme.ts +260 -0
  61. package/src/cli.ts +2226 -0
  62. package/src/config.ts +250 -0
  63. package/src/daemon.ts +990 -0
  64. package/src/engine/constants.ts +147 -0
  65. package/src/engine/deep-research.ts +207 -0
  66. package/src/engine/defuddle-utils.ts +75 -0
  67. package/src/engine/github-fetch.ts +265 -0
  68. package/src/engine/helpers.ts +394 -0
  69. package/src/engine/limiter.ts +97 -0
  70. package/src/engine/policy.ts +392 -0
  71. package/src/engine/runtime-utils.ts +79 -0
  72. package/src/engine/search-discovery.ts +351 -0
  73. package/src/engine/url-utils.ts +86 -0
  74. package/src/engine.ts +2516 -0
  75. package/src/mcp.ts +337 -0
  76. package/src/shims-cli.d.ts +3 -0
  77. package/src/types/cli.ts +7 -0
  78. package/src/types/config.ts +53 -0
  79. package/src/types/daemon.ts +22 -0
  80. package/src/types/engine.ts +194 -0
  81. package/tsconfig.json +18 -0
@@ -0,0 +1 @@
1
+ ���e}4���~ڣ����8+"�Y����
@@ -0,0 +1,81 @@
1
+ # Beads - AI-Native Issue Tracking
2
+
3
+ Welcome to Beads! This repository uses **Beads** for issue tracking - a modern, AI-native tool designed to live directly in your codebase alongside your code.
4
+
5
+ ## What is Beads?
6
+
7
+ Beads is issue tracking that lives in your repo, making it perfect for AI coding agents and developers who want their issues close to their code. No web UI required - everything works through the CLI and integrates seamlessly with git.
8
+
9
+ **Learn more:** [github.com/steveyegge/beads](https://github.com/steveyegge/beads)
10
+
11
+ ## Quick Start
12
+
13
+ ### Essential Commands
14
+
15
+ ```bash
16
+ # Create new issues
17
+ bd create "Add user authentication"
18
+
19
+ # View all issues
20
+ bd list
21
+
22
+ # View issue details
23
+ bd show <issue-id>
24
+
25
+ # Update issue status
26
+ bd update <issue-id> --claim
27
+ bd update <issue-id> --status done
28
+
29
+ # Sync with Dolt remote
30
+ bd dolt push
31
+ ```
32
+
33
+ ### Working with Issues
34
+
35
+ Issues in Beads are:
36
+ - **Git-native**: Stored in Dolt database with version control and branching
37
+ - **AI-friendly**: CLI-first design works perfectly with AI coding agents
38
+ - **Branch-aware**: Issues can follow your branch workflow
39
+ - **Always in sync**: Auto-syncs with your commits
40
+
41
+ ## Why Beads?
42
+
43
+ ✨ **AI-Native Design**
44
+ - Built specifically for AI-assisted development workflows
45
+ - CLI-first interface works seamlessly with AI coding agents
46
+ - No context switching to web UIs
47
+
48
+ 🚀 **Developer Focused**
49
+ - Issues live in your repo, right next to your code
50
+ - Works offline, syncs when you push
51
+ - Fast, lightweight, and stays out of your way
52
+
53
+ 🔧 **Git Integration**
54
+ - Automatic sync with git commits
55
+ - Branch-aware issue tracking
56
+ - Dolt-native three-way merge resolution
57
+
58
+ ## Get Started with Beads
59
+
60
+ Try Beads in your own projects:
61
+
62
+ ```bash
63
+ # Install Beads
64
+ curl -sSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash
65
+
66
+ # Initialize in your repo
67
+ bd init
68
+
69
+ # Create your first issue
70
+ bd create "Try out Beads"
71
+ ```
72
+
73
+ ## Learn More
74
+
75
+ - **Documentation**: [github.com/steveyegge/beads/docs](https://github.com/steveyegge/beads/tree/main/docs)
76
+ - **Quick Start Guide**: Run `bd quickstart`
77
+ - **Examples**: [github.com/steveyegge/beads/examples](https://github.com/steveyegge/beads/tree/main/examples)
78
+
79
+ ---
80
+
81
+ *Beads: Issue tracking that moves at the speed of thought* ⚡
@@ -0,0 +1,54 @@
1
+ # Beads Configuration File
2
+ # This file configures default behavior for all bd commands in this repository
3
+ # All settings can also be set via environment variables (BD_* prefix)
4
+ # or overridden with command-line flags
5
+
6
+ # Issue prefix for this repository (used by bd init)
7
+ # If not set, bd init will auto-detect from directory name
8
+ # Example: issue-prefix: "myproject" creates issues like "myproject-1", "myproject-2", etc.
9
+ # issue-prefix: ""
10
+
11
+ # Use no-db mode: JSONL-only, no Dolt database
12
+ # When true, bd will use .beads/issues.jsonl as the source of truth
13
+ # no-db: false
14
+
15
+ # Enable JSON output by default
16
+ # json: false
17
+
18
+ # Feedback title formatting for mutating commands (create/update/close/dep/edit)
19
+ # 0 = hide titles, N > 0 = truncate to N characters
20
+ # output:
21
+ # title-length: 255
22
+
23
+ # Default actor for audit trails (overridden by BD_ACTOR or --actor)
24
+ # actor: ""
25
+
26
+ # Export events (audit trail) to .beads/events.jsonl on each flush/sync
27
+ # When enabled, new events are appended incrementally using a high-water mark.
28
+ # Use 'bd export --events' to trigger manually regardless of this setting.
29
+ # events-export: false
30
+
31
+ # Multi-repo configuration (experimental - bd-307)
32
+ # Allows hydrating from multiple repositories and routing writes to the correct database
33
+ # repos:
34
+ # primary: "." # Primary repo (where this database lives)
35
+ # additional: # Additional repos to hydrate from (read-only)
36
+ # - ~/beads-planning # Personal planning repo
37
+ # - ~/work-planning # Work planning repo
38
+
39
+ # JSONL backup (periodic export for off-machine recovery)
40
+ # Auto-enabled when a git remote exists. Override explicitly:
41
+ # backup:
42
+ # enabled: false # Disable auto-backup entirely
43
+ # interval: 15m # Minimum time between auto-exports
44
+ # git-push: false # Disable git push (export locally only)
45
+ # git-repo: "" # Separate git repo for backups (default: project repo)
46
+
47
+ # Integration settings (access with 'bd config get/set')
48
+ # These are stored in the database, not in this file:
49
+ # - jira.url
50
+ # - jira.project
51
+ # - linear.url
52
+ # - linear.api-key
53
+ # - github.org
54
+ # - github.repo
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env sh
2
+ # --- BEGIN BEADS INTEGRATION v0.61.0 ---
3
+ # This section is managed by beads. Do not remove these markers.
4
+ if command -v bd >/dev/null 2>&1; then
5
+ export BD_GIT_HOOK=1
6
+ _bd_timeout=${BEADS_HOOK_TIMEOUT:-30}
7
+ if command -v timeout >/dev/null 2>&1; then
8
+ timeout "$_bd_timeout" bd hooks run post-checkout "$@"
9
+ _bd_exit=$?
10
+ if [ $_bd_exit -eq 124 ]; then
11
+ echo >&2 "beads: hook 'post-checkout' timed out after ${_bd_timeout}s — continuing without beads"
12
+ _bd_exit=0
13
+ fi
14
+ else
15
+ bd hooks run post-checkout "$@"
16
+ _bd_exit=$?
17
+ fi
18
+ if [ $_bd_exit -eq 3 ]; then
19
+ echo >&2 "beads: database not initialized — skipping hook 'post-checkout'"
20
+ _bd_exit=0
21
+ fi
22
+ if [ $_bd_exit -ne 0 ]; then exit $_bd_exit; fi
23
+ fi
24
+ # --- END BEADS INTEGRATION v0.61.0 ---
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env sh
2
+ # --- BEGIN BEADS INTEGRATION v0.61.0 ---
3
+ # This section is managed by beads. Do not remove these markers.
4
+ if command -v bd >/dev/null 2>&1; then
5
+ export BD_GIT_HOOK=1
6
+ _bd_timeout=${BEADS_HOOK_TIMEOUT:-30}
7
+ if command -v timeout >/dev/null 2>&1; then
8
+ timeout "$_bd_timeout" bd hooks run post-merge "$@"
9
+ _bd_exit=$?
10
+ if [ $_bd_exit -eq 124 ]; then
11
+ echo >&2 "beads: hook 'post-merge' timed out after ${_bd_timeout}s — continuing without beads"
12
+ _bd_exit=0
13
+ fi
14
+ else
15
+ bd hooks run post-merge "$@"
16
+ _bd_exit=$?
17
+ fi
18
+ if [ $_bd_exit -eq 3 ]; then
19
+ echo >&2 "beads: database not initialized — skipping hook 'post-merge'"
20
+ _bd_exit=0
21
+ fi
22
+ if [ $_bd_exit -ne 0 ]; then exit $_bd_exit; fi
23
+ fi
24
+ # --- END BEADS INTEGRATION v0.61.0 ---
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env sh
2
+ # --- BEGIN BEADS INTEGRATION v0.61.0 ---
3
+ # This section is managed by beads. Do not remove these markers.
4
+ if command -v bd >/dev/null 2>&1; then
5
+ export BD_GIT_HOOK=1
6
+ _bd_timeout=${BEADS_HOOK_TIMEOUT:-30}
7
+ if command -v timeout >/dev/null 2>&1; then
8
+ timeout "$_bd_timeout" bd hooks run pre-commit "$@"
9
+ _bd_exit=$?
10
+ if [ $_bd_exit -eq 124 ]; then
11
+ echo >&2 "beads: hook 'pre-commit' timed out after ${_bd_timeout}s — continuing without beads"
12
+ _bd_exit=0
13
+ fi
14
+ else
15
+ bd hooks run pre-commit "$@"
16
+ _bd_exit=$?
17
+ fi
18
+ if [ $_bd_exit -eq 3 ]; then
19
+ echo >&2 "beads: database not initialized — skipping hook 'pre-commit'"
20
+ _bd_exit=0
21
+ fi
22
+ if [ $_bd_exit -ne 0 ]; then exit $_bd_exit; fi
23
+ fi
24
+ # --- END BEADS INTEGRATION v0.61.0 ---
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env sh
2
+ # --- BEGIN BEADS INTEGRATION v0.61.0 ---
3
+ # This section is managed by beads. Do not remove these markers.
4
+ if command -v bd >/dev/null 2>&1; then
5
+ export BD_GIT_HOOK=1
6
+ _bd_timeout=${BEADS_HOOK_TIMEOUT:-30}
7
+ if command -v timeout >/dev/null 2>&1; then
8
+ timeout "$_bd_timeout" bd hooks run pre-push "$@"
9
+ _bd_exit=$?
10
+ if [ $_bd_exit -eq 124 ]; then
11
+ echo >&2 "beads: hook 'pre-push' timed out after ${_bd_timeout}s — continuing without beads"
12
+ _bd_exit=0
13
+ fi
14
+ else
15
+ bd hooks run pre-push "$@"
16
+ _bd_exit=$?
17
+ fi
18
+ if [ $_bd_exit -eq 3 ]; then
19
+ echo >&2 "beads: database not initialized — skipping hook 'pre-push'"
20
+ _bd_exit=0
21
+ fi
22
+ if [ $_bd_exit -ne 0 ]; then exit $_bd_exit; fi
23
+ fi
24
+ # --- END BEADS INTEGRATION v0.61.0 ---
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env sh
2
+ # --- BEGIN BEADS INTEGRATION v0.61.0 ---
3
+ # This section is managed by beads. Do not remove these markers.
4
+ if command -v bd >/dev/null 2>&1; then
5
+ export BD_GIT_HOOK=1
6
+ _bd_timeout=${BEADS_HOOK_TIMEOUT:-30}
7
+ if command -v timeout >/dev/null 2>&1; then
8
+ timeout "$_bd_timeout" bd hooks run prepare-commit-msg "$@"
9
+ _bd_exit=$?
10
+ if [ $_bd_exit -eq 124 ]; then
11
+ echo >&2 "beads: hook 'prepare-commit-msg' timed out after ${_bd_timeout}s — continuing without beads"
12
+ _bd_exit=0
13
+ fi
14
+ else
15
+ bd hooks run prepare-commit-msg "$@"
16
+ _bd_exit=$?
17
+ fi
18
+ if [ $_bd_exit -eq 3 ]; then
19
+ echo >&2 "beads: database not initialized — skipping hook 'prepare-commit-msg'"
20
+ _bd_exit=0
21
+ fi
22
+ if [ $_bd_exit -ne 0 ]; then exit $_bd_exit; fi
23
+ fi
24
+ # --- END BEADS INTEGRATION v0.61.0 ---
@@ -0,0 +1,7 @@
1
+ {
2
+ "database": "dolt",
3
+ "backend": "dolt",
4
+ "dolt_mode": "server",
5
+ "dolt_database": "yagami",
6
+ "project_id": "a96135a4-29ff-437f-8bca-e6f76c24add5"
7
+ }
@@ -0,0 +1,43 @@
1
+ name: CI
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches:
7
+ - master
8
+ - main
9
+
10
+ jobs:
11
+ quality:
12
+ name: fmt, lint, typecheck, build, pack
13
+ runs-on: ubuntu-latest
14
+
15
+ steps:
16
+ - name: Checkout
17
+ uses: actions/checkout@v6
18
+
19
+ - name: Setup Node
20
+ uses: actions/setup-node@v6
21
+ with:
22
+ node-version: "22"
23
+ cache: npm
24
+
25
+ - name: Install dependencies
26
+ run: npm ci
27
+
28
+ - name: Format check
29
+ run: npm run format:check
30
+
31
+ - name: Lint
32
+ run: npm run lint
33
+
34
+ - name: Typecheck
35
+ run: npm run typecheck
36
+
37
+ - name: Build
38
+ run: npm run build
39
+
40
+ - name: Package smoke
41
+ run: |
42
+ npm pack --dry-run
43
+ npm pack --dry-run ./packages/pi-yagami-search
@@ -0,0 +1,115 @@
1
+ name: Release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ bump_type:
7
+ description: "Version bump type"
8
+ required: true
9
+ type: choice
10
+ options:
11
+ - patch
12
+ - minor
13
+ - major
14
+ dry_run:
15
+ description: "Dry run (no publish, no push)"
16
+ required: false
17
+ type: boolean
18
+ default: false
19
+
20
+ jobs:
21
+ release:
22
+ name: Release to npm
23
+ runs-on: ubuntu-latest
24
+ permissions:
25
+ contents: write
26
+ id-token: write
27
+
28
+ steps:
29
+ - name: Checkout
30
+ uses: actions/checkout@v6
31
+ with:
32
+ fetch-depth: 0
33
+ ssh-key: ${{ secrets.DEPLOY_KEY }}
34
+
35
+ - name: Setup Node
36
+ uses: actions/setup-node@v6
37
+ with:
38
+ node-version: "24"
39
+ registry-url: "https://registry.npmjs.org"
40
+ cache: npm
41
+
42
+ - name: Install dependencies
43
+ run: npm ci
44
+
45
+ - name: Quality gates
46
+ run: |
47
+ npm run format:check
48
+ npm run lint
49
+ npm run typecheck
50
+ npm run build
51
+ npm pack --dry-run
52
+ npm pack --dry-run ./packages/pi-yagami-search
53
+
54
+ - name: Calculate new version
55
+ id: version
56
+ run: |
57
+ current=$(node -p "require('./package.json').version")
58
+ IFS='.' read -r major minor patch <<< "$current"
59
+
60
+ case "${{ inputs.bump_type }}" in
61
+ major) major=$((major + 1)); minor=0; patch=0 ;;
62
+ minor) minor=$((minor + 1)); patch=0 ;;
63
+ patch) patch=$((patch + 1)) ;;
64
+ esac
65
+
66
+ new="${major}.${minor}.${patch}"
67
+ echo "current=$current" >> "$GITHUB_OUTPUT"
68
+ echo "new=$new" >> "$GITHUB_OUTPUT"
69
+ echo "Bumping $current -> $new"
70
+
71
+ - name: Update versions
72
+ run: |
73
+ npm version "${{ steps.version.outputs.new }}" --no-git-tag-version
74
+ npm --prefix ./packages/pi-yagami-search version "${{ steps.version.outputs.new }}" --no-git-tag-version
75
+
76
+ - name: Configure git
77
+ if: ${{ !inputs.dry_run }}
78
+ run: |
79
+ git config user.name "github-actions[bot]"
80
+ git config user.email "github-actions[bot]@users.noreply.github.com"
81
+
82
+ - name: Commit and tag
83
+ if: ${{ !inputs.dry_run }}
84
+ run: |
85
+ BRANCH="${GITHUB_REF_NAME}"
86
+ git add package.json package-lock.json packages/pi-yagami-search/package.json
87
+ git commit -m "chore(release): v${{ steps.version.outputs.new }}"
88
+ git tag "v${{ steps.version.outputs.new }}"
89
+ git push origin "HEAD:${BRANCH}"
90
+ git push origin "v${{ steps.version.outputs.new }}"
91
+
92
+ - name: Verify npm auth
93
+ if: ${{ !inputs.dry_run }}
94
+ run: npm whoami
95
+ env:
96
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
97
+
98
+ - name: Publish to npm
99
+ if: ${{ !inputs.dry_run }}
100
+ run: |
101
+ npm publish --provenance --access public
102
+ npm publish ./packages/pi-yagami-search --provenance --access public
103
+ env:
104
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
105
+
106
+ - name: Dry run summary
107
+ if: ${{ inputs.dry_run }}
108
+ run: |
109
+ echo "## Dry Run Summary" >> "$GITHUB_STEP_SUMMARY"
110
+ echo "- Current version: ${{ steps.version.outputs.current }}" >> "$GITHUB_STEP_SUMMARY"
111
+ echo "- New version: ${{ steps.version.outputs.new }}" >> "$GITHUB_STEP_SUMMARY"
112
+ echo "- Would commit/tag/push v${{ steps.version.outputs.new }}" >> "$GITHUB_STEP_SUMMARY"
113
+ echo "- Would publish yagami and pi-yagami-search to npm" >> "$GITHUB_STEP_SUMMARY"
114
+ npm publish --dry-run --access public
115
+ npm publish ./packages/pi-yagami-search --dry-run --access public
package/AGENTS.md ADDED
@@ -0,0 +1,150 @@
1
+ # Agent Instructions
2
+
3
+ This project uses **bd** (beads) for issue tracking. Run `bd onboard` to get started.
4
+
5
+ ## Quick Reference
6
+
7
+ ```bash
8
+ bd ready # Find available work
9
+ bd show <id> # View issue details
10
+ bd update <id> --claim # Claim work atomically
11
+ bd close <id> # Complete work
12
+ bd dolt push # Push beads data to remote
13
+ ```
14
+
15
+ ## Non-Interactive Shell Commands
16
+
17
+ **ALWAYS use non-interactive flags** with file operations to avoid hanging on confirmation prompts.
18
+
19
+ 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.
20
+
21
+ **Use these forms instead:**
22
+ ```bash
23
+ # Force overwrite without prompting
24
+ cp -f source dest # NOT: cp source dest
25
+ mv -f source dest # NOT: mv source dest
26
+ rm -f file # NOT: rm file
27
+
28
+ # For recursive operations
29
+ rm -rf directory # NOT: rm -r directory
30
+ cp -rf source dest # NOT: cp -r source dest
31
+ ```
32
+
33
+ **Other commands that may prompt:**
34
+ - `scp` - use `-o BatchMode=yes` for non-interactive
35
+ - `ssh` - use `-o BatchMode=yes` to fail instead of prompting
36
+ - `apt-get` - use `-y` flag
37
+ - `brew` - use `HOMEBREW_NO_AUTO_UPDATE=1` env var
38
+
39
+ <!-- BEGIN BEADS INTEGRATION profile:full hash:d4f96305 -->
40
+ ## Issue Tracking with bd (beads)
41
+
42
+ **IMPORTANT**: This project uses **bd (beads)** for ALL issue tracking. Do NOT use markdown TODOs, task lists, or other tracking methods.
43
+
44
+ ### Why bd?
45
+
46
+ - Dependency-aware: Track blockers and relationships between issues
47
+ - Git-friendly: Dolt-powered version control with native sync
48
+ - Agent-optimized: JSON output, ready work detection, discovered-from links
49
+ - Prevents duplicate tracking systems and confusion
50
+
51
+ ### Quick Start
52
+
53
+ **Check for ready work:**
54
+
55
+ ```bash
56
+ bd ready --json
57
+ ```
58
+
59
+ **Create new issues:**
60
+
61
+ ```bash
62
+ bd create "Issue title" --description="Detailed context" -t bug|feature|task -p 0-4 --json
63
+ bd create "Issue title" --description="What this issue is about" -p 1 --deps discovered-from:bd-123 --json
64
+ ```
65
+
66
+ **Claim and update:**
67
+
68
+ ```bash
69
+ bd update <id> --claim --json
70
+ bd update bd-42 --priority 1 --json
71
+ ```
72
+
73
+ **Complete work:**
74
+
75
+ ```bash
76
+ bd close bd-42 --reason "Completed" --json
77
+ ```
78
+
79
+ ### Issue Types
80
+
81
+ - `bug` - Something broken
82
+ - `feature` - New functionality
83
+ - `task` - Work item (tests, docs, refactoring)
84
+ - `epic` - Large feature with subtasks
85
+ - `chore` - Maintenance (dependencies, tooling)
86
+
87
+ ### Priorities
88
+
89
+ - `0` - Critical (security, data loss, broken builds)
90
+ - `1` - High (major features, important bugs)
91
+ - `2` - Medium (default, nice-to-have)
92
+ - `3` - Low (polish, optimization)
93
+ - `4` - Backlog (future ideas)
94
+
95
+ ### Workflow for AI Agents
96
+
97
+ 1. **Check ready work**: `bd ready` shows unblocked issues
98
+ 2. **Claim your task atomically**: `bd update <id> --claim`
99
+ 3. **Work on it**: Implement, test, document
100
+ 4. **Discover new work?** Create linked issue:
101
+ - `bd create "Found bug" --description="Details about what was found" -p 1 --deps discovered-from:<parent-id>`
102
+ 5. **Complete**: `bd close <id> --reason "Done"`
103
+
104
+ ### Auto-Sync
105
+
106
+ bd automatically syncs via Dolt:
107
+
108
+ - Each write auto-commits to Dolt history
109
+ - Use `bd dolt push`/`bd dolt pull` for remote sync
110
+ - No manual export/import needed!
111
+
112
+ ### Important Rules
113
+
114
+ - ✅ Use bd for ALL task tracking
115
+ - ✅ Always use `--json` flag for programmatic use
116
+ - ✅ Link discovered work with `discovered-from` dependencies
117
+ - ✅ Check `bd ready` before asking "what should I work on?"
118
+ - ❌ Do NOT create markdown TODO lists
119
+ - ❌ Do NOT use external issue trackers
120
+ - ❌ Do NOT duplicate tracking systems
121
+
122
+ For more details, see README.md and docs/QUICKSTART.md.
123
+
124
+ ## Landing the Plane (Session Completion)
125
+
126
+ **When ending a work session**, you MUST complete ALL steps below. Work is NOT complete until `git push` succeeds.
127
+
128
+ **MANDATORY WORKFLOW:**
129
+
130
+ 1. **File issues for remaining work** - Create issues for anything that needs follow-up
131
+ 2. **Run quality gates** (if code changed) - Tests, linters, builds
132
+ 3. **Update issue status** - Close finished work, update in-progress items
133
+ 4. **PUSH TO REMOTE** - This is MANDATORY:
134
+ ```bash
135
+ git pull --rebase
136
+ bd dolt push
137
+ git push
138
+ git status # MUST show "up to date with origin"
139
+ ```
140
+ 5. **Clean up** - Clear stashes, prune remote branches
141
+ 6. **Verify** - All changes committed AND pushed
142
+ 7. **Hand off** - Provide context for next session
143
+
144
+ **CRITICAL RULES:**
145
+ - Work is NOT complete until `git push` succeeds
146
+ - NEVER stop before pushing - that leaves work stranded locally
147
+ - NEVER say "ready to push when you are" - YOU must push
148
+ - If push fails, resolve and retry until it succeeds
149
+
150
+ <!-- END BEADS INTEGRATION -->