@bleedingdev/modern-js-create 3.2.0-ultramodern.7 → 3.2.0-ultramodern.8

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.
@@ -21,6 +21,13 @@ const baselineAgentSkills = [
21
21
  'rslib-modern-package',
22
22
  'rstest-best-practices',
23
23
  ];
24
+ const privateAgentSkills = [
25
+ 'plan-graph',
26
+ 'dag',
27
+ 'subagent-graph',
28
+ 'helm',
29
+ 'debugger-mode',
30
+ ];
24
31
 
25
32
  function readText(relativePath) {
26
33
  return fs.readFileSync(path.join(root, relativePath), 'utf-8');
@@ -45,6 +52,8 @@ const requiredPaths = [
45
52
  'package.json',
46
53
  'pnpm-workspace.yaml',
47
54
  'tsconfig.base.json',
55
+ 'oxlint.config.ts',
56
+ 'oxfmt.config.ts',
48
57
  '.agents/skills-lock.json',
49
58
  '.agents/rstackjs-agent-skills-LICENSE',
50
59
  '.agents/skills/rsbuild-best-practices/SKILL.md',
@@ -62,6 +71,7 @@ const requiredPaths = [
62
71
  'topology/local-overlays/development.json',
63
72
  '.modernjs/ultramodern-workspace-template-manifest.json',
64
73
  '.modernjs/ultramodern-package-source.json',
74
+ 'scripts/bootstrap-agent-skills.mjs',
65
75
  'apps/shell-super-app/package.json',
66
76
  'apps/shell-super-app/modern.config.ts',
67
77
  'apps/shell-super-app/module-federation.config.ts',
@@ -143,6 +153,32 @@ assert(
143
153
  'node ./scripts/validate-ultramodern-workspace.mjs',
144
154
  'Root must expose the ultramodern:check script',
145
155
  );
156
+ const requiredRootScripts = {
157
+ format: 'oxfmt .',
158
+ 'format:check': 'oxfmt --check .',
159
+ lint: 'oxlint .',
160
+ 'lint:fix': 'oxlint . --fix',
161
+ 'skills:install': 'node ./scripts/bootstrap-agent-skills.mjs',
162
+ 'skills:check': 'node ./scripts/bootstrap-agent-skills.mjs --check',
163
+ };
164
+ for (const [scriptName, scriptCommand] of Object.entries(requiredRootScripts)) {
165
+ assert(
166
+ rootPackage.scripts?.[scriptName] === scriptCommand,
167
+ `Root must expose ${scriptName}`,
168
+ );
169
+ }
170
+ for (const dependency of [
171
+ '@effect/tsgo',
172
+ '@typescript/native-preview',
173
+ 'oxlint',
174
+ 'oxfmt',
175
+ 'ultracite',
176
+ ]) {
177
+ assert(
178
+ rootPackage.devDependencies?.[dependency],
179
+ `Root must depend on ${dependency}`,
180
+ );
181
+ }
146
182
 
147
183
  const agentsInstructions = readText('AGENTS.md');
148
184
  assert(
@@ -173,6 +209,19 @@ for (const skillName of baselineAgentSkills) {
173
209
  `${skillName} must contain matching skill metadata`,
174
210
  );
175
211
  }
212
+ const privateSource = skillsLock.sources?.find(
213
+ source => source.repository === 'https://github.com/TechsioCZ/skills',
214
+ );
215
+ assert(
216
+ privateSource?.install === 'clone-if-authorized',
217
+ 'Agent skills lock must configure TechsioCZ skills as clone-if-authorized',
218
+ );
219
+ for (const skillName of privateAgentSkills) {
220
+ assert(
221
+ privateSource.baseline?.some(skill => skill.name === skillName),
222
+ `Agent skills lock must allowlist private skill ${skillName}`,
223
+ );
224
+ }
176
225
 
177
226
  const appPackagePaths = [
178
227
  'apps/shell-super-app/package.json',
@@ -335,6 +384,17 @@ assert(
335
384
  ),
336
385
  'Template manifest must list every baseline agent skill',
337
386
  );
387
+ assert(
388
+ manifest.agentSkills?.privateSource?.repository ===
389
+ 'https://github.com/TechsioCZ/skills',
390
+ 'Template manifest must retain the private TechsioCZ skill source',
391
+ );
392
+ assert(
393
+ privateAgentSkills.every(skillName =>
394
+ manifest.agentSkills?.privateSource?.baseline?.includes(skillName),
395
+ ),
396
+ 'Template manifest must list every private agent skill allowlist entry',
397
+ );
338
398
  assert(
339
399
  manifest.validation?.expectedCommands?.includes('pnpm run ultramodern:check'),
340
400
  'Template manifest must document the validation command',
@@ -1,41 +0,0 @@
1
- {
2
- "root": false,
3
- "$schema": "https://biomejs.dev/schemas/2.4.15/schema.json",
4
- "vcs": {
5
- "enabled": true,
6
- "defaultBranch": "main",
7
- "clientKind": "git",
8
- "useIgnoreFile": true
9
- },
10
- "formatter": {
11
- "enabled": true,
12
- "indentStyle": "space"
13
- },
14
- "javascript": {
15
- "formatter": {
16
- "quoteStyle": "single",
17
- "arrowParentheses": "asNeeded",
18
- "jsxQuoteStyle": "double",
19
- "lineWidth": 80
20
- }
21
- },
22
- "linter": {
23
- "enabled": true,
24
- "rules": {
25
- "recommended": true,
26
- "suspicious": {
27
- "noDuplicateFontNames": "off"
28
- }
29
- }
30
- },
31
- "assist": { "actions": { "source": { "organizeImports": "on" } } },
32
- "files": {
33
- "ignoreUnknown": true,
34
- "includes": [
35
- "**",
36
- "!**/.vscode/**/*",
37
- "!**/node_modules/**/*",
38
- "!**/dist/**/*"
39
- ]
40
- }
41
- }