Skip to main content

refresh-genie-best-practices

Interactively refresh the local Genie best-practices reference from the official Databricks Genie docs. TRIGGER when the user asks to "refresh / update Genie best practices", "check the Databricks docs for new best practices", "are our best practices up to date", or wants to sync genie_validator/prompts/best_practices.md with the latest documentation. Scope is limited to practices that affect Genie space design and configuration.

Jump to install

Source facts

Repository
databricks-solutions/genie-best-practices-agent
Last source activity
May 31, 2026 at 07:57
Detected SKILL.md language
English
Stars
3
Forks
5

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
refresh-genie-best-practices
description
Interactively refresh the local Genie best-practices reference from the official Databricks Genie docs. TRIGGER when the user asks to "refresh / update Genie best practices", "check the Databricks docs for new best practices", "are our best practices up to date", or wants to sync genie_validator/prompts/best_practices.md with the latest documentation. Scope is limited to practices that affect Genie space design and configuration.
# Refresh Genie Best Practices This skill drives an interactive review that keeps the evaluator's local best-practices reference in sync with the official Databricks Genie documentation. It only proposes changes that matter for **Genie space design and configuration** (the scope of this agent) and applies them only after the user approves. Keep relevance high and noise low. Most runs will surface few or zero changes. **Reporting "no relevant updates" is a correct and expected outcome.** Do not invent updates to look productive. When in doubt about whether a finding matters to a Genie space author, drop it. Less is more. ## Files this skill touches All paths are relative to the repo root. - `genie_validator/prompts/best_practices.md` - the authoritative reference (sections 1-6). The thing you update. - `genie_validator/prompts/evaluator_system.md` - the evaluator system prompt. It cites `best_practices.md` **by section number** (sections 1-6, 1-3, 2, 3g, 3h, 4, 5, 6). If you renumber or restructure sections, update these references in the same pass. - `genie_validator/prompts/org_conventions.md` - customer-specific conventions (naming, fiscal calendar, currency/timezone). NOT driven by public docs. Read-only here: only flag conflicts, never auto-edit. - `genie_validator/prompts/report_system.md` - read-only sanity check; it only renders the reference date string. ## Load-bearing constraints (do not break) 1. **Date line format.** Line 3 of `best_practices.md` is exactly `Last updated: YYYY-MM-DD`. It is parsed by `genie_validator/nodes.py` (`re.search(r"Last updated:\s*(\d{4}-\d{2}-\d{2})", ...)`) into `_BEST_PRACTICES_DATE` and shown in the report. Keep this exact format. Update it **last**, and only if at least one edit was applied. 2. **Preserve section numbering.** The evaluator prompt references sections by number. Prefer **additive edits inside the existing section** (1-6 and the 3a-3h subsections). Only restructure if unavoidable, and then mirror every changed reference in `evaluator_system.md`. 3. **No em dashes.** Per repo and global convention, do not use em dashes in any edited markdown. Use a comma, colon, parentheses, or a sentence break. 4. **Match house style.** Concise, imperative bullets that read like the surrounding `best_practices.md` content. ## Procedure ### 1. Load local state Read `best_practices.md` in full (note the `Last updated:` date and the current 1-6 / 3a-3h structure), `org_conventions.md`, and skim `evaluator_system.md` to see which section numbers it cites. Open by telling the user the current `Last updated:` date and how stale that is relative to today, so they can gauge how much drift to expect. ### 2. Fetch the docs WebFetch these six authoritative pages: - https://docs.databricks.com/aws/en/genie/ - https://docs.databricks.com/aws/en/genie/set-up - https://docs.databricks.com/aws/en/genie/tune-quality - https://docs.databricks.com/aws/en/genie/monitor - https://docs.databricks.com/aws/en/genie/best-practices - https://docs.databricks.com/aws/en/genie/troubleshooting Optionally consult https://docs.databricks.com/llms.txt to discover **newly added** adjacent Genie pages not in the list above. Only follow links that are clearly about Genie space authoring. If a fetch fails (restricted egress, etc.), say so explicitly and continue with whatever fetched. Do not silently skip a source. ### 3. Diff against local For each practice the docs describe, classify it: **already covered** / **new** / **changed** (docs now say something different from local). Apply a hard scope filter. KEEP only items that affect Genie **space design and configuration**, for example: - Tables/views in the space, descriptions, hard limits, knowledge-store budget. - Instructions: SQL expressions (measures/filters/fields), example SQL queries, SQL functions, general text instructions, and the instruction priority hierarchy. - Joins and relationship cardinality; synonyms; format assistance; entity matching. - Benchmark question design. - UC data-layer expectations that the evaluator checks (types, PK/FK, naming, descriptions). DROP (out of scope): end-user querying tips, UI click-throughs, billing/quotas, permissions/governance plumbing, release-note chatter, and anything not actionable as an evaluation rule the agent could check against a space config. ### 4. Present a prioritized proposal Present surviving candidates as a single Markdown table, sorted by priority (High first). Use these exact columns: | ID | Prio | Docs | Current local state | Recommendation | |----|------|------|---------------------|----------------| - **ID**: short stable handle (e.g. `A`, `B`, `C`). - **Prio**: `High` / `Medium` / `Low`, by how much the change affects space-design accuracy. - **Docs**: what the docs say now, in one terse phrase. Name the source page in parentheses (e.g. "(tune-quality)"). - **Current local state**: what `best_practices.md` says today: not covered / partial / conflicts. One terse phrase. - **Recommendation**: `Include -> §<section>` or `Skip`, plus a 3-6 word reason. Write for a Genie space author practitioner: sentence fragments, no marketing language, no restating the obvious. Keep each cell short enough to scan. Omit source URLs and "new vs changed" prose from the table; if the user wants detail on a row, give it on request. If nothing clears the scope filter, skip the table: state plainly that the local reference is already aligned with the docs, no changes recommended, and stop here. That is a valid outcome. Then ask the user which IDs to apply. Do not edit anything before they choose. ### 5. Apply approved edits For each approved item: - Edit `best_practices.md` additively within the matching section to preserve numbering and house style. - If a change genuinely requires restructuring sections, update the corresponding `section N` references in `evaluator_system.md` in the same pass so they still point at real headings. ### 6. Org-conventions conflict check Re-read `org_conventions.md` against the applied changes. If a newly added universal practice conflicts with a customer convention (rare), surface the conflict to the user and let them decide. Never edit `org_conventions.md` automatically. ### 7. Bump the date Only if at least one edit was applied, update line 3 of `best_practices.md` to `Last updated: <today in YYYY-MM-DD>`. ### 8. Summarize Report what changed (with section locations), what was skipped and why, and any follow-ups in `evaluator_system.md` or conflicts flagged in `org_conventions.md`. ## Post-edit checks (only when edits were applied) - `grep -n "Last updated:" genie_validator/prompts/best_practices.md` shows the new `YYYY-MM-DD`. - Smoke import still works and the date parses (not "unknown"): `uv run python -c "import genie_validator.nodes as n; print(n._BEST_PRACTICES_DATE)"` - Every `section N` reference in `evaluator_system.md` still maps to a real heading in `best_practices.md`.
View on GitHub