summaryrefslogtreecommitdiff
path: root/skills/python-via-uv/SKILL.md
diff options
context:
space:
mode:
Diffstat (limited to 'skills/python-via-uv/SKILL.md')
-rw-r--r--skills/python-via-uv/SKILL.md27
1 files changed, 27 insertions, 0 deletions
diff --git a/skills/python-via-uv/SKILL.md b/skills/python-via-uv/SKILL.md
new file mode 100644
index 0000000..d840e4d
--- /dev/null
+++ b/skills/python-via-uv/SKILL.md
@@ -0,0 +1,27 @@
+---
+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権限が不足している場合は迂回せず、必要な設定を具体的に報告する。