Skip to content

Replace migrating-dbt-core-to-fusion with comprehensive triage skill#86

Merged
b-per merged 12 commits intomainfrom
feature/fusion-migration-triage-skill
Mar 6, 2026
Merged

Replace migrating-dbt-core-to-fusion with comprehensive triage skill#86
b-per merged 12 commits intomainfrom
feature/fusion-migration-triage-skill

Conversation

@venkaa28
Copy link
Contributor

@venkaa28 venkaa28 commented Mar 3, 2026

Summary

  • Replace the existing migrating-dbt-core-to-fusion skill with a triage-focused skill that classifies migration errors into 4 actionable categories: auto-fixable, guided fixes, needs input, and blocked on Fusion updates
  • Add two new reference files (error-patterns-reference.md, classification-categories.md) and remove the old ones (custom_configuration.md, dynamic_sql.md, misspelled_config_keys.md)
  • Add two eval scenarios (fusion-migration-triage-basic, fusion-migration-triage-blocked) using the repo's skill-eval framework with pre-captured dbt compile output so no live dbt-fusion binary is required
  • Bump dbt-migration plugin version from 1.0.1 to 1.1.0

Why this change

The existing skill is a step-by-step migration workflow that attempts to fix everything. The new triage skill is more honest about what's fixable vs blocked:

Old skill New triage skill
Approach Linear workflow (run autofix → fix remaining → compile) Classify first, then fix progressively
Transparency Attempts all fixes, may dead-end on engine gaps Explicitly categorizes blocked items (Category D)
User agency Agent-driven User approves Category B fixes, decides Category C
Error catalog 3 reference files for specific patterns Comprehensive pattern catalog covering YAML, packages, config/API, SQL/Jinja, static analysis, and engine gaps

Validation

  • python scripts/validate_repo.py passes all checks related to our changes (the only failure is a pre-existing review_run_results.md link issue in using-dbt-for-analytics-engineering)
  • All reference files are reachable via markdown links from SKILL.md
  • SKILL.md frontmatter matches repo conventions (name, description, allowed-tools, compatibility, metadata)
  • Eval scenarios include pre-captured dbt_compile_output.txt so they don't require a live Fusion binary

Test plan

  • Verify python scripts/validate_repo.py passes (only pre-existing failure in unrelated skill)
  • Review SKILL.md content for accuracy of error patterns and classification categories
  • Review eval scenarios: fusion-migration-triage-basic tests Category B classification, fusion-migration-triage-blocked tests Category D classification
  • Confirm reference files are comprehensive and match SKILL.md summaries

🤖 Generated with Claude Code

Replace the existing migration workflow skill with a triage-focused skill
that classifies errors into 4 actionable categories: auto-fixable, guided
fixes, needs input, and blocked on Fusion updates. This helps users
understand what they can fix vs what requires engine updates.

Changes:
- Replace SKILL.md with triage classification framework
- Add error-patterns-reference.md and classification-categories.md
- Remove old reference files (custom_configuration, dynamic_sql, misspelled_config_keys)
- Add two eval scenarios (basic classification, blocked classification)
- Bump dbt-migration plugin version to 1.1.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@venkaa28 venkaa28 requested a review from a team as a code owner March 3, 2026 17:59
venkaa28 and others added 3 commits March 3, 2026 10:17
Port remaining eval-harness tasks to the skill-eval framework:
- Cat A: static analysis in analyses (auto-fixable)
- Cat B: dict.meta_get error, empty SELECT, unexpected config keys,
         unused schema entries, YAML syntax error
- Cat C: hardcoded FQN permission error (needs user input)

All 9 triage scenarios (18 total runs) pass successfully.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The truncate() filter issue has a valid workaround ([:64] slicing) that
isn't technical debt. Update grading criteria to accept either a blocked
classification or a clean workaround suggestion.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add eval scenario using the seed materialization dispatch bug
(dbt-fusion#1345) — a real Fusion engine bug with NO user-side
workaround. This tests that the agent correctly identifies
blocked issues and does NOT attempt fixes.

Also expand error-patterns-reference.md with missing patterns
from the original skill spec:
- Package lockfile issues (dbt1001)
- Source without tables (dbt0102)
- Misspelled config keys after autofix
- PIVOT IN ANY static analysis
- Package incompatibility guidance
- Connection errors (dbt1308)
- Engine crash signals (panic!, RUST_BACKTRACE)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
venkaa28 and others added 4 commits March 3, 2026 13:09
…earch behavior

Major fixes:
- Fix skill path in all skill-sets.yaml (was skills/migrating-dbt-core-to-fusion,
  should be skills/dbt-migration/skills/migrating-dbt-core-to-fusion)
- Replace all fake compile output with real `fs compile` output
- Update config_api scenario to test config.require('key_in_meta') pattern
  which actually errors in current Fusion (config.require('meta').key works now)
- Use real dbt.log for static analysis scenario
- Use real Fusion compile output for hardcoded FQN (dbt0214)
- Remove unreproducible seed dispatch bug scenario
- Reframe blocked scenario to test GitHub issue search behavior
- Add WebFetch and gh CLI to blocked scenario allowed_tools
- Strengthen Category D language in SKILL.md and classification-categories.md

Verified: blocked eval now successfully searches GitHub, finds issue #1318,
references the fix PR, and provides actionable context to the user.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix yaml-syntax compile output to include actual error line.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…contexts

These were accidentally committed from local fs compile runs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link

@eliasdefaria eliasdefaria left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work!

venkaa28 and others added 4 commits March 4, 2026 15:26
Per skill authoring best practices, reference files over 100 lines
should include a TOC so Claude can see the full scope when previewing.
Align with dbt-migration plugin version bump for the triage skill rewrite.
@b-per b-per merged commit c26b434 into main Mar 6, 2026
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants