gauntlet-curate について
gauntlet-curateは、DSA問題バンクの網羅状況を確認し、人によるレビュー用のYAML問題案を作成するスキルです。分類ごとの不足を報告し、整理済みの問題ファイルは変更しません。
主な機能
- 01マニフェスト目標との問題数比較
- 02不足数の大きい分類から表示
- 03レビュー用YAML案の作成
- 04BankProblemによる案の検証
活用シーン
- 01想定数に届かない分類の特定
- 02人による確認用レポートへの追加案作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ athola/ claude-night-market --skill gauntlet-curateインストール後、Claude Code で/gauntlet-curateを入力して読み込まれたか確認します。
詳細
Gauntlet Curate
DSA 問題バンクを調査してカバレッジの不足を特定し、人間によるレビュー用に新しい YAML エントリーを提案します。
使用しない場合
- 問題バンクではなく、このコードベースに注釈を付ける場合(
gauntlet:curateを使用) - ナレッジベースを再構築する場合(
gauntlet:extractを使用)
このスキルが実行される場合
問題バンクのカバレッジレビューが必要なときに、Skill(gauntlet:gauntlet-curate) を手動で実行します。このスキルは /update-plugins の実行に組み込まれることを想定していますが、まだそのコマンドには接続されていません(openpackage.yml の登録を参照)。これは、注釈ごとのナレッジ取得を処理し、現在 /gauntlet-curate が実行する gauntlet:curate とは別のものです。
手順
-
plugins/gauntlet/data/problems/にある問題バンクを特定します。_manifest.yamlを読み込み、カテゴリごとの想定 NeetCode 件数を確認します。 -
各 YAML ファイルの問題数を数えて、現在のカバレッジを調査します(
_manifest.yamlは除外します)。 分析スクリプトを実行します。cd plugins/gauntlet python scripts/curate_problems.py data/problems/ --output /tmp/gauntlet-curate-report.md -
不足を特定します。実際の件数がマニフェストの
neetcode_countを下回るカテゴリが対象です。 スクリプトは不足数が多い順に並べ替えるため、最も不足しているカテゴリが先頭に表示されます。 -
追加を提案する前に、不足している各カテゴリの既存の問題を確認し、すでにカバーされている内容を把握します。
-
以下のスキーマに従って、新しい YAML エントリーを提案します。 提案はレポートの「Proposed New Problems」に追加します。 提案を
data/problems/*.yamlに直接書き込んではいけません。 -
次を実行して提案を検証します。
python -c " import yaml, sys sys.path.insert(0, 'src') from gauntlet.models import BankProblem proposals = yaml.safe_load(open('proposals.yaml')) for p in proposals: BankProblem.from_dict(p) print('All proposals valid.') " -
レポートを人間に提示してレビューを受けます。 レポートにはカバレッジ表、不足リスト、提案したエントリーが含まれます。 提案を YAML ファイルにマージするかどうかは、人間が判断します。
問題スキーマ
提案する各エントリーは、次のスキーマに従う必要があります。
- id: category-NNN
title: Problem Title
difficulty: easy # easy | medium | hard | extra_hard
prompt: |
Problem statement with constraints and examples.
hints:
- First hint.
- Second hint.
solution_outline: |
Approach and time/space complexity.
tags: [tag1, tag2]
neetcode_id: neetcode-NNN
challenge_type: explain_why # explain_why | multiple_choice | trace
# | code_complete | debug | rank
必須フィールド:id、title、difficulty、prompt。
省略可能なフィールドは、デフォルトで空の値になります。
安全性に関する制約
data/problems/配下のファイルを直接変更してはいけません。--writeまたは--fixフラグを指定して実行してはいけません。スクリプトには意図的にこれらのフラグがありません。- すべての出力は、人間の承認を得るための提案レポートです。
- 既存の手作業でキュレーションされた問題には一切手を加えません。
出力
--output で指定されたパスに、次の内容を含む Markdown レポートを作成します。
- カバレッジの概要表(カテゴリごとの想定件数と実際の件数)
- 不足数順に並べた不足リスト
- 新しい提案用の YAML スキーマテンプレート
- 人間のレビュアーが提案を追加するためのスペース
YAML ファイルを変更する前に、人間によるレビューが必要です。
終了条件
- スクリプトがエラーなく実行され、
--outputで指定されたパス(例:/tmp/gauntlet-curate-report.md)に Markdown レポートが作成される - レポートに、
_manifest.yamlのすべてのカテゴリについて、想定されるneetcode_countと実際の件数を比較するカバレッジ概要表が含まれ、不足数の多い順に不足が並んでいる -
plugins/gauntlet/data/problems/配下のファイルが変更されず、すべての提案がレポート内の「Proposed New Problems」にのみ記載されている - レポートに掲載される前に、提案するすべての YAML エントリーが
BankProblem.from_dict()の検証(必須フィールド:id、title、difficulty、prompt)に合格している