こんにちは!システムサポートの寺田です!
Cortex Code は、Snowflake に統合された AI 駆動型のインテリジェントエージェントで、
データ分析・機械学習・エージェント構築などの複雑なタスクを
Snowflake 内で直接実行できる仕組みです。
クロスリージョンが有効になっているアカウントで利用可能です。
Skills は、Cortex Code に「専門的な知識・手順・ワークフロー」を提示するための
拡張モジュールです。
本来 Cortex Code CLI の拡張機能として提供されていましたが、
現在は Snowsight からも利用でき、
ブラウザ上で直感的に Skills を管理・適用できるようになりました。
今回は、Snowsight 上で Cortex Code に Skills を適用し、
SQL を指定したコーディング規約へ楽に修正してくれるのかを検証しました。
本記事でわかること
- Cortex Code に Skills を作成し、適用する方法
Skills の作成
Skills の作成方法は簡単です。
Snowsight の Cortex Code 内の「+」ボタンから「Create Skill」ボタンで作成することができます。

Skills の中身
今回は、送信した SQL をコーディング規約に
沿って修正してくれるような Skills を作成しました。
中身は以下の通りです。
緑文字が、Skills の説明本文です。
Skills は md (マークダウン)で記述されます。
「#」と「-」は、共にSkillsのファイル形式であるmd(マークダウン)の記法です。
「#」は、ヘッダーの意味でブログの見出しと同じ感覚です。
例えば、
#→H1
##→H2
と階層を分けることができます。
「-」は、箇条書きの「・」と同様の意味を持ちます。
説明本文に、SQL例を記述しています。
コーディング修正の精度を高めるために例として記述していますが、
SQL例に関しては、必須ではありません。
---
name: sql_coding_standards
description: SQLコーディング規約に基づいてSQLを修正・レビューする。SQLの整形、命名規則の適用、ベストプラクティスの適用を行う。
---
# SQLコーディング規約チェック・修正スキル
ユーザーがSQLを提示した場合、以下のコーディング規約に基づいて修正し、修正後のSQLを返してください。
## 1. 基本ルール
### 大文字・小文字
- **予約語・キーワード**: 大文字(`SELECT`, `FROM`, `WHERE`, `JOIN` など)
- **テーブル名・カラム名**: スネークケース小文字(`order_items`, `created_at`)
- **エイリアス**: スネークケース小文字(`AS total_amount`)
### インデント
- インデントは **スペース4つ**
- 主要キーワード(`SELECT`, `FROM`, `WHERE`, `GROUP BY` など)は同じレベルに揃える
- カラムリストや条件はキーワードの下にインデント
## 2. SELECT文
```SQL例
SELECT
column_a,
column_b,
SUM(column_c) AS total_c
FROM
database_name.schema_name.table_name AS t
WHERE
t.status = 'active'
AND t.created_at >= '2024-01-01'
GROUP BY
column_a,
column_b
ORDER BY
total_c DESC
;
```
各項目の意味
| 項目 | 内容 |
|---|---|
| name | Skills 名 |
| description | Skills の目的・役割 |
Skills の適用
Skills を適用するには、Cortex Code に質問を入力する前に、
「/」を入力します。
入力すると使用可能な Skills の一覧が表示されるので選択し、
そのまま質問を入力し送信することで、
Skills が適用された状態で、質問することができます。

SQL 文を送信してみる
以下の SQL をそのまま送信してみます。
「この SQL を修正してください」等の指示は一切送信しません。
設定したコーディング通りに修正してくれるでしょうか?
SeLECT
coluMn_a,
column_b,
SUM(column_c) aS toTal_c, ,
count(*)
FROM
database_name.schema_name.table_nAme AS t
WHeRE
t.status = 'active'
AND t.creaTed_at >= '2024-01-01'
OR test = '88'
GRouP By
coLumn_a,
column_b
ORdER BY
total_c DESC
以下の回答が返ってきました。
SQLコーディング規約に基づいて修正しました。問題点と修正後のSQLは以下の通りです:
問題点:
予約語が大文字小文字混在(SeLECT, GRouP By など)
インデントが不統一(タブ、全角スペース混在)
余分なカンマ(toTal_c, の後に ,)
COUNT(*) にエイリアスがない
OR 条件に括弧がなく意図が不明確
セミコロンがない
修正後:
sql
SELECT
column_a,
column_b,
SUM(column_c) AS total_c,
COUNT(*) AS record_count
FROM
database_name.schema_name.table_name AS t
WHERE
(t.status = 'active' AND t.created_at >= '2024-01-01')
OR test = '88'
GROUP BY
column_a,
column_b
ORDER BY
total_c DESC
;
主な修正内容:
予約語をすべて大文字に統一
インデントをスペース4つに統一(全角スペース・タブを除去)
余分なカンマを削除
COUNT(*) に AS record_count エイリアスを追加
OR 条件の論理グループを括弧で明確化
末尾にセミコロンを追加
SQL文だけを送信するだけで、
コーディング規約に沿って、修正してくれました!
まとめ
今回は、Snowsight の Cortex Code に Skills を作成し、
SQL のコーディング規約に沿って自動修正してくれるかを検証しました。
SQL をそのまま送るだけで、予約語の大文字化やインデントの統一、
不要な記述の整理などを行ってくれることが確認できました。
毎回同じルールで SQL を整形したい場合や、
レビューの手間を減らしたい場合に非常に有効だと感じました。
SQL 以外のルールやレビュー観点を Skill 化できれば、
開発効率の向上にさらに役立ちそうです!


コメント