@bovinphang/craft-common 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/CHANGELOG.zh-CN.md +39 -0
- package/README.md +17 -3
- package/dist/content/applicability.d.ts +17 -0
- package/dist/content/catalog.d.ts +1 -1
- package/dist/content/snapshot.d.ts +32 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.js +10876 -211
- package/dist/install/file-transition.d.ts +10 -0
- package/dist/install/product/lifecycle.d.ts +17 -0
- package/dist/install/product/locks.d.ts +2 -0
- package/dist/install/product/ownership.d.ts +3 -0
- package/dist/install/product/paths.d.ts +17 -0
- package/dist/install/product/runtime-descriptors.d.ts +109 -0
- package/dist/install/product/session.d.ts +31 -0
- package/dist/install/product/shared-config/hash.d.ts +9 -0
- package/dist/install/product/shared-config/index.d.ts +16 -0
- package/dist/install/product/shared-config/json.d.ts +11 -0
- package/dist/install/product/shared-config/text.d.ts +5 -0
- package/dist/install/product/shared-config/toml.d.ts +7 -0
- package/dist/install/product/shared-config/types.d.ts +21 -0
- package/dist/install/product/transaction.d.ts +10 -0
- package/dist/install/product/types.d.ts +65 -0
- package/dist/project/discover.d.ts +2 -0
- package/dist/project/evidence.d.ts +37 -0
- package/dist/project/frameworks.d.ts +5 -0
- package/dist/project/recommend.d.ts +17 -0
- package/dist/project/types.d.ts +42 -0
- package/docs/consuming-common.md +65 -6
- package/docs/releases/2.0.0.md +58 -0
- package/localized/zh-CN/methods/engineering-practices.md +237 -0
- package/localized/zh-CN/methods/engineering-practices.rules.json +121 -0
- package/localized/zh-CN/methods/engineering-practices.sources.json +377 -0
- package/localized/zh-CN/skills/cc-c-project-standard/SKILL.md +25 -0
- package/localized/zh-CN/skills/cc-c-project-standard/examples/engineering/README.md +7 -0
- package/localized/zh-CN/skills/cc-c-project-standard/examples/engineering/boundary.c +26 -0
- package/localized/zh-CN/skills/cc-c-project-standard/examples/engineering/boundary.h +15 -0
- package/localized/zh-CN/skills/cc-c-project-standard/examples/engineering/boundary_test.c +73 -0
- package/localized/zh-CN/skills/cc-c-project-standard/references/common/engineering-practices.md +237 -0
- package/localized/zh-CN/skills/cc-c-project-standard/references/common/engineering-practices.rules.json +121 -0
- package/localized/zh-CN/skills/cc-c-project-standard/references/common/engineering-practices.sources.json +377 -0
- package/localized/zh-CN/skills/cc-c-project-standard/references/engineering-practices.md +106 -0
- package/localized/zh-CN/skills/cc-c-project-standard/references/practice.md +37 -0
- package/localized/zh-CN/skills/cc-cpp-project-standard/SKILL.md +25 -0
- package/localized/zh-CN/skills/cc-cpp-project-standard/examples/engineering/README.md +7 -0
- package/localized/zh-CN/skills/cc-cpp-project-standard/examples/engineering/boundary.cpp +26 -0
- package/localized/zh-CN/skills/cc-cpp-project-standard/examples/engineering/boundary.hpp +12 -0
- package/localized/zh-CN/skills/cc-cpp-project-standard/examples/engineering/boundary_test.cpp +38 -0
- package/localized/zh-CN/skills/cc-cpp-project-standard/references/common/engineering-practices.md +237 -0
- package/localized/zh-CN/skills/cc-cpp-project-standard/references/common/engineering-practices.rules.json +121 -0
- package/localized/zh-CN/skills/cc-cpp-project-standard/references/common/engineering-practices.sources.json +377 -0
- package/localized/zh-CN/skills/cc-cpp-project-standard/references/engineering-practices.md +106 -0
- package/localized/zh-CN/skills/cc-cpp-project-standard/references/practice.md +37 -0
- package/localized/zh-CN/skills/cc-electron-project-standard/SKILL.md +21 -0
- package/localized/zh-CN/skills/cc-electron-project-standard/examples/engineering/README.md +7 -0
- package/localized/zh-CN/skills/cc-electron-project-standard/examples/engineering/ipc-lifecycle.cjs +44 -0
- package/localized/zh-CN/skills/cc-electron-project-standard/examples/engineering/ipc-lifecycle.test.cjs +44 -0
- package/localized/zh-CN/skills/cc-electron-project-standard/examples/engineering/package.json +8 -0
- package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/README.md +9 -0
- package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/boundary.cjs +19 -0
- package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/boundary.test.cjs +7 -0
- package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/index.html +1 -0
- package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/main.cjs +20 -0
- package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/package.json +9 -0
- package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/preload.cjs +2 -0
- package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/renderer.js +4 -0
- package/localized/zh-CN/skills/cc-electron-project-standard/references/common/engineering-practices.md +237 -0
- package/localized/zh-CN/skills/cc-electron-project-standard/references/common/engineering-practices.rules.json +121 -0
- package/localized/zh-CN/skills/cc-electron-project-standard/references/common/engineering-practices.sources.json +377 -0
- package/localized/zh-CN/skills/cc-electron-project-standard/references/engineering-practices.md +73 -0
- package/localized/zh-CN/skills/cc-electron-project-standard/references/practice.md +19 -0
- package/localized/zh-CN/skills/cc-electron-project-standard/references/verification.md +17 -0
- package/localized/zh-CN/skills/cc-go-concurrency/SKILL.md +25 -0
- package/localized/zh-CN/skills/cc-go-concurrency/references/common/engineering-practices.md +237 -0
- package/localized/zh-CN/skills/cc-go-concurrency/references/common/engineering-practices.rules.json +121 -0
- package/localized/zh-CN/skills/cc-go-concurrency/references/common/engineering-practices.sources.json +377 -0
- package/localized/zh-CN/skills/cc-go-concurrency/references/engineering-practices.md +73 -0
- package/localized/zh-CN/skills/cc-go-concurrency/references/practice.md +37 -0
- package/localized/zh-CN/skills/cc-go-project-standard/SKILL.md +25 -0
- package/localized/zh-CN/skills/cc-go-project-standard/examples/engineering/README.md +7 -0
- package/localized/zh-CN/skills/cc-go-project-standard/examples/engineering/go.mod +3 -0
- package/localized/zh-CN/skills/cc-go-project-standard/examples/engineering/lifecycle.go +71 -0
- package/localized/zh-CN/skills/cc-go-project-standard/examples/engineering/lifecycle_test.go +22 -0
- package/localized/zh-CN/skills/cc-go-project-standard/references/common/engineering-practices.md +237 -0
- package/localized/zh-CN/skills/cc-go-project-standard/references/common/engineering-practices.rules.json +121 -0
- package/localized/zh-CN/skills/cc-go-project-standard/references/common/engineering-practices.sources.json +377 -0
- package/localized/zh-CN/skills/cc-go-project-standard/references/engineering-practices.md +106 -0
- package/localized/zh-CN/skills/cc-go-project-standard/references/practice.md +37 -0
- package/localized/zh-CN/skills/cc-java-project-standard/SKILL.md +25 -0
- package/localized/zh-CN/skills/cc-java-project-standard/examples/engineering/README.md +5 -0
- package/localized/zh-CN/skills/cc-java-project-standard/examples/engineering/ResourceBoundary.java +26 -0
- package/localized/zh-CN/skills/cc-java-project-standard/examples/engineering/ResourceBoundaryTest.java +41 -0
- package/localized/zh-CN/skills/cc-java-project-standard/references/common/engineering-practices.md +237 -0
- package/localized/zh-CN/skills/cc-java-project-standard/references/common/engineering-practices.rules.json +121 -0
- package/localized/zh-CN/skills/cc-java-project-standard/references/common/engineering-practices.sources.json +377 -0
- package/localized/zh-CN/skills/cc-java-project-standard/references/engineering-practices.md +106 -0
- package/localized/zh-CN/skills/cc-java-project-standard/references/practice.md +37 -0
- package/localized/zh-CN/skills/cc-java-runtime/SKILL.md +25 -0
- package/localized/zh-CN/skills/cc-java-runtime/references/common/engineering-practices.md +237 -0
- package/localized/zh-CN/skills/cc-java-runtime/references/common/engineering-practices.rules.json +121 -0
- package/localized/zh-CN/skills/cc-java-runtime/references/common/engineering-practices.sources.json +377 -0
- package/localized/zh-CN/skills/cc-java-runtime/references/engineering-practices.md +73 -0
- package/localized/zh-CN/skills/cc-java-runtime/references/practice.md +37 -0
- package/localized/zh-CN/skills/cc-native-memory-safety/SKILL.md +25 -0
- package/localized/zh-CN/skills/cc-native-memory-safety/references/common/engineering-practices.md +237 -0
- package/localized/zh-CN/skills/cc-native-memory-safety/references/common/engineering-practices.rules.json +121 -0
- package/localized/zh-CN/skills/cc-native-memory-safety/references/common/engineering-practices.sources.json +377 -0
- package/localized/zh-CN/skills/cc-native-memory-safety/references/engineering-practices.md +73 -0
- package/localized/zh-CN/skills/cc-native-memory-safety/references/practice.md +37 -0
- package/localized/zh-CN/skills/cc-python-async/SKILL.md +25 -0
- package/localized/zh-CN/skills/cc-python-async/references/common/engineering-practices.md +237 -0
- package/localized/zh-CN/skills/cc-python-async/references/common/engineering-practices.rules.json +121 -0
- package/localized/zh-CN/skills/cc-python-async/references/common/engineering-practices.sources.json +377 -0
- package/localized/zh-CN/skills/cc-python-async/references/engineering-practices.md +73 -0
- package/localized/zh-CN/skills/cc-python-async/references/practice.md +37 -0
- package/localized/zh-CN/skills/cc-python-project-standard/SKILL.md +25 -0
- package/localized/zh-CN/skills/cc-python-project-standard/examples/engineering/README.md +7 -0
- package/localized/zh-CN/skills/cc-python-project-standard/examples/engineering/resource_boundary.py +37 -0
- package/localized/zh-CN/skills/cc-python-project-standard/examples/engineering/test_resource_boundary.py +49 -0
- package/localized/zh-CN/skills/cc-python-project-standard/references/common/engineering-practices.md +237 -0
- package/localized/zh-CN/skills/cc-python-project-standard/references/common/engineering-practices.rules.json +121 -0
- package/localized/zh-CN/skills/cc-python-project-standard/references/common/engineering-practices.sources.json +377 -0
- package/localized/zh-CN/skills/cc-python-project-standard/references/engineering-practices.md +106 -0
- package/localized/zh-CN/skills/cc-python-project-standard/references/practice.md +37 -0
- package/localized/zh-CN/skills/cc-rust-async/SKILL.md +25 -0
- package/localized/zh-CN/skills/cc-rust-async/references/common/engineering-practices.md +237 -0
- package/localized/zh-CN/skills/cc-rust-async/references/common/engineering-practices.rules.json +121 -0
- package/localized/zh-CN/skills/cc-rust-async/references/common/engineering-practices.sources.json +377 -0
- package/localized/zh-CN/skills/cc-rust-async/references/engineering-practices.md +73 -0
- package/localized/zh-CN/skills/cc-rust-async/references/practice.md +37 -0
- package/localized/zh-CN/skills/cc-rust-project-standard/SKILL.md +25 -0
- package/localized/zh-CN/skills/cc-rust-project-standard/examples/engineering/Cargo.lock +7 -0
- package/localized/zh-CN/skills/cc-rust-project-standard/examples/engineering/Cargo.toml +8 -0
- package/localized/zh-CN/skills/cc-rust-project-standard/examples/engineering/README.md +5 -0
- package/localized/zh-CN/skills/cc-rust-project-standard/examples/engineering/src/lib.rs +43 -0
- package/localized/zh-CN/skills/cc-rust-project-standard/references/common/engineering-practices.md +237 -0
- package/localized/zh-CN/skills/cc-rust-project-standard/references/common/engineering-practices.rules.json +121 -0
- package/localized/zh-CN/skills/cc-rust-project-standard/references/common/engineering-practices.sources.json +377 -0
- package/localized/zh-CN/skills/cc-rust-project-standard/references/engineering-practices.md +106 -0
- package/localized/zh-CN/skills/cc-rust-project-standard/references/practice.md +37 -0
- package/localized/zh-CN/skills/cc-tauri-project-standard/SKILL.md +21 -0
- package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/README.md +9 -0
- package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/core/Cargo.lock +5 -0
- package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/core/Cargo.toml +9 -0
- package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/core/src/lib.rs +46 -0
- package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/src-tauri/Cargo.toml +12 -0
- package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/src-tauri/build.rs +5 -0
- package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/src-tauri/capabilities/main.json +6 -0
- package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/src-tauri/permissions/documents.toml +4 -0
- package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/src-tauri/src/main.rs +22 -0
- package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/src-tauri/tauri.conf.json +13 -0
- package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/ui/app.js +5 -0
- package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/ui/index.html +1 -0
- package/localized/zh-CN/skills/cc-tauri-project-standard/references/common/engineering-practices.md +237 -0
- package/localized/zh-CN/skills/cc-tauri-project-standard/references/common/engineering-practices.rules.json +121 -0
- package/localized/zh-CN/skills/cc-tauri-project-standard/references/common/engineering-practices.sources.json +377 -0
- package/localized/zh-CN/skills/cc-tauri-project-standard/references/engineering-practices.md +73 -0
- package/localized/zh-CN/skills/cc-tauri-project-standard/references/practice.md +20 -0
- package/localized/zh-CN/skills/cc-tauri-project-standard/references/verification.md +18 -0
- package/localized/zh-CN/skills/cc-typescript-project-standard/SKILL.md +60 -0
- package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/README.md +7 -0
- package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/boundary.test.ts +16 -0
- package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/input.ts +12 -0
- package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/package.json +12 -0
- package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/pnpm-lock.yaml +39 -0
- package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/pnpm-workspace.yaml +1 -0
- package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/tsconfig.json +8 -0
- package/localized/zh-CN/skills/cc-typescript-project-standard/references/common/engineering-practices.md +237 -0
- package/localized/zh-CN/skills/cc-typescript-project-standard/references/common/engineering-practices.rules.json +121 -0
- package/localized/zh-CN/skills/cc-typescript-project-standard/references/common/engineering-practices.sources.json +377 -0
- package/localized/zh-CN/skills/cc-typescript-project-standard/references/engineering-practices.md +106 -0
- package/localized/zh-CN/skills/cc-typescript-project-standard/references/type-safety-patterns.md +73 -0
- package/localized/zh-CN/skills/cc-typescript-project-standard/references/type-safety.md +154 -0
- package/localized/zh-CN/skills/eval_queries.json +336 -0
- package/localized/zh-CN/skills/metadata.json +545 -7
- package/localized/zh-CN/skills/relations.json +143 -0
- package/methods/engineering-practices.md +237 -0
- package/methods/engineering-practices.rules.json +121 -0
- package/methods/engineering-practices.sources.json +377 -0
- package/package.json +10 -2
- package/skills/cc-c-project-standard/SKILL.md +25 -0
- package/skills/cc-c-project-standard/examples/engineering/README.md +7 -0
- package/skills/cc-c-project-standard/examples/engineering/boundary.c +26 -0
- package/skills/cc-c-project-standard/examples/engineering/boundary.h +15 -0
- package/skills/cc-c-project-standard/examples/engineering/boundary_test.c +73 -0
- package/skills/cc-c-project-standard/references/common/engineering-practices.md +237 -0
- package/skills/cc-c-project-standard/references/common/engineering-practices.rules.json +121 -0
- package/skills/cc-c-project-standard/references/common/engineering-practices.sources.json +377 -0
- package/skills/cc-c-project-standard/references/engineering-practices.md +106 -0
- package/skills/cc-c-project-standard/references/practice.md +37 -0
- package/skills/cc-cpp-project-standard/SKILL.md +25 -0
- package/skills/cc-cpp-project-standard/examples/engineering/README.md +7 -0
- package/skills/cc-cpp-project-standard/examples/engineering/boundary.cpp +26 -0
- package/skills/cc-cpp-project-standard/examples/engineering/boundary.hpp +12 -0
- package/skills/cc-cpp-project-standard/examples/engineering/boundary_test.cpp +38 -0
- package/skills/cc-cpp-project-standard/references/common/engineering-practices.md +237 -0
- package/skills/cc-cpp-project-standard/references/common/engineering-practices.rules.json +121 -0
- package/skills/cc-cpp-project-standard/references/common/engineering-practices.sources.json +377 -0
- package/skills/cc-cpp-project-standard/references/engineering-practices.md +106 -0
- package/skills/cc-cpp-project-standard/references/practice.md +37 -0
- package/skills/cc-electron-project-standard/SKILL.md +21 -0
- package/skills/cc-electron-project-standard/examples/engineering/README.md +7 -0
- package/skills/cc-electron-project-standard/examples/engineering/ipc-lifecycle.cjs +44 -0
- package/skills/cc-electron-project-standard/examples/engineering/ipc-lifecycle.test.cjs +44 -0
- package/skills/cc-electron-project-standard/examples/engineering/package.json +8 -0
- package/skills/cc-electron-project-standard/examples/minimal/README.md +9 -0
- package/skills/cc-electron-project-standard/examples/minimal/boundary.cjs +19 -0
- package/skills/cc-electron-project-standard/examples/minimal/boundary.test.cjs +7 -0
- package/skills/cc-electron-project-standard/examples/minimal/index.html +1 -0
- package/skills/cc-electron-project-standard/examples/minimal/main.cjs +20 -0
- package/skills/cc-electron-project-standard/examples/minimal/package.json +9 -0
- package/skills/cc-electron-project-standard/examples/minimal/preload.cjs +2 -0
- package/skills/cc-electron-project-standard/examples/minimal/renderer.js +4 -0
- package/skills/cc-electron-project-standard/references/common/engineering-practices.md +237 -0
- package/skills/cc-electron-project-standard/references/common/engineering-practices.rules.json +121 -0
- package/skills/cc-electron-project-standard/references/common/engineering-practices.sources.json +377 -0
- package/skills/cc-electron-project-standard/references/engineering-practices.md +73 -0
- package/skills/cc-electron-project-standard/references/practice.md +19 -0
- package/skills/cc-electron-project-standard/references/verification.md +17 -0
- package/skills/cc-go-concurrency/SKILL.md +25 -0
- package/skills/cc-go-concurrency/references/common/engineering-practices.md +237 -0
- package/skills/cc-go-concurrency/references/common/engineering-practices.rules.json +121 -0
- package/skills/cc-go-concurrency/references/common/engineering-practices.sources.json +377 -0
- package/skills/cc-go-concurrency/references/engineering-practices.md +73 -0
- package/skills/cc-go-concurrency/references/practice.md +37 -0
- package/skills/cc-go-project-standard/SKILL.md +25 -0
- package/skills/cc-go-project-standard/examples/engineering/README.md +7 -0
- package/skills/cc-go-project-standard/examples/engineering/go.mod +3 -0
- package/skills/cc-go-project-standard/examples/engineering/lifecycle.go +71 -0
- package/skills/cc-go-project-standard/examples/engineering/lifecycle_test.go +22 -0
- package/skills/cc-go-project-standard/references/common/engineering-practices.md +237 -0
- package/skills/cc-go-project-standard/references/common/engineering-practices.rules.json +121 -0
- package/skills/cc-go-project-standard/references/common/engineering-practices.sources.json +377 -0
- package/skills/cc-go-project-standard/references/engineering-practices.md +106 -0
- package/skills/cc-go-project-standard/references/practice.md +37 -0
- package/skills/cc-java-project-standard/SKILL.md +25 -0
- package/skills/cc-java-project-standard/examples/engineering/README.md +7 -0
- package/skills/cc-java-project-standard/examples/engineering/ResourceBoundary.java +26 -0
- package/skills/cc-java-project-standard/examples/engineering/ResourceBoundaryTest.java +41 -0
- package/skills/cc-java-project-standard/references/common/engineering-practices.md +237 -0
- package/skills/cc-java-project-standard/references/common/engineering-practices.rules.json +121 -0
- package/skills/cc-java-project-standard/references/common/engineering-practices.sources.json +377 -0
- package/skills/cc-java-project-standard/references/engineering-practices.md +106 -0
- package/skills/cc-java-project-standard/references/practice.md +35 -0
- package/skills/cc-java-runtime/SKILL.md +25 -0
- package/skills/cc-java-runtime/references/common/engineering-practices.md +237 -0
- package/skills/cc-java-runtime/references/common/engineering-practices.rules.json +121 -0
- package/skills/cc-java-runtime/references/common/engineering-practices.sources.json +377 -0
- package/skills/cc-java-runtime/references/engineering-practices.md +73 -0
- package/skills/cc-java-runtime/references/practice.md +37 -0
- package/skills/cc-native-memory-safety/SKILL.md +25 -0
- package/skills/cc-native-memory-safety/references/common/engineering-practices.md +237 -0
- package/skills/cc-native-memory-safety/references/common/engineering-practices.rules.json +121 -0
- package/skills/cc-native-memory-safety/references/common/engineering-practices.sources.json +377 -0
- package/skills/cc-native-memory-safety/references/engineering-practices.md +73 -0
- package/skills/cc-native-memory-safety/references/practice.md +37 -0
- package/skills/cc-python-async/SKILL.md +25 -0
- package/skills/cc-python-async/references/common/engineering-practices.md +237 -0
- package/skills/cc-python-async/references/common/engineering-practices.rules.json +121 -0
- package/skills/cc-python-async/references/common/engineering-practices.sources.json +377 -0
- package/skills/cc-python-async/references/engineering-practices.md +73 -0
- package/skills/cc-python-async/references/practice.md +37 -0
- package/skills/cc-python-project-standard/SKILL.md +25 -0
- package/skills/cc-python-project-standard/examples/engineering/README.md +7 -0
- package/skills/cc-python-project-standard/examples/engineering/resource_boundary.py +37 -0
- package/skills/cc-python-project-standard/examples/engineering/test_resource_boundary.py +49 -0
- package/skills/cc-python-project-standard/references/common/engineering-practices.md +237 -0
- package/skills/cc-python-project-standard/references/common/engineering-practices.rules.json +121 -0
- package/skills/cc-python-project-standard/references/common/engineering-practices.sources.json +377 -0
- package/skills/cc-python-project-standard/references/engineering-practices.md +106 -0
- package/skills/cc-python-project-standard/references/practice.md +37 -0
- package/skills/cc-rust-async/SKILL.md +25 -0
- package/skills/cc-rust-async/references/common/engineering-practices.md +237 -0
- package/skills/cc-rust-async/references/common/engineering-practices.rules.json +121 -0
- package/skills/cc-rust-async/references/common/engineering-practices.sources.json +377 -0
- package/skills/cc-rust-async/references/engineering-practices.md +73 -0
- package/skills/cc-rust-async/references/practice.md +37 -0
- package/skills/cc-rust-project-standard/SKILL.md +25 -0
- package/skills/cc-rust-project-standard/examples/engineering/Cargo.lock +7 -0
- package/skills/cc-rust-project-standard/examples/engineering/Cargo.toml +8 -0
- package/skills/cc-rust-project-standard/examples/engineering/README.md +5 -0
- package/skills/cc-rust-project-standard/examples/engineering/src/lib.rs +43 -0
- package/skills/cc-rust-project-standard/references/common/engineering-practices.md +237 -0
- package/skills/cc-rust-project-standard/references/common/engineering-practices.rules.json +121 -0
- package/skills/cc-rust-project-standard/references/common/engineering-practices.sources.json +377 -0
- package/skills/cc-rust-project-standard/references/engineering-practices.md +106 -0
- package/skills/cc-rust-project-standard/references/practice.md +37 -0
- package/skills/cc-tauri-project-standard/SKILL.md +21 -0
- package/skills/cc-tauri-project-standard/examples/minimal/README.md +9 -0
- package/skills/cc-tauri-project-standard/examples/minimal/core/Cargo.lock +5 -0
- package/skills/cc-tauri-project-standard/examples/minimal/core/Cargo.toml +9 -0
- package/skills/cc-tauri-project-standard/examples/minimal/core/src/lib.rs +46 -0
- package/skills/cc-tauri-project-standard/examples/minimal/src-tauri/Cargo.toml +12 -0
- package/skills/cc-tauri-project-standard/examples/minimal/src-tauri/build.rs +5 -0
- package/skills/cc-tauri-project-standard/examples/minimal/src-tauri/capabilities/main.json +6 -0
- package/skills/cc-tauri-project-standard/examples/minimal/src-tauri/permissions/documents.toml +4 -0
- package/skills/cc-tauri-project-standard/examples/minimal/src-tauri/src/main.rs +22 -0
- package/skills/cc-tauri-project-standard/examples/minimal/src-tauri/tauri.conf.json +13 -0
- package/skills/cc-tauri-project-standard/examples/minimal/ui/app.js +5 -0
- package/skills/cc-tauri-project-standard/examples/minimal/ui/index.html +1 -0
- package/skills/cc-tauri-project-standard/references/common/engineering-practices.md +237 -0
- package/skills/cc-tauri-project-standard/references/common/engineering-practices.rules.json +121 -0
- package/skills/cc-tauri-project-standard/references/common/engineering-practices.sources.json +377 -0
- package/skills/cc-tauri-project-standard/references/engineering-practices.md +73 -0
- package/skills/cc-tauri-project-standard/references/practice.md +20 -0
- package/skills/cc-tauri-project-standard/references/verification.md +18 -0
- package/skills/cc-typescript-project-standard/SKILL.md +60 -0
- package/skills/cc-typescript-project-standard/examples/engineering/README.md +9 -0
- package/skills/cc-typescript-project-standard/examples/engineering/boundary.test.ts +16 -0
- package/skills/cc-typescript-project-standard/examples/engineering/input.ts +12 -0
- package/skills/cc-typescript-project-standard/examples/engineering/package.json +12 -0
- package/skills/cc-typescript-project-standard/examples/engineering/pnpm-lock.yaml +39 -0
- package/skills/cc-typescript-project-standard/examples/engineering/pnpm-workspace.yaml +1 -0
- package/skills/cc-typescript-project-standard/examples/engineering/tsconfig.json +8 -0
- package/skills/cc-typescript-project-standard/references/common/engineering-practices.md +237 -0
- package/skills/cc-typescript-project-standard/references/common/engineering-practices.rules.json +121 -0
- package/skills/cc-typescript-project-standard/references/common/engineering-practices.sources.json +377 -0
- package/skills/cc-typescript-project-standard/references/engineering-practices.md +106 -0
- package/skills/cc-typescript-project-standard/references/type-safety-patterns.md +73 -0
- package/skills/cc-typescript-project-standard/references/type-safety.md +154 -0
- package/skills/eval_queries.json +336 -0
- package/skills/metadata.json +545 -7
- package/skills/relations.json +143 -0
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"sources": [
|
|
4
|
+
{
|
|
5
|
+
"id": "google-review",
|
|
6
|
+
"publisher": "Google",
|
|
7
|
+
"title": "Code review standard",
|
|
8
|
+
"url": "https://google.github.io/eng-practices/review/reviewer/standard.html",
|
|
9
|
+
"section": "Engineering principles and code health",
|
|
10
|
+
"checkedAt": "2026-11-08",
|
|
11
|
+
"versionScope": "Living public guidance; revision unknown",
|
|
12
|
+
"licenseStatus": "unknown",
|
|
13
|
+
"adoption": "adopt",
|
|
14
|
+
"limits": "Use evidence and project standards; personal preference alone is not a blocker."
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": "ms-playbook",
|
|
18
|
+
"publisher": "Microsoft ISE",
|
|
19
|
+
"title": "Test planning",
|
|
20
|
+
"url": "https://microsoft.github.io/code-with-engineering-playbook/automated-testing/test-planning/",
|
|
21
|
+
"section": "Risk, test scope and responsibilities",
|
|
22
|
+
"checkedAt": "2026-11-08",
|
|
23
|
+
"versionScope": "Living ISE playbook; revision unknown",
|
|
24
|
+
"licenseStatus": "unknown",
|
|
25
|
+
"adoption": "adopt",
|
|
26
|
+
"limits": "Team practice, not a company-wide mandate; retain existing tools."
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "ms-faults",
|
|
30
|
+
"publisher": "Microsoft ISE",
|
|
31
|
+
"title": "Fault injection testing",
|
|
32
|
+
"url": "https://microsoft.github.io/code-with-engineering-playbook/automated-testing/fault-injection-testing/",
|
|
33
|
+
"section": "Controlled failure and observations",
|
|
34
|
+
"checkedAt": "2026-11-08",
|
|
35
|
+
"versionScope": "Living ISE playbook; revision unknown",
|
|
36
|
+
"licenseStatus": "unknown",
|
|
37
|
+
"adoption": "adopt",
|
|
38
|
+
"limits": "Run scoped, controlled failures; do not infer production reliability from a small example."
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "google-ts",
|
|
42
|
+
"publisher": "Google",
|
|
43
|
+
"title": "TS/JS style guide",
|
|
44
|
+
"url": "https://google.github.io/styleguide/tsguide.html",
|
|
45
|
+
"section": "Environment caveat; types and exceptions",
|
|
46
|
+
"checkedAt": "2026-11-08",
|
|
47
|
+
"versionScope": "Public guide; revision unknown",
|
|
48
|
+
"licenseStatus": "unknown",
|
|
49
|
+
"adoption": "conditional",
|
|
50
|
+
"limits": "Google explicitly notes internal constraints differ; no blanket ban overriding a justified project convention."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": "typescript-publishing",
|
|
54
|
+
"publisher": "TypeScript",
|
|
55
|
+
"title": "Publishing declaration files",
|
|
56
|
+
"url": "https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html",
|
|
57
|
+
"section": "Types and declaration dependencies",
|
|
58
|
+
"checkedAt": "2026-11-08",
|
|
59
|
+
"versionScope": "Living handbook; check installed compiler/module resolution",
|
|
60
|
+
"licenseStatus": "unknown",
|
|
61
|
+
"adoption": "adopt",
|
|
62
|
+
"limits": "Validate the actual packed consumer; do not upgrade compiler or module mode on this basis."
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": "rust-api",
|
|
66
|
+
"publisher": "Rust library team",
|
|
67
|
+
"title": "Rust API Guidelines",
|
|
68
|
+
"url": "https://rust-lang.github.io/api-guidelines/",
|
|
69
|
+
"section": "Type safety, dependability and future proofing",
|
|
70
|
+
"checkedAt": "2026-11-08",
|
|
71
|
+
"versionScope": "Living recommendations; revision unknown",
|
|
72
|
+
"licenseStatus": "unknown",
|
|
73
|
+
"adoption": "adopt",
|
|
74
|
+
"limits": "Guidance rather than language law; preserve edition and MSRV."
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "tokio-join",
|
|
78
|
+
"publisher": "Tokio project",
|
|
79
|
+
"title": "JoinHandle",
|
|
80
|
+
"url": "https://docs.rs/tokio/latest/tokio/task/struct.JoinHandle.html",
|
|
81
|
+
"section": "Drop, abort and completion",
|
|
82
|
+
"checkedAt": "2026-11-08",
|
|
83
|
+
"versionScope": "Page observed 1.54.1; project runtime/version determines applicability",
|
|
84
|
+
"licenseStatus": "unknown",
|
|
85
|
+
"adoption": "conditional",
|
|
86
|
+
"limits": "Tokio-specific mechanics only when Tokio is already used; no new runtime dependency."
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"id": "uber-go",
|
|
90
|
+
"publisher": "Uber",
|
|
91
|
+
"title": "Go Style Guide",
|
|
92
|
+
"url": "https://github.com/uber-go/guide/blob/master/style.md",
|
|
93
|
+
"section": "Errors, interfaces and goroutine lifetime",
|
|
94
|
+
"checkedAt": "2026-11-08",
|
|
95
|
+
"versionScope": "Living master; revision unknown",
|
|
96
|
+
"licenseStatus": "unknown",
|
|
97
|
+
"adoption": "adopt",
|
|
98
|
+
"limits": "Do not import Uber dependencies or turn buffer-size style into a correctness theorem."
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"id": "go-context",
|
|
102
|
+
"publisher": "Go project",
|
|
103
|
+
"title": "context package",
|
|
104
|
+
"url": "https://pkg.go.dev/context",
|
|
105
|
+
"section": "Cancellation propagation and ownership",
|
|
106
|
+
"checkedAt": "2026-11-08",
|
|
107
|
+
"versionScope": "Standard library; check owning go.mod/toolchain",
|
|
108
|
+
"licenseStatus": "unknown",
|
|
109
|
+
"adoption": "adopt",
|
|
110
|
+
"limits": "A cancellation signal alone does not confirm worker exit."
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"id": "google-java",
|
|
114
|
+
"publisher": "Google",
|
|
115
|
+
"title": "Java Style Guide",
|
|
116
|
+
"url": "https://google.github.io/styleguide/javaguide.html",
|
|
117
|
+
"section": "Source structure and exception handling",
|
|
118
|
+
"checkedAt": "2026-11-08",
|
|
119
|
+
"versionScope": "Living public style; revision unknown",
|
|
120
|
+
"licenseStatus": "unknown",
|
|
121
|
+
"adoption": "conditional",
|
|
122
|
+
"limits": "Naming/layout follows local standard; style is distinct from runtime correctness."
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"id": "oracle-resources",
|
|
126
|
+
"publisher": "Oracle",
|
|
127
|
+
"title": "Try-with-resources",
|
|
128
|
+
"url": "https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html",
|
|
129
|
+
"section": "Closing resources and suppressed exceptions",
|
|
130
|
+
"checkedAt": "2026-11-08",
|
|
131
|
+
"versionScope": "JDK8 tutorial; not a source for newer runtime features",
|
|
132
|
+
"licenseStatus": "unknown",
|
|
133
|
+
"adoption": "adopt",
|
|
134
|
+
"limits": "Preserve primary cause and borrowed-resource ownership; check actual API contract."
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"id": "java-executor",
|
|
138
|
+
"publisher": "Oracle",
|
|
139
|
+
"title": "ExecutorService",
|
|
140
|
+
"url": "https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ExecutorService.html",
|
|
141
|
+
"section": "Shutdown, termination and awaitTermination",
|
|
142
|
+
"checkedAt": "2026-11-08",
|
|
143
|
+
"versionScope": "Java SE17 documentation",
|
|
144
|
+
"licenseStatus": "unknown",
|
|
145
|
+
"adoption": "conditional",
|
|
146
|
+
"limits": "Check target JDK; no automatic virtual-thread or JDK migration."
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"id": "google-python",
|
|
150
|
+
"publisher": "Google",
|
|
151
|
+
"title": "Python Style Guide",
|
|
152
|
+
"url": "https://google.github.io/styleguide/pyguide.html",
|
|
153
|
+
"section": "Imports, exceptions and mutable state",
|
|
154
|
+
"checkedAt": "2026-11-08",
|
|
155
|
+
"versionScope": "Living public guide; revision unknown",
|
|
156
|
+
"licenseStatus": "unknown",
|
|
157
|
+
"adoption": "conditional",
|
|
158
|
+
"limits": "Keep current formatter/type checker and library responsibilities."
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"id": "python-asyncio",
|
|
162
|
+
"publisher": "Python project",
|
|
163
|
+
"title": "Coroutines and tasks",
|
|
164
|
+
"url": "https://docs.python.org/3/library/asyncio-task.html",
|
|
165
|
+
"section": "Cancellation and task ownership",
|
|
166
|
+
"checkedAt": "2026-11-08",
|
|
167
|
+
"versionScope": "Page observed 3.15.2; feature availability follows project Python",
|
|
168
|
+
"licenseStatus": "unknown",
|
|
169
|
+
"adoption": "conditional",
|
|
170
|
+
"limits": "Newer TaskGroup/timeout features require a supported project version; no upgrade implied."
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"id": "cert-c",
|
|
174
|
+
"publisher": "CMU SEI",
|
|
175
|
+
"title": "MEM00-C allocation and release",
|
|
176
|
+
"url": "https://cmu-sei.github.io/secure-coding-standards/sei-cert-c-coding-standard/recommendations/memory-management-mem/mem00-c/",
|
|
177
|
+
"section": "MEM00-C memory responsibility",
|
|
178
|
+
"checkedAt": "2026-11-08",
|
|
179
|
+
"versionScope": "2016-edition standard family; MEM00-C is a recommendation",
|
|
180
|
+
"licenseStatus": "unknown",
|
|
181
|
+
"adoption": "adopt",
|
|
182
|
+
"limits": "Do not label recommendations as mandatory CERT rules or apply C++ ownership machinery to pure C."
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"id": "cpp-core",
|
|
186
|
+
"publisher": "C++ Core Guidelines editors",
|
|
187
|
+
"title": "C++ Core Guidelines",
|
|
188
|
+
"url": "https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines",
|
|
189
|
+
"section": "Resource and lifetime interfaces",
|
|
190
|
+
"checkedAt": "2026-11-08",
|
|
191
|
+
"versionScope": "Page dated 2026-06-14, living release0.8",
|
|
192
|
+
"licenseStatus": "unknown",
|
|
193
|
+
"adoption": "adopt",
|
|
194
|
+
"limits": "Adapt to existing exception policy and compiler; borrowing does not imply ownership."
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"id": "google-cpp",
|
|
198
|
+
"publisher": "Google",
|
|
199
|
+
"title": "C++ Style Guide",
|
|
200
|
+
"url": "https://google.github.io/styleguide/cppguide.html",
|
|
201
|
+
"section": "Exceptions and project consistency",
|
|
202
|
+
"checkedAt": "2026-11-08",
|
|
203
|
+
"versionScope": "Living public guide; revision unknown",
|
|
204
|
+
"licenseStatus": "unknown",
|
|
205
|
+
"adoption": "conditional",
|
|
206
|
+
"limits": "Its exception/standard policy is not universal; preserve the owning project policy and C ABI."
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"id": "ms-sal",
|
|
210
|
+
"publisher": "Microsoft",
|
|
211
|
+
"title": "Understanding SAL",
|
|
212
|
+
"url": "https://learn.microsoft.com/en-us/cpp/code-quality/understanding-sal?view=msvc-170",
|
|
213
|
+
"section": "Parameter preconditions and output guarantees",
|
|
214
|
+
"checkedAt": "2026-11-08",
|
|
215
|
+
"versionScope": "MSVC170 documentation view",
|
|
216
|
+
"licenseStatus": "unknown",
|
|
217
|
+
"adoption": "conditional",
|
|
218
|
+
"limits": "SAL is an optional toolchain-specific expression, not a portable mandatory annotation."
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"id": "aws-retry",
|
|
222
|
+
"publisher": "AWS",
|
|
223
|
+
"title": "Timeouts, retries and backoff with jitter",
|
|
224
|
+
"url": "https://aws.amazon.com/builders-library/timeouts-retries-and-backoff-with-jitter/",
|
|
225
|
+
"section": "Timeouts, bounded retries and retry amplification",
|
|
226
|
+
"checkedAt": "2026-11-08",
|
|
227
|
+
"versionScope": "Article dated 2019-12-05; official Builder Center redirect",
|
|
228
|
+
"licenseStatus": "unknown",
|
|
229
|
+
"adoption": "adopt",
|
|
230
|
+
"limits": "Retry only semantically safe operations within a total budget; failure classes alone do not grant write replay."
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"id": "aws-idempotency",
|
|
234
|
+
"publisher": "AWS",
|
|
235
|
+
"title": "Making retries safe with idempotent APIs",
|
|
236
|
+
"url": "https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/",
|
|
237
|
+
"section": "Caller intent, duplicate requests and atomic recording",
|
|
238
|
+
"checkedAt": "2026-11-08",
|
|
239
|
+
"versionScope": "Builders Library; revision unknown",
|
|
240
|
+
"licenseStatus": "unknown",
|
|
241
|
+
"adoption": "adopt",
|
|
242
|
+
"limits": "A process-local example does not establish database/multi-process exactly-once."
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"id": "react-effects",
|
|
246
|
+
"publisher": "React project",
|
|
247
|
+
"title": "useEffect",
|
|
248
|
+
"url": "https://react.dev/reference/react/useEffect",
|
|
249
|
+
"section": "Cleanup and fetching race conditions",
|
|
250
|
+
"checkedAt": "2026-11-08",
|
|
251
|
+
"versionScope": "Page observed React19.3; use installed project API",
|
|
252
|
+
"licenseStatus": "unknown",
|
|
253
|
+
"adoption": "adopt",
|
|
254
|
+
"limits": "Abort and stale-result checks complement each other; no React upgrade implied."
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"id": "react-act",
|
|
258
|
+
"publisher": "React project",
|
|
259
|
+
"title": "act",
|
|
260
|
+
"url": "https://react.dev/reference/react/act",
|
|
261
|
+
"section": "Applying updates before assertions",
|
|
262
|
+
"checkedAt": "2026-11-08",
|
|
263
|
+
"versionScope": "Page observed React19.3; verify sample versions",
|
|
264
|
+
"licenseStatus": "unknown",
|
|
265
|
+
"adoption": "adopt",
|
|
266
|
+
"limits": "DOM simulation is not browser E2E or native desktop execution."
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"id": "vue-watchers",
|
|
270
|
+
"publisher": "Vue project",
|
|
271
|
+
"title": "Watchers",
|
|
272
|
+
"url": "https://vuejs.org/guide/essentials/watchers.html",
|
|
273
|
+
"section": "Side-effect cleanup",
|
|
274
|
+
"checkedAt": "2026-11-08",
|
|
275
|
+
"versionScope": "Vue3; onWatcherCleanup requires3.5+ and synchronous registration",
|
|
276
|
+
"licenseStatus": "unknown",
|
|
277
|
+
"adoption": "conditional",
|
|
278
|
+
"limits": "Use supported callback cleanup on older Vue3; no framework migration."
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
"id": "tauri-permissions",
|
|
282
|
+
"publisher": "Tauri project",
|
|
283
|
+
"title": "Permissions",
|
|
284
|
+
"url": "https://v2.tauri.app/security/permissions/",
|
|
285
|
+
"section": "Command allow/deny and capability scope",
|
|
286
|
+
"checkedAt": "2026-11-08",
|
|
287
|
+
"versionScope": "Tauri2 docs; check installed version/configuration",
|
|
288
|
+
"licenseStatus": "unknown",
|
|
289
|
+
"adoption": "conditional",
|
|
290
|
+
"limits": "Rust command-unit tests do not activate webview permissions or prove packaged GUI security."
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"id": "electron-security",
|
|
294
|
+
"publisher": "Electron project",
|
|
295
|
+
"title": "Security",
|
|
296
|
+
"url": "https://www.electronjs.org/docs/latest/tutorial/security",
|
|
297
|
+
"section": "IPC sender checks and renderer trust",
|
|
298
|
+
"checkedAt": "2026-11-08",
|
|
299
|
+
"versionScope": "Living docs; match installed Electron",
|
|
300
|
+
"licenseStatus": "unknown",
|
|
301
|
+
"adoption": "conditional",
|
|
302
|
+
"limits": "Handler tests do not prove sandbox/context isolation is active in a packaged app."
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
"id": "spring-tests",
|
|
306
|
+
"publisher": "Spring project",
|
|
307
|
+
"title": "Testing Spring Boot applications",
|
|
308
|
+
"url": "https://docs.spring.io/spring-boot/3.5/reference/testing/spring-boot-applications.html",
|
|
309
|
+
"section": "Test slices and application tests",
|
|
310
|
+
"checkedAt": "2026-11-08",
|
|
311
|
+
"versionScope": "Boot3.5 docs observed3.5.16; preserve sample/project versions",
|
|
312
|
+
"licenseStatus": "unknown",
|
|
313
|
+
"adoption": "conditional",
|
|
314
|
+
"limits": "Test scope matters; MVC tests do not establish live DB/transaction or deployment behavior."
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
"id": "fastapi-lifespan",
|
|
318
|
+
"publisher": "FastAPI project",
|
|
319
|
+
"title": "Lifespan events",
|
|
320
|
+
"url": "https://fastapi.tiangolo.com/advanced/events/",
|
|
321
|
+
"section": "Acquire and release application resources",
|
|
322
|
+
"checkedAt": "2026-11-08",
|
|
323
|
+
"versionScope": "Living FastAPI documentation; match pinned dependencies",
|
|
324
|
+
"licenseStatus": "unknown",
|
|
325
|
+
"adoption": "conditional",
|
|
326
|
+
"limits": "Use actual lifespan execution in tests; import does not own a live connection."
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
"id": "gin-binding",
|
|
330
|
+
"publisher": "Gin project",
|
|
331
|
+
"title": "Binding",
|
|
332
|
+
"url": "https://gin-gonic.com/en/docs/binding/",
|
|
333
|
+
"section": "Binding errors and validation",
|
|
334
|
+
"checkedAt": "2026-11-08",
|
|
335
|
+
"versionScope": "Living Gin documentation; match pinned module",
|
|
336
|
+
"licenseStatus": "unknown",
|
|
337
|
+
"adoption": "conditional",
|
|
338
|
+
"limits": "Writing/aborting a response does not replace explicit control-flow return in the current handler."
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"id": "axum-extractors",
|
|
342
|
+
"publisher": "Axum project",
|
|
343
|
+
"title": "Extractors",
|
|
344
|
+
"url": "https://docs.rs/axum/latest/axum/extract/",
|
|
345
|
+
"section": "Extractor order and rejections",
|
|
346
|
+
"checkedAt": "2026-11-08",
|
|
347
|
+
"versionScope": "Latest route observed0.8.9; fixed0.8.9 route unavailable via browser tool",
|
|
348
|
+
"licenseStatus": "unknown",
|
|
349
|
+
"adoption": "conditional",
|
|
350
|
+
"limits": "Pinned existing example is authoritative for compilation; do not assume source signatures across releases."
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"id": "drogon-filters",
|
|
354
|
+
"publisher": "Drogon project",
|
|
355
|
+
"title": "Middleware and Filter",
|
|
356
|
+
"url": "https://github.com/drogonframework/drogon/wiki/ENG-05-Middleware-and-Filter",
|
|
357
|
+
"section": "Filter callbacks and continuation",
|
|
358
|
+
"checkedAt": "2026-11-08",
|
|
359
|
+
"versionScope": "Living wiki; match compiled example version",
|
|
360
|
+
"licenseStatus": "unknown",
|
|
361
|
+
"adoption": "conditional",
|
|
362
|
+
"limits": "Synthetic role headers are not authentication; callback lifetime must follow actual ownership."
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
"id": "node-typescript",
|
|
366
|
+
"publisher": "Node.js project",
|
|
367
|
+
"title": "Modules: TypeScript",
|
|
368
|
+
"url": "https://nodejs.org/api/typescript.html",
|
|
369
|
+
"section": "Type-stripping history, enabling, and separate type checking",
|
|
370
|
+
"checkedAt": "2026-11-08",
|
|
371
|
+
"versionScope": "Page observed26.13.0; sample>=22.18, actual24.14.1 tested; product Node>=22 unchanged",
|
|
372
|
+
"licenseStatus": "unknown",
|
|
373
|
+
"adoption": "conditional",
|
|
374
|
+
"limits": "Native stripping is not type checking and ignores tsconfig. Missing sample capability is MISSING, not a product runtime upgrade."
|
|
375
|
+
}
|
|
376
|
+
]
|
|
377
|
+
}
|
package/localized/zh-CN/skills/cc-typescript-project-standard/references/engineering-practices.md
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
practiceCards:
|
|
3
|
+
- id: "cc-typescript-project-standard:input-validation"
|
|
4
|
+
level: "required"
|
|
5
|
+
sourceIds: ["google-ts"]
|
|
6
|
+
caseIds: ["EP-TS-01"]
|
|
7
|
+
evidence: "case"
|
|
8
|
+
- id: "cc-typescript-project-standard:async-errors"
|
|
9
|
+
level: "required"
|
|
10
|
+
sourceIds: ["google-ts","aws-idempotency"]
|
|
11
|
+
caseIds: ["EP-TS-01","EP-UI-01"]
|
|
12
|
+
evidence: "review-only"
|
|
13
|
+
- id: "cc-typescript-project-standard:package-contract"
|
|
14
|
+
level: "required"
|
|
15
|
+
sourceIds: ["typescript-publishing","google-ts"]
|
|
16
|
+
caseIds: ["EP-TS-01"]
|
|
17
|
+
evidence: "review-only"
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# 本入口工程决策
|
|
21
|
+
|
|
22
|
+
先定位项目角色、工具链及已有约定,再按需读取[公共原则](common/engineering-practices.md)。下列条件仅约束当前语言/场景;结构检查不证明全部语义或实际运行。
|
|
23
|
+
|
|
24
|
+
<a id="cc-typescript-project-standard:input-validation"></a>
|
|
25
|
+
## 副作用前校验外部数据
|
|
26
|
+
|
|
27
|
+
级别: required
|
|
28
|
+
|
|
29
|
+
### 风险
|
|
30
|
+
类型断言可能把非法JSON伪装为可信领域值。
|
|
31
|
+
|
|
32
|
+
### 适用
|
|
33
|
+
适用于网络、IPC、文件和插件输入;已有不变量的内部值不必重复建立schema。
|
|
34
|
+
|
|
35
|
+
### 决策
|
|
36
|
+
接收unknown,用已有schema/类型守卫收窄,协议值转换为领域类型后才产生副作用;明确金额单位、枚举和失败输出。
|
|
37
|
+
|
|
38
|
+
### 例外
|
|
39
|
+
生成客户端有用,但不能校验远端实际响应;刻意信任的边界须记录可信来源。
|
|
40
|
+
|
|
41
|
+
### 正反示意
|
|
42
|
+
正例:字符串金额被拒绝,零副作用。反例:as Payment使扣款回调接收坏输入。
|
|
43
|
+
|
|
44
|
+
### 验证
|
|
45
|
+
运行本地非法/成功配对;消费项目再补空响应、非法枚举等协议场景。
|
|
46
|
+
|
|
47
|
+
### 来源
|
|
48
|
+
google-ts — [来源与适用限制](common/engineering-practices.sources.json).
|
|
49
|
+
|
|
50
|
+
证据标识: EP-TS-01; case. [本入口可运行案例](../examples/engineering/README.md)。 执行状态及覆盖范围见实际记录;关联ID不证明该卡全部语义。
|
|
51
|
+
|
|
52
|
+
<a id="cc-typescript-project-standard:async-errors"></a>
|
|
53
|
+
## 经已负责的异步链传播失败
|
|
54
|
+
|
|
55
|
+
级别: required
|
|
56
|
+
|
|
57
|
+
### 风险
|
|
58
|
+
漂浮异步任务和吞拒绝可能过早发布成功。
|
|
59
|
+
|
|
60
|
+
### 适用
|
|
61
|
+
适用于本单元创建的Promise/回调,不向通用库强加UI hook。
|
|
62
|
+
|
|
63
|
+
### 决策
|
|
64
|
+
返回/await所属Promise,安全保留unknown错误上下文,显式表达待处理/失败/成功;脱离任务必须有刻意指定的生命周期拥有者。
|
|
65
|
+
|
|
66
|
+
### 例外
|
|
67
|
+
Abort仅说明调用方结束等待,不代表远端写回滚;不确定写先核对再重试,并沿用已有错误类型。
|
|
68
|
+
|
|
69
|
+
### 正反示意
|
|
70
|
+
正例:已提交写超时后进入待确认。反例:catch返回空成功值或悄悄重试扣款。
|
|
71
|
+
|
|
72
|
+
### 验证
|
|
73
|
+
在负责单元注入拒绝和迟到完成;本地TS例只覆盖校验,UI/服务ID指向独立证据。
|
|
74
|
+
|
|
75
|
+
### 来源
|
|
76
|
+
google-ts, aws-idempotency — [来源与适用限制](common/engineering-practices.sources.json).
|
|
77
|
+
|
|
78
|
+
证据标识: EP-TS-01, EP-UI-01; review-only. 执行状态及覆盖范围见实际记录;关联ID不证明该卡全部语义。
|
|
79
|
+
|
|
80
|
+
<a id="cc-typescript-project-standard:package-contract"></a>
|
|
81
|
+
## 在真实消费者验证声明
|
|
82
|
+
|
|
83
|
+
级别: required
|
|
84
|
+
|
|
85
|
+
### 风险
|
|
86
|
+
工作区别名和未声明类型依赖可能在打包后消失。
|
|
87
|
+
|
|
88
|
+
### 适用
|
|
89
|
+
适用于库/SDK/CLI导出;仅应用内部模块不必变成发布包。
|
|
90
|
+
|
|
91
|
+
### 决策
|
|
92
|
+
exports、types、files、模块解析匹配已声明消费者,离开workspace验证tarball;沿用已有严格配置,改变时记录局部迁移。
|
|
93
|
+
|
|
94
|
+
### 例外
|
|
95
|
+
Google内部namespace/enum/断言风格有条件适用;skipLibCheck可作为依赖政策,但不能证明自身公共边界正确;exactOptionalPropertyTypes并非strict所包含。
|
|
96
|
+
|
|
97
|
+
### 正反示意
|
|
98
|
+
正例:归档消费者解析已声明类型依赖。反例:为了模仿指南更改所有包的模块模式。
|
|
99
|
+
|
|
100
|
+
### 验证
|
|
101
|
+
执行已有类型/构建及归档消费者检查;输入校验样例本身不证明声明兼容。
|
|
102
|
+
|
|
103
|
+
### 来源
|
|
104
|
+
typescript-publishing, google-ts — [来源与适用限制](common/engineering-practices.sources.json).
|
|
105
|
+
|
|
106
|
+
证据标识: EP-TS-01; review-only. 执行状态及覆盖范围见实际记录;关联ID不证明该卡全部语义。
|
package/localized/zh-CN/skills/cc-typescript-project-standard/references/type-safety-patterns.md
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# 类型安全模式
|
|
2
|
+
|
|
3
|
+
## 类型边界审查清单
|
|
4
|
+
|
|
5
|
+
- DTO 应与外部载荷对应,并在 API 边界处进行转换。
|
|
6
|
+
- 领域模型或视图模型使用前端命名和稳定的联合类型。
|
|
7
|
+
- 组件 props 需命名明确,仅在该文件外复用时才导出。
|
|
8
|
+
- 公开函数必须有显式的参数和返回值类型。
|
|
9
|
+
- 外部输入必须从 `unknown` 开始,通过 schema 校验或类型守卫逐步收窄。
|
|
10
|
+
- 配置映射表优先使用 `as const` 和 `satisfies`,避免宽泛断言。
|
|
11
|
+
|
|
12
|
+
## 使用 `satisfies` 的配置映射表
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
type Tone = "neutral" | "success" | "warning" | "danger";
|
|
16
|
+
|
|
17
|
+
const STATUS_TONE = {
|
|
18
|
+
draft: "neutral",
|
|
19
|
+
paid: "success",
|
|
20
|
+
overdue: "danger",
|
|
21
|
+
} as const satisfies Record<string, Tone>;
|
|
22
|
+
|
|
23
|
+
type InvoiceStatus = keyof typeof STATUS_TONE;
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
这样既保留了字面量值,又验证了映射表符合预期的值域。
|
|
27
|
+
|
|
28
|
+
## 映射类型用于表单错误
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
type FieldErrors<TValues extends Record<string, unknown>> = {
|
|
32
|
+
[Key in keyof TValues]?: string;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
interface ProfileFormValues {
|
|
36
|
+
email: string;
|
|
37
|
+
displayName: string;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
type ProfileFormErrors = FieldErrors<ProfileFormValues>;
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## 模板字面量类型用于事件命名
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
interface AnalyticsPayloads {
|
|
47
|
+
checkoutStarted: { cartId: string };
|
|
48
|
+
checkoutCompleted: { orderId: string };
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
type AnalyticsEventName = keyof AnalyticsPayloads;
|
|
52
|
+
type AnalyticsHandlerName = `on${Capitalize<string & AnalyticsEventName>}`;
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
当项目中已有事件命名规范时使用此模式。不要为一次性字符串引入。
|
|
56
|
+
|
|
57
|
+
## 泛型选择器契约
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
interface Entity { id: string }
|
|
61
|
+
export function selectEntity<T extends Entity>(items: readonly T[], id: string): T | undefined {
|
|
62
|
+
return items.find(item => item.id === id);
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## 类型审查反馈
|
|
67
|
+
|
|
68
|
+
报告类型安全问题时,需包含:
|
|
69
|
+
|
|
70
|
+
- 过于宽泛、过于狭窄或不合理的类型边界。
|
|
71
|
+
- 尽管通过 TypeScript 但可能在运行时失败的行为。
|
|
72
|
+
- 最小替换类型或守卫方案。
|
|
73
|
+
- 该变更是否需要测试或类型测试。
|