Skip to content

Fix Semantic Layer for Fusion metric discovery #4

Fix Semantic Layer for Fusion metric discovery

Fix Semantic Layer for Fusion metric discovery #4

name: "Wizard — PR review"
on:
pull_request:
types: [opened, synchronize, reopened]
paths:
- "dbt_project/**"
workflow_dispatch:
inputs:
pr_number:
description: "PR number to review"
required: true
type: string
permissions:
contents: read
pull-requests: write
jobs:
review:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install dbt Wizard CLI
run: curl -fsSL https://cli.getdbt.com/install-wizard.sh | bash
- name: Get PR details
id: pr
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
if [[ -n "${{ inputs.pr_number }}" ]]; then
PR_NUM="${{ inputs.pr_number }}"
else
PR_NUM="${{ github.event.pull_request.number }}"
fi
PR_TITLE=$(gh pr view "$PR_NUM" --json title -q '.title')
{
echo "number=${PR_NUM}"
echo "title=${PR_TITLE}"
} >> "$GITHUB_OUTPUT"
- name: Review PR (gpt-5.5)
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR_NUMBER: ${{ steps.pr.outputs.number }}
PR_TITLE: ${{ steps.pr.outputs.title }}
run: |
wizard review \
--base ${{ github.base_ref || 'main' }} \
--title "${PR_TITLE}" \
-m gpt-5.5 \
--json \
-o review-output.md \
"You are reviewing PR #${PR_NUMBER}: '${PR_TITLE}'.
Use AGENTS.md and .claude/skills/dbt-development/dbt_skill.md as your reference.
For each changed file in dbt_project/, check:
1. Naming: model prefixes (stg_, fct_, dim_), column naming, CTE naming.
2. Tests: required tests present for new/modified models.
3. Modeling: correct materialization, clean CTE structure, no business logic in staging.
4. Risk: does the change modify grain, remove columns, change materialization,
or touch contracted models? Classify per AGENTS.md 'Fix Risk Classification'.
5. General: SQL correctness, downstream impact, missing schema.yml entries.
Post your review as a comment on PR #${PR_NUMBER} using gh CLI.
Start with a one-line summary: approve, request changes, or comment.
List specific findings with file and line references." \
2>&1 | tee review-log.jsonl
echo "::group::Review output"
cat review-output.md 2>/dev/null || echo "No output"
echo "::endgroup::"
echo "::group::Token usage"
grep -o '"usage":{[^}]*}' review-log.jsonl 2>/dev/null | tail -5 || true
echo "::endgroup::"