forge-workflow 0.0.8 → 0.0.10

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 (135) hide show
  1. package/.claude/commands/dev.md +2 -2
  2. package/.claude/commands/plan.md +2 -2
  3. package/.claude/commands/premerge.md +2 -2
  4. package/.claude/commands/review.md +5 -2
  5. package/.claude/commands/ship.md +6 -5
  6. package/.claude/commands/status.md +4 -4
  7. package/.claude/rules/greptile-review-process.md +4 -4
  8. package/.cline/workflows/dev.md +2 -2
  9. package/.cline/workflows/plan.md +2 -2
  10. package/.cline/workflows/premerge.md +2 -2
  11. package/.cline/workflows/review.md +5 -2
  12. package/.cline/workflows/ship.md +6 -5
  13. package/.cline/workflows/status.md +4 -4
  14. package/.codex/skills/dev/SKILL.md +2 -2
  15. package/.codex/skills/plan/SKILL.md +2 -2
  16. package/.codex/skills/premerge/SKILL.md +2 -2
  17. package/.codex/skills/review/SKILL.md +5 -2
  18. package/.codex/skills/ship/SKILL.md +6 -5
  19. package/.codex/skills/status/SKILL.md +4 -4
  20. package/.cursor/commands/dev.md +2 -2
  21. package/.cursor/commands/plan.md +2 -2
  22. package/.cursor/commands/premerge.md +2 -2
  23. package/.cursor/commands/review.md +5 -2
  24. package/.cursor/commands/ship.md +6 -5
  25. package/.cursor/commands/status.md +4 -4
  26. package/.github/prompts/dev.prompt.md +2 -2
  27. package/.github/prompts/plan.prompt.md +2 -2
  28. package/.github/prompts/premerge.prompt.md +2 -2
  29. package/.github/prompts/review.prompt.md +5 -2
  30. package/.github/prompts/ship.prompt.md +6 -5
  31. package/.github/prompts/status.prompt.md +4 -4
  32. package/.github/workflows/beads-to-github.yml +44 -11
  33. package/.github/workflows/github-to-beads.yml +11 -8
  34. package/.kilocode/workflows/dev.md +2 -2
  35. package/.kilocode/workflows/plan.md +2 -2
  36. package/.kilocode/workflows/premerge.md +2 -2
  37. package/.kilocode/workflows/review.md +5 -2
  38. package/.kilocode/workflows/ship.md +6 -5
  39. package/.kilocode/workflows/status.md +4 -4
  40. package/.opencode/commands/dev.md +2 -2
  41. package/.opencode/commands/plan.md +2 -2
  42. package/.opencode/commands/premerge.md +2 -2
  43. package/.opencode/commands/review.md +5 -2
  44. package/.opencode/commands/ship.md +6 -5
  45. package/.opencode/commands/status.md +4 -4
  46. package/.roo/commands/dev.md +2 -2
  47. package/.roo/commands/plan.md +2 -2
  48. package/.roo/commands/premerge.md +2 -2
  49. package/.roo/commands/review.md +5 -2
  50. package/.roo/commands/ship.md +6 -5
  51. package/.roo/commands/status.md +4 -4
  52. package/AGENTS.md +10 -9
  53. package/CLAUDE.md +12 -0
  54. package/README.md +12 -6
  55. package/bin/forge.js +24 -8
  56. package/docs/BEADS_GITHUB_SYNC.md +32 -2
  57. package/docs/EXAMPLES.md +22 -22
  58. package/docs/ROADMAP.md +3 -3
  59. package/docs/TOOLCHAIN.md +150 -160
  60. package/lib/agents/codex.plugin.json +3 -0
  61. package/lib/agents-config.js +18 -12
  62. package/lib/beads-bootstrap.js +225 -0
  63. package/lib/beads-health-check.js +55 -10
  64. package/lib/beads-setup.js +104 -28
  65. package/lib/beads-sync-scaffold.js +11 -6
  66. package/lib/codex-skills.js +54 -1
  67. package/lib/commands/_issue.js +11 -1
  68. package/lib/commands/issues.js +49 -0
  69. package/lib/commands/plan.js +5 -2
  70. package/lib/commands/recommend.js +22 -1
  71. package/lib/commands/setup.js +247 -27
  72. package/lib/commands/ship.js +188 -5
  73. package/lib/commands/status.js +187 -19
  74. package/lib/commands/team.js +11 -1
  75. package/lib/commands/test.js +125 -25
  76. package/lib/commands/validate.js +232 -9
  77. package/lib/commands/worktree.js +27 -54
  78. package/lib/dep-guard/keyword-ripple.js +184 -0
  79. package/lib/detect-worktree.js +9 -10
  80. package/lib/forge-issues.js +326 -0
  81. package/lib/issue-sync/authority.js +100 -0
  82. package/lib/issue-sync/github-pull.js +184 -0
  83. package/lib/issue-sync/import-primitives.js +98 -0
  84. package/lib/issue-sync/legacy-link-bridge.js +436 -0
  85. package/lib/issue-sync/link-store.js +292 -0
  86. package/lib/issue-sync/project-github.js +123 -0
  87. package/lib/issue-sync/reconcile.js +195 -0
  88. package/lib/issue-sync/schema.js +126 -0
  89. package/lib/lefthook-check.js +5 -2
  90. package/lib/project-memory.js +564 -0
  91. package/lib/runtime-health.js +100 -12
  92. package/lib/setup-action-log.js +2 -0
  93. package/lib/setup-summary-renderer.js +15 -11
  94. package/lib/smart-status/conflicts.js +205 -0
  95. package/lib/smart-status/scoring.js +177 -0
  96. package/lib/status/beads-snapshot.js +102 -0
  97. package/lib/status/presenter.js +65 -0
  98. package/lib/workflow/enforce-stage.js +14 -8
  99. package/lib/workflow/state-manager.js +349 -0
  100. package/package.json +12 -4
  101. package/scripts/beads-context.sh +124 -5
  102. package/scripts/beads-context.test.js +21 -4
  103. package/scripts/beads-migrate-to-dolt.sh +7 -0
  104. package/scripts/beads-upgrade-smoke.sh +263 -0
  105. package/scripts/behavioral-judge.sh +115 -11
  106. package/scripts/benchmark.js +349 -63
  107. package/scripts/dep-guard-analyze.js +52 -17
  108. package/scripts/dep-guard-keyword-ripple.js +29 -0
  109. package/scripts/dep-guard-render-review.js +86 -0
  110. package/scripts/dep-guard.sh +45 -222
  111. package/scripts/forge-team/lib/hooks.sh +1 -1
  112. package/scripts/forge-team/lib/sync-github.sh +160 -28
  113. package/scripts/forge-team/lib/verify.sh +1 -1
  114. package/scripts/forge-team/lib/workload.sh +56 -27
  115. package/scripts/forge-team/tests/sync-github.test.sh +195 -58
  116. package/scripts/forge-team/tests/workload.test.sh +35 -4
  117. package/scripts/github-beads-sync/index.mjs +122 -98
  118. package/scripts/github-beads-sync/mapping.mjs +54 -0
  119. package/scripts/github-beads-sync/reverse-sync-cli.mjs +2 -2
  120. package/scripts/github-beads-sync/reverse-sync.mjs +31 -7
  121. package/scripts/github-beads-sync/run-bd.mjs +4 -2
  122. package/scripts/lib/beads-migrate-to-dolt.mjs +503 -0
  123. package/scripts/preflight.sh +181 -0
  124. package/scripts/smart-status-score.js +31 -0
  125. package/scripts/smart-status-sessions.js +51 -0
  126. package/scripts/smart-status.sh +84 -330
  127. package/scripts/sync-agentic-workflow.js +48 -0
  128. package/scripts/sync-utils.sh +39 -0
  129. package/scripts/test-ci-shard.js +244 -0
  130. package/scripts/test-dashboard.js +188 -52
  131. package/scripts/test-full-suite.js +186 -0
  132. package/scripts/test-profile.js +278 -0
  133. package/scripts/test.js +335 -38
  134. package/scripts/validate.js +143 -0
  135. package/scripts/validate.sh +18 -1
package/docs/TOOLCHAIN.md CHANGED
@@ -31,190 +31,175 @@ Complete reference for all tools integrated with the Forge workflow.
31
31
 
32
32
  ---
33
33
 
34
- ## Beads - Git-Backed Issue Tracking
34
+ ## Shell Model
35
35
 
36
- **Package**: `@beads/bd`
37
- **Repository**: [github.com/steveyegge/beads](https://github.com/steveyegge/beads)
36
+ Forge commands and repo scripts run under the shell shown below:
37
+
38
+ | Platform | Shell used by Forge commands and scripts |
39
+ | --- | --- |
40
+ | Windows | Git Bash for helper-backed Forge stage flows |
41
+ | macOS/Linux | Default login shell |
42
+
43
+ Windows gotchas:
44
+
45
+ - Forge runtime health enforces Git Bash on Windows for helper-backed flows and reports `Git Bash is required on Windows for helper-backed flows.` when it is missing.
46
+ - Native PowerShell is still used by some bootstrap paths, such as Beads installation, but it is not the enforced shell for helper-backed stage execution.
47
+ - WSL may be useful for adjacent development tasks, but it is not the Windows shell policy currently enforced by Forge runtime checks.
48
+
49
+ ---
50
+
51
+ ## Beads - Dolt-Backed Issue Tracking
52
+
53
+ **Package**: `@beads/bd`
54
+ **Repository**: [github.com/steveyegge/beads](https://github.com/steveyegge/beads)
38
55
  **Purpose**: Distributed issue tracking designed for AI coding agents
39
56
 
40
- ### Why Beads?
57
+ ### Current Forge Target
41
58
 
42
- - **Persists across sessions** - Issues survive context clearing, compaction, new chats
43
- - **Git-backed** - Version controlled, mergeable, team-shareable
44
- - **Dependency tracking** - Know what blocks what
45
- - **Ready detection** - `bd ready` finds unblocked work automatically
46
- - **AI-optimized** - JSON output, semantic compaction, audit trails
59
+ - Forge now targets the stable Beads `v1.0.0` release for repo setup and CI.
60
+ - Routine team sync still goes through `forge sync`.
61
+ - Use `bd` directly for Beads features Forge does not wrap yet, such as `bd init`, `bd comments`, `bd dep`, `bd blocked`, `bd backup`, and `bd dolt *`.
47
62
 
48
- ### Installation
63
+ ### Install or Update Beads
49
64
 
50
- **Auto-installation** (Recommended):
65
+ **Recommended**:
51
66
  ```bash
52
67
  bunx forge setup
53
- # Prompts: "Install Beads? (y/n)"
54
- # Automatically installs and initializes
55
- # On Windows: uses PowerShell installer (npm @beads/bd has an EPERM bug on Windows)
68
+ bd --version
56
69
  ```
57
70
 
58
- **Manual installation**:
71
+ **Manual install**:
59
72
  ```bash
60
- # macOS / Linux (global)
61
- bun add -g @beads/bd
62
- bd init
63
-
64
- # macOS / Linux (local)
65
- bun add -d @beads/bd
66
- bunx bd init
67
-
68
- # Windows (global) — use PowerShell installer, NOT npm/bun add -g
73
+ # Windows
69
74
  irm https://raw.githubusercontent.com/steveyegge/beads/main/install.ps1 | iex
70
- bd init
75
+ bd --version
71
76
 
72
- # Or with bunx (macOS/Linux, no install needed)
73
- bunx @beads/bd init
77
+ # CI / pinned Linux install
78
+ BD_VERSION="1.0.0"
79
+ BD_URL="https://github.com/steveyegge/beads/releases/download/v${BD_VERSION}/beads_${BD_VERSION}_linux_amd64.tar.gz"
80
+ mkdir -p "$HOME/.local/bin"
81
+ curl -fsSL "$BD_URL" | tar -xz -C "$HOME/.local/bin" bd
82
+ chmod +x "$HOME/.local/bin/bd"
74
83
  ```
75
84
 
76
- > **Windows note**: The `npm install -g @beads/bd` postinstall script uses `Expand-Archive`, which triggers an EPERM file-locking error on Windows (issue #1031, closed "not planned"). Use the PowerShell installer above instead.
85
+ Verify the installed CLI before using it:
86
+
87
+ ```bash
88
+ bd --version
89
+ bd doctor
90
+ ```
77
91
 
78
- ### File Structure
92
+ ### Supported Repo Layout
79
93
 
80
- After `bd init`, creates `.beads/` directory:
94
+ Forge treats `.beads/` as the repo-local Beads home directory. The layout in this repository currently includes:
81
95
 
82
- ```
96
+ ```text
83
97
  .beads/
84
- ├── issues.jsonl # Issue data (git-tracked, one JSON per line)
85
- ├── beads.db # SQLite cache (git-ignored, fast queries)
86
- ├── metadata.json # Database metadata
87
- ├── config.yaml # User configuration
88
- ├── interactions.jsonl # Agent audit log
89
- └── .gitignore # Ignores beads.db
98
+ ├── config.yaml
99
+ ├── issues.jsonl
100
+ ├── metadata.json
101
+ ├── team-map.jsonl
102
+ ├── hooks/
103
+ └── .gitignore
104
+ ```
105
+
106
+ Legacy local database cache files are no longer part of the supported Forge setup instructions. When you need JSONL snapshots for migration verification or CI diffing, generate them explicitly with `bd backup --force`.
107
+
108
+ ### Migrate Legacy SQLite Data
109
+
110
+ Use the repo wrapper instead of hand-editing `.beads/`:
111
+
112
+ ```bash
113
+ bash scripts/beads-migrate-to-dolt.sh
90
114
  ```
91
115
 
92
- **Dual-database architecture**: JSONL for git versioning, SQLite for fast local queries. Background daemon keeps them in sync.
116
+ Default paths used by the wrapper:
117
+
118
+ - `--project-root`: current working directory
119
+ - `--legacy-backup-dir`: `.beads/backup`
120
+ - `--snapshot-root`: `.beads-migration-snapshots`
121
+ - `--migrated-dir`: `.beads-migrated`
122
+ - `--export-dir`: `.beads-migrated-export`
123
+
124
+ What the wrapper does:
93
125
 
94
- ### Complete Command Reference
126
+ 1. Snapshots the current `.beads/` directory into `.beads-migration-snapshots/<timestamp>/current-beads`.
127
+ 2. Restores the legacy JSONL backup into a fresh migrated workspace.
128
+ 3. Exports a fresh backup snapshot for parity verification.
129
+ 4. Verifies issue IDs, dependency edges, comment IDs, config keys, and record counts.
130
+ 5. Writes `.beads-migrated/migration-manifest.json` on success.
95
131
 
96
- #### Initialization
132
+ rollback behavior:
133
+
134
+ - The wrapper automatically restores the pre-migration `.beads/` snapshot if parity verification fails.
135
+ - If you need to inspect or restore manually, use the timestamped snapshot under `.beads-migration-snapshots/`.
136
+
137
+ See the script help for explicit path overrides:
97
138
 
98
139
  ```bash
99
- bd init # Initialize in project
100
- bd init --stealth # Local-only (don't commit to repo)
101
- bd init --contributor # Contributor mode
102
- bd init --prefix PROJ # Custom issue prefix (PROJ-xxx)
140
+ bash scripts/beads-migrate-to-dolt.sh --help
103
141
  ```
104
142
 
105
- #### Issue Management
143
+ ### Post-Upgrade Smoke Verification
144
+
145
+ Run the repo smoke harness after upgrading:
106
146
 
107
147
  ```bash
108
- # Create issues
109
- bd create "Title" # Basic issue
110
- bd create "Title" --type feature # With type (feature, bug, chore, etc.)
111
- bd create "Title" --priority 1 # With priority (0=critical, 4=backlog)
112
- bd create "Title" -p 0 -l "urgent,backend" # P0 with labels
113
-
114
- # View issues
115
- bd show <id> # Detailed view with audit trail
116
- bd list # All issues
117
- bd list --status open # Filter by status
118
- bd list --priority 1 # Filter by priority
119
- bd list --assignee bob # Filter by assignee
120
- bd list --label bug # Filter by label (AND logic)
121
- bd list --label-any bug,urgent # Filter by label (OR logic)
122
- bd list --type feature # Filter by type
123
- bd list --title-contains "auth" # Search titles
124
- bd list --limit 10 # Limit results
125
-
126
- # Update issues
127
- bd update <id> --status in_progress # Change status
128
- bd update <id> --priority 2 # Change priority
129
- bd update <id> --assignee bob # Assign
130
- bd update <id> --title "New title" # Update title
131
- bd update <id> --description "..." # Update description
132
- bd update <id> --notes "..." # Add notes
133
- bd update <id> --label-add urgent # Add label
134
-
135
- # Complete issues
136
- bd close <id> # Close single issue
137
- bd close <id1> <id2> <id3> # Close multiple (efficient)
138
- bd close <id> --reason "Completed auth" # Close with reason
139
- bd delete <id> # Delete issue
140
- bd delete <id> --cascade # Delete with dependents
141
- ```
142
-
143
- #### Workflow Commands
148
+ bash scripts/beads-upgrade-smoke.sh
149
+ ```
150
+
151
+ The harness records a machine-readable summary at `.artifacts/beads-upgrade-smoke/summary.json` by default and exercises this sequence:
152
+
153
+ 1. `bd create` primary smoke issue
154
+ 2. `bd create` dependent smoke issue
155
+ 3. `bd list --json --limit=0`
156
+ 4. `bd show <id> --json`
157
+ 5. `bd dep add <child> <parent>`
158
+ 6. `bd close <id>` cleanup for both smoke issues
159
+ 7. `bd sync` compatibility check
160
+
161
+ If any command fails, the summary captures `failedStep`, command output, and cleanup state. This is intentional: the harness does not silently substitute a different command for `bd sync`.
162
+
163
+ ### Day-to-Day Commands
144
164
 
145
165
  ```bash
146
166
  # Find work
147
- bd ready # Issues with NO open blockers (start here!)
148
- bd ready --priority 1 # Filter ready work by priority
149
- bd blocked # Issues that ARE blocked
150
-
151
- # Dependencies
152
- bd dep add <child> <parent> # child depends on parent (blocks)
153
- bd dep add <child> <parent> --type related # Soft reference (no blocking)
154
- bd dep add <child> <parent> --type parent-child # Hierarchical
155
- bd dep remove <child> <parent> # Remove dependency
156
- bd dep tree <id> # Visualize dependency tree
157
- bd dep cycles # Detect cycles
158
-
159
- # Comments
160
- bd comments <id> # View comments
161
- bd comments <id> "Comment text" # Add comment
162
-
163
- # Git sync
164
- bd sync # Export to JSONL, commit, push
165
- bd sync --status # Check sync status
166
- bd hooks install # Install git hooks for auto-sync
167
-
168
- # Maintenance
169
- bd stats # Project statistics
170
- bd doctor # Check for issues
171
- bd admin compact --days 90 # Compact old closed issues
172
- ```
173
-
174
- #### Issue Statuses
175
-
176
- - `open` - Not started
177
- - `in_progress` - Being worked on
178
- - `blocked` - Waiting on something
179
- - `completed` - Done
180
- - `on_hold` - Paused
181
- - `cancelled` - Won't do
182
-
183
- #### Priority Levels
184
-
185
- | Priority | Meaning | Usage |
186
- |----------|---------|-------|
187
- | 0 (P0) | Critical | Drop everything, fix now |
188
- | 1 (P1) | High | Do this sprint |
189
- | 2 (P2) | Medium | Planned work |
190
- | 3 (P3) | Low | Nice to have |
191
- | 4 (P4) | Backlog | Someday/maybe |
192
-
193
- #### Dependency Types
194
-
195
- | Type | Blocks Ready? | Use Case |
196
- |------|---------------|----------|
197
- | `blocks` | YES | Hard dependency |
198
- | `related` | NO | Soft reference |
199
- | `parent-child` | YES | Hierarchy |
200
- | `discovered-from` | NO | Found during work |
167
+ forge ready
168
+ forge show <id>
169
+ forge claim <id>
170
+
171
+ # Issue operations
172
+ forge create "Title"
173
+ forge list
174
+ forge update <id> --priority 2
175
+ forge close <id>
176
+
177
+ # Direct beads operations
178
+ bd comments add <id> "Progress update"
179
+ bd dep add <child> <parent>
180
+ bd dep cycles
181
+ bd backup --force
182
+ bd dolt status
183
+
184
+ # Routine repo sync
185
+ forge sync
186
+ ```
201
187
 
202
188
  ### Session Workflow
203
189
 
204
190
  ```bash
205
191
  # Start of session
206
- bd ready # What can I work on?
207
- bd show <id> # Review the issue
208
- bd update <id> --status in_progress
192
+ forge ready
193
+ forge show <id>
194
+ forge claim <id>
209
195
 
210
196
  # During work
211
- bd comments <id> "Progress update"
212
- bd update <id> --notes "Found edge case"
197
+ bd comments add <id> "Progress update"
198
+ forge update <id> --notes "Found edge case"
213
199
 
214
200
  # End of session
215
- bd close <id> # If done, or:
216
- bd update <id> --status blocked --comment "Needs API response"
217
- bd sync # Always sync at end!
201
+ forge close <id>
202
+ forge sync
218
203
  ```
219
204
 
220
205
  ---
@@ -541,7 +526,7 @@ gh issue create --title "..." --body "..."
541
526
 
542
527
  ### Beads (`bd`) — Minimum Version
543
528
 
544
- **Minimum version**: v0.49.x
529
+ **Recommended stable version**: `v1.0.0`
545
530
  **Check installed version**:
546
531
  ```bash
547
532
  bd --version
@@ -549,14 +534,17 @@ bd --version
549
534
 
550
535
  **Install / Update**:
551
536
  ```bash
552
- # macOS / Linux
553
- bun add -g @beads/bd
537
+ # Recommended
538
+ bunx forge setup
554
539
 
555
540
  # Windows — use PowerShell installer (npm has EPERM bug)
556
541
  irm https://raw.githubusercontent.com/steveyegge/beads/main/install.ps1 | iex
557
542
  ```
558
543
 
559
- > **Why v0.49.x?** Earlier versions lack the `bd ready` dependency-aware query, `bd sync --status`, and the dual-database (JSONL + SQLite) architecture that Forge relies on.
544
+ > **Why Forge + Beads?** Forge wraps the supported day-to-day issue workflow
545
+ > (`forge ready`, `forge create`, `forge close`, `forge sync`) while Beads
546
+ > remains the underlying store for initialization, dependencies, comments, and
547
+ > Dolt-backed sync internals.
560
548
 
561
549
  ---
562
550
 
@@ -564,14 +552,14 @@ irm https://raw.githubusercontent.com/steveyegge/beads/main/install.ps1 | iex
564
552
 
565
553
  | Stage | Tools Used |
566
554
  |-------|------------|
567
- | `/status` | `bd ready`, `bd list`, `git status` |
555
+ | `/status` | `forge ready`, `forge list`, `git status` |
568
556
  | `/plan` (Phase 2) | Parallel AI, Context7, grep.app, codebase exploration |
569
- | `/plan` | `bd create`, `git checkout -b` |
570
- | `/dev` | Tests, code, `bd update`, `/tasks save` |
557
+ | `/plan` | `forge create`, `git checkout -b` |
558
+ | `/dev` | Tests, code, `forge update`, `/tasks save` |
571
559
  | `/validate` | Type check, lint, tests, SonarCloud |
572
- | `/ship` | `bd update --status done`, `gh pr create` |
560
+ | `/ship` | `forge close`, `gh pr create` |
573
561
  | `/review` | `gh pr view`, Greptile, SonarCloud |
574
- | `/premerge` | `bd sync`, doc updates, hand off PR |
562
+ | `/premerge` | `forge sync`, doc updates, hand off PR |
575
563
  | `/verify` | Documentation cross-check |
576
564
 
577
565
  ---
@@ -582,13 +570,15 @@ irm https://raw.githubusercontent.com/steveyegge/beads/main/install.ps1 | iex
582
570
 
583
571
  ```bash
584
572
  bd init # Initialize
585
- bd ready # Find unblocked work
586
- bd create "Title" # Create issue
587
- bd show <id> # View details
588
- bd update <id> --status X # Update status
573
+ forge ready # Find unblocked work
574
+ forge create "Title" # Create issue
575
+ forge show <id> # View details
576
+ forge update <id> --status X # Update status
589
577
  bd dep add <a> <b> # a depends on b
590
- bd close <id> # Complete
591
- bd sync # Git sync
578
+ forge close <id> # Complete
579
+ forge sync # Routine repo sync
580
+ bash scripts/beads-migrate-to-dolt.sh
581
+ bash scripts/beads-upgrade-smoke.sh
592
582
  ```
593
583
 
594
584
  ### GitHub CLI
@@ -626,12 +616,12 @@ irm https://raw.githubusercontent.com/steveyegge/beads/main/install.ps1 | iex
626
616
 
627
617
  **"database locked"**
628
618
  ```bash
629
- bd sync --force
619
+ forge sync
630
620
  ```
631
621
 
632
622
  **Issues not showing after git pull**
633
623
  ```bash
634
- bd sync # Re-imports from JSONL
624
+ forge sync # Re-syncs Beads state through the Forge wrapper
635
625
  ```
636
626
 
637
627
  ### GitHub CLI
@@ -12,6 +12,9 @@
12
12
  "directories": {
13
13
  "skills": ".codex/skills"
14
14
  },
15
+ "installTargets": {
16
+ "skills": "$CODEX_HOME/skills"
17
+ },
15
18
  "setup": {
16
19
  "copyRules": false,
17
20
  "createSkill": true
@@ -220,16 +220,19 @@ Configuration: \`.mcp.json\` or agent-specific config files
220
220
 
221
221
  ## Issue Tracking
222
222
 
223
- Use **Beads** for persistent tracking across sessions:
223
+ Use **Forge's Beads wrapper** for persistent tracking across sessions:
224
224
 
225
225
  \`\`\`bash
226
- bd create "Feature name" # Create issue
227
- bd update <id> --status in_progress # Claim work
228
- bd update <id> --comment "Progress" # Add notes
229
- bd close <id> # Complete
230
- bd sync # Sync with git
226
+ forge create "Feature name" # Create issue
227
+ forge claim <id> # Claim work
228
+ forge update <id> --append-notes "Progress" # Add notes
229
+ forge close <id> # Complete
230
+ forge sync # Sync Beads state
231
231
  \`\`\`
232
232
 
233
+ Use \`bd\` directly only for capabilities Forge does not wrap yet, such as
234
+ \`bd init\`, \`bd comments\`, \`bd dep\`, and \`bd dolt\`.
235
+
233
236
  ## Git Workflow
234
237
 
235
238
  **Branch naming**:
@@ -480,16 +483,19 @@ Configure these MCP servers in \`.mcp.json\`:
480
483
 
481
484
  ## Issue Tracking with Beads
482
485
 
483
- Use **Beads** for persistent tracking across sessions:
486
+ Use **Forge's Beads wrapper** for persistent tracking across sessions:
484
487
 
485
488
  \`\`\`bash
486
- bd create "Feature name" # Create issue
487
- bd update <id> --status in_progress # Claim work
488
- bd update <id> --append-notes "Progress" # Add notes
489
- bd close <id> # Complete
490
- bd sync # Sync with git
489
+ forge create "Feature name" # Create issue
490
+ forge claim <id> # Claim work
491
+ forge update <id> --append-notes "Progress" # Add notes
492
+ forge close <id> # Complete
493
+ forge sync # Sync Beads state
491
494
  \`\`\`
492
495
 
496
+ Use \`bd\` directly only for capabilities Forge does not wrap yet, such as
497
+ \`bd init\`, \`bd comments\`, \`bd dep\`, and \`bd dolt\`.
498
+
493
499
  ## Code Quality Standards
494
500
 
495
501
  ${meta.language === 'TypeScript' ? `