用於 Block2Python 的功能實作、重構與維護工作。當需求涉及新功能開發、bug 修正、程式碼變更,或任何本 repository 內的實作任務時使用。
使用此 skill 處理 Block2Python 的程式碼實作與變更工作。
src/block2python/ 中實作新功能在開始實作前,先建立最小必要上下文:
docs/project_architecture.mddocs/contributing.mddocs/contributing/ai_collaboration.mddocs/contributing/developer_workflow.mddocs/development_plans/如果任務已經有對應的開發計畫,先讀計畫再開始動手。
如果任務還沒有開發文件,不要直接假設一定要先寫完整計畫。此時應改用 development-planning skill,判斷應該:
如果需求包含「開新題」、「重寫題目」、「生成測資」、「generator/validator/checker」、「testlib」等關鍵字,必須先讀並套用 cf-testlib-problem-generation skill,再回到本 skill 執行整合與收尾。
docs/project_architecture.md 的分層原則一致。project-architecture 建立架構判準,再進入實作。development-planning 判斷這次任務需要的計畫強度。project-architecture,不要直接憑感覺決定落點。當任務是題目生成或題目重製時,禁止只做到 scaffold 或只改 statement;應一次完成到可交付狀態。
tools/level/<problem_name>/:statement.md、solutions/solution.cpp、solutions/brute.cpp、testlib/generator.cpp、testlib/validator.cpp、testlib/checker.cppassets/levels/<level_id>.yaml:題面、教學/劇情欄位、testcase_dir、judge_policy 一致assets/levels/cases/<level_id>/:正式 NN.in / NN.out 測資(不可只留 placeholder)tools/level/<problem_name>/scripts/verify_testlib.ps1(可重跑)tests/test_levels_loader.py(至少確認 level 資產可載入)solution 與 brute 對拍通過(至少一輪批次)目前驗證原則:
pytest 是主要測試入口pytest優先使用:
.\.venv\Scripts\python.exe -m pytest
若只影響局部,可縮小範圍:
.\.venv\Scripts\python.exe -m pytest tests/test_levels_loader.py
.\.venv\Scripts\python.exe -m pytest tests/test_wasm_judge.py::TestWasmJudge::test_ac_status
若改動涉及 Wasm:
.\.venv\Scripts\python.exe -m pytest -m requires_wasm -v
若改動影響 CLI / UI / demo 展示,可額外使用:
powershell -ExecutionPolicy Bypass -File tools/legacy/run_cli_demo.ps1
powershell -ExecutionPolicy Bypass -File tools/legacy/run_pyside6_client.ps1
powershell -ExecutionPolicy Bypass -File tools/smoke_wasm.ps1