fix-bug

Fix Bug from GitHub Issue

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "fix-bug" with this command: npx skills add bytebase/dbhub/bytebase-dbhub-fix-bug

Fix Bug from GitHub Issue

Systematic workflow for turning a GitHub issue into a working fix in the DBHub codebase.

Workflow

  • Fetch → 2. Analyze → 3. Locate → 4. Reproduce → 5. Plan → 6. Implement → 7. Verify → 8. PR

Step 1: Fetch Issue

From URL: https://github.com/owner/repo/issues/123

gh issue view 123 --json title,body,labels,comments,state

From another repo

gh issue view 123 --repo owner/repo --json title,body,labels,comments,state

Input How to fetch

https://github.com/owner/repo/issues/42

gh issue view 42 --repo owner/repo

#42 or 42

gh issue view 42 (current repo)

owner/repo#42

gh issue view 42 --repo owner/repo

Step 2: Analyze Issue

Extract from the issue:

  • What's broken: Expected vs actual behavior

  • Reproduction steps: How to trigger the bug

  • Environment: Database type, connection method (DSN, SSH tunnel, TOML config), transport (stdio/HTTP)

  • Labels/comments: May reveal affected area or prior investigation

  • Linked PRs/issues: Check for related context

Step 3: Locate Relevant Code

Use the issue details to identify which part of the codebase is affected. DBHub has a clear modular structure — most bugs fall into one of these areas:

Bug Category Where to Look Key Files

Connection failures Connector implementations src/connectors/{db-type}/index.ts , src/connectors/manager.ts

SQL execution errors Tool handlers src/tools/execute-sql.ts , src/utils/allowed-keywords.ts

Schema/table listing Search tool src/tools/search-objects.ts

DSN parsing issues Parser logic src/connectors/{db-type}/index.ts (DSNParser), src/utils/dsn-obfuscate.ts , src/utils/safe-url.ts

SSH tunnel problems Tunnel utilities src/utils/ssh-tunnel.ts , src/utils/ssh-config-parser.ts

TOML config issues Config loading src/config/toml-loader.ts , src/types/config.ts

Multi-database routing Manager & tools src/connectors/manager.ts , src/utils/tool-handler-helpers.ts

Custom tool issues Custom handler src/tools/custom-tool-handler.ts , src/tools/registry.ts

HTTP transport Server setup src/server.ts

Read-only violations SQL validation src/utils/allowed-keywords.ts , src/utils/sql-parser.ts

Row limiting SQL rewriting src/utils/sql-row-limiter.ts

API endpoint issues API handlers src/api/sources.ts , src/api/requests.ts

AWS IAM auth Token signing src/utils/aws-rds-signer.ts

Search for error messages, function names, or file paths mentioned in the issue. Trace the code path from entry point to the failure.

Step 4: Reproduce

If integration tests exist for the area: Write a failing test that captures the bug. DBHub's test infrastructure makes this straightforward:

  • Database connector bugs → extend existing integration test in src/connectors/tests/

  • Utility bugs → add cases to existing unit tests in src/utils/tests/

  • Tool handler bugs → add to src/tools/tests/

  • Config bugs → add to src/config/tests/

Use the test fixtures in src/fixtures/ for multi-database or readonly/max_rows scenarios.

If no test infrastructure applies: Trace the code path and confirm the logic flaw by reading.

Step 5: Plan the Fix

For non-trivial fixes (multi-file, architectural impact): use EnterPlanMode .

For simple fixes (single function, clear root cause): proceed directly.

Step 6: Implement

  • Fix the root cause, not just the symptom

  • Keep changes minimal and focused

  • Follow existing code conventions (see CLAUDE.md for style guide)

  • Use parameterized queries for any database operations

  • Validate inputs with zod schemas where appropriate

Step 7: Verify

Run the relevant tests to confirm the fix:

pnpm test:unit # Quick check — no Docker needed pnpm test src/path/to/test.ts # Run the specific test file pnpm test:integration # Full integration suite if needed

Check that:

  • The failing test (if written) now passes

  • No existing tests regressed

  • The diff fully addresses the issue

Step 8: Create PR

Create a branch:

git checkout -b fix/issue-123

Commit changes referencing the issue:

git add <changed-files> git commit -m "$(cat <<'EOF' Fix: <short description>

Closes #123 EOF )"

Push and create the PR:

git push -u origin fix/issue-123 gh pr create --title "Fix: <short description>" --body "$(cat <<'EOF'

Summary

<What was broken and how this fixes it>

Changes

<Bullet list of changes>

Closes #123

Test plan

  • Existing tests pass

  • New test covers the bug scenario (if applicable) EOF )"

Return the PR URL to the user.

Common Mistakes

  • Fixing symptoms instead of root cause: Trace the full code path before patching

  • Skipping reproduction: A fix without a repro is a guess

  • Scope creep: Fix the reported issue, don't refactor surrounding code

  • Missing edge cases: Check if the fix handles related scenarios mentioned in comments

  • Not testing with the right database: If the bug is database-specific, test with that connector

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

dbhub

No summary provided by upstream source.

Repository SourceNeeds Review
General

testing

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

fix-bug

No summary provided by upstream source.

Repository SourceNeeds Review