| name | new-subcmd |
|---|---|
| description | mdtbxに新しいargparseサブコマンドを追加する |
mdtbxに新しいargparseサブコマンドを追加するスキル。
以下をユーザーに確認する:
- サブコマンド名 (例:
calc_rmsd,gen_topology) — CLIでmdtbx <名前>として呼ぶ - 配置場所: 機能に応じて選択
src/build/— 系構築 (addace, amb2gro, gen_posres等と同種)src/trajectory/— 軌跡処理 (fit, trjcat等と同種)src/analysis/— 解析 (extract_str等と同種)src/cv/— Collective Variable計算src/utils/— 汎用ユーティリティ (mod_mdp, convert等と同種)
- 引数: 必須引数・オプション引数の名前と型
- 処理内容: 何をするコマンドか
${SKILL_ROOT}/template.py を参考に新ファイルを作成する。
必須パターン:
add_subcmd(subparsers)の末尾に必ずparser.set_defaults(func=run)を置くrun(args)が実装本体- ロガーは
from ..logger import generate_logger/LOGGER = generate_logger(__name__) argparse.ArgumentDefaultsHelpFormatterを使うsrc/utils/のパーサーを使う場合はfrom ..utils.atom_selection_parser import AtomSelectorのように参照する
src/cli.py に2箇所追加:
-
importブロック (対応するカテゴリのブロックに追加):
from .build import <name> # build の場合 from .trajectory import <name> # trajectory の場合 from .analysis import <name> # analysis の場合 from .cv import <name> # cv の場合 from .utils import <name> # utils の場合
-
add_subcmdの呼び出し (同カテゴリのブロックに追加):
<name>.add_subcmd(subparsers)
tests/test_<category>/test_<name>.py にユニットテストを追加する:
- 外部ツール不要な純粋計算関数は直接テスト
- ファイルI/Oは
tmp_pathfixture を使用 - 軌跡が必要な場合は
conftest.pyのtrajectory_filesfixture を使用 - PyMOL/subprocess 依存は
unittest.mock.patchでモック
pixi run r # ruff format + lint
pixi run test # 全テストエラーがあれば修正する。