@wneng/create-keel 0.1.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.
Files changed (230) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +21 -0
  3. package/dist/index.js +1479 -0
  4. package/dist/index.js.map +1 -0
  5. package/package.json +55 -0
  6. package/src/templates/.gitkeep +0 -0
  7. package/src/templates/agent-rust-desktop/files/Cargo.toml +12 -0
  8. package/src/templates/agent-rust-desktop/files/README.md +16 -0
  9. package/src/templates/agent-rust-desktop/files/generated-gitkeep +0 -0
  10. package/src/templates/agent-rust-desktop/files/main.rs +24 -0
  11. package/src/templates/agent-rust-desktop/fragment.yaml +18 -0
  12. package/src/templates/ai-claude-code/files/CLAUDE.md +19 -0
  13. package/src/templates/ai-claude-code/files/commands-README.md +7 -0
  14. package/src/templates/ai-claude-code/fragment.yaml +12 -0
  15. package/src/templates/ai-codex/files/project.md +11 -0
  16. package/src/templates/ai-codex/files/prompts-README.md +7 -0
  17. package/src/templates/ai-codex/fragment.yaml +12 -0
  18. package/src/templates/ai-cursor/files/rules-README.md +6 -0
  19. package/src/templates/ai-cursor/files/rules-project.md +15 -0
  20. package/src/templates/ai-cursor/fragment.yaml +12 -0
  21. package/src/templates/ai-kiro/files/prompts-README.md +5 -0
  22. package/src/templates/ai-kiro/files/specs-gitkeep +0 -0
  23. package/src/templates/ai-kiro/files/steering-README.md +5 -0
  24. package/src/templates/ai-kiro/files/steering-project.md +9 -0
  25. package/src/templates/ai-kiro/fragment.yaml +18 -0
  26. package/src/templates/ci-gitee/files/pipeline.yml +18 -0
  27. package/src/templates/ci-gitee/fragment.yaml +9 -0
  28. package/src/templates/ci-github/files/ci.yml +17 -0
  29. package/src/templates/ci-github/fragment.yaml +9 -0
  30. package/src/templates/contracts-base/files/CHANGELOG.md +10 -0
  31. package/src/templates/contracts-base/files/README.md +75 -0
  32. package/src/templates/contracts-base/files/_ai-policy.yaml +20 -0
  33. package/src/templates/contracts-base/files/dictionaries/domain-models.yaml +3 -0
  34. package/src/templates/contracts-base/files/dictionaries/enums.yaml +3 -0
  35. package/src/templates/contracts-base/files/environment/.env.example +3 -0
  36. package/src/templates/contracts-base/files/environment/env.schema.json +10 -0
  37. package/src/templates/contracts-base/files/errors/error-codes.yaml +6 -0
  38. package/src/templates/contracts-base/files/errors/error-response.schema.json +13 -0
  39. package/src/templates/contracts-base/files/events-gitkeep +0 -0
  40. package/src/templates/contracts-base/files/resources-examples-gitkeep +0 -0
  41. package/src/templates/contracts-base/files/resources-mocks-gitkeep +0 -0
  42. package/src/templates/contracts-base/files/states-gitkeep +0 -0
  43. package/src/templates/contracts-base/files/tests-acceptance-gitkeep +0 -0
  44. package/src/templates/contracts-base/files/tests-contracts-gitkeep +0 -0
  45. package/src/templates/contracts-base/files/tests-postman-gitkeep +0 -0
  46. package/src/templates/contracts-base/fragment.yaml +53 -0
  47. package/src/templates/contracts-events/files/asyncapi.yaml +8 -0
  48. package/src/templates/contracts-events/fragment.yaml +9 -0
  49. package/src/templates/contracts-rest/files/api.yaml +7 -0
  50. package/src/templates/contracts-rest/fragment.yaml +9 -0
  51. package/src/templates/contracts-rest-events/files/api.yaml +7 -0
  52. package/src/templates/contracts-rest-events/files/asyncapi.yaml +8 -0
  53. package/src/templates/contracts-rest-events/fragment.yaml +12 -0
  54. package/src/templates/deploy-bare-metal/files/release-checklist.md +8 -0
  55. package/src/templates/deploy-bare-metal/fragment.yaml +9 -0
  56. package/src/templates/deploy-common/files/README.md +5 -0
  57. package/src/templates/deploy-common/fragment.yaml +8 -0
  58. package/src/templates/deploy-docker-compose/files/compose.override.example.yaml +4 -0
  59. package/src/templates/deploy-docker-compose/files/docker-compose.yaml +4 -0
  60. package/src/templates/deploy-docker-compose/fragment.yaml +12 -0
  61. package/src/templates/deploy-kubernetes/files/Chart.yaml +6 -0
  62. package/src/templates/deploy-kubernetes/files/deployment.yaml +18 -0
  63. package/src/templates/deploy-kubernetes/files/namespace.yaml +4 -0
  64. package/src/templates/deploy-kubernetes/files/values.yaml +4 -0
  65. package/src/templates/deploy-kubernetes/fragment.yaml +18 -0
  66. package/src/templates/docs-skeleton/files/README.md +134 -0
  67. package/src/templates/docs-skeleton/files/arch-README.md +18 -0
  68. package/src/templates/docs-skeleton/files/arch-_ai-policy.yaml +8 -0
  69. package/src/templates/docs-skeleton/files/archive-README.md +20 -0
  70. package/src/templates/docs-skeleton/files/archive-_ai-policy.yaml +8 -0
  71. package/src/templates/docs-skeleton/files/assets-README.md +29 -0
  72. package/src/templates/docs-skeleton/files/assets-_ai-policy.yaml +8 -0
  73. package/src/templates/docs-skeleton/files/assets-design-gitkeep +0 -0
  74. package/src/templates/docs-skeleton/files/assets-diagrams-gitkeep +0 -0
  75. package/src/templates/docs-skeleton/files/assets-images-gitkeep +0 -0
  76. package/src/templates/docs-skeleton/files/be-README.md +29 -0
  77. package/src/templates/docs-skeleton/files/be-_ai-policy.yaml +8 -0
  78. package/src/templates/docs-skeleton/files/bg-README.md +21 -0
  79. package/src/templates/docs-skeleton/files/bg-_ai-policy.yaml +8 -0
  80. package/src/templates/docs-skeleton/files/eng-README.md +21 -0
  81. package/src/templates/docs-skeleton/files/eng-_ai-policy.yaml +9 -0
  82. package/src/templates/docs-skeleton/files/fe-README.md +31 -0
  83. package/src/templates/docs-skeleton/files/fe-_ai-policy.yaml +8 -0
  84. package/src/templates/docs-skeleton/files/governance-README.md +28 -0
  85. package/src/templates/docs-skeleton/files/governance-_ai-policy.yaml +13 -0
  86. package/src/templates/docs-skeleton/files/governance-ai-access-modes.md +324 -0
  87. package/src/templates/docs-skeleton/files/governance-assets.md +50 -0
  88. package/src/templates/docs-skeleton/files/governance-checklists.md +55 -0
  89. package/src/templates/docs-skeleton/files/governance-ci.md +36 -0
  90. package/src/templates/docs-skeleton/files/governance-deploy-ops.md +107 -0
  91. package/src/templates/docs-skeleton/files/governance-docs-references.md +39 -0
  92. package/src/templates/docs-skeleton/files/governance-git-workflow.md +45 -0
  93. package/src/templates/docs-skeleton/files/governance-integrations.md +66 -0
  94. package/src/templates/docs-skeleton/files/governance-security.md +69 -0
  95. package/src/templates/docs-skeleton/files/governance-tools-scripts.md +128 -0
  96. package/src/templates/docs-skeleton/files/process-docs-README.md +22 -0
  97. package/src/templates/docs-skeleton/files/process-docs-_ai-policy.yaml +10 -0
  98. package/src/templates/docs-skeleton/files/references-README.md +19 -0
  99. package/src/templates/docs-skeleton/files/references-_ai-policy.yaml +9 -0
  100. package/src/templates/docs-skeleton/files/references-legal-source.yaml +5 -0
  101. package/src/templates/docs-skeleton/files/references-standards-source.yaml +5 -0
  102. package/src/templates/docs-skeleton/files/references-vendors-source.yaml +5 -0
  103. package/src/templates/docs-skeleton/files/usage-quickstart.md +168 -0
  104. package/src/templates/docs-skeleton/fragment.yaml +129 -0
  105. package/src/templates/integrations-docs/files/README.md +53 -0
  106. package/src/templates/integrations-docs/files/_template.md +63 -0
  107. package/src/templates/integrations-docs/fragment.yaml +12 -0
  108. package/src/templates/license-apache-2/files/LICENSE +15 -0
  109. package/src/templates/license-apache-2/fragment.yaml +9 -0
  110. package/src/templates/license-mit/files/LICENSE +21 -0
  111. package/src/templates/license-mit/fragment.yaml +9 -0
  112. package/src/templates/miniapp-wechat/files/README.md +10 -0
  113. package/src/templates/miniapp-wechat/files/app.js +5 -0
  114. package/src/templates/miniapp-wechat/files/app.json +9 -0
  115. package/src/templates/miniapp-wechat/files/app.wxss +4 -0
  116. package/src/templates/miniapp-wechat/files/generated-gitkeep +0 -0
  117. package/src/templates/miniapp-wechat/files/pages-index.js +4 -0
  118. package/src/templates/miniapp-wechat/files/pages-index.json +3 -0
  119. package/src/templates/miniapp-wechat/files/pages-index.wxml +3 -0
  120. package/src/templates/miniapp-wechat/files/pages-index.wxss +10 -0
  121. package/src/templates/miniapp-wechat/files/project.config.json +13 -0
  122. package/src/templates/miniapp-wechat/files/sitemap.json +8 -0
  123. package/src/templates/miniapp-wechat/fragment.yaml +39 -0
  124. package/src/templates/mobile-flutter/files/README.md +14 -0
  125. package/src/templates/mobile-flutter/files/analysis_options.yaml +6 -0
  126. package/src/templates/mobile-flutter/files/generated-gitkeep +0 -0
  127. package/src/templates/mobile-flutter/files/main.dart +18 -0
  128. package/src/templates/mobile-flutter/files/pubspec.yaml +19 -0
  129. package/src/templates/mobile-flutter/fragment.yaml +21 -0
  130. package/src/templates/mobile-react-native/files/App.tsx +10 -0
  131. package/src/templates/mobile-react-native/files/README.md +15 -0
  132. package/src/templates/mobile-react-native/files/app.json +4 -0
  133. package/src/templates/mobile-react-native/files/generated-gitkeep +0 -0
  134. package/src/templates/mobile-react-native/files/index.js +5 -0
  135. package/src/templates/mobile-react-native/files/package.json +14 -0
  136. package/src/templates/mobile-react-native/fragment.yaml +24 -0
  137. package/src/templates/repo-skeleton/files/docs-gitkeep +0 -0
  138. package/src/templates/repo-skeleton/files/ops-README.md +6 -0
  139. package/src/templates/repo-skeleton/files/ops-k8s-gitkeep +0 -0
  140. package/src/templates/repo-skeleton/files/ops-monitoring-gitkeep +0 -0
  141. package/src/templates/repo-skeleton/files/ops-terraform-gitkeep +0 -0
  142. package/src/templates/repo-skeleton/files/scripts-README.md +11 -0
  143. package/src/templates/repo-skeleton/files/scripts-ci-gitkeep +0 -0
  144. package/src/templates/repo-skeleton/files/scripts-dev-gitkeep +0 -0
  145. package/src/templates/repo-skeleton/files/scripts-oneoff-gitkeep +0 -0
  146. package/src/templates/repo-skeleton/files/scripts-ops-gitkeep +0 -0
  147. package/src/templates/repo-skeleton/files/tools-README.md +4 -0
  148. package/src/templates/repo-skeleton/files/tools-contract-gitkeep +0 -0
  149. package/src/templates/repo-skeleton/fragment.yaml +41 -0
  150. package/src/templates/role-data/files/README.md +23 -0
  151. package/src/templates/role-data/files/_ai-policy.yaml +10 -0
  152. package/src/templates/role-data/files/dashboards-gitkeep +0 -0
  153. package/src/templates/role-data/files/data-catalog-gitkeep +0 -0
  154. package/src/templates/role-data/files/tracking-spec-gitkeep +0 -0
  155. package/src/templates/role-data/fragment.yaml +21 -0
  156. package/src/templates/role-design/files/README.md +26 -0
  157. package/src/templates/role-design/files/_ai-policy.yaml +11 -0
  158. package/src/templates/role-design/files/figma-exports-gitkeep +0 -0
  159. package/src/templates/role-design/files/ui-spec-gitkeep +0 -0
  160. package/src/templates/role-design/fragment.yaml +18 -0
  161. package/src/templates/role-field/files/README.md +33 -0
  162. package/src/templates/role-field/files/_ai-policy.yaml +13 -0
  163. package/src/templates/role-field/files/runbooks-README.md +5 -0
  164. package/src/templates/role-field/files/templates-README.md +5 -0
  165. package/src/templates/role-field/files/templates-_ai-policy.yaml +8 -0
  166. package/src/templates/role-field/fragment.yaml +21 -0
  167. package/src/templates/role-legal-security/files/README.md +33 -0
  168. package/src/templates/role-legal-security/files/_ai-policy.yaml +14 -0
  169. package/src/templates/role-legal-security/files/assessments-README.md +5 -0
  170. package/src/templates/role-legal-security/files/assessments-_ai-policy.yaml +9 -0
  171. package/src/templates/role-legal-security/files/evidence-README.md +5 -0
  172. package/src/templates/role-legal-security/files/evidence-_ai-policy.yaml +8 -0
  173. package/src/templates/role-legal-security/fragment.yaml +24 -0
  174. package/src/templates/role-marketing/files/README.md +32 -0
  175. package/src/templates/role-marketing/files/_ai-policy.yaml +14 -0
  176. package/src/templates/role-marketing/files/drafts-README.md +7 -0
  177. package/src/templates/role-marketing/files/drafts-_ai-policy.yaml +19 -0
  178. package/src/templates/role-marketing/files/published-README.md +5 -0
  179. package/src/templates/role-marketing/files/published-_ai-policy.yaml +8 -0
  180. package/src/templates/role-marketing/files/templates-README.md +5 -0
  181. package/src/templates/role-marketing/files/templates-_ai-policy.yaml +8 -0
  182. package/src/templates/role-marketing/fragment.yaml +30 -0
  183. package/src/templates/role-qa/files/README.md +20 -0
  184. package/src/templates/role-qa/files/_ai-policy.yaml +9 -0
  185. package/src/templates/role-qa/files/defects-gitkeep +0 -0
  186. package/src/templates/role-qa/files/test-cases-gitkeep +0 -0
  187. package/src/templates/role-qa/files/test-plans-gitkeep +0 -0
  188. package/src/templates/role-qa/fragment.yaml +21 -0
  189. package/src/templates/root-files/files/.editorconfig +15 -0
  190. package/src/templates/root-files/files/.gitattributes +13 -0
  191. package/src/templates/root-files/files/AGENTS.md +194 -0
  192. package/src/templates/root-files/files/README.md +16 -0
  193. package/src/templates/root-files/fragment.yaml +20 -0
  194. package/src/templates/server-go/files/README.md +3 -0
  195. package/src/templates/server-go/files/generated-gitkeep +0 -0
  196. package/src/templates/server-go/files/go.mod +3 -0
  197. package/src/templates/server-go/files/main.go +7 -0
  198. package/src/templates/server-go/fragment.yaml +18 -0
  199. package/src/templates/server-java/files/Application.java +12 -0
  200. package/src/templates/server-java/files/README.md +48 -0
  201. package/src/templates/server-java/files/application-test.yaml +17 -0
  202. package/src/templates/server-java/files/application.yaml +33 -0
  203. package/src/templates/server-java/files/generated-gitkeep +0 -0
  204. package/src/templates/server-java/files/pom.xml +97 -0
  205. package/src/templates/server-java/fragment.yaml +24 -0
  206. package/src/templates/server-node/files/README.md +6 -0
  207. package/src/templates/server-node/files/generated-gitkeep +0 -0
  208. package/src/templates/server-node/files/package.json +9 -0
  209. package/src/templates/server-node/files/src-index.ts +2 -0
  210. package/src/templates/server-node/fragment.yaml +18 -0
  211. package/src/templates/server-python/files/README.md +4 -0
  212. package/src/templates/server-python/files/app-init.py +1 -0
  213. package/src/templates/server-python/files/generated-gitkeep +0 -0
  214. package/src/templates/server-python/files/pyproject.toml +5 -0
  215. package/src/templates/server-python/fragment.yaml +18 -0
  216. package/src/templates/web-react/files/README.md +29 -0
  217. package/src/templates/web-react/files/generated-gitkeep +0 -0
  218. package/src/templates/web-react/files/index.html +12 -0
  219. package/src/templates/web-react/files/package.json +25 -0
  220. package/src/templates/web-react/files/src-App.tsx +11 -0
  221. package/src/templates/web-react/files/src-main.tsx +14 -0
  222. package/src/templates/web-react/files/tsconfig.json +20 -0
  223. package/src/templates/web-react/files/vite.config.ts +15 -0
  224. package/src/templates/web-react/fragment.yaml +30 -0
  225. package/src/templates/web-vue/files/README.md +3 -0
  226. package/src/templates/web-vue/files/generated-gitkeep +0 -0
  227. package/src/templates/web-vue/files/index.html +11 -0
  228. package/src/templates/web-vue/files/package.json +9 -0
  229. package/src/templates/web-vue/files/src-main.ts +3 -0
  230. package/src/templates/web-vue/fragment.yaml +21 -0
@@ -0,0 +1,19 @@
1
+ name: <%= it.options.projectName.replace(/-/g, '_') %>_mobile
2
+ description: Flutter app for <%= it.options.projectName %>.
3
+ publish_to: "none"
4
+ version: 0.1.0+1
5
+
6
+ environment:
7
+ sdk: ">=3.3.0 <4.0.0"
8
+
9
+ dependencies:
10
+ flutter:
11
+ sdk: flutter
12
+
13
+ dev_dependencies:
14
+ flutter_test:
15
+ sdk: flutter
16
+ flutter_lints: ^4.0.0
17
+
18
+ flutter:
19
+ uses-material-design: true
@@ -0,0 +1,21 @@
1
+ name: mobile-flutter
2
+ version: 1.0.0
3
+ appliesWhen:
4
+ mobile: flutter
5
+ priority: 30
6
+ files:
7
+ - from: files/README.md
8
+ to: mobile/README.md
9
+ render: true
10
+ - from: files/pubspec.yaml
11
+ to: mobile/pubspec.yaml
12
+ render: true
13
+ - from: files/main.dart
14
+ to: mobile/lib/main.dart
15
+ render: false
16
+ - from: files/analysis_options.yaml
17
+ to: mobile/analysis_options.yaml
18
+ render: false
19
+ - from: files/generated-gitkeep
20
+ to: mobile/generated/.gitkeep
21
+ render: false
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { SafeAreaView, Text } from 'react-native';
3
+
4
+ export default function App(): React.JSX.Element {
5
+ return (
6
+ <SafeAreaView>
7
+ <Text>hello</Text>
8
+ </SafeAreaView>
9
+ );
10
+ }
@@ -0,0 +1,15 @@
1
+ # mobile/
2
+
3
+ React Native app for **<%= it.options.projectName %>**.
4
+
5
+ Contract-first: any code that talks to `server/` must be aligned with
6
+ `contracts/openapi/api.yaml`. Generated network bindings live in
7
+ `mobile/generated/` and are not hand-edited.
8
+
9
+ ## Build
10
+
11
+ ```
12
+ npm install
13
+ npx react-native run-ios # macOS only
14
+ npx react-native run-android # requires an Android emulator or device
15
+ ```
@@ -0,0 +1,4 @@
1
+ {
2
+ "name": "<%= it.options.projectName %>",
3
+ "displayName": "<%= it.options.projectName %>"
4
+ }
@@ -0,0 +1,5 @@
1
+ import { AppRegistry } from 'react-native';
2
+ import App from './App';
3
+ import appJson from './app.json';
4
+
5
+ AppRegistry.registerComponent(appJson.name, () => App);
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "<%= it.options.projectName %>-mobile",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "scripts": {
6
+ "start": "react-native start",
7
+ "android": "react-native run-android",
8
+ "ios": "react-native run-ios"
9
+ },
10
+ "dependencies": {
11
+ "react": "18.3.1",
12
+ "react-native": "0.74.3"
13
+ }
14
+ }
@@ -0,0 +1,24 @@
1
+ name: mobile-react-native
2
+ version: 1.0.0
3
+ appliesWhen:
4
+ mobile: react-native
5
+ priority: 30
6
+ files:
7
+ - from: files/README.md
8
+ to: mobile/README.md
9
+ render: true
10
+ - from: files/package.json
11
+ to: mobile/package.json
12
+ render: true
13
+ - from: files/index.js
14
+ to: mobile/index.js
15
+ render: false
16
+ - from: files/App.tsx
17
+ to: mobile/App.tsx
18
+ render: false
19
+ - from: files/app.json
20
+ to: mobile/app.json
21
+ render: true
22
+ - from: files/generated-gitkeep
23
+ to: mobile/generated/.gitkeep
24
+ render: false
File without changes
@@ -0,0 +1,6 @@
1
+ # ops/
2
+
3
+ Infrastructure-as-code for the environments this project runs in.
4
+ Examples: Terraform modules, cluster-level Kubernetes manifests, DNS, monitoring.
5
+
6
+ See root `AGENTS.md` §11 for the ops vs deploy boundary.
@@ -0,0 +1,11 @@
1
+ # scripts/
2
+
3
+ Thin, day-to-day maintenance scripts.
4
+
5
+ Each script must document, at the top of the file:
6
+ - purpose
7
+ - arguments
8
+ - idempotency (idempotent / non-idempotent)
9
+ - risk (read-only / mutate-local / mutate-remote)
10
+
11
+ See root `AGENTS.md` §12.
@@ -0,0 +1,4 @@
1
+ # tools/
2
+
3
+ Structured, reusable developer tools — each tool lives in its own subdirectory
4
+ with a README and version metadata. Thin scripts belong in `scripts/`.
@@ -0,0 +1,41 @@
1
+ name: repo-skeleton
2
+ version: 1.0.0
3
+ appliesWhen: {}
4
+ priority: 10
5
+ files:
6
+ - from: files/docs-gitkeep
7
+ to: docs/.gitkeep
8
+ render: false
9
+ - from: files/ops-README.md
10
+ to: ops/README.md
11
+ render: false
12
+ - from: files/ops-terraform-gitkeep
13
+ to: ops/terraform/.gitkeep
14
+ render: false
15
+ - from: files/ops-k8s-gitkeep
16
+ to: ops/k8s/.gitkeep
17
+ render: false
18
+ - from: files/ops-monitoring-gitkeep
19
+ to: ops/monitoring/.gitkeep
20
+ render: false
21
+ - from: files/tools-README.md
22
+ to: tools/README.md
23
+ render: false
24
+ - from: files/tools-contract-gitkeep
25
+ to: tools/contract/.gitkeep
26
+ render: false
27
+ - from: files/scripts-README.md
28
+ to: scripts/README.md
29
+ render: false
30
+ - from: files/scripts-dev-gitkeep
31
+ to: scripts/dev/.gitkeep
32
+ render: false
33
+ - from: files/scripts-ci-gitkeep
34
+ to: scripts/ci/.gitkeep
35
+ render: false
36
+ - from: files/scripts-ops-gitkeep
37
+ to: scripts/ops/.gitkeep
38
+ render: false
39
+ - from: files/scripts-oneoff-gitkeep
40
+ to: scripts/oneoff/.gitkeep
41
+ render: false
@@ -0,0 +1,23 @@
1
+ # 09-数据与埋点
2
+
3
+ 埋点契约、看板说明、数据资产目录的归属目录。依据 ADR-0002 引入。
4
+
5
+ ## 子目录
6
+
7
+ | 目录 | 内容 |
8
+ |------|------|
9
+ | `tracking-spec/` | 埋点叙事文档(业务背景 + 触发场景 + 字段含义)。机器可消费的事件定义最终升级到 `contracts/events/event-catalog.yaml` |
10
+ | `dashboards/` | 看板说明(指标定义、刷新频率、责任人) |
11
+ | `data-catalog/` | 数据资产目录(表 / 主题域 / 字段血缘) |
12
+
13
+ ## AI 触达模式
14
+
15
+ `mode: suggest`。AI 在契约或代码变更时,应在 PR 描述中提示影响范围,但**不自动改**主线。
16
+
17
+ ## 与 `contracts/events/` 的关系
18
+
19
+ 依据 ADR-0002 §10 决议 9:
20
+
21
+ - `tracking-spec/` 中的每条埋点应**双向引用** `contracts/events/event-catalog.yaml` 中的对应锚点
22
+ - 当埋点定义稳定后,机器可消费部分**升级**到 `contracts/events/`;本目录保留叙事性的"为什么 + 业务上下文"
23
+ - 避免重复定义:同一事件不得同时在两处给出 schema 真值
@@ -0,0 +1,10 @@
1
+ # docs/09-数据与埋点/_ai-policy.yaml
2
+ # 依据 ADR-0002 §3.2.3,ADR-0003(access modes)
3
+
4
+ mode: suggest
5
+
6
+ notes: |
7
+ 埋点契约、看板说明、数据资产目录。
8
+ 与 contracts/events/ 的关系:09 仅放叙事 + 看板说明;
9
+ 机器可消费的事件定义最终升级到 contracts/events/,并在 09 中引用契约锚点。
10
+ 当前阶段保持 suggest,由数据 / 产品主导。
@@ -0,0 +1,21 @@
1
+ name: role-data
2
+ version: 1.0.0
3
+ appliesWhen:
4
+ role: data
5
+ priority: 30
6
+ files:
7
+ - from: files/README.md
8
+ to: docs/09-数据与埋点/README.md
9
+ render: false
10
+ - from: files/_ai-policy.yaml
11
+ to: docs/09-数据与埋点/_ai-policy.yaml
12
+ render: false
13
+ - from: files/tracking-spec-gitkeep
14
+ to: docs/09-数据与埋点/tracking-spec/.gitkeep
15
+ render: false
16
+ - from: files/dashboards-gitkeep
17
+ to: docs/09-数据与埋点/dashboards/.gitkeep
18
+ render: false
19
+ - from: files/data-catalog-gitkeep
20
+ to: docs/09-数据与埋点/data-catalog/.gitkeep
21
+ render: false
@@ -0,0 +1,26 @@
1
+ # design/
2
+
3
+ UI / UX 设计真值的归属目录。依据 ADR-0002 引入。
4
+
5
+ > 区别于 `docs/assets/`:assets/ 偏向**插图**(架构图、截图);design/ 是**设计真值**(Figma 主线、UI 规范)。
6
+
7
+ ## 子目录
8
+
9
+ | 目录 | 内容 |
10
+ |------|------|
11
+ | `figma-exports/` | 从 Figma 等设计工具导出的 SVG / PNG 资源 |
12
+ | `ui-spec/` | UI 规范(颜色、间距、组件库说明) |
13
+
14
+ ## AI 触达模式
15
+
16
+ `mode: on-demand`,trigger-keyword: **"更新设计稿"**。
17
+
18
+ AI 默认**不读不写**本目录。听到关键词后允许读取,但写入仍受限——设计稿主线在 Figma 等工具,本目录是导出资产的归档;AI 不应主动改设计稿。
19
+
20
+ ## 二进制资源策略
21
+
22
+ 依据 ADR-0002 §10 决议 11:
23
+
24
+ - 本目录**限制为非二进制资源**(SVG / PNG / Markdown)
25
+ - 二进制 Figma 源文件(`.fig`、`.sketch` 等)走 **Git LFS**
26
+ - LFS 配置规则见 [`docs/governance/assets.md`](../governance/assets.md)
@@ -0,0 +1,11 @@
1
+ # docs/design/_ai-policy.yaml
2
+ # 依据 ADR-0002 §3.2.6,ADR-0003(access modes)
3
+
4
+ mode: on-demand
5
+ trigger-keyword: "更新设计稿"
6
+
7
+ notes: |
8
+ 设计稿主线在 Figma 等设计工具,本目录是导出资产的归档。
9
+ 限制为非二进制资源(SVG / PNG);二进制 Figma 源文件走 Git LFS,
10
+ 规则见 docs/governance/assets.md。
11
+ AI 不应主动改设计稿;UI 规范文字部分由设计师维护。
@@ -0,0 +1,18 @@
1
+ name: role-design
2
+ version: 1.0.0
3
+ appliesWhen:
4
+ role: design
5
+ priority: 30
6
+ files:
7
+ - from: files/README.md
8
+ to: docs/design/README.md
9
+ render: false
10
+ - from: files/_ai-policy.yaml
11
+ to: docs/design/_ai-policy.yaml
12
+ render: false
13
+ - from: files/figma-exports-gitkeep
14
+ to: docs/design/figma-exports/.gitkeep
15
+ render: false
16
+ - from: files/ui-spec-gitkeep
17
+ to: docs/design/ui-spec/.gitkeep
18
+ render: false
@@ -0,0 +1,33 @@
1
+ # 08-部署与现场实施
2
+
3
+ 客户专属部署手册、上线作业书、巡检报告的归属目录。依据 ADR-0002 引入。
4
+
5
+ > "技术支持" 在 To B 项目语境中通常指**现场运维**,而非 Tier-1 客服。后者不进仓库(走 Zendesk / 飞书工单)。
6
+
7
+ ## 子目录
8
+
9
+ | 目录 | 内容 | AI 触达 |
10
+ |------|------|---------|
11
+ | `templates/` | 部署手册母版 | read-only |
12
+ | `runbooks/` | 通用上线作业书(适用所有客户) | suggest(继承) |
13
+ | `customer-<id>/` | 客户专属交付物(**人工创建**) | read-only(已交付不动) |
14
+ | `customer-<id>/.pending/` | 待应用的 AI 草稿(**人工创建**) | generated |
15
+
16
+ ## AI 触达模式
17
+
18
+ 顶层 `mode: on-demand`,trigger-keyword: **"更新部署手册"**。
19
+
20
+ AI 在没有听到触发关键词的情况下,**默认不读不写**本目录。听到关键词后允许读取并写入,但仍受子目录覆盖约束。
21
+
22
+ ## 双闸门约束
23
+
24
+ 1. AI 触发更新 → 只能写在某 `customer-<id>/.pending/`
25
+ 2. 实施工程师审核 → 手动 `git mv .pending/x.md ../x.md`
26
+ 3. AI **永远不能**直接写 `customer-<id>/`(已交付的内容冻结)
27
+ 4. AI **永远不能**直接写 `templates/`(母版人工维护)
28
+
29
+ ## 与既有目录的关系
30
+
31
+ - 与 `deploy/`:deploy/ 是**应用发布物**(Helm、K8s manifest);本目录是**人写的实施叙事**
32
+ - 与 `ops/`:ops/ 是**基础设施**;本目录承接现场实施的人工流程
33
+ - 与 `docs/governance/deploy-ops.md`:governance 是**通用规则**;本目录是**客户专属交付**
@@ -0,0 +1,13 @@
1
+ # docs/08-部署与现场实施/_ai-policy.yaml
2
+ # 依据 ADR-0002 §3.2.2,ADR-0003(access modes)
3
+
4
+ mode: on-demand
5
+ trigger-keyword: "更新部署手册"
6
+
7
+ notes: |
8
+ 客户专属部署文档不应被 AI 主动同步。
9
+ 双闸门:
10
+ - templates/ 母版,read-only
11
+ - customer-<id>/ 客户专属交付物(人工创建),read-only
12
+ - customer-<id>/.pending/ 待应用的 AI 草稿(人工创建),generated
13
+ - runbooks/ 通用上线作业书,suggest(继承)
@@ -0,0 +1,5 @@
1
+ # runbooks/
2
+
3
+ 通用上线作业书。AI 触达:`suggest`(继承父目录 on-demand 之外的子目录策略——本目录在听到触发关键词后允许 AI 协助生成;常态下仅 PR 描述提示)。
4
+
5
+ 每份 runbook 描述一种**通用**操作流程(如"标准生产环境上线"、"灰度发布"、"紧急回滚"),适用于所有客户。客户专属差异落在 `../customer-<id>/`。
@@ -0,0 +1,5 @@
1
+ # templates/
2
+
3
+ 部署手册母版。AI 触达:`read-only`。
4
+
5
+ 每份母版文件给出客户上线手册的标准结构(环境清单、网络拓扑、证书与密钥、部署步骤、验证步骤、回滚预案)。客户专属手册基于母版生成到 `../customer-<id>/.pending/`,审核通过后由实施工程师手动 `git mv` 到 `../customer-<id>/`。
@@ -0,0 +1,8 @@
1
+ # docs/08-部署与现场实施/templates/_ai-policy.yaml
2
+ # 局部覆盖:母版人工维护
3
+
4
+ mode: read-only
5
+
6
+ notes: |
7
+ 部署手册母版,仅人工维护。AI 可读作为生成 customer-<id>/.pending/ 草稿的上下文,
8
+ 但不得直接修改本目录。
@@ -0,0 +1,21 @@
1
+ name: role-field
2
+ version: 1.0.0
3
+ appliesWhen:
4
+ role: field
5
+ priority: 30
6
+ files:
7
+ - from: files/README.md
8
+ to: docs/08-部署与现场实施/README.md
9
+ render: false
10
+ - from: files/_ai-policy.yaml
11
+ to: docs/08-部署与现场实施/_ai-policy.yaml
12
+ render: false
13
+ - from: files/templates-README.md
14
+ to: docs/08-部署与现场实施/templates/README.md
15
+ render: false
16
+ - from: files/templates-_ai-policy.yaml
17
+ to: docs/08-部署与现场实施/templates/_ai-policy.yaml
18
+ render: false
19
+ - from: files/runbooks-README.md
20
+ to: docs/08-部署与现场实施/runbooks/README.md
21
+ render: false
@@ -0,0 +1,33 @@
1
+ # 10-合规与安全
2
+
3
+ 合规清单、隐私评估(PIA)、第三方供应商安全评估证据的归属目录。依据 ADR-0002 引入。
4
+
5
+ ## 子目录
6
+
7
+ | 目录 | 内容 | AI 触达 |
8
+ |------|------|---------|
9
+ | `assessments/` | 评估稿(PIA、风险分析、第三方评估在编草稿) | suggest |
10
+ | `evidence/` | 已提交合规证据(等保备案、ISO 审计、客户安全问卷已交件) | read-only |
11
+
12
+ ## AI 触达模式
13
+
14
+ 顶层 `mode: on-demand`,trigger-keyword: **"更新合规证据"**。
15
+
16
+ AI 默认**不读不写**本目录。听到关键词后允许在 `assessments/` 协助起草;`evidence/` 永远 read-only。
17
+
18
+ ## 与 `docs/governance/security.md` 的关系
19
+
20
+ 依据 ADR-0002 §10 决议 10:**独立维护**。
21
+
22
+ - `docs/governance/security.md` 是**工程视角**:依赖扫描、漏洞响应、SBOM、密钥管理
23
+ - `docs/10-合规与安全/` 是**法务 / 合规视角**:等保自查、PIA、第三方供应商评估、审计证据
24
+
25
+ 两者目标受众不同(工程 vs 法务);变更节奏不同;不强制同步。
26
+
27
+ ## evidence/ 冻结规则
28
+
29
+ `evidence/` 中已提交的证据**不可修改**——它们是审计证据。如需修订:
30
+
31
+ 1. 新建 PR,新增文件(保留旧版本,不覆盖)
32
+ 2. 在新文件中说明前后变更
33
+ 3. 必要时通知法务 / 安全负责人
@@ -0,0 +1,14 @@
1
+ # docs/10-合规与安全/_ai-policy.yaml
2
+ # 依据 ADR-0002 §3.2.4,ADR-0003(access modes)
3
+
4
+ mode: on-demand
5
+ trigger-keyword: "更新合规证据"
6
+
7
+ notes: |
8
+ 合规证据需法务 / 安全人手动确认,不应被 AI 主动改写。
9
+ 与 docs/governance/security.md 独立维护:
10
+ - governance/security.md 是工程视角(依赖扫描、SBOM、应急响应)
11
+ - docs/10 是法务 / 合规视角(等保、PIA、第三方评估)
12
+ 双闸门:
13
+ - assessments/ 评估稿,suggest
14
+ - evidence/ 已提交证据,read-only(提交后视为审计证据,禁改)
@@ -0,0 +1,5 @@
1
+ # assessments/
2
+
3
+ 评估稿。AI 触达:`suggest`。
4
+
5
+ 承载在编的 PIA(隐私影响评估)、风险分析、第三方供应商安全评估等。允许多次迭代。审核通过并提交后,应由人工归档到 `../evidence/`(read-only)。
@@ -0,0 +1,9 @@
1
+ # docs/10-合规与安全/assessments/_ai-policy.yaml
2
+ # 局部覆盖:评估稿允许多次迭代
3
+
4
+ mode: suggest
5
+
6
+ notes: |
7
+ PIA、风险分析、第三方安全评估的在编草稿。
8
+ AI 在听到父目录触发关键词后,可协助起草;
9
+ 常态下仅 PR 描述提示,不自动改主线。
@@ -0,0 +1,5 @@
1
+ # evidence/
2
+
3
+ 已提交合规证据。AI 触达:`read-only`。
4
+
5
+ 承载已交付外部的证据材料(等保备案文件、ISO 审计回执、客户安全问卷已签交件)。**冻结**——不可覆盖。如需修订,新建 PR 增加新文件并保留旧版。
@@ -0,0 +1,8 @@
1
+ # docs/10-合规与安全/evidence/_ai-policy.yaml
2
+ # 局部覆盖:已提交证据冻结
3
+
4
+ mode: read-only
5
+
6
+ notes: |
7
+ 已提交的合规证据冻结;视为审计证据。
8
+ 如需修改,新建 PR 并保留旧版本。
@@ -0,0 +1,24 @@
1
+ name: role-legal-security
2
+ version: 1.0.0
3
+ appliesWhen:
4
+ role: legal-security
5
+ priority: 30
6
+ files:
7
+ - from: files/README.md
8
+ to: docs/10-合规与安全/README.md
9
+ render: false
10
+ - from: files/_ai-policy.yaml
11
+ to: docs/10-合规与安全/_ai-policy.yaml
12
+ render: false
13
+ - from: files/assessments-README.md
14
+ to: docs/10-合规与安全/assessments/README.md
15
+ render: false
16
+ - from: files/assessments-_ai-policy.yaml
17
+ to: docs/10-合规与安全/assessments/_ai-policy.yaml
18
+ render: false
19
+ - from: files/evidence-README.md
20
+ to: docs/10-合规与安全/evidence/README.md
21
+ render: false
22
+ - from: files/evidence-_ai-policy.yaml
23
+ to: docs/10-合规与安全/evidence/_ai-policy.yaml
24
+ render: false
@@ -0,0 +1,32 @@
1
+ # 11-市场与对外材料
2
+
3
+ 产品介绍、白皮书、博客、案例等对外材料的归属目录。依据 ADR-0002 引入。
4
+
5
+ ## 子目录(三层结构)
6
+
7
+ | 目录 | 内容 | AI 触达 |
8
+ |------|------|---------|
9
+ | `templates/` | 母版(PPT 框架、白皮书结构、案例模板) | read-only |
10
+ | `drafts/` | AI 生成的草稿(基于上游契约 + 需求) | generated |
11
+ | `published/` | 正式对外版本 | read-only |
12
+
13
+ ## AI 触达模式
14
+
15
+ 顶层 `mode: on-demand`,trigger-keyword: **"更新宣发"** 或 **"刷新市场材料"**。
16
+
17
+ AI 默认**不读不写**本目录。听到关键词后才允许动手,且受三层结构约束。
18
+
19
+ ## 双闸门约束
20
+
21
+ 1. AI 触发更新 → **只能写在 `drafts/`**
22
+ 2. 市场负责人审核 → 手动 `git mv drafts/x.pptx published/`
23
+ 3. AI **永远不能**直接写 `published/`(已对外的内容冻结)
24
+ 4. AI **永远不能**直接写 `templates/`(母版人工维护)
25
+
26
+ `drafts/` 内部用 `generated` 而非 `on-demand`:在父目录 on-demand 触发关键词被说出之后,drafts/ 这一档允许 AI 主动写。这是**双层授权**——先关键词,再 drafts/ 写。
27
+
28
+ ## 灾难场景与对冲
29
+
30
+ > 用户在 `contracts/openapi/api.yaml` 改一条错误码描述(PATCH 级),AI 顺手把产品 PPT v3 重写。
31
+
32
+ 本目录的三层结构 + on-demand 触发关键词 + published/ 永久 read-only 三重防护,把这个灾难锁死在 `drafts/` 内部,不影响外部已发布材料。
@@ -0,0 +1,14 @@
1
+ # docs/11-市场与对外材料/_ai-policy.yaml
2
+ # 依据 ADR-0002 §3.2.5,ADR-0003(access modes)
3
+
4
+ mode: on-demand
5
+ trigger-keyword:
6
+ - "更新宣发"
7
+ - "刷新市场材料"
8
+
9
+ notes: |
10
+ 对外材料的灾难场景:契约 PATCH 改一条错误码描述,
11
+ AI 顺手把产品 PPT v3 重写。本目录用三层结构隔离:
12
+ - templates/ 母版,read-only
13
+ - drafts/ AI 生成草稿,generated(双层授权:先关键词,再 drafts/)
14
+ - published/ 正式对外,read-only(人工 git mv 升级)
@@ -0,0 +1,7 @@
1
+ # drafts/
2
+
3
+ AI 生成的对外材料草稿。AI 触达:`generated`(双层授权——先听到父目录触发关键词,再才能在本目录写)。
4
+
5
+ source-of-truth: `contracts/**` + `docs/01-背景与需求/**`
6
+
7
+ 审核通过后由市场负责人手动 `git mv` 到 `../published/`。
@@ -0,0 +1,19 @@
1
+ # docs/11-市场与对外材料/drafts/_ai-policy.yaml
2
+ # 局部覆盖:双层授权后 AI 可主动写
3
+
4
+ mode: generated
5
+
6
+ source-of-truth:
7
+ - "contracts/**"
8
+ - "docs/01-背景与需求/**"
9
+
10
+ last-aligned-with:
11
+ source-commit: null
12
+ aligned-at: null
13
+
14
+ human-review-required: true
15
+
16
+ notes: |
17
+ AI 生成的对外材料草稿。需要先听到父目录的触发关键词
18
+ ("更新宣发" / "刷新市场材料")才允许 AI 在此处主动写。
19
+ 审核通过后由市场负责人手动 git mv 到 ../published/。
@@ -0,0 +1,5 @@
1
+ # published/
2
+
3
+ 正式对外版本。AI 触达:`read-only`。
4
+
5
+ 承载已发布到客户 / 公开渠道的最终版本(产品 PPT、白皮书、案例集等)。**冻结**——AI 不得直接修改。新版本必须从 `../drafts/` 经市场负责人手动 `git mv` 升级而来。
@@ -0,0 +1,8 @@
1
+ # docs/11-市场与对外材料/published/_ai-policy.yaml
2
+ # 局部覆盖:已对外内容冻结
3
+
4
+ mode: read-only
5
+
6
+ notes: |
7
+ 正式对外的市场材料,已发布到客户 / 公开渠道。
8
+ AI 永远不得直接写入本目录;新版本必须从 ../drafts/ 经人工 git mv 升级。