summaryrefslogtreecommitdiff
path: root/skills/python/SKILL.md
blob: 867d74cfb9703a6dae756ad9cbd34feace833e53 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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. CLIや並列処理の仕様を検証する必要があれば、Python標準ライブラリの`subprocess`や`multiprocessing`を使用できる。生成したDescendant Processは同じSandbox Process Treeに留め、breakawayや権限拡張を試さない。
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、主要結果、未検証事項を簡潔に示す。