@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
@@ -1,49 +1,142 @@
1
- @media (max-width: 900px) {
2
- .repoctl-home__hero,
3
- .repoctl-home__quickstart {
1
+ @media (max-width: 1023px) {
2
+ .repoctl-home__hero {
4
3
  grid-template-columns: 1fr;
4
+ gap: 44px;
5
5
  min-height: auto;
6
- padding-top: 42px;
7
6
  }
8
7
 
9
- .repoctl-home__quickstart .repoctl-home__button {
10
- grid-column: auto;
8
+ .repoctl-home__hero-copy {
9
+ max-width: 760px;
10
+ }
11
+
12
+ .repoctl-home__hero-visual {
13
+ width: min(100%, 760px);
14
+ aspect-ratio: 1.65;
15
+ }
16
+
17
+ .repoctl-home__hero-visual img {
18
+ width: 112%;
19
+ }
20
+
21
+ .repoctl-home__evidence {
22
+ grid-template-columns: 1fr;
23
+ gap: 36px;
11
24
  }
12
25
 
13
- .repoctl-home__lifecycle ol {
14
- grid-template-columns: repeat(2, 1fr);
26
+ .repoctl-home__workflow {
27
+ min-height: 260px;
15
28
  }
16
29
  }
17
30
 
18
- @media (max-width: 640px) {
31
+ @media (max-width: 767px) {
19
32
  .repoctl-home {
20
- padding: 16px 20px 68px;
33
+ padding: 16px 20px 76px;
34
+ }
35
+
36
+ .repoctl-home__hero {
37
+ gap: 32px;
38
+ padding: 36px 0 52px;
21
39
  }
22
40
 
23
41
  .repoctl-home__hero h1 {
24
- font-size: 42px;
42
+ font-size: clamp(38px, 11.5vw, 48px);
43
+ line-height: 1.04;
44
+ }
45
+
46
+ .repoctl-home__lede {
47
+ margin-top: 20px !important;
48
+ font-size: 16px;
49
+ }
50
+
51
+ .repoctl-home__hero-actions {
52
+ margin-top: 28px;
53
+ }
54
+
55
+ .repoctl-home__button {
56
+ flex: 1 1 140px;
57
+ }
58
+
59
+ .repoctl-home__hero-visual {
60
+ aspect-ratio: 1.18;
61
+ }
62
+
63
+ .repoctl-home__hero-visual img {
64
+ width: 150%;
25
65
  }
26
66
 
27
67
  .repoctl-home__section {
28
- padding-top: 64px;
68
+ padding-top: 76px;
29
69
  }
30
70
 
31
- .repoctl-home__lifecycle ol,
32
- .repoctl-home__path-grid,
33
- .repoctl-home__automation,
34
- .repoctl-home__commands dl,
35
- .repoctl-home__docs > div,
36
- .repoctl-home__capability-grid {
71
+ .repoctl-home__section-heading {
72
+ margin-bottom: 28px;
73
+ }
74
+
75
+ .repoctl-home__task-list {
37
76
  grid-template-columns: 1fr;
77
+ gap: 12px;
38
78
  }
39
79
 
40
- .repoctl-home__automation {
80
+ .repoctl-home__task,
81
+ .repoctl-home__task:nth-child(4n + 1),
82
+ .repoctl-home__task:nth-child(4n) {
83
+ grid-column: auto;
84
+ min-height: 196px;
41
85
  padding: 24px;
42
86
  }
87
+
88
+ .repoctl-home__task-copy {
89
+ margin-top: 22px;
90
+ }
91
+
92
+ .repoctl-home__steps {
93
+ grid-template-columns: 1fr;
94
+ }
95
+
96
+ .repoctl-home__steps li,
97
+ .repoctl-home__steps li + li {
98
+ min-height: auto;
99
+ padding: 24px 0;
100
+ border-left: 0;
101
+ }
102
+
103
+ .repoctl-home__steps li + li {
104
+ border-top: 1px solid var(--repoctl-line);
105
+ }
106
+
107
+ .repoctl-home__workflow {
108
+ gap: 10px;
109
+ min-height: 250px;
110
+ padding: 24px 20px;
111
+ }
112
+
113
+ .repoctl-home__workflow pre {
114
+ font-size: 12px;
115
+ line-height: 2;
116
+ }
117
+
118
+ .repoctl-home__layer-list {
119
+ grid-template-rows: auto;
120
+ grid-template-columns: 1fr;
121
+ gap: 12px;
122
+ }
123
+
124
+ .repoctl-home__layer,
125
+ .repoctl-home__layer:first-child {
126
+ grid-row: auto;
127
+ min-height: 190px;
128
+ padding: 24px;
129
+ }
130
+
131
+ .repoctl-home__layer:first-child h3 {
132
+ font-size: 24px;
133
+ }
43
134
  }
44
135
 
45
136
  @media (prefers-reduced-motion: reduce) {
46
- .repoctl-home__button {
137
+ .repoctl-home__button,
138
+ .repoctl-home__task,
139
+ .repoctl-home__layer {
47
140
  transition: none;
48
141
  }
49
142
  }
@@ -1,153 +1,232 @@
1
- .repoctl-home__path-grid,
2
- .repoctl-home__automation {
1
+ .repoctl-home__task-list {
3
2
  display: grid;
4
- grid-template-columns: repeat(2, minmax(0, 1fr));
5
- gap: 20px;
3
+ grid-template-columns: repeat(12, minmax(0, 1fr));
4
+ gap: 16px;
6
5
  }
7
6
 
8
- .repoctl-home__path-grid article {
7
+ .repoctl-home__task {
8
+ display: flex;
9
+ flex-direction: column;
10
+ grid-column: span 5;
11
+ min-height: 210px;
9
12
  padding: 28px;
10
- background: color-mix(in srgb, var(--vp-c-bg-soft) 72%, transparent);
11
- border-left: 3px solid var(--home-accent);
13
+ text-decoration: none !important;
14
+ background: var(--repoctl-surface);
15
+ border: 1px solid var(--repoctl-line);
16
+ border-radius: 8px;
17
+ transition:
18
+ background-color 160ms ease,
19
+ border-color 160ms ease,
20
+ transform 160ms ease;
12
21
  }
13
22
 
14
- .repoctl-home__path-grid h3 {
15
- font-size: 22px;
23
+ .repoctl-home__task:nth-child(4n + 1),
24
+ .repoctl-home__task:nth-child(4n) {
25
+ grid-column: span 7;
16
26
  }
17
27
 
18
- .repoctl-home__path-grid p,
19
- .repoctl-home__capability-grid p {
20
- margin-top: 10px !important;
28
+ .repoctl-home__task:first-child {
29
+ background: var(--repoctl-accent-soft);
21
30
  }
22
31
 
23
- .repoctl-home__path-grid pre,
24
- .repoctl-home__automation pre,
25
- .repoctl-home__quickstart pre {
26
- padding: 16px;
27
- margin-top: 20px !important;
28
- overflow-x: auto;
29
- background: var(--vp-code-block-bg);
30
- border: 1px solid var(--home-border);
31
- border-radius: 6px;
32
+ .repoctl-home__task:nth-child(3) {
33
+ background: var(--repoctl-soft);
32
34
  }
33
35
 
34
- .repoctl-home__path-grid a {
35
- display: inline-block;
36
- margin-top: 18px;
37
- font-weight: 650;
36
+ .repoctl-home__task:hover {
37
+ border-color: var(--repoctl-accent);
38
+ transform: translateY(-2px);
38
39
  }
39
40
 
40
- .repoctl-home__capability-grid {
41
- display: grid;
42
- grid-template-columns: 1.3fr 0.7fr;
43
- gap: 1px;
44
- background: var(--home-border);
45
- border: 1px solid var(--home-border);
41
+ .repoctl-home__task:active {
42
+ transform: translateY(1px);
46
43
  }
47
44
 
48
- .repoctl-home__capability-grid article {
49
- min-height: 152px;
50
- padding: 24px;
51
- background: var(--vp-c-bg);
45
+ .repoctl-home__task > code {
46
+ align-self: flex-start;
47
+ color: var(--repoctl-accent);
52
48
  }
53
49
 
54
- .repoctl-home__capability-grid article:nth-child(2),
55
- .repoctl-home__capability-grid article:nth-child(3) {
56
- background: var(--vp-c-bg-soft);
50
+ .repoctl-home__task-copy {
51
+ margin-top: 28px;
57
52
  }
58
53
 
59
- .repoctl-home__commands dl {
60
- display: grid;
61
- grid-template-columns: repeat(2, minmax(0, 1fr));
62
- gap: 0 32px;
63
- margin: 0;
54
+ .repoctl-home__task h3 {
55
+ font-size: 21px;
64
56
  }
65
57
 
66
- .repoctl-home__commands dl > div {
67
- display: flex;
68
- gap: 16px;
69
- justify-content: space-between;
70
- padding: 16px 0;
71
- border-bottom: 1px solid var(--home-border);
58
+ .repoctl-home__task p {
59
+ max-width: 48ch;
60
+ margin-top: 8px !important;
61
+ font-size: 14px;
72
62
  }
73
63
 
74
- .repoctl-home__commands dd {
75
- margin: 0;
76
- color: var(--home-muted);
77
- text-align: right;
64
+ .repoctl-home__task-link,
65
+ .repoctl-home__text-link {
66
+ font-size: 14px;
67
+ font-weight: 700;
68
+ color: var(--repoctl-accent);
69
+ white-space: nowrap;
78
70
  }
79
71
 
80
- .repoctl-home__automation {
81
- align-items: center;
82
- padding: 38px;
83
- background: color-mix(in srgb, var(--vp-c-bg-soft) 80%, transparent);
84
- border: 1px solid var(--home-border);
85
- border-radius: 6px;
72
+ .repoctl-home__task-link {
73
+ padding-top: 28px;
74
+ margin-top: auto;
86
75
  }
87
76
 
88
- .repoctl-home__automation ul {
89
- display: flex;
90
- flex-wrap: wrap;
91
- gap: 8px 18px;
77
+ .repoctl-home__steps {
78
+ display: grid;
79
+ grid-template-columns: repeat(3, minmax(0, 1fr));
80
+ gap: 0;
92
81
  padding: 0;
93
- color: var(--home-muted);
94
82
  list-style: none;
83
+ border-top: 1px solid var(--repoctl-line);
84
+ border-bottom: 1px solid var(--repoctl-line);
95
85
  }
96
86
 
97
- .repoctl-home__automation li::before {
98
- display: inline-block;
99
- width: 6px;
100
- height: 6px;
101
- margin-right: 7px;
102
- content: ' ';
103
- background: var(--home-accent);
104
- border-radius: 50%;
87
+ .repoctl-home__steps li {
88
+ display: grid;
89
+ grid-template-columns: auto minmax(0, 1fr);
90
+ gap: 18px;
91
+ min-height: 238px;
92
+ padding: 30px 30px 30px 0;
93
+ }
94
+
95
+ .repoctl-home__steps li + li {
96
+ padding-left: 30px;
97
+ border-left: 1px solid var(--repoctl-line);
98
+ }
99
+
100
+ .repoctl-home__step-number {
101
+ padding-top: 3px;
102
+ font-family: var(--vp-font-family-mono);
103
+ font-size: 12px;
104
+ font-weight: 700;
105
+ color: var(--repoctl-accent);
106
+ }
107
+
108
+ .repoctl-home__steps h3 {
109
+ font-size: 21px;
110
+ }
111
+
112
+ .repoctl-home__steps code {
113
+ display: block;
114
+ margin-top: 18px;
115
+ color: var(--repoctl-accent);
116
+ overflow-wrap: anywhere;
117
+ white-space: normal;
105
118
  }
106
119
 
107
- .repoctl-home__automation pre,
108
- .repoctl-home__quickstart pre {
109
- margin: 0 !important;
120
+ .repoctl-home__steps p {
121
+ margin-top: 14px !important;
122
+ font-size: 14px;
110
123
  }
111
124
 
112
- .repoctl-home__quickstart {
125
+ .repoctl-home__evidence {
113
126
  display: grid;
114
- grid-template-columns: 0.85fr 1.15fr;
115
- gap: 24px;
116
- align-items: end;
127
+ grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
128
+ gap: 64px;
129
+ align-items: center;
117
130
  }
118
131
 
119
- .repoctl-home__quickstart .repoctl-home__button {
120
- grid-column: 2;
121
- justify-self: start;
132
+ .repoctl-home__evidence .repoctl-home__text-link {
133
+ display: inline-block;
134
+ margin-top: 24px;
122
135
  }
123
136
 
124
- .repoctl-home__docs > div {
137
+ .repoctl-home__workflow {
138
+ position: relative;
125
139
  display: grid;
126
- grid-template-columns: repeat(3, minmax(0, 1fr));
127
- gap: 1px;
128
- background: var(--home-border);
129
- border: 1px solid var(--home-border);
140
+ grid-template-columns: auto minmax(0, 1fr);
141
+ gap: 14px;
142
+ align-items: start;
143
+ min-height: 310px;
144
+ padding: 34px;
145
+ color: var(--repoctl-code-text);
146
+ background: var(--repoctl-code);
147
+ border: 1px solid var(--repoctl-line);
148
+ border-radius: 8px;
149
+ box-shadow: var(--repoctl-shadow);
150
+ }
151
+
152
+ .repoctl-home__workflow-prompt {
153
+ font-family: var(--vp-font-family-mono);
154
+ font-weight: 800;
155
+ color: #70d7ff;
156
+ }
157
+
158
+ .repoctl-home__workflow pre {
159
+ min-width: 0;
160
+ padding: 0;
161
+ overflow-x: auto;
162
+ font-size: 14px;
163
+ line-height: 2.15;
164
+ color: inherit;
165
+ background: transparent;
166
+ }
167
+
168
+ .repoctl-home__workflow code {
169
+ display: block;
170
+ color: inherit;
171
+ overflow-wrap: anywhere;
172
+ white-space: pre-wrap;
173
+ }
174
+
175
+ .repoctl-home__layer-list {
176
+ display: grid;
177
+ grid-template-rows: repeat(2, minmax(0, 1fr));
178
+ grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
179
+ gap: 16px;
130
180
  }
131
181
 
132
- .repoctl-home__docs a {
133
- min-height: 144px;
134
- padding: 20px;
182
+ .repoctl-home__layer {
183
+ display: flex;
184
+ flex-direction: column;
185
+ min-height: 156px;
186
+ padding: 26px;
135
187
  text-decoration: none !important;
136
- background: var(--vp-c-bg);
188
+ background: var(--repoctl-surface);
189
+ border: 1px solid var(--repoctl-line);
190
+ border-radius: 8px;
191
+ transition:
192
+ background-color 160ms ease,
193
+ border-color 160ms ease,
194
+ transform 160ms ease;
137
195
  }
138
196
 
139
- .repoctl-home__docs a:hover {
140
- background: var(--vp-c-bg-soft);
197
+ .repoctl-home__layer:first-child {
198
+ grid-row: 1 / 3;
199
+ min-height: 328px;
200
+ padding: 34px;
201
+ background: var(--repoctl-accent-soft);
141
202
  }
142
203
 
143
- .repoctl-home__docs strong,
144
- .repoctl-home__docs span {
145
- display: block;
204
+ .repoctl-home__layer:hover {
205
+ border-color: var(--repoctl-accent);
206
+ transform: translateY(-2px);
207
+ }
208
+
209
+ .repoctl-home__layer:active {
210
+ transform: translateY(1px);
211
+ }
212
+
213
+ .repoctl-home__layer h3 {
214
+ max-width: 18ch;
215
+ font-size: 22px;
216
+ color: var(--repoctl-accent);
217
+ }
218
+
219
+ .repoctl-home__layer:first-child h3 {
220
+ font-size: 30px;
146
221
  }
147
222
 
148
- .repoctl-home__docs span {
149
- margin-top: 8px;
223
+ .repoctl-home__layer p {
224
+ max-width: 48ch;
225
+ margin-top: 10px !important;
150
226
  font-size: 14px;
151
- line-height: 1.55;
152
- color: var(--home-muted);
227
+ }
228
+
229
+ .repoctl-home__layer .repoctl-home__text-link {
230
+ padding-top: 24px;
231
+ margin-top: auto;
153
232
  }
@@ -1,11 +1,13 @@
1
1
  import type { EnhanceAppContext, Theme } from 'vitepress'
2
2
  import DefaultTheme from 'vitepress/theme'
3
3
  import HomePage from './components/HomePage.vue'
4
+ import Layout from './Layout.vue'
4
5
  import './tailwind.css'
5
6
  import './home/index.css'
6
7
 
7
8
  export default {
8
9
  ...DefaultTheme,
10
+ Layout,
9
11
  enhanceApp({ app }: EnhanceAppContext) {
10
12
  app.component('HomePage', HomePage)
11
13
  },
@@ -0,0 +1,18 @@
1
+ # Learn the system
2
+
3
+ Use Learn after the first workflow works. These pages explain the boundaries around repoctl, monorepos, packages, templates, and the tools that run underneath.
4
+
5
+ ## Concepts
6
+
7
+ - [How repoctl fits into a repository](./repoctl-model)
8
+ - [Monorepo foundations](./monorepo/)
9
+ - [Modern npm packages](./packages/)
10
+ - [Template systems](./monorepo/templates)
11
+
12
+ ## Tools
13
+
14
+ The [tool guides](./tools/) explain pnpm, Turborepo, versioning, hooks, staged checks, and dependency automation.
15
+
16
+ ## Reading order
17
+
18
+ Start with the repository model, then choose either monorepo foundations or package publishing. Return to the [tasks](/tasks/) section whenever you need an executable sequence.
@@ -13,4 +13,4 @@
13
13
 
14
14
  One command layer matters because scripts, documentation, CI, and contributor expectations otherwise drift independently. repoctl keeps task names stable while pnpm and Turborepo continue to perform dependency installation and task execution.
15
15
 
16
- See the complete [repoctl command reference](../repoctl/commands.md).
16
+ See the complete [repoctl command reference](/reference/commands).
@@ -32,6 +32,6 @@ repoctl adds the missing workflow layer:
32
32
 
33
33
  ## Keep Reading
34
34
 
35
- - [repoctl Overview](../repoctl/index.md)
36
- - [Command Reference](../repoctl/commands.md)
37
- - [Templates](../repoctl/templates.md)
35
+ - [repoctl Overview](/learn/repoctl-model)
36
+ - [Command Reference](/reference/commands)
37
+ - [Templates](/reference/templates)
@@ -11,4 +11,4 @@ repo templates --check
11
11
 
12
12
  The publishable `@icebreakers/monorepo-templates` package owns the registry and packaged assets. Individual `templates/*` workspaces are private and are not release units.
13
13
 
14
- See [Templates](../repoctl/templates.md) and [Template Asset Management](../repoctl/template-assets.md).
14
+ See [Templates](/reference/templates) and [Template Asset Management](/reference/template-assets).
@@ -32,5 +32,5 @@ Repository versioning tools record that decision, but they cannot determine whet
32
32
 
33
33
  ## Keep Reading
34
34
 
35
- - [Publishing A Package](./publish-basic-npm-package.md)
35
+ - [Publishing A Package](/learn/packages/publish)
36
36
  - [Modern Package Guide](./modern/)
@@ -34,5 +34,5 @@ Use `files` to publish only the built output and deliberately included documenta
34
34
 
35
35
  ## Keep Reading
36
36
 
37
- - [What Is An npm Package?](../what-is-npm-package.md)
38
- - [Publishing A Package](../publish-basic-npm-package.md)
37
+ - [What Is An npm Package?](/learn/packages/)
38
+ - [Publishing A Package](/learn/packages/publish)
@@ -40,4 +40,4 @@ For local scripts, `tsx` can run TypeScript without creating a development `dist
40
40
 
41
41
  - [Type Declarations](./dts.md)
42
42
  - [Bundlers](./bundlers.md)
43
- - [Publishing A Package](../publish-basic-npm-package.md)
43
+ - [Publishing A Package](/learn/packages/publish)
@@ -11,4 +11,4 @@ A modern package needs a deliberate module format, export map, declaration strat
11
11
  - [Bundlers](./modern/bundlers.md)
12
12
  - [TypeScript](./modern/typescript.md)
13
13
 
14
- Runnable evolution examples remain under `why/examples/` and are intentionally excluded from the generated AI documentation index.
14
+ Runnable evolution examples remain under `learn/packages/examples/` and are intentionally excluded from the generated AI documentation index.
@@ -39,5 +39,5 @@ The version ledger preserves why the release exists. Do not manually edit a pack
39
39
 
40
40
  ## Keep Reading
41
41
 
42
- - [pnpm Versioning](../tools/changeset.md)
42
+ - [pnpm Versioning](/learn/tools/changeset.md)
43
43
  - [Modern Package Guide](./modern/)
@@ -35,5 +35,5 @@ Keep the public entry point small. A shared package should expose behavior that
35
35
 
36
36
  ## Keep Reading
37
37
 
38
- - [What Is An npm Package?](./what-is-npm-package.md)
39
- - [Template Systems](../monorepo/templates.md)
38
+ - [What Is An npm Package?](/learn/packages/)
39
+ - [Template Systems](/learn/monorepo/templates.md)
@@ -32,5 +32,5 @@ Use `import.meta.url` as the starting point for resolving files relative to an E
32
32
 
33
33
  ## Keep Reading
34
34
 
35
- - [JavaScript, CommonJS, and ESM Files](./js-cjs-mjs.md)
36
- - [Reusing JavaScript](./how-to-reuse-js-code.md)
35
+ - [JavaScript, CommonJS, and ESM Files](/learn/packages/module-extensions)
36
+ - [Reusing JavaScript](/learn/packages/reuse-javascript)
@@ -64,11 +64,11 @@ The docs prefer `repo` so new users only need to remember one command name.
64
64
 
65
65
  ## Keep Reading
66
66
 
67
- - [Getting Started](./getting-started.md)
68
- - [Choose By Scenario](./scenarios.md)
69
- - [Command Reference](./commands.md)
70
- - [Configuration](./config.md)
71
- - [Templates](./templates.md)
72
- - [Workflows and CI](./workflows.md)
73
- - [Troubleshooting](./troubleshooting.md)
74
- - [Command Aliases](./aliases.md)
67
+ - [Install and initialize](/start/install)
68
+ - [Task index](/tasks/)
69
+ - [Command Reference](/reference/commands)
70
+ - [Configuration](/reference/config)
71
+ - [Templates](/reference/templates)
72
+ - [Add checks to CI](/tasks/ci)
73
+ - [Troubleshoot](/tasks/troubleshooting)
74
+ - [Command Aliases](/reference/aliases)
@@ -25,6 +25,6 @@ Some packages version together because they share a public contract. The version
25
25
 
26
26
  ## Keep Reading
27
27
 
28
- - [Publishing and Changelogs](../monorepo/publish.md)
29
- - [Workflows and CI](../repoctl/workflows.md)
30
- - [Template Assets](../repoctl/template-assets.md)
28
+ - [Publishing and Changelogs](/learn/monorepo/publish.md)
29
+ - [Add checks to CI](/tasks/ci)
30
+ - [Template Assets](/reference/template-assets)
@@ -46,5 +46,5 @@ The initializer creates `.husky/pre-commit`. Replace its generated command with
46
46
  ## Keep Reading
47
47
 
48
48
  - [lint-staged](./lint-staged.md)
49
- - [Workflows and CI](../repoctl/workflows.md)
50
- - [Verification](../repoctl/checks.md)
49
+ - [Add checks to CI](/tasks/ci)
50
+ - [Verification](/tasks/checks)
@@ -35,5 +35,5 @@ The hook selects repoctl's pre-commit workflow. That workflow can call lint-stag
35
35
  ## Keep Reading
36
36
 
37
37
  - [Husky](./husky.md)
38
- - [Verification](../repoctl/checks.md)
39
- - [Workflows and CI](../repoctl/workflows.md)
38
+ - [Verification](/tasks/checks)
39
+ - [Add checks to CI](/tasks/ci)
@@ -4,4 +4,4 @@
4
4
 
5
5
  This site generates an English-default `/llms.txt` and a larger `/llms-full.txt`. Simplified Chinese content is namespaced under `/zh/`, and historical or internal files are excluded from the index.
6
6
 
7
- See the [repoctl AI documentation](../ai/llms-txt.md) for URLs and maintenance rules.
7
+ See the [repoctl AI documentation](/ai/llms-txt) for URLs and maintenance rules.