@icebreakers/monorepo-templates 1.3.0 → 1.3.2

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 (213) hide show
  1. package/README.md +6 -0
  2. package/README.zh-CN.md +6 -0
  3. package/assets/.github/workflows/ci.yml +11 -0
  4. package/assets/.github/workflows/release-intent-check.yml +57 -0
  5. package/assets/CONTRIBUTING.md +3 -1
  6. package/assets/package.json +57 -14
  7. package/assets/pnpm-workspace.yaml +13 -0
  8. package/assets/repoctl.config.ts +6 -1
  9. package/assets/turbo.json +16 -0
  10. package/package.json +4 -4
  11. package/templates/client/eslint.config.js +1 -1
  12. package/templates/client/package.json +13 -13
  13. package/templates/client/worker-configuration.d.ts +763 -217
  14. package/templates/server/package.json +3 -3
  15. package/templates/server/worker-configuration.d.ts +763 -217
  16. package/templates/vitepress/.vitepress/config.ts +17 -7
  17. package/templates/vitepress/.vitepress/home/content.ts +64 -156
  18. package/templates/vitepress/.vitepress/home/types.ts +18 -34
  19. package/templates/vitepress/.vitepress/navigation/routes.ts +89 -81
  20. package/templates/vitepress/.vitepress/seo.ts +16 -2
  21. package/templates/vitepress/.vitepress/theme/Layout.vue +27 -0
  22. package/templates/vitepress/.vitepress/theme/components/HomePage.vue +66 -88
  23. package/templates/vitepress/.vitepress/theme/home/foundation.css +161 -104
  24. package/templates/vitepress/.vitepress/theme/home/responsive.css +113 -20
  25. package/templates/vitepress/.vitepress/theme/home/sections.css +179 -100
  26. package/templates/vitepress/.vitepress/theme/index.ts +2 -0
  27. package/templates/vitepress/learn/index.md +18 -0
  28. package/templates/vitepress/{monorepo → learn/monorepo}/commands.md +1 -1
  29. package/templates/vitepress/{monorepo → learn/monorepo}/index.md +3 -3
  30. package/templates/vitepress/{monorepo → learn/monorepo}/templates.md +1 -1
  31. package/templates/vitepress/{why/what-is-npm-package.md → learn/packages/index.md} +1 -1
  32. package/templates/vitepress/{why → learn/packages}/modern/index.md +2 -2
  33. package/templates/vitepress/{why → learn/packages}/modern/typescript.md +1 -1
  34. package/templates/vitepress/{why/index.md → learn/packages/modern-overview.md} +1 -1
  35. package/templates/vitepress/{why/publish-basic-npm-package.md → learn/packages/publish.md} +1 -1
  36. package/templates/vitepress/{why/how-to-reuse-js-code.md → learn/packages/reuse-javascript.md} +2 -2
  37. package/templates/vitepress/{why/js-keywords.md → learn/packages/runtime-globals.md} +2 -2
  38. package/templates/vitepress/{repoctl/index.md → learn/repoctl-model.md} +8 -8
  39. package/templates/vitepress/{tools → learn/tools}/changeset.md +3 -3
  40. package/templates/vitepress/{tools → learn/tools}/husky.md +2 -2
  41. package/templates/vitepress/{tools → learn/tools}/lint-staged.md +2 -2
  42. package/templates/vitepress/{tools → learn/tools}/llms-txt.md +1 -1
  43. package/templates/vitepress/{tools → learn/tools}/pnpm.md +2 -2
  44. package/templates/vitepress/{tools → learn/tools}/renovate.md +2 -2
  45. package/templates/vitepress/{tools → learn/tools}/turborepo.md +2 -2
  46. package/templates/vitepress/package.json +7 -7
  47. package/templates/vitepress/public/brand/apple-touch-icon.png +0 -0
  48. package/templates/vitepress/public/brand/favicon.ico +0 -0
  49. package/templates/vitepress/public/brand/repoctl-lockup-dark.svg +6 -0
  50. package/templates/vitepress/public/brand/repoctl-lockup.svg +20 -0
  51. package/templates/vitepress/public/brand/repoctl-mark-192.png +0 -0
  52. package/templates/vitepress/public/brand/repoctl-mark-dark.svg +13 -0
  53. package/templates/vitepress/public/brand/repoctl-mark.svg +13 -0
  54. package/templates/vitepress/public/brand/repoctl-social-en.png +0 -0
  55. package/templates/vitepress/public/brand/repoctl-social-en.webp +0 -0
  56. package/templates/vitepress/public/brand/repoctl-social-zh.png +0 -0
  57. package/templates/vitepress/public/brand/repoctl-social-zh.webp +0 -0
  58. package/templates/vitepress/public/favicon.ico +0 -0
  59. package/templates/vitepress/public/logo.jpg +0 -0
  60. package/templates/vitepress/{repoctl → reference}/commands.md +2 -2
  61. package/templates/vitepress/reference/index.md +15 -0
  62. package/templates/vitepress/reference/output.md +37 -0
  63. package/templates/vitepress/{repoctl → reference}/templates.md +2 -2
  64. package/templates/vitepress/scripts/check-locales.ts +35 -1
  65. package/templates/vitepress/start/choose-next.md +14 -0
  66. package/templates/vitepress/start/first-run.md +39 -0
  67. package/templates/vitepress/start/index.md +26 -0
  68. package/templates/vitepress/{repoctl/getting-started.md → start/install.md} +5 -5
  69. package/templates/vitepress/{repoctl → tasks}/adopt-existing.md +30 -4
  70. package/templates/vitepress/{repoctl → tasks}/checks.md +27 -1
  71. package/templates/vitepress/{repoctl/workflows.md → tasks/ci.md} +30 -4
  72. package/templates/vitepress/tasks/create-project.md +37 -0
  73. package/templates/vitepress/{repoctl/scenarios.md → tasks/index.md} +8 -8
  74. package/templates/vitepress/tasks/release.md +31 -0
  75. package/templates/vitepress/{repoctl → tasks}/reports.md +25 -0
  76. package/templates/vitepress/{repoctl → tasks}/troubleshooting.md +30 -4
  77. package/templates/vitepress/zh/ai/llms-txt.md +6 -6
  78. package/templates/vitepress/zh/learn/index.md +18 -0
  79. package/templates/vitepress/zh/{monorepo → learn/monorepo}/commands.md +3 -3
  80. package/templates/vitepress/zh/{monorepo → learn/monorepo}/manage.md +4 -4
  81. package/templates/vitepress/zh/{monorepo → learn/monorepo}/templates.md +2 -2
  82. package/templates/vitepress/zh/{monorepo → learn/monorepo}/troubleshooting.md +2 -2
  83. package/templates/vitepress/zh/{why → learn/packages}/modern/index.md +1 -1
  84. package/templates/vitepress/zh/{why/index.md → learn/packages/modern-overview.md} +2 -2
  85. package/templates/vitepress/zh/{repoctl/index.md → learn/repoctl-model.md} +19 -19
  86. package/templates/vitepress/zh/{tools → learn/tools}/husky.md +1 -1
  87. package/templates/vitepress/zh/{tools → learn/tools}/lint-staged.md +1 -1
  88. package/templates/vitepress/zh/{tools → learn/tools}/llms-txt.md +1 -1
  89. package/templates/vitepress/zh/{tools → learn/tools}/pnpm.md +1 -1
  90. package/templates/vitepress/zh/{tools → learn/tools}/turborepo.md +11 -11
  91. package/templates/vitepress/zh/{repoctl → reference}/commands.md +4 -4
  92. package/templates/vitepress/zh/{repoctl → reference}/config.md +1 -1
  93. package/templates/vitepress/zh/reference/index.md +15 -0
  94. package/templates/vitepress/zh/reference/output.md +37 -0
  95. package/templates/vitepress/zh/{repoctl → reference}/templates.md +4 -4
  96. package/templates/vitepress/zh/start/choose-next.md +14 -0
  97. package/templates/vitepress/zh/{repoctl/doctor.md → start/diagnose.md} +1 -1
  98. package/templates/vitepress/zh/start/first-run.md +39 -0
  99. package/templates/vitepress/zh/start/index.md +26 -0
  100. package/templates/vitepress/zh/{repoctl/getting-started.md → start/install.md} +5 -5
  101. package/templates/vitepress/zh/{repoctl → tasks}/adopt-existing.md +30 -4
  102. package/templates/vitepress/zh/{repoctl → tasks}/checks.md +27 -1
  103. package/templates/vitepress/zh/{repoctl/workflows.md → tasks/ci.md} +38 -12
  104. package/templates/vitepress/zh/tasks/create-project.md +37 -0
  105. package/templates/vitepress/zh/{repoctl/scenarios.md → tasks/index.md} +8 -8
  106. package/templates/vitepress/zh/tasks/release.md +31 -0
  107. package/templates/vitepress/zh/{repoctl → tasks}/reports.md +25 -0
  108. package/templates/vitepress/zh/{repoctl → tasks}/troubleshooting.md +39 -13
  109. package/templates/vue-lib/package.json +5 -5
  110. package/templates/vitepress/getting-started.md +0 -11
  111. package/templates/vitepress/knowledge/index.md +0 -26
  112. package/templates/vitepress/thinking.md +0 -22
  113. package/templates/vitepress/zh/getting-started.md +0 -40
  114. package/templates/vitepress/zh/knowledge/index.md +0 -50
  115. package/templates/vitepress/zh/thinking.md +0 -91
  116. /package/templates/vitepress/{monorepo → learn/monorepo}/manage.md +0 -0
  117. /package/templates/vitepress/{monorepo → learn/monorepo}/publish.md +0 -0
  118. /package/templates/vitepress/{monorepo → learn/monorepo}/troubleshooting.md +0 -0
  119. /package/templates/vitepress/{why → learn/packages}/assets/npm-dt.svg +0 -0
  120. /package/templates/vitepress/{why → learn/packages}/assets/npm-ts.svg +0 -0
  121. /package/templates/vitepress/{why → learn/packages}/examples/0.npm-basic-package/index.js +0 -0
  122. /package/templates/vitepress/{why → learn/packages}/examples/0.npm-basic-package/package.json +0 -0
  123. /package/templates/vitepress/{why → learn/packages}/examples/1.npm-basic-package/index.cjs +0 -0
  124. /package/templates/vitepress/{why → learn/packages}/examples/1.npm-basic-package/index.d.ts +0 -0
  125. /package/templates/vitepress/{why → learn/packages}/examples/1.npm-basic-package/index.js +0 -0
  126. /package/templates/vitepress/{why → learn/packages}/examples/1.npm-basic-package/package.json +0 -0
  127. /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/README.md +0 -0
  128. /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/package-lock.json +0 -0
  129. /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/package.json +0 -0
  130. /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/rename-ext.js +0 -0
  131. /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/src/index.ts +0 -0
  132. /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/tsconfig.cjs.json +0 -0
  133. /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/tsconfig.esm.json +0 -0
  134. /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/tsconfig.json +0 -0
  135. /package/templates/vitepress/{why → learn/packages}/examples/3.npm-basic-package/README.md +0 -0
  136. /package/templates/vitepress/{why → learn/packages}/examples/3.npm-basic-package/package-lock.json +0 -0
  137. /package/templates/vitepress/{why → learn/packages}/examples/3.npm-basic-package/package.json +0 -0
  138. /package/templates/vitepress/{why → learn/packages}/examples/3.npm-basic-package/src/index.ts +0 -0
  139. /package/templates/vitepress/{why → learn/packages}/examples/3.npm-basic-package/tsconfig.json +0 -0
  140. /package/templates/vitepress/{why → learn/packages}/examples/3.npm-basic-package/tsdown.config.ts +0 -0
  141. /package/templates/vitepress/{why → learn/packages}/examples/usage-cjs/cjs.cjs +0 -0
  142. /package/templates/vitepress/{why → learn/packages}/examples/usage-cjs/esm.mjs +0 -0
  143. /package/templates/vitepress/{why → learn/packages}/examples/usage-cjs/index.js +0 -0
  144. /package/templates/vitepress/{why → learn/packages}/examples/usage-cjs/package-lock.json +0 -0
  145. /package/templates/vitepress/{why → learn/packages}/examples/usage-cjs/package.json +0 -0
  146. /package/templates/vitepress/{why → learn/packages}/examples/usage-esm/cjs.cjs +0 -0
  147. /package/templates/vitepress/{why → learn/packages}/examples/usage-esm/createRequire.js +0 -0
  148. /package/templates/vitepress/{why → learn/packages}/examples/usage-esm/esm.mjs +0 -0
  149. /package/templates/vitepress/{why → learn/packages}/examples/usage-esm/index.js +0 -0
  150. /package/templates/vitepress/{why → learn/packages}/examples/usage-esm/package-lock.json +0 -0
  151. /package/templates/vitepress/{why → learn/packages}/examples/usage-esm/package.json +0 -0
  152. /package/templates/vitepress/{why → learn/packages}/modern/bundlers.md +0 -0
  153. /package/templates/vitepress/{why → learn/packages}/modern/dts.md +0 -0
  154. /package/templates/vitepress/{why → learn/packages}/modern/esm-vs-cjs.md +0 -0
  155. /package/templates/vitepress/{why → learn/packages}/modern/package-entry-points.md +0 -0
  156. /package/templates/vitepress/{why/js-cjs-mjs.md → learn/packages/module-extensions.md} +0 -0
  157. /package/templates/vitepress/{tools → learn/tools}/index.md +0 -0
  158. /package/templates/vitepress/{repoctl → reference}/aliases.md +0 -0
  159. /package/templates/vitepress/{repoctl → reference}/config.md +0 -0
  160. /package/templates/vitepress/{repoctl → reference}/execution-model.md +0 -0
  161. /package/templates/vitepress/{repoctl → reference}/template-assets.md +0 -0
  162. /package/templates/vitepress/{repoctl/doctor.md → start/diagnose.md} +0 -0
  163. /package/templates/vitepress/zh/{monorepo → learn/monorepo}/index.md +0 -0
  164. /package/templates/vitepress/zh/{monorepo → learn/monorepo}/publish.md +0 -0
  165. /package/templates/vitepress/zh/{why → learn/packages}/assets/npm-dt.svg +0 -0
  166. /package/templates/vitepress/zh/{why → learn/packages}/assets/npm-ts.svg +0 -0
  167. /package/templates/vitepress/zh/{why → learn/packages}/examples/0.npm-basic-package/index.js +0 -0
  168. /package/templates/vitepress/zh/{why → learn/packages}/examples/0.npm-basic-package/package.json +0 -0
  169. /package/templates/vitepress/zh/{why → learn/packages}/examples/1.npm-basic-package/index.cjs +0 -0
  170. /package/templates/vitepress/zh/{why → learn/packages}/examples/1.npm-basic-package/index.d.ts +0 -0
  171. /package/templates/vitepress/zh/{why → learn/packages}/examples/1.npm-basic-package/index.js +0 -0
  172. /package/templates/vitepress/zh/{why → learn/packages}/examples/1.npm-basic-package/package.json +0 -0
  173. /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/README.md +0 -0
  174. /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/package-lock.json +0 -0
  175. /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/package.json +0 -0
  176. /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/rename-ext.js +0 -0
  177. /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/src/index.ts +0 -0
  178. /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/tsconfig.cjs.json +0 -0
  179. /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/tsconfig.esm.json +0 -0
  180. /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/tsconfig.json +0 -0
  181. /package/templates/vitepress/zh/{why → learn/packages}/examples/3.npm-basic-package/README.md +0 -0
  182. /package/templates/vitepress/zh/{why → learn/packages}/examples/3.npm-basic-package/package-lock.json +0 -0
  183. /package/templates/vitepress/zh/{why → learn/packages}/examples/3.npm-basic-package/package.json +0 -0
  184. /package/templates/vitepress/zh/{why → learn/packages}/examples/3.npm-basic-package/src/index.ts +0 -0
  185. /package/templates/vitepress/zh/{why → learn/packages}/examples/3.npm-basic-package/tsconfig.json +0 -0
  186. /package/templates/vitepress/zh/{why → learn/packages}/examples/3.npm-basic-package/tsdown.config.ts +0 -0
  187. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-cjs/cjs.cjs +0 -0
  188. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-cjs/esm.mjs +0 -0
  189. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-cjs/index.js +0 -0
  190. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-cjs/package-lock.json +0 -0
  191. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-cjs/package.json +0 -0
  192. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-esm/cjs.cjs +0 -0
  193. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-esm/createRequire.js +0 -0
  194. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-esm/esm.mjs +0 -0
  195. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-esm/index.js +0 -0
  196. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-esm/package-lock.json +0 -0
  197. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-esm/package.json +0 -0
  198. /package/templates/vitepress/zh/{why/what-is-npm-package.md → learn/packages/index.md} +0 -0
  199. /package/templates/vitepress/zh/{why → learn/packages}/modern/bundlers.md +0 -0
  200. /package/templates/vitepress/zh/{why → learn/packages}/modern/dts.md +0 -0
  201. /package/templates/vitepress/zh/{why → learn/packages}/modern/esm-vs-cjs.md +0 -0
  202. /package/templates/vitepress/zh/{why → learn/packages}/modern/package-entry-points.md +0 -0
  203. /package/templates/vitepress/zh/{why → learn/packages}/modern/typescript.md +0 -0
  204. /package/templates/vitepress/zh/{why/js-cjs-mjs.md → learn/packages/module-extensions.md} +0 -0
  205. /package/templates/vitepress/zh/{why/publish-basic-npm-package.md → learn/packages/publish.md} +0 -0
  206. /package/templates/vitepress/zh/{why/how-to-reuse-js-code.md → learn/packages/reuse-javascript.md} +0 -0
  207. /package/templates/vitepress/zh/{why/js-keywords.md → learn/packages/runtime-globals.md} +0 -0
  208. /package/templates/vitepress/zh/{tools → learn/tools}/changeset.md +0 -0
  209. /package/templates/vitepress/zh/{tools → learn/tools}/index.md +0 -0
  210. /package/templates/vitepress/zh/{tools → learn/tools}/renovate.md +0 -0
  211. /package/templates/vitepress/zh/{repoctl → reference}/aliases.md +0 -0
  212. /package/templates/vitepress/zh/{repoctl → reference}/execution-model.md +0 -0
  213. /package/templates/vitepress/zh/{repoctl → reference}/template-assets.md +0 -0
@@ -43,5 +43,5 @@ The `workspace:` protocol prevents accidentally resolving a local package from t
43
43
  ## Keep Reading
44
44
 
45
45
  - [Turborepo](./turborepo.md)
46
- - [Managing A Monorepo](../monorepo/manage.md)
47
- - [repoctl Commands](../repoctl/commands.md)
46
+ - [Managing A Monorepo](/learn/monorepo/manage.md)
47
+ - [repoctl Commands](/reference/commands)
@@ -27,5 +27,5 @@ Do not rely on commit-message directives for a retired deployment provider. Depl
27
27
  ## Keep Reading
28
28
 
29
29
  - [pnpm](./pnpm.md)
30
- - [Workflows and CI](../repoctl/workflows.md)
31
- - [Troubleshooting](../repoctl/troubleshooting.md)
30
+ - [Add checks to CI](/tasks/ci)
31
+ - [Troubleshoot](/tasks/troubleshooting)
@@ -36,5 +36,5 @@ Use root scripts for the common entrypoints. The root script is the stable comma
36
36
  ## Keep Reading
37
37
 
38
38
  - [pnpm](./pnpm.md)
39
- - [Verification](../repoctl/checks.md)
40
- - [Managing A Monorepo](../monorepo/manage.md)
39
+ - [Verification](/tasks/checks)
40
+ - [Managing A Monorepo](/learn/monorepo/manage.md)
@@ -33,22 +33,22 @@
33
33
  "typecheck": "vue-tsc -p tsconfig.json --noEmit"
34
34
  },
35
35
  "dependencies": {
36
- "vue": "^3.5.41"
36
+ "vue": "^3.5.42"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@braintree/sanitize-url": "^7.1.2",
40
40
  "@tailwindcss/vite": "^4.3.3",
41
- "cytoscape": "^3.34.1",
41
+ "cytoscape": "^3.34.2",
42
42
  "cytoscape-cose-bilkent": "^4.1.0",
43
- "dayjs": "^1.11.21",
43
+ "dayjs": "^1.11.23",
44
44
  "debug": "^4.4.3",
45
- "mermaid": "^11.16.1",
45
+ "mermaid": "^11.17.2",
46
46
  "tailwindcss": "^4.3.3",
47
- "tsx": "^4.23.12",
47
+ "tsx": "^4.23.13",
48
48
  "vitepress": "^1.6.4",
49
49
  "vitepress-plugin-llms": "^1.13.5",
50
50
  "vitepress-plugin-mermaid": "^2.0.17",
51
- "vue-tsc": "^3.3.10",
52
- "wrangler": "^4.123.0"
51
+ "vue-tsc": "^3.3.11",
52
+ "wrangler": "^4.128.0"
53
53
  }
54
54
  }
@@ -0,0 +1,6 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="300" height="64" viewBox="0 0 300 64" fill="none">
2
+ <g stroke="#F4F6FA" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14C22 14 24 24 32 32"/><path d="M14 32H32"/><path d="M14 50C22 50 24 40 32 32"/></g>
3
+ <g fill="#6F94FF"><circle cx="10" cy="14" r="4"/><circle cx="10" cy="32" r="4"/><circle cx="10" cy="50" r="4"/></g>
4
+ <path d="M38 22L48 32L38 42" stroke="#6F94FF" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
5
+ <g stroke="#F4F6FA" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><path d="M82 46V26M82 31C87 26 94 25 99 29"/><path d="M109 36H126C126 29 123 26 118 26C112 26 109 30 109 36C109 43 113 46 120 46H127"/><path d="M139 50V26M139 31C143 27 148 26 152 26C158 26 161 30 161 36C161 43 157 46 151 46C146 46 142 44 139 41"/><path d="M184 26C177 26 173 30 173 36C173 43 177 46 184 46C191 46 195 43 195 36C195 30 191 26 184 26Z"/><path d="M222 29C219 27 216 26 213 26C206 26 202 30 202 36C202 43 206 46 213 46C217 46 220 45 223 42"/><path d="M238 18V41C238 45 241 46 245 46H250M231 26H250"/><path d="M266 24V42C266 45 268 46 272 46H278"/></g>
6
+ </svg>
@@ -0,0 +1,20 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="300" height="64" viewBox="0 0 300 64" fill="none">
2
+ <g stroke="#20252D" stroke-width="4" stroke-linecap="round" stroke-linejoin="round">
3
+ <path d="M14 14C22 14 24 24 32 32"/>
4
+ <path d="M14 32H32"/>
5
+ <path d="M14 50C22 50 24 40 32 32"/>
6
+ </g>
7
+ <g fill="#2457D6">
8
+ <circle cx="10" cy="14" r="4"/><circle cx="10" cy="32" r="4"/><circle cx="10" cy="50" r="4"/>
9
+ </g>
10
+ <path d="M38 22L48 32L38 42" stroke="#2457D6" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
11
+ <g stroke="#20252D" stroke-width="4" stroke-linecap="round" stroke-linejoin="round">
12
+ <path d="M82 46V26M82 31C87 26 94 25 99 29"/>
13
+ <path d="M109 36H126C126 29 123 26 118 26C112 26 109 30 109 36C109 43 113 46 120 46H127"/>
14
+ <path d="M139 50V26M139 31C143 27 148 26 152 26C158 26 161 30 161 36C161 43 157 46 151 46C146 46 142 44 139 41"/>
15
+ <path d="M184 26C177 26 173 30 173 36C173 43 177 46 184 46C191 46 195 43 195 36C195 30 191 26 184 26Z"/>
16
+ <path d="M222 29C219 27 216 26 213 26C206 26 202 30 202 36C202 43 206 46 213 46C217 46 220 45 223 42"/>
17
+ <path d="M238 18V41C238 45 241 46 245 46H250M231 26H250"/>
18
+ <path d="M266 24V42C266 45 268 46 272 46H278"/>
19
+ </g>
20
+ </svg>
@@ -0,0 +1,13 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64" fill="none">
2
+ <g stroke="#F4F6FA" stroke-width="4" stroke-linecap="round" stroke-linejoin="round">
3
+ <path d="M14 14C22 14 24 24 32 32"/>
4
+ <path d="M14 32H32"/>
5
+ <path d="M14 50C22 50 24 40 32 32"/>
6
+ </g>
7
+ <g fill="#6F94FF">
8
+ <circle cx="10" cy="14" r="4"/>
9
+ <circle cx="10" cy="32" r="4"/>
10
+ <circle cx="10" cy="50" r="4"/>
11
+ </g>
12
+ <path d="M38 22L48 32L38 42" stroke="#6F94FF" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
13
+ </svg>
@@ -0,0 +1,13 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64" fill="none">
2
+ <g stroke="#20252D" stroke-width="4" stroke-linecap="round" stroke-linejoin="round">
3
+ <path d="M14 14C22 14 24 24 32 32"/>
4
+ <path d="M14 32H32"/>
5
+ <path d="M14 50C22 50 24 40 32 32"/>
6
+ </g>
7
+ <g fill="#2457D6">
8
+ <circle cx="10" cy="14" r="4"/>
9
+ <circle cx="10" cy="32" r="4"/>
10
+ <circle cx="10" cy="50" r="4"/>
11
+ </g>
12
+ <path d="M38 22L48 32L38 42" stroke="#2457D6" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
13
+ </svg>
Binary file
@@ -115,6 +115,6 @@ repo skills sync --codex
115
115
 
116
116
  ## Keep Reading
117
117
 
118
- - [Workflows and CI](./workflows.md)
119
- - [Troubleshooting](./troubleshooting.md)
118
+ - [Add checks to CI](/tasks/ci)
119
+ - [Troubleshoot](/tasks/troubleshooting)
120
120
  - [Command Aliases](./aliases.md)
@@ -0,0 +1,15 @@
1
+ # Reference
2
+
3
+ Use the reference when you already know the task and need exact command names, flags, configuration keys, or output rules.
4
+
5
+ ## Command surface
6
+
7
+ - [Command reference](./commands.md)
8
+ - [Configuration](./config.md)
9
+ - [Execution model](./execution-model.md)
10
+ - [Output formats](./output.md)
11
+ - [Command aliases](./aliases.md)
12
+ - [Templates](./templates.md)
13
+ - [Managed template assets](./template-assets.md)
14
+
15
+ The start and task sections intentionally hide advanced grouped commands until they are useful. This section documents the full surface without changing any CLI names.
@@ -0,0 +1,37 @@
1
+ # Output formats
2
+
3
+ repoctl can print to the terminal or write stable artifacts for automation. Pick the format at the command boundary so the same task can serve a person and CI.
4
+
5
+ ## Terminal
6
+
7
+ The default output is concise and human-readable. It shows the plan, the commands selected, and the final status.
8
+
9
+ ## JSON
10
+
11
+ Use JSON when another tool needs structured fields:
12
+
13
+ ```bash
14
+ repo check --full --dry-run --json --out reports/check-plan.json
15
+ ```
16
+
17
+ Keep the file as a CI artifact when a later job needs to inspect the plan.
18
+
19
+ ## Markdown
20
+
21
+ Use Markdown for code review and support requests:
22
+
23
+ ```bash
24
+ repo env support --markdown --redact --out reports/support.md
25
+ ```
26
+
27
+ The `--redact` flag removes local paths and sensitive values before sharing the report.
28
+
29
+ ## Common branches
30
+
31
+ - Need to compare two runs: write both to separate files and compare the JSON.
32
+ - Need a safe support bundle: use `repo env support --redact`.
33
+ - Need a command plan only: combine `--dry-run` with the desired output format.
34
+
35
+ ## Next
36
+
37
+ See [reports and output tasks](/tasks/reports) for a complete support workflow.
@@ -123,6 +123,6 @@ The check validates duplicate sources and targets, existing source directories,
123
123
 
124
124
  ## Keep Reading
125
125
 
126
- - [Adopt Existing Repositories](./adopt-existing.md)
127
- - [Workflows and CI](./workflows.md)
126
+ - [Adopt an existing workspace](/tasks/adopt-existing)
127
+ - [Add checks to CI](/tasks/ci)
128
128
  - [Configuration](./config.md)
@@ -1,7 +1,9 @@
1
+ import type { DocsLocale } from '../.vitepress/navigation/routes'
1
2
  import { readdir, readFile, stat } from 'node:fs/promises'
2
3
  import path from 'node:path'
3
4
  import process from 'node:process'
4
5
  import { homeContent } from '../.vitepress/home/content'
6
+ import { routePath, routeSections } from '../.vitepress/navigation/routes'
5
7
 
6
8
  const root = process.cwd()
7
9
  const ignoredDirectories = new Set(['.vitepress', 'node_modules'])
@@ -83,7 +85,7 @@ async function existsAtLocale(sourceFile: string, href: string) {
83
85
  function validateDocument(relativePath: string, markdown: string) {
84
86
  const errors: string[] = []
85
87
  const isHome = relativePath === 'index.md' || relativePath === 'zh/index.md'
86
- const isExampleReadme = /(?:^|\/)why\/examples\/.*\/README\.md$/.test(relativePath)
88
+ const isExampleReadme = /(?:^|\/)learn\/packages\/examples\/.*\/README\.md$/.test(relativePath)
87
89
  if (isHome || isExampleReadme) {
88
90
  return errors
89
91
  }
@@ -115,6 +117,35 @@ const englishPaths = new Set(englishFiles.map(relativePath))
115
117
  const chinesePaths = new Set(chineseFiles.map(file => relativePath(file).replace(/^zh\//, '')))
116
118
  const errors: string[] = []
117
119
 
120
+ function routeToRelativeFile(route: string) {
121
+ const clean = route.replace(/^\//, '')
122
+ return clean.endsWith('/') ? `${clean}index.md` : `${clean}.md`
123
+ }
124
+
125
+ for (const locale of ['en', 'zh'] as const satisfies readonly DocsLocale[]) {
126
+ const prefix = locale === 'zh' ? '/zh' : ''
127
+ for (const section of routeSections) {
128
+ for (const item of section.items) {
129
+ const route = routePath(section.id, item.slug, locale)
130
+ const relative = routeToRelativeFile(route)
131
+ try {
132
+ if (!(await stat(path.join(root, relative))).isFile()) {
133
+ errors.push(`${locale}: route ${route} is not backed by a Markdown file`)
134
+ }
135
+ }
136
+ catch {
137
+ errors.push(`${locale}: route ${route} is not backed by a Markdown file`)
138
+ }
139
+ }
140
+ }
141
+ if (prefix) {
142
+ const englishRouteCount = routeSections.reduce((count, section) => count + section.items.length, 0)
143
+ if (englishRouteCount === 0) {
144
+ errors.push('route manifest is empty')
145
+ }
146
+ }
147
+ }
148
+
118
149
  for (const relativePath of englishPaths) {
119
150
  if (!chinesePaths.has(relativePath)) {
120
151
  errors.push(`missing Chinese counterpart: zh/${relativePath}`)
@@ -132,6 +163,9 @@ for (const file of files) {
132
163
  errors.push(...validateDocument(relative, markdown))
133
164
  const links = localLinks(markdown)
134
165
  for (const href of links) {
166
+ if (/^(?:\/|\.\.\/)(?:repoctl|knowledge|monorepo|why|tools)(?:\/|$)/.test(href)) {
167
+ errors.push(`${relativePath}: link uses a retired route ${href}`)
168
+ }
135
169
  if (!await existsAtLocale(file, href)) {
136
170
  errors.push(`${relative}: unresolved internal link ${href}`)
137
171
  }
@@ -0,0 +1,14 @@
1
+ # Choose the next task
2
+
3
+ Start with the outcome you need. Each task page includes prerequisites, the smallest command, expected output, common branches, and a next step.
4
+
5
+ | Outcome | Go to |
6
+ | -------------------------------------------- | ---------------------------------------------------- |
7
+ | Add repoctl to an existing workspace | [Adopt an existing workspace](/tasks/adopt-existing) |
8
+ | Create a package, app, service, or docs site | [Create a package or app](/tasks/create-project) |
9
+ | Run local verification before a commit | [Run checks](/tasks/checks) |
10
+ | Save output for a review or support request | [Reports and output](/tasks/reports) |
11
+ | Add the same workflow to CI | [Add checks to CI](/tasks/ci) |
12
+ | Prepare a package release | [Release packages](/tasks/release) |
13
+
14
+ For command flags and grouped commands, use the [command reference](/reference/commands). For the reasoning behind the workflow, read [how repoctl executes](/reference/execution-model).
@@ -0,0 +1,39 @@
1
+ # Your first run
2
+
3
+ This is the smallest complete repoctl workflow. It makes one change, records evidence, and leaves you with a clear next action.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ pnpm add -D repoctl
9
+ ```
10
+
11
+ ## Initialize
12
+
13
+ ```bash
14
+ pnpm exec repo init
15
+ ```
16
+
17
+ Review the planned files before accepting writes. If the repository already has local conventions, use the adoption guide before allowing replacements.
18
+
19
+ ## Diagnose
20
+
21
+ ```bash
22
+ pnpm exec repo doctor
23
+ ```
24
+
25
+ The report checks the repository root, package manager, workspace layout, task runner, hooks, and release metadata. Fix the first reported blocker, then run the command again.
26
+
27
+ ## Plan checks
28
+
29
+ ```bash
30
+ pnpm exec repo check --dry-run
31
+ ```
32
+
33
+ This prints the commands that would run for lint, types, builds, tests, and package checks. Execute the plan only after it matches the checks your repository expects.
34
+
35
+ ## Next
36
+
37
+ - New repository: [Create a package or app](/tasks/create-project).
38
+ - Existing repository: [Adopt an existing workspace](/tasks/adopt-existing).
39
+ - CI setup: [Add checks to CI](/tasks/ci).
@@ -0,0 +1,26 @@
1
+ # Start here
2
+
3
+ Use this section when repoctl is new to you. The shortest useful path is to install the CLI, run `repo init`, then run `repo doctor`.
4
+
5
+ ## Pick your first move
6
+
7
+ - [Install and initialize](./install.md) if this is your first repoctl command.
8
+ - [Run the first diagnosis](./diagnose.md) if repoctl is already installed.
9
+ - [Choose the next task](./choose-next.md) after you have a diagnosis.
10
+
11
+ ## What repoctl does
12
+
13
+ repoctl keeps common monorepo work in a small, predictable command set:
14
+
15
+ | Need | Command |
16
+ | ------------------------------- | ---------------------- |
17
+ | Add repository conventions | `repo init` |
18
+ | Inspect repository health | `repo doctor` |
19
+ | Create a package or app | `repo new` |
20
+ | Plan checks before running them | `repo check --dry-run` |
21
+
22
+ The CLI works with pnpm workspaces and understands Turborepo task graphs. It does not replace either tool.
23
+
24
+ ## Before you continue
25
+
26
+ You need Node.js 22.12 or newer and pnpm available on your path. Run commands from the repository root so repoctl can read the workspace configuration.
@@ -1,4 +1,4 @@
1
- # Getting Started
1
+ # Install and initialize
2
2
 
3
3
  This guide follows the order you would use when adding repoctl to a workspace.
4
4
 
@@ -110,7 +110,7 @@ pnpm exec repo upgrade --yes
110
110
 
111
111
  ## Next Steps
112
112
 
113
- - Adopt an existing repository: [Adopt Existing Repositories](./adopt-existing.md).
114
- - Set team defaults: [Configuration](./config.md).
115
- - Inspect template keys: [Templates](./templates.md).
116
- - Share diagnostic output: [Troubleshooting](./troubleshooting.md).
113
+ - Adopt an existing repository: [Adopt an existing workspace](/tasks/adopt-existing).
114
+ - Set team defaults: [Configuration](/reference/config).
115
+ - Inspect template keys: [Templates](/reference/templates).
116
+ - Share diagnostic output: [Troubleshoot](/tasks/troubleshooting).
@@ -1,4 +1,30 @@
1
- # Adopt Existing Repositories
1
+ # Adopt an existing workspace
2
+
3
+ ## When To Use
4
+
5
+ Use this task when a workspace already has scripts, hooks, or configuration that you need to keep while introducing repoctl.
6
+
7
+ ## Prerequisites
8
+
9
+ - Run commands from the workspace root.
10
+ - Commit or stash unrelated local changes.
11
+ - Confirm that Node.js 22.12 or newer and pnpm are available.
12
+
13
+ ## Smallest Command
14
+
15
+ ```bash
16
+ repo doctor --markdown --redact --out reports/baseline.md
17
+ ```
18
+
19
+ ## Expected Output
20
+
21
+ The report records the detected package manager, workspace layout, task runner, tooling files, and release setup without exposing local paths.
22
+
23
+ ## Common Branches
24
+
25
+ - Existing conventions are healthy: keep them and add only the missing managed assets.
26
+ - A file is already managed locally: use `repo upgrade --no-overwrite` and review the diff.
27
+ - Tooling is split across loaders: resolve the loader first, then rerun the diagnosis.
2
28
 
3
29
  repoctl is not only for newly generated repositories. It can be adopted gradually in existing pnpm workspaces by using diagnostics and conservative asset syncs.
4
30
 
@@ -128,6 +154,6 @@ or manually extend `pnpm-workspace.yaml`.
128
154
 
129
155
  ## Keep Reading
130
156
 
131
- - [Workflows and CI](./workflows.md)
132
- - [Troubleshooting](./troubleshooting.md)
133
- - [Configuration](./config.md)
157
+ - [Add checks to CI](/tasks/ci)
158
+ - [Troubleshoot](/tasks/troubleshooting)
159
+ - [Configuration](/reference/config)
@@ -2,7 +2,33 @@
2
2
  outline: deep
3
3
  ---
4
4
 
5
- # repoctl Verification
5
+ # Run checks
6
+
7
+ ## When To Use
8
+
9
+ Use this task before a commit, before a pull request, or when you need to reproduce the repository's CI plan locally.
10
+
11
+ ## Prerequisites
12
+
13
+ - Run `repo doctor` from the workspace root.
14
+ - Install dependencies with the repository's pinned pnpm version.
15
+ - Decide whether you need a fast check or the full delivery gate.
16
+
17
+ ## Smallest Command
18
+
19
+ ```bash
20
+ repo check --dry-run
21
+ ```
22
+
23
+ ## Expected Output
24
+
25
+ repoctl prints the selected tasks and the exact commands that would run. Remove `--dry-run` only after the plan matches the repository policy.
26
+
27
+ ## Common Branches
28
+
29
+ - A staged file needs a focused check: use `repo check --staged`.
30
+ - CI requires an artifact: add `--json --out reports/check-plan.json`.
31
+ - You are preparing a release: use `repo check --full` after the fast check passes.
6
32
 
7
33
  `repo check` provides stable, task-oriented entrypoints for local and CI verification. It preserves the underlying workspace scripts and reports which commands will run before execution.
8
34
 
@@ -1,4 +1,30 @@
1
- # Workflows and CI
1
+ # Add checks to CI
2
+
3
+ ## When To Use
4
+
5
+ Use this task when local commands are ready and the same repository policy must run on every pull request or branch.
6
+
7
+ ## Prerequisites
8
+
9
+ - A passing `repo check --dry-run` plan.
10
+ - A CI runner with Node.js, pnpm, and the repository lockfile.
11
+ - Non-interactive credentials for any publish or release job.
12
+
13
+ ## Smallest Command
14
+
15
+ ```bash
16
+ repo check --full --json --out reports/check-plan.json
17
+ ```
18
+
19
+ ## Expected Output
20
+
21
+ CI receives a stable plan and can upload the JSON or Markdown report as an artifact. The same command remains runnable locally.
22
+
23
+ ## Common Branches
24
+
25
+ - Pull requests need a fast gate: use `repo check --staged` or the repository's pre-commit mode.
26
+ - Main branch needs a delivery gate: use `repo check --full`.
27
+ - A release job needs a version plan: run `repo release --dry-run` before publishing.
2
28
 
3
29
  repoctl commands have two audiences: humans using short daily commands, and automation consuming stable reports.
4
30
 
@@ -119,6 +145,6 @@ pnpm --filter @icebreakers/website exec wrangler rollback <VERSION_ID>
119
145
 
120
146
  ## Keep Reading
121
147
 
122
- - [Command Reference](./commands.md)
123
- - [Troubleshooting](./troubleshooting.md)
124
- - [Command Aliases](./aliases.md)
148
+ - [Command Reference](/reference/commands)
149
+ - [Troubleshoot](/tasks/troubleshooting)
150
+ - [Command Aliases](/reference/aliases)
@@ -0,0 +1,37 @@
1
+ # Create a package or app
2
+
3
+ Use this task when the workspace is ready and you need a new package, application, service, CLI, or documentation site.
4
+
5
+ ## Prerequisites
6
+
7
+ - Run `repo doctor` from the workspace root.
8
+ - Confirm the package name and destination directory.
9
+ - Check the available template keys with `repo templates`.
10
+
11
+ ## Smallest command
12
+
13
+ ```bash
14
+ repo new <name> --template <template>
15
+ ```
16
+
17
+ For example:
18
+
19
+ ```bash
20
+ repo new shared-config --template package
21
+ ```
22
+
23
+ Use `--dry-run` when you want to inspect the file plan without writing anything.
24
+
25
+ ## Expected result
26
+
27
+ repoctl prints the selected template, destination, and files it will create. After confirmation, the new project is added to the workspace and its package metadata is ready for the repository checks.
28
+
29
+ ## Common branches
30
+
31
+ - Template key is unknown: run `repo templates` and choose an installed key.
32
+ - Destination exists: choose a new name or inspect the existing project before using an overwrite option.
33
+ - The project needs custom assets: create it first, then use [managed template assets](/reference/template-assets) for shared files.
34
+
35
+ ## Next
36
+
37
+ Run [checks](/tasks/checks), then add the new project to the [CI workflow](/tasks/ci).
@@ -1,4 +1,4 @@
1
- # Choose By Scenario
1
+ # Task index
2
2
 
3
3
  Start here when you know what you want to do, but not which repoctl command to use.
4
4
 
@@ -17,7 +17,7 @@ pnpm exec repo init --yes
17
17
  pnpm exec repo doctor
18
18
  ```
19
19
 
20
- Keep reading: [Getting Started](./getting-started.md).
20
+ Continue with [Install and initialize](/start/install).
21
21
 
22
22
  ## I Want To Adopt repoctl In An Existing Repo
23
23
 
@@ -29,7 +29,7 @@ pnpm exec repo upgrade --no-overwrite
29
29
  pnpm exec repo doctor --markdown --redact --out reports/doctor-after.md
30
30
  ```
31
31
 
32
- Keep reading: [Adopt Existing Repositories](./adopt-existing.md).
32
+ Continue with [Adopt an existing workspace](/tasks/adopt-existing).
33
33
 
34
34
  ## I Want To Create A Package Or App
35
35
 
@@ -45,7 +45,7 @@ For daily development, root scripts also work:
45
45
  pnpm run repo:new -- sdk --template tsdown
46
46
  ```
47
47
 
48
- Keep reading: [Templates](./templates.md).
48
+ Keep reading: [Templates](/reference/templates).
49
49
 
50
50
  ## I Want To Check Before Committing
51
51
 
@@ -62,7 +62,7 @@ pnpm exec repo check --json --out reports/check-plan.json
62
62
  pnpm exec repo check --markdown --redact --out reports/check-plan.md
63
63
  ```
64
64
 
65
- Keep reading: [Workflows and CI](./workflows.md).
65
+ Continue with [Add checks to CI](/tasks/ci).
66
66
 
67
67
  ## I Want To Debug CI Or Another Machine
68
68
 
@@ -72,7 +72,7 @@ pnpm exec repo env support --markdown --redact --out reports/support.md
72
72
  pnpm exec repo env snapshot --json --out reports/snapshot.json
73
73
  ```
74
74
 
75
- Keep reading: [Troubleshooting](./troubleshooting.md).
75
+ Continue with [Troubleshoot](/tasks/troubleshooting).
76
76
 
77
77
  ## I Want To Sync Standard Assets
78
78
 
@@ -103,7 +103,7 @@ pnpm exec repo config inspect
103
103
  pnpm exec repo cfg i --json --out reports/config.json
104
104
  ```
105
105
 
106
- Keep reading: [Configuration](./config.md).
106
+ Keep reading: [Configuration](/reference/config).
107
107
 
108
108
  ## I Want Shorter Commands
109
109
 
@@ -114,4 +114,4 @@ repo e support --markdown --redact
114
114
  repo cfg i
115
115
  ```
116
116
 
117
- Keep reading: [Command Aliases](./aliases.md).
117
+ Keep reading: [Command Aliases](/reference/aliases).
@@ -0,0 +1,31 @@
1
+ # Release packages
2
+
3
+ Use this task when a change is ready to version and publish. Keep the release plan reviewable before any registry write.
4
+
5
+ ## Prerequisites
6
+
7
+ - `repo doctor` reports a valid package manager and release configuration.
8
+ - The working tree is clean except for the intended changes.
9
+ - Every publishable change has a changeset or the repository's chosen intent file.
10
+
11
+ ## Smallest command
12
+
13
+ ```bash
14
+ repo release --dry-run
15
+ ```
16
+
17
+ Review the package groups, versions, changelog entries, and publish commands. Run the same command without `--dry-run` only after the plan is approved.
18
+
19
+ ## Expected result
20
+
21
+ The release report names the packages that will change, the version decisions, and each subprocess that will run. A successful release also completes the configured post-publish hooks.
22
+
23
+ ## Common branches
24
+
25
+ - Missing intent: add a changeset and rerun the plan.
26
+ - Fixed group mismatch: inspect the package relationships before editing versions.
27
+ - Registry authentication failure: refresh the local token and rerun the publish step; do not commit credentials.
28
+
29
+ ## Next
30
+
31
+ Read [publishing and changelogs](/learn/monorepo/publish) for repository policy and [reports and output](/tasks/reports) for CI artifacts.