diff options
Diffstat (limited to 'skills')
| -rw-r--r-- | skills/python-via-uv/SKILL.md | 27 | ||||
| -rw-r--r-- | skills/python-via-uv/agents/openai.yaml | 4 | ||||
| -rw-r--r-- | skills/python/SKILL.md | 30 | ||||
| -rw-r--r-- | skills/python/agents/openai.yaml | 4 |
4 files changed, 34 insertions, 31 deletions
diff --git a/skills/python-via-uv/SKILL.md b/skills/python-via-uv/SKILL.md deleted file mode 100644 index d840e4d..0000000 --- a/skills/python-via-uv/SKILL.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -name: python-via-uv -description: uv経由でPythonコードを作成・実行・検証する。ユーザーがPythonによる計算、データ処理、自動化、試作、デバッグ、またはスクリプト実行を求めたときに使用する。 ---- - -# Python via uv - -1. 作業directoryと必要な入出力を確認し、コードは許可されたdirectory内の`.py`へ`file_edit`で保存する。複雑なコードを`python -c`へ詰め込まない。 -2. 承認済み`uv.exe`を`process_run`し、projectではcwdから`uv python find --offline --no-python-downloads --resolve-links`、単独scriptでは同じ引数へ`--no-project`を追加してinterpreterの絶対pathを取得する。 -3. 取得した承認済み`python.exe`を別の`process_run`で起動し、`-I <script>`を渡す。shellを経由せず、引数は配列で分離する。 -4. v1 Sandboxは全descendant生成を禁止するため、`uv run`は使用しない。uvが返したPythonをBrokerから直接起動することで、両方のpath/SHA-256 approvalとchild-process禁止を維持する。 -5. dependencyが環境にない場合は勝手にnetwork接続やinstallを行わず、必要なpackageと許可をユーザーへ確認する。依頼なしに`uv add`や`uv pip install`を実行しない。 -6. `stdout`、`stderr`、exit codeを確認する。exit code 0と期待結果を確認できた場合だけ成功と報告し、生成・変更したfileも示す。 - -`process_run`の基本形: - -```text -executable: <承認済みuv.exe> -args: ["python", "find", "--offline", "--no-python-downloads", "--resolve-links", "--no-project"] -cwd: <許可された作業directory> - -executable: <uvが返した承認済みpython.exe> -args: ["-I", "script.py"] -cwd: <許可された作業directory> -``` - -`uv.exe`または`python.exe`が未承認、あるいは作業directoryのread/write/execute権限が不足している場合は迂回せず、必要な設定を具体的に報告する。 diff --git a/skills/python-via-uv/agents/openai.yaml b/skills/python-via-uv/agents/openai.yaml deleted file mode 100644 index de95aab..0000000 --- a/skills/python-via-uv/agents/openai.yaml +++ /dev/null @@ -1,4 +0,0 @@ -interface: - display_name: "Python via uv" - short_description: "Run reproducible Python tasks safely through uv" - default_prompt: "Use $python-via-uv to create and run Python code, then verify the result." diff --git a/skills/python/SKILL.md b/skills/python/SKILL.md new file mode 100644 index 0000000..966a4fd --- /dev/null +++ b/skills/python/SKILL.md @@ -0,0 +1,30 @@ +--- +name: python +description: Pythonコードを作成・実行・検証する。計算、データ処理、自動化、CLI、試作、デバッグ、またはPython testを求められたときに使用する。 +--- + +# Python + +## Workflow + +1. 目的、入出力、作業directory、Python version、完了条件を確認する。 +2. 既存projectでは関連fileを先に読み、新規作成では標準ライブラリで満たせるか確認する。 +3. 複雑なコードは許可された作業directory内の`.py`へ保存する。`python -c`へ長いコードを埋め込まない。 + - 小さな修正で`file_edit`の`patch` operationを使う場合、`patch` fieldにはJSON文字列`{"old_text":"置換前","new_text":"置換後"}`を渡す。unified diffや`@@`形式を渡さない。置換前文字列はfile内で正確に1回だけ一致させる。 +4. 承認済みのPython executableを直接`process_run`し、cwdとargsを分ける。shell、launcher、環境探索Toolを経由しない。 +5. 通常のscriptは`-I <script>`で実行する。単一test scriptは`unittest.main()`を持たせて`-I <test-script>`で実行するか、`-I -m unittest discover -s <test-directory> -p <pattern> -v`で明示的に探索する。isolated modeでimport不能になるfile pathを`-m unittest`へ直接渡さない。 +6. test codeでも`subprocess`、`multiprocessing`、`os.system`を使用しない。CLIはentry functionへ引数とI/Oを渡し、同一process内で検証する。 +7. 正常系に加え、重要な境界条件と失敗条件を決定的なtestで確認する。 +8. stdout、stderr、exit codeを確認し、exit code 0と期待結果の両方を満たした場合だけ成功と報告する。 + +## Dependency Rules + +- 標準ライブラリを優先する。 +- dependencyが不足していても、依頼なしにnetwork接続やpackage installを行わない。 +- 外部packageが必要な場合は、package名、理由、必要な許可をユーザーへ示す。 + +## Safety and Reporting + +- Python executableまたは作業directoryの権限が不足している場合は迂回しない。 +- descendant processを生成するコードや、依頼されていないfilesystem/network操作を追加しない。 +- 最終応答では作成・変更したfile、実行したtest、exit code、主要結果、未検証事項を簡潔に示す。 diff --git a/skills/python/agents/openai.yaml b/skills/python/agents/openai.yaml new file mode 100644 index 0000000..dff8b03 --- /dev/null +++ b/skills/python/agents/openai.yaml @@ -0,0 +1,4 @@ +interface: + display_name: "Python" + short_description: "Create, run, and verify Python programs safely" + default_prompt: "Use $python to create and run Python code, then verify the result." |
