plesty checkmodule_type = "device" is declared in pyproject.toml, verifying all eight standard DevicePipeline mock-test functions without real hardware.module_type — Explicit Module Classification"device", "experiment", "analyzer", "core".DevicePipeline — Standard Test HarnessPIPELINE = DevicePipeline(...). No VISA, no hardware — runs anywhere.FuncMeta & SCPISolver.solve_func"command" entry to a typed device response with zero hand-written boilerplate per operation.[tool.plesty]; pre-push hook uses project-defined standardmodule_type in Gate 1; scaffold via plesty init__main__ guardplesty-sdk>=0.1.0.dev2 to generated project dev depsdocs/toc.yaml to scaffold so Gate 11 passes out of the box>=0.2.0 in generated templateplesty check gatesmyst.xref_missing warnings for autoapi-generated reference pagesaccess_token: $CI_BOT_TOKEN to generated .gitlab-ci.yml[dependency-groups] instead of deprecated [tool.uv.dev-dependencies][tool.uv.dev-dependencies] so uv run includes them by defaultCI env var in docs-build tests so they run in GitLab CIuv.lock; upgrade msgpack→1.2.1, tornado→6.5.7 (CVEs)toc.yaml caption syntax for sphinx-external-toc v1.1license field to pyproject.tomlplesty_sdk → plesty.sdk namespace packageplesty check commandinit and update docs to reflect new CLI and scaffoldindex.rst and Gate 7 coverage descriptionserve.py coverage to 100%init→edit→check integration test; fix mock namespacestests/ from pydocstyle D1xx rules in ruff.tomlDevicePipeline)FuncMeta and SCPISolver.solve_func for schema-driven op dispatchConfigSystem.solver → _cmd_solver; FunctionSystem._solver → _op_solver for consistencyplesty.lib in wheelBaseDeviceSyncModelmodule_type = "core" to [tool.plesty]>=0.2.1module_type validation