create-ai-project 1.16.2 → 1.17.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 (123) hide show
  1. package/.claude/agents-en/acceptance-test-generator.md +4 -3
  2. package/.claude/agents-en/code-reviewer.md +2 -2
  3. package/.claude/agents-en/code-verifier.md +2 -2
  4. package/.claude/agents-en/design-sync.md +2 -2
  5. package/.claude/agents-en/document-reviewer.md +4 -4
  6. package/.claude/agents-en/integration-test-reviewer.md +2 -2
  7. package/.claude/agents-en/investigator.md +2 -2
  8. package/.claude/agents-en/prd-creator.md +4 -2
  9. package/.claude/agents-en/quality-fixer-frontend.md +7 -5
  10. package/.claude/agents-en/quality-fixer.md +3 -3
  11. package/.claude/agents-en/requirement-analyzer.md +2 -2
  12. package/.claude/agents-en/scope-discoverer.md +2 -2
  13. package/.claude/agents-en/skill-creator.md +2 -2
  14. package/.claude/agents-en/skill-reviewer.md +2 -2
  15. package/.claude/agents-en/solver.md +2 -2
  16. package/.claude/agents-en/task-decomposer.md +2 -2
  17. package/.claude/agents-en/task-executor-frontend.md +3 -3
  18. package/.claude/agents-en/task-executor.md +2 -2
  19. package/.claude/agents-en/technical-designer-frontend.md +17 -6
  20. package/.claude/agents-en/technical-designer.md +2 -2
  21. package/.claude/agents-en/ui-spec-designer.md +115 -0
  22. package/.claude/agents-en/verifier.md +2 -2
  23. package/.claude/agents-en/work-planner.md +2 -2
  24. package/.claude/agents-ja/acceptance-test-generator.md +4 -3
  25. package/.claude/agents-ja/code-reviewer.md +2 -2
  26. package/.claude/agents-ja/code-verifier.md +2 -2
  27. package/.claude/agents-ja/design-sync.md +2 -2
  28. package/.claude/agents-ja/document-reviewer.md +4 -4
  29. package/.claude/agents-ja/integration-test-reviewer.md +2 -2
  30. package/.claude/agents-ja/investigator.md +2 -2
  31. package/.claude/agents-ja/prd-creator.md +4 -2
  32. package/.claude/agents-ja/quality-fixer-frontend.md +7 -5
  33. package/.claude/agents-ja/quality-fixer.md +3 -3
  34. package/.claude/agents-ja/requirement-analyzer.md +2 -2
  35. package/.claude/agents-ja/scope-discoverer.md +2 -2
  36. package/.claude/agents-ja/skill-creator.md +2 -2
  37. package/.claude/agents-ja/skill-reviewer.md +2 -2
  38. package/.claude/agents-ja/solver.md +2 -2
  39. package/.claude/agents-ja/task-decomposer.md +2 -2
  40. package/.claude/agents-ja/task-executor-frontend.md +3 -3
  41. package/.claude/agents-ja/task-executor.md +2 -2
  42. package/.claude/agents-ja/technical-designer-frontend.md +17 -6
  43. package/.claude/agents-ja/technical-designer.md +2 -2
  44. package/.claude/agents-ja/ui-spec-designer.md +115 -0
  45. package/.claude/agents-ja/verifier.md +2 -2
  46. package/.claude/agents-ja/work-planner.md +2 -2
  47. package/.claude/commands-en/add-integration-tests.md +1 -1
  48. package/.claude/commands-en/build.md +55 -19
  49. package/.claude/commands-en/create-skill.md +1 -1
  50. package/.claude/commands-en/design.md +1 -1
  51. package/.claude/commands-en/diagnose.md +2 -2
  52. package/.claude/commands-en/front-build.md +40 -20
  53. package/.claude/commands-en/front-design.md +25 -8
  54. package/.claude/commands-en/front-plan.md +17 -9
  55. package/.claude/commands-en/front-review.md +2 -2
  56. package/.claude/commands-en/implement.md +15 -10
  57. package/.claude/commands-en/project-inject.md +1 -1
  58. package/.claude/commands-en/refine-skill.md +1 -1
  59. package/.claude/commands-en/reverse-engineer.md +3 -3
  60. package/.claude/commands-en/review.md +2 -2
  61. package/.claude/commands-en/sync-skills.md +1 -1
  62. package/.claude/commands-en/update-doc.md +2 -2
  63. package/.claude/commands-ja/add-integration-tests.md +1 -1
  64. package/.claude/commands-ja/build.md +56 -18
  65. package/.claude/commands-ja/create-skill.md +1 -1
  66. package/.claude/commands-ja/design.md +1 -1
  67. package/.claude/commands-ja/diagnose.md +2 -2
  68. package/.claude/commands-ja/front-build.md +41 -21
  69. package/.claude/commands-ja/front-design.md +26 -9
  70. package/.claude/commands-ja/front-plan.md +15 -7
  71. package/.claude/commands-ja/front-review.md +2 -2
  72. package/.claude/commands-ja/implement.md +15 -10
  73. package/.claude/commands-ja/project-inject.md +1 -1
  74. package/.claude/commands-ja/refine-skill.md +1 -1
  75. package/.claude/commands-ja/reverse-engineer.md +3 -3
  76. package/.claude/commands-ja/review.md +2 -2
  77. package/.claude/commands-ja/sync-skills.md +1 -1
  78. package/.claude/commands-ja/update-doc.md +2 -2
  79. package/.claude/skills-en/documentation-criteria/SKILL.md +37 -1
  80. package/.claude/skills-en/documentation-criteria/references/design-template.md +24 -0
  81. package/.claude/skills-en/documentation-criteria/references/prd-template.md +10 -0
  82. package/.claude/skills-en/documentation-criteria/references/ui-spec-template.md +145 -0
  83. package/.claude/skills-en/{frontend/technical-spec → frontend-technical-spec}/SKILL.md +5 -5
  84. package/.claude/skills-en/{frontend/typescript-rules → frontend-typescript-rules}/SKILL.md +1 -1
  85. package/.claude/skills-en/{frontend/typescript-testing → frontend-typescript-testing}/SKILL.md +9 -2
  86. package/.claude/skills-en/frontend-typescript-testing/references/e2e.md +185 -0
  87. package/.claude/skills-en/integration-e2e-testing/SKILL.md +4 -0
  88. package/.claude/skills-en/integration-e2e-testing/references/e2e-design.md +86 -0
  89. package/.claude/skills-en/subagents-orchestration-guide/SKILL.md +44 -22
  90. package/.claude/skills-en/task-analyzer/references/skills-index.yaml +15 -11
  91. package/.claude/skills-en/technical-spec/SKILL.md +5 -4
  92. package/.claude/skills-ja/documentation-criteria/SKILL.md +37 -1
  93. package/.claude/skills-ja/documentation-criteria/references/design-template.md +24 -0
  94. package/.claude/skills-ja/documentation-criteria/references/prd-template.md +10 -0
  95. package/.claude/skills-ja/documentation-criteria/references/ui-spec-template.md +145 -0
  96. package/.claude/skills-ja/{frontend/technical-spec → frontend-technical-spec}/SKILL.md +5 -5
  97. package/.claude/skills-ja/{frontend/typescript-rules → frontend-typescript-rules}/SKILL.md +1 -1
  98. package/.claude/skills-ja/{frontend/typescript-testing → frontend-typescript-testing}/SKILL.md +2 -2
  99. package/.claude/skills-ja/frontend-typescript-testing/references/e2e.md +185 -0
  100. package/.claude/skills-ja/integration-e2e-testing/SKILL.md +4 -0
  101. package/.claude/skills-ja/integration-e2e-testing/references/e2e-design.md +86 -0
  102. package/.claude/skills-ja/subagents-orchestration-guide/SKILL.md +44 -22
  103. package/.claude/skills-ja/task-analyzer/references/skills-index.yaml +15 -11
  104. package/.claude/skills-ja/technical-spec/SKILL.md +5 -4
  105. package/CHANGELOG.md +67 -0
  106. package/CLAUDE.en.md +2 -2
  107. package/CLAUDE.ja.md +2 -2
  108. package/CLAUDE.md +68 -86
  109. package/README.ja.md +10 -7
  110. package/README.md +10 -7
  111. package/bin/create-project.js +76 -75
  112. package/biome.json +5 -8
  113. package/package.json +11 -24
  114. package/scripts/post-setup.js +54 -57
  115. package/scripts/set-language.js +107 -112
  116. package/scripts/setup-project.js +97 -92
  117. package/scripts/show-coverage.js +36 -22
  118. package/scripts/update-project.js +205 -201
  119. package/scripts/utils.js +19 -21
  120. package/tsconfig.json +3 -3
  121. package/vitest.config.mjs +2 -2
  122. package/.tsprunerc +0 -11
  123. package/scripts/check-unused-exports.js +0 -69
package/scripts/utils.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const fs = require('fs');
4
- const path = require('path');
3
+ import fs from 'node:fs'
4
+ import path from 'node:path'
5
5
 
6
6
  /**
7
7
  * Recursively copy a directory from source to target.
@@ -10,38 +10,38 @@ const path = require('path');
10
10
  * @param {string} target - Target directory path
11
11
  * @returns {boolean} - Whether the copy was successful
12
12
  */
13
- function copyDirectory(source, target) {
13
+ export function copyDirectory(source, target) {
14
14
  if (!fs.existsSync(source)) {
15
- return false;
15
+ return false
16
16
  }
17
17
 
18
18
  if (!fs.existsSync(target)) {
19
- fs.mkdirSync(target, { recursive: true });
19
+ fs.mkdirSync(target, { recursive: true })
20
20
  }
21
21
 
22
- const entries = fs.readdirSync(source, { withFileTypes: true });
22
+ const entries = fs.readdirSync(source, { withFileTypes: true })
23
23
 
24
24
  for (const entry of entries) {
25
- const sourcePath = path.join(source, entry.name);
26
- const targetPath = path.join(target, entry.name);
25
+ const sourcePath = path.join(source, entry.name)
26
+ const targetPath = path.join(target, entry.name)
27
27
 
28
28
  if (entry.isDirectory()) {
29
- copyDirectory(sourcePath, targetPath);
29
+ copyDirectory(sourcePath, targetPath)
30
30
  } else {
31
- fs.copyFileSync(sourcePath, targetPath);
31
+ fs.copyFileSync(sourcePath, targetPath)
32
32
  }
33
33
  }
34
34
 
35
- return true;
35
+ return true
36
36
  }
37
37
 
38
38
  /**
39
39
  * Remove a directory recursively.
40
40
  * @param {string} dirPath - Directory path to remove
41
41
  */
42
- function removeDirectory(dirPath) {
42
+ export function removeDirectory(dirPath) {
43
43
  if (fs.existsSync(dirPath)) {
44
- fs.rmSync(dirPath, { recursive: true, force: true });
44
+ fs.rmSync(dirPath, { recursive: true, force: true })
45
45
  }
46
46
  }
47
47
 
@@ -51,18 +51,16 @@ function removeDirectory(dirPath) {
51
51
  * @param {string} target - Target file path
52
52
  * @returns {boolean} - Whether the copy was successful
53
53
  */
54
- function copyFile(source, target) {
54
+ export function copyFile(source, target) {
55
55
  if (!fs.existsSync(source)) {
56
- return false;
56
+ return false
57
57
  }
58
58
 
59
- const targetDir = path.dirname(target);
59
+ const targetDir = path.dirname(target)
60
60
  if (!fs.existsSync(targetDir)) {
61
- fs.mkdirSync(targetDir, { recursive: true });
61
+ fs.mkdirSync(targetDir, { recursive: true })
62
62
  }
63
63
 
64
- fs.copyFileSync(source, target);
65
- return true;
64
+ fs.copyFileSync(source, target)
65
+ return true
66
66
  }
67
-
68
- module.exports = { copyDirectory, removeDirectory, copyFile };
package/tsconfig.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "compilerOptions": {
3
3
  // Basic configuration
4
- "target": "ES2020",
5
- "module": "commonjs",
6
- "lib": ["ES2020"],
4
+ "target": "ES2022",
5
+ "module": "Node16",
6
+ "lib": ["ES2022"],
7
7
  "types": ["node"],
8
8
  "baseUrl": ".", // Use project root as reference
9
9
  "paths": {
package/vitest.config.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { defineConfig } from 'vitest/config'
2
- import path from 'path'
3
- import { fileURLToPath } from 'url'
2
+ import path from 'node:path'
3
+ import { fileURLToPath } from 'node:url'
4
4
 
5
5
  const __filename = fileURLToPath(import.meta.url)
6
6
  const __dirname = path.dirname(__filename)
package/.tsprunerc DELETED
@@ -1,11 +0,0 @@
1
- {
2
- "ignore": [
3
- "src/index.ts",
4
- "**/__tests__/**",
5
- "**/*.test.ts",
6
- "**/*.spec.ts",
7
- "**/test/**",
8
- "**/vitest.config.ts",
9
- "**/vitest.setup.ts"
10
- ]
11
- }
@@ -1,69 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Unused exports checker script
5
- * Filters out "used in module" from ts-prune output to show only truly unused exports
6
- */
7
-
8
- const { execSync } = require('child_process')
9
-
10
- try {
11
- // Run ts-prune
12
- const output = execSync(
13
- 'npx ts-prune --project tsconfig.json --ignore "src/index.ts|__tests__|test|vitest"',
14
- { encoding: 'utf8' }
15
- )
16
-
17
- // Process each line
18
- const lines = output.split('\n').filter(line => line.trim())
19
- const results = {
20
- usedInModule: [],
21
- trulyUnused: [],
22
- total: 0
23
- }
24
-
25
- for (const line of lines) {
26
- if (line.includes(' - ')) {
27
- results.total++
28
- if (line.includes('(used in module)')) {
29
- results.usedInModule.push(line)
30
- } else {
31
- results.trulyUnused.push(line)
32
- }
33
- }
34
- }
35
-
36
- // Display results
37
- console.log('=== Unused Exports Analysis ===\n')
38
-
39
- if (results.trulyUnused.length > 0) {
40
- console.log(`🔴 Truly unused exports: ${results.trulyUnused.length}`)
41
- console.log('─'.repeat(50))
42
- results.trulyUnused.forEach(line => console.log(line))
43
- console.log('')
44
- } else {
45
- console.log('✅ No truly unused exports found\n')
46
- }
47
-
48
- if (results.usedInModule.length > 0) {
49
- console.log(`⚠️ Used only in module (unnecessary exports): ${results.usedInModule.length}`)
50
- console.log('─'.repeat(50))
51
- results.usedInModule.forEach(line => console.log(line))
52
- console.log('')
53
- } else {
54
- console.log('✅ No unnecessary internal exports found\n')
55
- }
56
-
57
- // Summary
58
- console.log('=== Summary ===')
59
- console.log(`Total unnecessary exports: ${results.total}`)
60
- console.log(`├── Truly unused: ${results.trulyUnused.length} (delete immediately)`)
61
- console.log(`└── Used in module only: ${results.usedInModule.length} (remove export keyword)`)
62
-
63
- // Exit code
64
- process.exit(results.trulyUnused.length > 0 ? 1 : 0)
65
-
66
- } catch (error) {
67
- console.error('Error occurred:', error.message)
68
- process.exit(1)
69
- }