@bovinphang/craft-common 1.0.1 → 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 +10873 -208
- 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
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
practiceCards:
|
|
3
|
+
- id: "cc-native-memory-safety:allocator-pairs"
|
|
4
|
+
level: "required"
|
|
5
|
+
sourceIds: ["cert-c","cpp-core"]
|
|
6
|
+
caseIds: ["EP-C-01","EP-CPP-01"]
|
|
7
|
+
evidence: "review-only"
|
|
8
|
+
- id: "cc-native-memory-safety:teardown-races"
|
|
9
|
+
level: "conditional"
|
|
10
|
+
sourceIds: ["cpp-core","cert-c"]
|
|
11
|
+
caseIds: ["EP-CPP-01","EP-IPC-01"]
|
|
12
|
+
evidence: "review-only"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Local engineering decisions
|
|
16
|
+
|
|
17
|
+
Locate the actual role, toolchain and existing conventions, then read relevant [shared principles](common/engineering-practices.md). These conditions apply to this entry, not every project. Structure checks do not prove all semantics or execution.
|
|
18
|
+
|
|
19
|
+
<a id="cc-native-memory-safety:allocator-pairs"></a>
|
|
20
|
+
## Allocation and release form one explicit contract
|
|
21
|
+
|
|
22
|
+
Level: required
|
|
23
|
+
|
|
24
|
+
### Risk
|
|
25
|
+
Foreign ownership and allocator mismatch can cause corruption despite non-null pointers.
|
|
26
|
+
|
|
27
|
+
### Applies
|
|
28
|
+
For actual C/C++/Rust/native or plugin ownership transfers, not every application variable.
|
|
29
|
+
|
|
30
|
+
### Decision
|
|
31
|
+
Record validity, borrow duration, transfer point and matching allocator/release context. Each early failure releases only what this operation actually acquired.
|
|
32
|
+
|
|
33
|
+
### Exceptions
|
|
34
|
+
A managed wrapper or smart pointer must preserve the native release contract. Do not infer ownership from nullability or destroy caller-borrowed memory.
|
|
35
|
+
|
|
36
|
+
### Examples
|
|
37
|
+
Better: plugin exports the release pair for owned output. Worse: generic host delete is used for every foreign buffer.
|
|
38
|
+
|
|
39
|
+
### Verification
|
|
40
|
+
Use allocation/failure counters and real native consumers. C/C++ sample evidence is scoped; unsafe Rust/FFI, architecture and sanitizer checks remain separate.
|
|
41
|
+
|
|
42
|
+
### Sources
|
|
43
|
+
cert-c, cpp-core — [registry and limits](common/engineering-practices.sources.json).
|
|
44
|
+
|
|
45
|
+
Evidence IDs: EP-C-01, EP-CPP-01; review-only. Execution status and scope require actual records; a related ID does not prove every decision on this card.
|
|
46
|
+
|
|
47
|
+
<a id="cc-native-memory-safety:teardown-races"></a>
|
|
48
|
+
## Release follows confirmed quiescence
|
|
49
|
+
|
|
50
|
+
Level: conditional
|
|
51
|
+
|
|
52
|
+
### Risk
|
|
53
|
+
Resetting one handle does not end concurrent access through another alias or callback.
|
|
54
|
+
|
|
55
|
+
### Applies
|
|
56
|
+
For callbacks/threads/device buffers that may outlive a native owner.
|
|
57
|
+
|
|
58
|
+
### Decision
|
|
59
|
+
Stop new access, coordinate cancellation/drain, wait for actual users and then release/unload in dependency order. Define repeated-close and failed-shutdown behavior.
|
|
60
|
+
|
|
61
|
+
### Exceptions
|
|
62
|
+
A reference count is not an alias or lifetime proof. A forced exit may abandon work; expose that state rather than marking graceful completion.
|
|
63
|
+
|
|
64
|
+
### Examples
|
|
65
|
+
Better: callback completion is observed before unloading its code. Worse: free a buffer when the waiting coroutine times out while native work continues.
|
|
66
|
+
|
|
67
|
+
### Verification
|
|
68
|
+
Arrange teardown interleavings and failures with events and native tooling; handler/partial-construction cases do not prove all concurrent schedules.
|
|
69
|
+
|
|
70
|
+
### Sources
|
|
71
|
+
cpp-core, cert-c — [registry and limits](common/engineering-practices.sources.json).
|
|
72
|
+
|
|
73
|
+
Evidence IDs: EP-CPP-01, EP-IPC-01; review-only. Execution status and scope require actual records; a related ID does not prove every decision on this card.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Native memory and FFI safety
|
|
2
|
+
|
|
3
|
+
## Specialist checks
|
|
4
|
+
|
|
5
|
+
1. Preserve a reproducible input, allocation/release stacks, platform/runtime identity and concurrent teardown sequence.
|
|
6
|
+
|
|
7
|
+
2. State owner, aliases, borrow duration and allocator pair at each boundary. The allocating runtime must have a supported matching release path.
|
|
8
|
+
|
|
9
|
+
3. In C use explicit ownership transfer and partial-cleanup paths; in C++ use suitable RAII/custom deleters while keeping borrowed references borrowed.
|
|
10
|
+
|
|
11
|
+
4. Keep exceptions and unsupported implementation types inside their ABI boundary. Check buffer lengths, overflow and object lifetime before access.
|
|
12
|
+
|
|
13
|
+
5. Exercise failure injection, repeated close, callback-after-unload and concurrent destruction. Do not hide a dangling alias by merely setting one pointer to null.
|
|
14
|
+
|
|
15
|
+
6. Run supported address/undefined/thread diagnostics separately as appropriate, plus regression tests; record unavailable tools and coverage limits.
|
|
16
|
+
|
|
17
|
+
<a id="scope"></a>
|
|
18
|
+
## Scope and examples
|
|
19
|
+
|
|
20
|
+
Use for:
|
|
21
|
+
- Diagnose use-after-free across a C/C++ FFI boundary
|
|
22
|
+
- Pair allocation and release across dynamic libraries
|
|
23
|
+
- Test partial initialization and repeated cleanup
|
|
24
|
+
- Reproduce a teardown race without disabling sanitizers
|
|
25
|
+
|
|
26
|
+
Apply language-appropriate ownership: C cleanup contracts and C++ RAII are different; sanitizer success is bounded evidence.
|
|
27
|
+
|
|
28
|
+
## Evidence to deliver
|
|
29
|
+
|
|
30
|
+
- Repository/contract evidence and the exact affected scope.
|
|
31
|
+
- Chosen approach, invariants, resource/error or failure boundaries.
|
|
32
|
+
- Commands actually run and results, unrun checks and unproven claims.
|
|
33
|
+
- Compatibility, recovery/rollback or follow-up limits; review findings need verified locations.
|
|
34
|
+
|
|
35
|
+
## Primary reference
|
|
36
|
+
|
|
37
|
+
[Relevant official/project documentation](https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html) (checked 2026-11-06). Match the actual project version before applying version-sensitive details; the page version does not authorize an upgrade.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cc-python-async
|
|
3
|
+
description: "Use when Python event-loop blocking, task cancellation, async resource cleanup, bounded concurrency or thread offloading need implementation or diagnosis."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Python async lifecycle
|
|
7
|
+
|
|
8
|
+
Apply to libraries, CLI tools, desktop cores and services. Determine the application role from the actual project; a frontend/backend product name does not constrain the language.
|
|
9
|
+
|
|
10
|
+
Map event-loop work, blocking clients, task ownership and resource acquisition. Confirm interpreter/runtime features before choosing task-group APIs.
|
|
11
|
+
|
|
12
|
+
## Apply the workflow
|
|
13
|
+
|
|
14
|
+
1. Locate the actual project, task boundary and existing contracts; load only the language and domain material needed now.
|
|
15
|
+
2. Apply the [specialist checks](references/practice.md), establishing the input evidence before selecting the smallest change.
|
|
16
|
+
3. Verify affected behavior with existing repository tools. Explicitly report missing tools, environments or execution; a plan is not a passing result.
|
|
17
|
+
4. Deliver scope, specialist decisions, actual verification and remaining risk. A review-only task stays read-only.
|
|
18
|
+
|
|
19
|
+
## Task boundary
|
|
20
|
+
|
|
21
|
+
General Python package/typing conventions use the project standard; do not create an event loop per request as a generic fix.
|
|
22
|
+
|
|
23
|
+
## Engineering practices
|
|
24
|
+
|
|
25
|
+
Read the [local engineering decisions](references/engineering-practices.md) for this task and follow their links to relevant shared principles. Apply levels and exceptions against actual project contracts; product frontend/backend labels do not constrain language or role.
|