summaryrefslogtreecommitdiff
path: root/skills
diff options
context:
space:
mode:
Diffstat (limited to 'skills')
-rw-r--r--skills/python-via-uv/SKILL.md27
-rw-r--r--skills/python-via-uv/agents/openai.yaml4
-rw-r--r--skills/python/SKILL.md30
-rw-r--r--skills/python/agents/openai.yaml4
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."