Help us improve
Share bugs, ideas, or general feedback.
From storj-developer
Regenerate DBX code after making changes to .dbx schema files. Runs code generation, shows the diff summary, validates compilation, and reports errors. Use when the user modifies a .dbx file in satellite/satellitedb/dbx/ or asks to regenerate satellitedb.dbx.go.
npx claudepluginhub storj/claude-plugins --plugin storj-developerHow this skill is triggered — by the user, by Claude, or both
Slash command
/storj-developer:dbx-regenerateThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are helping regenerate the DBX-generated code after changes to .dbx schema files.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
You are helping regenerate the DBX-generated code after changes to .dbx schema files.
DBX (Database Extension) is Storj's schema-first ORM that generates Go code from .dbx schema files. When developers modify .dbx files in satellite/satellitedb/dbx/, the generated code in satellitedb.dbx.go must be regenerated.
This skill:
Follow these steps to regenerate DBX code:
First, check which .dbx files have been modified (optional but helpful for context):
git status satellite/satellitedb/dbx/
This helps understand what schema changes triggered the regeneration.
Execute the code generation:
cd satellite/satellitedb/dbx && go generate
This runs the DBX compiler which:
satellitedb.dbx.go fileExpected output: Should see messages about code generation progress.
After generation completes, show a summary of what changed:
git diff --stat satellite/satellitedb/dbx/satellitedb.dbx.go
Also show a preview of the changes:
git diff satellite/satellitedb/dbx/satellitedb.dbx.go | head -100
What to look for:
Create_, Get_, Update_, Delete_ methods)Ensure the generated code compiles successfully:
go build ./satellite/satellitedb/dbx
If compilation succeeds, the regeneration was successful.
Provide a clear summary to the user:
If successful:
users table")If errors occurred:
Error pattern: parse error, unexpected token, invalid syntax
Cause: Incorrect .dbx syntax (missing commas, invalid field types, etc.)
Fix:
Error pattern: already defined, duplicate definition
Cause: Model or query defined multiple times across .dbx files
Fix:
Error pattern: unknown type, invalid type
Cause: Using a field type that DBX doesn't recognize
Valid DBX types:
text, blob, int, int64, uint, uint64bool, timestamp, float64utimestamp (microsecond timestamp)Fix: Change the field type to a valid DBX type
Error pattern: no primary key defined
Cause: Table definition missing a primary key
Fix: Add a primary key using ( key <field> ) in the model definition
Error pattern: invalid query, unknown read pattern
Cause: Using an incorrect query pattern name
Valid patterns:
read one, read all, read first, read paged, read limitoffset, read scalarupdate, delete, create, countFix: Use a valid query pattern from the list above
Error pattern: circular dependency, import cycle
Cause: .dbx files referencing each other in a circular way
Fix: Restructure the models to remove circular references
After successful regeneration, remind the user to:
make llint LINT_TARGET=./satellite/satellitedb/dbx
The satellitedb.dbx.go file contains:
User_Id_Field)WithTx() methods for transactionsUser modified: satellite/satellitedb/dbx/user.dbx - added last_login timestamp field
Regeneration output:
DBX regenerated successfully!
Changes:
- Modified: User model (added field: last_login)
- New methods: Update_User_LastLogin_By_Id
- Lines changed: +156 -12
Generated methods:
- User.LastLogin field added
- User_LastLogin_Field type added
- Update methods now include last_login in optional fields
Compilation: ✓ Success
Next steps:
1. Review the diff to ensure changes are correct
2. Create a migration to add the last_login column
3. Run tests to ensure compatibility
satellite/satellitedb/dbx/gen/main.goerrs.Class("satellitedb")git diff to see exactly what changed before committing