sequel-duckdb 0.2.1 → 0.3.1

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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/lib/sequel/adapters/duckdb.rb +3 -3
  4. data/lib/sequel/adapters/shared/duckdb.rb +17 -17
  5. data/lib/sequel/duckdb/version.rb +1 -1
  6. metadata +21 -60
  7. data/.beads/.beads-credential-key +0 -1
  8. data/.beads/.gitignore +0 -66
  9. data/.beads/README.md +0 -85
  10. data/.beads/config.yaml +0 -56
  11. data/.beads/hooks/post-checkout +0 -24
  12. data/.beads/hooks/post-merge +0 -24
  13. data/.beads/hooks/pre-commit +0 -24
  14. data/.beads/hooks/pre-push +0 -24
  15. data/.beads/hooks/prepare-commit-msg +0 -24
  16. data/.beads/metadata.json +0 -7
  17. data/.kiro/specs/advanced-sql-features-implementation/design.md +0 -26
  18. data/.kiro/specs/advanced-sql-features-implementation/requirements.md +0 -43
  19. data/.kiro/specs/advanced-sql-features-implementation/tasks.md +0 -28
  20. data/.kiro/specs/duckdb-sql-syntax-compatibility/design.md +0 -272
  21. data/.kiro/specs/duckdb-sql-syntax-compatibility/requirements.md +0 -84
  22. data/.kiro/specs/duckdb-sql-syntax-compatibility/tasks.md +0 -107
  23. data/.kiro/specs/edge-cases-and-validation-fixes/requirements.md +0 -32
  24. data/.kiro/specs/integration-test-database-setup/design.md +0 -0
  25. data/.kiro/specs/integration-test-database-setup/requirements.md +0 -117
  26. data/.kiro/specs/sequel-duckdb-adapter/design.md +0 -549
  27. data/.kiro/specs/sequel-duckdb-adapter/requirements.md +0 -202
  28. data/.kiro/specs/sequel-duckdb-adapter/tasks.md +0 -292
  29. data/.kiro/specs/sql-expression-handling-fix/design.md +0 -331
  30. data/.kiro/specs/sql-expression-handling-fix/requirements.md +0 -86
  31. data/.kiro/specs/sql-expression-handling-fix/tasks.md +0 -25
  32. data/.kiro/specs/test-infrastructure-improvements/requirements.md +0 -106
  33. data/.kiro/steering/product.md +0 -26
  34. data/.kiro/steering/structure.md +0 -88
  35. data/.kiro/steering/tech.md +0 -137
  36. data/.kiro/steering/testing.md +0 -213
  37. data/.mdformat.toml +0 -2
  38. data/.rubocop.yml +0 -161
  39. data/.rubocop_todo.yml +0 -323
  40. data/.yardopts +0 -8
  41. data/AGENTS.md +0 -180
  42. data/API_DOCUMENTATION.md +0 -943
  43. data/FINAL_STATUS.md +0 -99
  44. data/MIGRATION_EXAMPLES.md +0 -740
  45. data/PERFORMANCE_OPTIMIZATIONS.md +0 -726
  46. data/REFACTORING_SUMMARY.md +0 -264
  47. data/Rakefile +0 -43
  48. data/TASK_10.2_IMPLEMENTATION_SUMMARY.md +0 -182
  49. data/docs/DUCKDB_SQL_PATTERNS.md +0 -448
  50. data/docs/TASK_12_VERIFICATION_SUMMARY.md +0 -135
  51. data/justfile +0 -50
  52. data/plans/date_arithmetic.md +0 -420
  53. data/plans/engineering/Sequel.md +0 -471
  54. data/plans/engineering/duckdb.md +0 -712
  55. data/plans/engineering/sqlite.md +0 -453
  56. data/plans/mock_connection_bug.md +0 -333
  57. data/plans/mock_without_driver_gem.md +0 -371
  58. data/plans/over_engineering_analysis.md +0 -122
  59. data/plans/schema_management.md +0 -383
  60. data/sig/sequel/duckdb.rbs +0 -6
data/.rubocop_todo.yml DELETED
@@ -1,323 +0,0 @@
1
- # This configuration was generated by
2
- # `rubocop --auto-gen-config --auto-gen-only-exclude --exclude-limit 10000`
3
- # on 2026-02-25 14:47:24 UTC using RuboCop version 1.84.2.
4
- # The point is for the user to remove these configuration records
5
- # one by one as the offenses are removed from the code base.
6
- # Note that changes in the inspected code, or installation of new
7
- # versions of RuboCop, may require this file to be generated again.
8
-
9
- # Offense count: 1
10
- Gemspec/RequiredRubyVersion:
11
- Exclude:
12
- - 'sequel-duckdb.gemspec'
13
-
14
- # Offense count: 1
15
- # This cop supports safe autocorrection (--autocorrect).
16
- # Configuration parameters: EnforcedStyle, IndentationWidth.
17
- # SupportedStyles: with_first_argument, with_fixed_indentation
18
- Layout/ArgumentAlignment:
19
- Exclude:
20
- - 'test/date_arithmetic_test.rb'
21
-
22
- # Offense count: 50
23
- # This cop supports safe autocorrection (--autocorrect).
24
- # Configuration parameters: EnforcedStyle.
25
- # SupportedStyles: empty_lines, empty_lines_except_namespace, empty_lines_special, no_empty_lines, beginning_only, ending_only
26
- Layout/EmptyLinesAroundClassBody:
27
- Exclude:
28
- - 'lib/sequel/adapters/duckdb.rb'
29
- - 'lib/sequel/duckdb/helpers/copier.rb'
30
- - 'lib/sequel/duckdb/helpers/pathifier.rb'
31
- - 'test/advanced_sql_generation_test.rb'
32
- - 'test/copier_test.rb'
33
- - 'test/core_sql_generation_test.rb'
34
- - 'test/database_test.rb'
35
- - 'test/dataset_functionality_test.rb'
36
- - 'test/dataset_test.rb'
37
- - 'test/date_arithmetic_test.rb'
38
- - 'test/end_to_end_test.rb'
39
- - 'test/enhanced_error_mapping_test.rb'
40
- - 'test/error_handling_test.rb'
41
- - 'test/mock_adapter_test.rb'
42
- - 'test/pathifier_test.rb'
43
- - 'test/performance_basic_test.rb'
44
- - 'test/performance_test.rb'
45
- - 'test/schema_introspection_test.rb'
46
- - 'test/schema_metadata_test.rb'
47
- - 'test/schema_test.rb'
48
- - 'test/sequel_conventions_test.rb'
49
- - 'test/spec_helper.rb'
50
- - 'test/sql_test.rb'
51
- - 'test/type_test.rb'
52
-
53
- # Offense count: 14
54
- # This cop supports safe autocorrection (--autocorrect).
55
- # Configuration parameters: EnforcedStyle.
56
- # SupportedStyles: empty_lines, empty_lines_except_namespace, empty_lines_special, no_empty_lines
57
- Layout/EmptyLinesAroundModuleBody:
58
- Exclude:
59
- - 'lib/sequel/adapters/duckdb.rb'
60
- - 'lib/sequel/adapters/shared/duckdb.rb'
61
- - 'lib/sequel/duckdb/version.rb'
62
- - 'test/spec_helper.rb'
63
-
64
- # Offense count: 2
65
- # This cop supports safe autocorrection (--autocorrect).
66
- # Configuration parameters: AllowForAlignment, AllowBeforeTrailingComments, ForceEqualSignAlignment.
67
- Layout/ExtraSpacing:
68
- Exclude:
69
- - 'test/date_arithmetic_test.rb'
70
-
71
- # Offense count: 14
72
- # This cop supports safe autocorrection (--autocorrect).
73
- # Configuration parameters: IndentationWidth.
74
- # SupportedStyles: special_inside_parentheses, consistent, align_brackets
75
- Layout/FirstArrayElementIndentation:
76
- EnforcedStyle: consistent
77
-
78
- # Offense count: 1
79
- # This cop supports safe autocorrection (--autocorrect).
80
- # Configuration parameters: Width, EnforcedStyleAlignWith, AllowedPatterns.
81
- # SupportedStylesAlignWith: start_of_line, relative_to_receiver
82
- Layout/IndentationWidth:
83
- Exclude:
84
- - 'lib/sequel/duckdb/helpers/copier.rb'
85
-
86
- # Offense count: 2
87
- # This cop supports safe autocorrection (--autocorrect).
88
- # Configuration parameters: Max, AllowHeredoc, AllowURI, AllowQualifiedName, URISchemes, AllowRBSInlineAnnotation, AllowCopDirectives, AllowedPatterns, SplitStrings.
89
- # URISchemes: http, https
90
- Layout/LineLength:
91
- Exclude:
92
- - 'lib/sequel/adapters/shared/duckdb.rb'
93
-
94
- # Offense count: 1
95
- # This cop supports safe autocorrection (--autocorrect).
96
- # Configuration parameters: EnforcedStyle.
97
- # SupportedStyles: symmetrical, new_line, same_line
98
- Layout/MultilineMethodCallBraceLayout:
99
- Exclude:
100
- - 'test/date_arithmetic_test.rb'
101
-
102
- # Offense count: 50
103
- # This cop supports safe autocorrection (--autocorrect).
104
- # Configuration parameters: EnforcedStyle, IndentationWidth.
105
- # SupportedStyles: aligned, indented, indented_relative_to_receiver
106
- Layout/MultilineMethodCallIndentation:
107
- Exclude:
108
- - 'test/date_arithmetic_test.rb'
109
-
110
- # Offense count: 4
111
- # This cop supports safe autocorrection (--autocorrect).
112
- # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
113
- # SupportedStyles: space, no_space, compact
114
- # SupportedStylesForEmptyBraces: space, no_space
115
- Layout/SpaceInsideHashLiteralBraces:
116
- Exclude:
117
- - 'test/date_arithmetic_test.rb'
118
-
119
- # Offense count: 1
120
- # This cop supports unsafe autocorrection (--autocorrect-all).
121
- # Configuration parameters: AllowSafeAssignment.
122
- Lint/AssignmentInCondition:
123
- Exclude:
124
- - 'lib/sequel/adapters/shared/duckdb.rb'
125
-
126
- # Offense count: 1
127
- # Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches, IgnoreDuplicateElseBranch.
128
- Lint/DuplicateBranch:
129
- Exclude:
130
- - 'lib/sequel/adapters/duckdb.rb'
131
-
132
- # Offense count: 6
133
- # This cop supports unsafe autocorrection (--autocorrect-all).
134
- Lint/NonAtomicFileOperation:
135
- Exclude:
136
- - 'test/database_test.rb'
137
-
138
- # Offense count: 1
139
- # This cop supports safe autocorrection (--autocorrect).
140
- Lint/RedundantCopDisableDirective:
141
- Exclude:
142
- - 'lib/sequel/adapters/duckdb.rb'
143
-
144
- # Offense count: 1
145
- # This cop supports safe autocorrection (--autocorrect).
146
- # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods, IgnoreNotImplementedMethods, NotImplementedExceptions.
147
- # NotImplementedExceptions: NotImplementedError
148
- Lint/UnusedMethodArgument:
149
- Exclude:
150
- - 'lib/sequel/adapters/shared/duckdb.rb'
151
-
152
- # Offense count: 1
153
- # This cop supports safe autocorrection (--autocorrect).
154
- # Configuration parameters: ContextCreatingMethods, MethodCreatingMethods.
155
- Lint/UselessAccessModifier:
156
- Exclude:
157
- - 'lib/sequel/adapters/shared/duckdb.rb'
158
-
159
- # Offense count: 1
160
- Lint/UselessConstantScoping:
161
- Exclude:
162
- - 'lib/sequel/adapters/shared/duckdb.rb'
163
-
164
- # Offense count: 1
165
- # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes, Max.
166
- Metrics/AbcSize:
167
- Exclude:
168
- - 'lib/sequel/adapters/shared/duckdb.rb'
169
-
170
- # Offense count: 15
171
- # Configuration parameters: CountComments, Max, CountAsOne.
172
- Metrics/ClassLength:
173
- Exclude:
174
- - 'test/advanced_sql_generation_test.rb'
175
- - 'test/core_sql_generation_test.rb'
176
- - 'test/database_test.rb'
177
- - 'test/dataset_functionality_test.rb'
178
- - 'test/dataset_test.rb'
179
- - 'test/date_arithmetic_test.rb'
180
- - 'test/end_to_end_test.rb'
181
- - 'test/error_handling_test.rb'
182
- - 'test/performance_basic_test.rb'
183
- - 'test/performance_test.rb'
184
- - 'test/schema_introspection_test.rb'
185
- - 'test/schema_metadata_test.rb'
186
- - 'test/schema_test.rb'
187
- - 'test/sql_test.rb'
188
- - 'test/type_test.rb'
189
-
190
- # Offense count: 30
191
- # Configuration parameters: CountComments, Max, CountAsOne, AllowedMethods, AllowedPatterns.
192
- Metrics/MethodLength:
193
- Exclude:
194
- - 'lib/sequel/adapters/duckdb.rb'
195
- - 'lib/sequel/adapters/shared/duckdb.rb'
196
- - 'test/database_test.rb'
197
- - 'test/dataset_test.rb'
198
- - 'test/end_to_end_test.rb'
199
- - 'test/enhanced_error_mapping_test.rb'
200
- - 'test/error_handling_test.rb'
201
- - 'test/performance_basic_test.rb'
202
- - 'test/performance_test.rb'
203
- - 'test/schema_introspection_test.rb'
204
- - 'test/schema_metadata_test.rb'
205
- - 'test/sequel_conventions_test.rb'
206
- - 'test/type_test.rb'
207
-
208
- # Offense count: 1
209
- # Configuration parameters: CountComments, Max, CountAsOne.
210
- Metrics/ModuleLength:
211
- Exclude:
212
- - 'lib/sequel/adapters/shared/duckdb.rb'
213
-
214
- # Offense count: 1
215
- # This cop supports safe autocorrection (--autocorrect).
216
- Minitest/AssertPathExists:
217
- Exclude:
218
- - 'test/database_test.rb'
219
-
220
- # Offense count: 26
221
- # This cop supports safe autocorrection (--autocorrect).
222
- Minitest/EmptyLineBeforeAssertionMethods:
223
- Exclude:
224
- - 'test/core_sql_generation_test.rb'
225
- - 'test/database_test.rb'
226
- - 'test/date_arithmetic_test.rb'
227
- - 'test/mock_adapter_test.rb'
228
-
229
- # Offense count: 2
230
- # This cop supports safe autocorrection (--autocorrect).
231
- # Configuration parameters: EnforcedStyle, BlockForwardingName.
232
- # SupportedStyles: anonymous, explicit
233
- Naming/BlockForwarding:
234
- Exclude:
235
- - 'lib/sequel/adapters/duckdb.rb'
236
-
237
- # Offense count: 2
238
- # This cop supports safe autocorrection (--autocorrect).
239
- # Configuration parameters: AllowOnlyRestArgument, UseAnonymousForwarding, RedundantRestArgumentNames, RedundantKeywordRestArgumentNames, RedundantBlockArgumentNames.
240
- # RedundantRestArgumentNames: args, arguments
241
- # RedundantKeywordRestArgumentNames: kwargs, options, opts
242
- # RedundantBlockArgumentNames: blk, block, proc
243
- Style/ArgumentsForwarding:
244
- Exclude:
245
- - 'lib/sequel/adapters/duckdb.rb'
246
-
247
- # Offense count: 1
248
- # This cop supports unsafe autocorrection (--autocorrect-all).
249
- # Configuration parameters: EnforcedStyle, AllowedMethods, AllowedPatterns.
250
- # SupportedStyles: predicate, comparison
251
- Style/NumericPredicate:
252
- Exclude:
253
- - 'lib/sequel/adapters/shared/duckdb.rb'
254
-
255
- # Offense count: 2
256
- # This cop supports unsafe autocorrection (--autocorrect-all).
257
- # Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods, MaxChainLength.
258
- # AllowedMethods: present?, blank?, presence, try, try!
259
- Style/SafeNavigation:
260
- Exclude:
261
- - 'test/date_arithmetic_test.rb'
262
- - 'test/pathifier_test.rb'
263
-
264
- # Offense count: 2
265
- # This cop supports safe autocorrection (--autocorrect).
266
- # Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
267
- # SupportedStyles: single_quotes, double_quotes
268
- Style/StringLiterals:
269
- Exclude:
270
- - 'test/core_sql_generation_test.rb'
271
-
272
- # Offense count: 1
273
- # This cop supports safe autocorrection (--autocorrect).
274
- # Configuration parameters: .
275
- # SupportedStyles: percent, brackets
276
- Style/SymbolArray:
277
- EnforcedStyle: percent
278
- MinSize: 3
279
-
280
- # Offense count: 55
281
- # This cop supports safe autocorrection (--autocorrect).
282
- # Configuration parameters: EnforcedStyleForMultiline.
283
- # SupportedStylesForMultiline: comma, consistent_comma, diff_comma, no_comma
284
- Style/TrailingCommaInArguments:
285
- Exclude:
286
- - 'test/advanced_sql_generation_test.rb'
287
- - 'test/copier_test.rb'
288
- - 'test/dataset_functionality_test.rb'
289
- - 'test/dataset_test.rb'
290
- - 'test/date_arithmetic_test.rb'
291
- - 'test/end_to_end_test.rb'
292
- - 'test/model_test.rb'
293
- - 'test/performance_basic_test.rb'
294
- - 'test/sequel_conventions_test.rb'
295
- - 'test/spec_helper.rb'
296
- - 'test/sql_test.rb'
297
- - 'test/type_test.rb'
298
-
299
- # Offense count: 23
300
- # This cop supports safe autocorrection (--autocorrect).
301
- # Configuration parameters: EnforcedStyleForMultiline.
302
- # SupportedStylesForMultiline: comma, consistent_comma, diff_comma, no_comma
303
- Style/TrailingCommaInArrayLiteral:
304
- Exclude:
305
- - 'test/enhanced_error_mapping_test.rb'
306
- - 'test/error_handling_test.rb'
307
- - 'test/pathifier_test.rb'
308
- - 'test/performance_basic_test.rb'
309
- - 'test/type_test.rb'
310
-
311
- # Offense count: 26
312
- # This cop supports safe autocorrection (--autocorrect).
313
- # Configuration parameters: EnforcedStyleForMultiline.
314
- # SupportedStylesForMultiline: comma, consistent_comma, diff_comma, no_comma
315
- Style/TrailingCommaInHashLiteral:
316
- Exclude:
317
- - 'lib/sequel/adapters/shared/duckdb.rb'
318
- - 'test/database_test.rb'
319
- - 'test/end_to_end_test.rb'
320
- - 'test/error_handling_test.rb'
321
- - 'test/performance_basic_test.rb'
322
- - 'test/performance_test.rb'
323
- - 'test/schema_introspection_test.rb'
data/.yardopts DELETED
@@ -1,8 +0,0 @@
1
- --markup markdown
2
- --markup-provider kramdown
3
- --output-dir doc
4
- --protected
5
- --private
6
- lib/**/*.rb
7
- README.md
8
- CHANGELOG.md
data/AGENTS.md DELETED
@@ -1,180 +0,0 @@
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
-
23
- ```bash
24
- # Force overwrite without prompting
25
- cp -f source dest # NOT: cp source dest
26
- mv -f source dest # NOT: mv source dest
27
- rm -f file # NOT: rm file
28
-
29
- # For recursive operations
30
- rm -rf directory # NOT: rm -r directory
31
- cp -rf source dest # NOT: cp -r source dest
32
- ```
33
-
34
- **Other commands that may prompt:**
35
-
36
- - `scp` - use `-o BatchMode=yes` for non-interactive
37
- - `ssh` - use `-o BatchMode=yes` to fail instead of prompting
38
- - `apt-get` - use `-y` flag
39
- - `brew` - use `HOMEBREW_NO_AUTO_UPDATE=1` env var
40
-
41
- <!-- BEGIN BEADS INTEGRATION profile:full hash:d4f96305 -->
42
-
43
- ## Releases and Commit Messages
44
-
45
- Releases are tag-based and cut weekly by a release agent; nothing about them is
46
- manual for a human. `.github/workflows/release.yml` publishes to rubygems.org
47
- via trusted publishing when a `v*` tag is pushed. To cut one:
48
-
49
- 1. Pick the version from the conventional commits since the last `v*` tag.
50
- While the gem is 0.x, a breaking change bumps the minor version and
51
- anything else bumps the patch.
52
- 2. Set `VERSION` in `lib/sequel/duckdb/version.rb`, run `bundle install` so
53
- `Gemfile.lock` agrees, and add a `CHANGELOG.md` section listing only the
54
- `feat`/`fix`/breaking commits.
55
- 3. Land that commit on main and wait for the `ci` check to go green on it.
56
- 4. Push the matching tag, e.g. `git tag v0.2.1 && git push origin v0.2.1`.
57
- The workflow refuses a tag that does not equal `v` + `VERSION`, or a commit
58
- without a green `ci` check, and it confirms rubygems serves the version.
59
-
60
- Commit types decide what reaches the changelog:
61
-
62
- - `feat:` and `fix:` are ONLY for changes to the shipped gem: what a consumer
63
- of sequel-duckdb would notice.
64
- - Tooling, CI, hooks, the justfile, lint and coverage config, and dependency
65
- bumps are `chore:`, `ci:` or `build:`. Test-only changes are `test:`.
66
- - A breaking change to the gem's API needs `!` after the type or a
67
- `BREAKING CHANGE:` footer.
68
-
69
- ## Issue Tracking with bd (beads)
70
-
71
- **IMPORTANT**: This project uses **bd (beads)** for ALL issue tracking. Do NOT use markdown TODOs, task lists, or other tracking methods.
72
-
73
- ### Why bd?
74
-
75
- - Dependency-aware: Track blockers and relationships between issues
76
- - Git-friendly: Dolt-powered version control with native sync
77
- - Agent-optimized: JSON output, ready work detection, discovered-from links
78
- - Prevents duplicate tracking systems and confusion
79
-
80
- ### Quick Start
81
-
82
- **Check for ready work:**
83
-
84
- ```bash
85
- bd ready --json
86
- ```
87
-
88
- **Create new issues:**
89
-
90
- ```bash
91
- bd create "Issue title" --description="Detailed context" -t bug|feature|task -p 0-4 --json
92
- bd create "Issue title" --description="What this issue is about" -p 1 --deps discovered-from:bd-123 --json
93
- ```
94
-
95
- **Claim and update:**
96
-
97
- ```bash
98
- bd update <id> --claim --json
99
- bd update bd-42 --priority 1 --json
100
- ```
101
-
102
- **Complete work:**
103
-
104
- ```bash
105
- bd close bd-42 --reason "Completed" --json
106
- ```
107
-
108
- ### Issue Types
109
-
110
- - `bug` - Something broken
111
- - `feature` - New functionality
112
- - `task` - Work item (tests, docs, refactoring)
113
- - `epic` - Large feature with subtasks
114
- - `chore` - Maintenance (dependencies, tooling)
115
-
116
- ### Priorities
117
-
118
- - `0` - Critical (security, data loss, broken builds)
119
- - `1` - High (major features, important bugs)
120
- - `2` - Medium (default, nice-to-have)
121
- - `3` - Low (polish, optimization)
122
- - `4` - Backlog (future ideas)
123
-
124
- ### Workflow for AI Agents
125
-
126
- 1. **Check ready work**: `bd ready` shows unblocked issues
127
- 2. **Claim your task atomically**: `bd update <id> --claim`
128
- 3. **Work on it**: Implement, test, document
129
- 4. **Discover new work?** Create linked issue:
130
- - `bd create "Found bug" --description="Details about what was found" -p 1 --deps discovered-from:<parent-id>`
131
- 5. **Complete**: `bd close <id> --reason "Done"`
132
-
133
- ### Auto-Sync
134
-
135
- bd automatically syncs via Dolt:
136
-
137
- - Each write auto-commits to Dolt history
138
- - Use `bd dolt push`/`bd dolt pull` for remote sync
139
- - No manual export/import needed!
140
-
141
- ### Important Rules
142
-
143
- - ✅ Use bd for ALL task tracking
144
- - ✅ Always use `--json` flag for programmatic use
145
- - ✅ Link discovered work with `discovered-from` dependencies
146
- - ✅ Check `bd ready` before asking "what should I work on?"
147
- - ❌ Do NOT create markdown TODO lists
148
- - ❌ Do NOT use external issue trackers
149
- - ❌ Do NOT duplicate tracking systems
150
-
151
- For more details, see README.md and docs/QUICKSTART.md.
152
-
153
- ## Landing the Plane (Session Completion)
154
-
155
- **When ending a work session**, you MUST complete ALL steps below. Work is NOT complete until `git push` succeeds.
156
-
157
- **MANDATORY WORKFLOW:**
158
-
159
- 1. **File issues for remaining work** - Create issues for anything that needs follow-up
160
- 2. **Run quality gates** (if code changed) - Tests, linters, builds
161
- 3. **Update issue status** - Close finished work, update in-progress items
162
- 4. **PUSH TO REMOTE** - This is MANDATORY:
163
- ```bash
164
- git pull --rebase
165
- bd dolt push
166
- git push
167
- git status # MUST show "up to date with origin"
168
- ```
169
- 5. **Clean up** - Clear stashes, prune remote branches
170
- 6. **Verify** - All changes committed AND pushed
171
- 7. **Hand off** - Provide context for next session
172
-
173
- **CRITICAL RULES:**
174
-
175
- - Work is NOT complete until `git push` succeeds
176
- - NEVER stop before pushing - that leaves work stranded locally
177
- - NEVER say "ready to push when you are" - YOU must push
178
- - If push fails, resolve and retry until it succeeds
179
-
180
- <!-- END BEADS INTEGRATION -->