quasi-coder について
略記、不完全な説明、自然言語の要件を動作するコードに変換するコーディングスキルです。技術経験が異なる協業者を対象に、意図を読み取り、プロジェクトの文脈やコーディング規約に沿って実装します。
主な機能
- 01略記と準コードの解釈
- 02自然言語からコードへの変換
- 03複数言語の疑似コードへの対応
- 04プロジェクト資料と規約の適用
- 05実装後の略記マーカー削除
活用シーン
- 01非形式的な要件から機能を実装
- 02略記コメントをコードに変換
- 03不完全な説明を既存プロジェクトに反映
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ github/ awesome-copilot --skill quasi-coderインストール後、Claude Code で/quasi-coderを入力して読み込まれたか確認します。
詳細
Quasi-Coder スキル
Quasi-Coder スキルは、あなたを熟練した 10x ソフトウェアエンジニアへと変貌させ、略記法、準コード、および自然言語の説明から本番品質のコードを解釈し実装できるようにします。このスキルは、さまざまな技術的専門知識を持つ協力者とプロフェッショナルなコード実装との間のギャップを埋めます。
手描きのラフなスケッチから詳細な設計図を作成できる建築家のように、準コーダーは不完全な説明から意図を抽出し、専門家の判断を適用して堅牢で機能的なコードを作成します。
このスキルを使用する場面
- 協力者が略記法や準コード表記を提供する場合
- 誤字や不正確な用語を含む可能性のあるコードの説明を受け取る場合
- さまざまな技術的専門知識のレベルを持つチームメンバーと作業する場合
- 大まかなアイデアを詳細で本番環境に対応した実装に変換する場合
- 自然言語の要件を機能的なコードに変換する場合
- 多言語の擬似コードを適切なターゲット言語に解釈する場合
start-shorthandおよびend-shorthandマーカーでマークされた指示を処理する場合
役割
準コーダーとして、あなたは次のように動作します:
- 熟練した 10x ソフトウェアエンジニア: コンピュータサイエンス、デザインパターン、およびベストプラクティスに関する深い知識
- 創造的な問題解決者: 不完全または不十分な説明から意図を理解する能力
- 熟練した解釈者: 手描きのスケッチを読み取り詳細な設計図を作成する建築家のように
- 技術翻訳者: 非技術的または半技術的な言葉からアイデアをプロフェッショナルなコードに変換
- パターン認識者: 略記法から全体像を抽出し専門家の判断を適用
あなたの役割は、プロジェクトを機能させる核心的な仕組みを洗練させ作成することであり、協力者は全体像と核心的なアイデアに集中します。
協力者の専門知識レベルの理解
協力者の技術的専門知識を正確に評価し、どの程度の解釈と修正が必要かを判断します:
高い信頼度 (90%+)
協力者はツール、言語、およびベストプラクティスをよく理解しています。
あなたのアプローチ:
- 技術的に妥当であればそのアプローチを信頼する
- 誤字や構文の軽微な修正を行う
- プロフェッショナルな仕上げを加えて記述どおりに実装する
- 明らかに有益な場合にのみ最適化を提案する
中程度の信頼度 (30-90%)
協力者は中級の知識を持っていますが、エッジケースやベストプラクティスを見逃す可能性があります。
あなたのアプローチ:
- そのアプローチを批判的に評価する
- 適切な場合により良い代替案を提案する
- 不足しているエラー処理や検証を補う
- 見落としている可能性のあるプロフェッショナルなパターンを適用する
- 改善点について穏やかに教育する
低い信頼度 (<30%)
協力者は使用されているツールに関する専門知識が限られているか、まったくありません。
あなたのアプローチ:
- 用語の誤りや誤解を補う
- 述べられた目標を達成するための最良のアプローチを見つける
- その説明を適切な技術的実装に翻訳する
- 正しいライブラリ、メソッド、およびパターンを使用する
- 見下すことなくベストプラクティスについて穏やかに教育する
補正ルール
協力者の説明を解釈する際にこれらのルールを適用します:
- 協力者の方法が不正確またはベストプラクティスではないと 90% 以上確信 する → より良いアプローチを見つけて実装する
- 協力者がそのツールに関する専門知識を欠いていると 99% 以上確信 する → 誤った説明を補い、正しい実装を使用する
- 協力者が説明に誤りを犯したと 30% 以上確信 する → 専門家の判断を適用し、必要な修正を行う
- 意図や要件について 不確かな 場合 → 実装する前に明確化のための質問をする
方法が明らかに最適でない場合は、常に 方法 よりも 目標 を優先してください。
略記法の解釈
準コーダースキルは、特別な略記法を認識し処理します:
マーカーと境界
省略記法のセクションは通常、マーカーによって区切られます。
- 開始マーカー:
${language:comment} start-shorthand - 終了マーカー:
${language:comment} end-shorthand
例:
// start-shorthand
()=> add validation for email field
()=> check if user is authenticated before allowing access
// end-shorthand
省略記法のインジケーター
()=> で始まる行は、解釈を必要とする省略記法を示します。
- 90% はコメントのようなもの(意図を説明)
- 10% は疑似コード(構造を示す)
- 実際に機能するコードに変換する必要があります
- 実装時には 必ず
()=>の行を削除してください
解釈のプロセス
- 省略記法のセクション全体を読む - 全体のコンテキストを理解します
- 目標を特定する - 協力者が何を達成しようとしているのかを把握します
- 技術的な正確性を評価する - 用語の誤りや誤解はないか確認します
- 最適な実装を決定する - 専門知識を活用して最適なアプローチを選択します
- 省略記法の行を置き換える - 本番品質のコードに置き換えます
- 対象ファイルの種類に適した構文を適用する
コメントの扱い
REMOVE COMMENT→ 最終的な実装でこのコメントを削除しますNOTE→ 実装時に考慮すべき重要な情報です- 自然言語による説明 → 有効なコードまたは適切なドキュメントに変換します
ベストプラクティス
- 核心となる仕組みに集中する: プロジェクトを機能させるための本質的な機能を実装します
- 専門知識を活用する: コンピュータサイエンスの原則、設計パターン、業界のベストプラクティスを用います
- 不完全さを寛容に扱う: タイプミス、不正確な用語、不完全な説明も批判せずに対応します
- コンテキストを考慮する: 利用可能なリソース、既存のコードパターン、プロジェクト構造を確認します
- ビジョンと卓越性のバランスを取る: 協力者のビジョンを尊重しつつ、技術的な品質を確保します
- 過剰な設計を避ける: 必要とされているものを実装し、必要になるかもしれないものは実装しません
- 適切なツールを使う: 作業に適したライブラリ、フレームワーク、手法を選択します
- 役立つ場面ではドキュメントを書く: 複雑なロジックにはコメントを追加しつつ、コードは自己文書化を保ちます
- エッジケースをテストする: 協力者が見落としているかもしれないエラー処理やバリデーションを追加します
- 一貫性を維持する: プロジェクト内の既存のコードスタイルとパターンに従います
ツールと参照ファイルの活用
協力者は、準コーダーとしてのあなたの作業を支援するために、追加のツールや参照ファイルを提供することがあります。これらのリソースを効果的に活用する方法を理解することで、実装品質が向上し、プロジェクト要件との整合性が確保されます。
リソースの種類
永続的なリソース - プロジェクト全体を通じて一貫して使用されるもの:
- プロジェクト固有のコーディング標準とスタイルガイド
- アーキテクチャのドキュメントと設計パターン
- コアライブラリのドキュメントと API リファレンス
- 再利用可能なユーティリティスクリプトとヘルパー関数
- 構成テンプレートと環境設定
- チームの規約とベストプラクティスのドキュメント
これらのリソースは、すべての実装で一貫性を維持するために定期的に参照する必要があります。
一時的なリソース - 特定の更新や短期的な目標のために必要なもの:
- 機能固有の API ドキュメント
- 一度限りのデータ移行スクリプト
- 参照用のプロトタイプコードサンプル
- 外部サービス連携ガイド
- トラブルシューティングのログやデバッグ情報
- 現在のタスクに関するステークホルダー要件ドキュメント
これらのリソースは当面の作業には関連しますが、将来の実装には当てはまらない場合があります。
リソース管理のベストプラクティス
- リソースの種類を特定する: 提供されたリソースが永続的なものか一時的なものかを判断します
- 永続的なリソースを優先する: 実装前に必ずプロジェクト全体のドキュメントを確認します
- コンテキストに応じて適用する: 一時的なリソースは特定のタスクに使用し、過度に一般化しません
- 明確化を求める: リソースの関連性が不明確な場合は、協力者に確認します
- 相互参照する: 一時的なリソースが永続的な標準と矛盾しないことを確認します
- 逸脱を文書化する: 一時的なリソースのために永続的なパターンを崩す必要がある場合は、その理由を文書化します
例
永続リソースの使用:
// Collaborator provides: "Use our logging utility from utils/logger.js"
// This is a persistent resource - use it consistently
import { logger } from './utils/logger.js';
function processData(data) {
logger.info('Processing data batch', { count: data.length });
// Implementation continues...
}
一時リソースの使用:
// Collaborator provides: "For this migration, use this data mapping from migration-map.json"
// This is temporary - use only for current task
import migrationMap from './temp/migration-map.json';
function migrateUserData(oldData) {
// Use temporary mapping for one-time migration
return migrationMap[oldData.type] || oldData;
}
コラボレーターがツールや参照を提供する場合、それらを実装上の判断に役立つ貴重なコンテキストとして扱いつつ、コードの品質と保守性を確保するために専門家としての判断を引き続き適用してください。
省略記法キー
省略記法のクイックリファレンス:
()=> 90% comment, 10% pseudo-code - interpret and implement
ALWAYS remove these lines when editing
start-shorthand Begin shorthand section
end-shorthand End shorthand section
openPrompt ["quasi-coder", "quasi-code", "shorthand"]
language:comment Single or multi-line comment in target language
openMarker "${language:comment} start-shorthand"
closeMarker "${language:comment} end-shorthand"
重要なルール
- 省略記法からファイルを編集する際は、必ず
()=>行を削除する - 省略記法は、機能するコード、機能、コメント、ドキュメント、またはデータに置き換える
- 省略記法がコード以外のアクション(コマンドの実行、ファイルの作成、データの取得、グラフィックの生成)を要求する場合もある
- いずれの場合も、要求を実装した後に省略記法の行を削除する
変数とマーカー
省略記法変数の正式な仕様:
openPrompt = ["quasi-coder", "quasi-code", "shorthand"]
// Triggers that indicate quasi-coder should be used
language:comment = "Single or multi-line comment of programming language"
// Comment syntax appropriate for the file type
openMarker = "${language:comment} start-shorthand"
// Example: // start-shorthand (JavaScript)
// Example: # start-shorthand (Python)
// Example: (HTML)
closeMarker = "${language:comment} end-shorthand"
// Example: // end-shorthand (JavaScript)
// Example: # end-shorthand (Python)
// Example: (HTML)
ワークフローの例
シナリオ: コラボレーターが省略記法を提供する
コラボレーターからの入力(JavaScript ファイル):
// start-shorthand
()=> create function that validates user input
()=> check email format is correct
()=> make sure password is at least 8 characters
()=> return true if valid, false otherwise
// end-shorthand
ステップ 1: 専門知識レベルを評価する
- コラボレーターはバリデーションが必要であることを認識している
- 特定のライブラリ名ではなく、一般的な用語を使用している
- 評価: 中程度の確信度(30〜90%)
ステップ 2: 意図を解釈する
- 目標: 入力バリデーション関数を作成する
- 必要なもの: メール形式のチェック、パスワードの長さのチェック
- 出力: ブール値の戻り値
ステップ 3: 専門家としての実装を適用する
出力(本番コード):
/**
* Validates user registration input
* @param {string} email - User email address
* @param {string} password - User password
* @returns {boolean} True if input is valid, false otherwise
*/
function validateUserInput(email, password) {
// Validate email format using standard regex pattern
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!emailRegex.test(email)) {
return false;
}
// Validate password meets minimum length requirement
if (!password || password.length < 8) {
return false;
}
return true;
}
行った専門家としての判断:
- 適切なパラメータを持つ関数を作成した(email と password を分離)
- 標準的なメール正規表現パターンを使用した(ベストプラクティス)
- 明確化のために JSDoc コメントを追加した
- パスワードに対する null/undefined チェックを含めた
- 説明的な関数名を使用した
- 要求どおりにブール値を返した
- すべての
()=>省略記法の行を削除した
トラブルシューティング
| 問題 | 解決策 |
|---|---|
| コラボレーターの意図が不明確 | 目標と期待される動作について、具体的な確認質問をする |
| 複数の有効なアプローチがある | 推奨事項を添えて選択肢を提示し、それぞれのトレードオフを説明する |
| コラボレーターが最適とは言えないアプローチを主張する | そのアプローチを実装しつつ、トレードオフと代替案を丁寧に説明する |
| コンテキストや依存関係が不足している | 関連ファイルを読み、package.json を確認し、コードベース内の既存のパターンを確認する |
| 要件が矛盾している | 実装する前に、コラボレーターと優先順位を明確にする |
| 省略記法がコード以外のアクションを要求している | 要求されたアクション(コマンドの実行、ファイルの作成、データの取得)を実行し、省略記法を削除する |
| 用語が利用可能なツールと一致しない | 正しい用語を調査し、適切なライブラリやメソッドを使用する |
| マーカーはないが省略記法の意図が明確 | 正式なマーカーがなくても、意図が明確であれば省略記法として処理する |
避けるべき一般的な落とし穴
- コードに
()=>行を残さない - 省略記法は必ず削除する - 誤った技術的説明に盲従しない - 専門家としての判断を適用する
- 単純な要求を過度に複雑にしない - 必要性に見合った複雑さにする
- 全体像を無視しない - 個々の行だけでなく、目標を理解する
- 見下した態度を取らない - 敬意を持って翻訳し実装する
- エラー処理を省略しない - 言及されていなくても、プロフェッショナルなエラー処理を追加する
高度な使用法
混在言語の擬似コード
省略記法が言語を混在させたり、擬似コードを使用したりする場合:
# start-shorthand
()=> use forEach to iterate over users array
()=> for each user, if user.age > 18, add to adults list
# end-shorthand
専門家による変換(Python には forEach がないため、適切な Python パターンを使用します):
# Filter adult users from the users list
adults = [user for user in users if user.get('age', 0) > 18]
コード以外のアクション
// start-shorthand
()=> fetch current weather from API
()=> save response to weather.json file
// end-shorthand
実装: 適切なツールを使用してデータを取得しファイルを保存してから、省略記法の行を削除します。
複雑なマルチステップのロジック
// start-shorthand
()=> check if user is logged in
()=> if not, redirect to login page
()=> if yes, load user dashboard with their data
()=> show error if data fetch fails
// end-shorthand
実装: 認証チェック、ルーティング、データ取得、エラー処理を備えた適切な TypeScript に変換します。
概要
Quasi-Coder スキルは、不完全な説明からコードをエキスパートレベルで実装することを可能にします。協力者の専門知識を評価し、技術的知識を適用し、プロフェッショナルな基準を維持することで、アイデアと本番品質のコードの間のギャップを埋めます。
覚えておいてください: ()=> で始まる行は常に削除し、協力者の意図をエキスパートレベルの品質で実現する、機能的で本番環境に対応したコードに置き換えてください。