What problem does it solve? Manually writing the pybind bridge code, project JSON configuration, and CMake scaffolding for a custom AscendC NPU operator is repetitive and error-prone, especially around dtype mapping and output shape allocation. This Skill automates that generation from functional PyTorch code. ## Core Features & Use Cases - Project JSON Generation: Builds the msopgen project JSON with inputs, outputs, and attributes mapped 1-to-1 from the module_fn signature, including all dtypes collected from op_desc.json test cases. - Pybind Bridge Code: Generates C++ pybind11 code with correct output tensor shape allocation (same-shape, reduced-dim, multi-input derived, or scalar) and TORCH_LIBRARY_IMPL registration. - Project Scaffolding: Runs gen_project.py via msopgen to create the full AscendC CMake project at output/{op_name}/{OpNameCustom}/, with stale libcust_opapi.so cleanup patched into build.sh. - Use Case: After converting a PyTorch reduction operator to functional form, invoke this Skill to produce the complete AscendC project skeleton ready for kernel implementation. ## Quick Start Generate the AscendC project scaffold for my functional PyTorch operator by reading {op_name}_functional.py and creating the project JSON, pybind code, and msopgen project in the output directory.