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
@@ -1,8 +1,10 @@
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
+ import { fileURLToPath } from 'node:url'
5
6
 
7
+ const __dirname = path.dirname(fileURLToPath(import.meta.url))
6
8
  const coverageFile = path.join(__dirname, '..', 'coverage', 'coverage-final.json')
7
9
 
8
10
  if (!fs.existsSync(coverageFile)) {
@@ -13,7 +15,7 @@ if (!fs.existsSync(coverageFile)) {
13
15
 
14
16
  try {
15
17
  const coverage = JSON.parse(fs.readFileSync(coverageFile, 'utf8'))
16
-
18
+
17
19
  let totalStatements = 0
18
20
  let coveredStatements = 0
19
21
  let totalBranches = 0
@@ -23,30 +25,43 @@ try {
23
25
  let totalLines = 0
24
26
  let coveredLines = 0
25
27
 
26
- Object.values(coverage).forEach(file => {
28
+ Object.values(coverage).forEach((file) => {
27
29
  totalStatements += file.s ? Object.keys(file.s).length : 0
28
- coveredStatements += file.s ? Object.values(file.s).filter(count => count > 0).length : 0
29
-
30
+ coveredStatements += file.s ? Object.values(file.s).filter((count) => count > 0).length : 0
31
+
30
32
  totalBranches += file.b ? Object.values(file.b).flat().length : 0
31
- coveredBranches += file.b ? Object.values(file.b).flat().filter(count => count > 0).length : 0
32
-
33
+ coveredBranches += file.b
34
+ ? Object.values(file.b)
35
+ .flat()
36
+ .filter((count) => count > 0).length
37
+ : 0
38
+
33
39
  totalFunctions += file.f ? Object.keys(file.f).length : 0
34
- coveredFunctions += file.f ? Object.values(file.f).filter(count => count > 0).length : 0
35
-
40
+ coveredFunctions += file.f ? Object.values(file.f).filter((count) => count > 0).length : 0
41
+
36
42
  totalLines += file.l ? Object.keys(file.l).length : 0
37
- coveredLines += file.l ? Object.values(file.l).filter(count => count > 0).length : 0
43
+ coveredLines += file.l ? Object.values(file.l).filter((count) => count > 0).length : 0
38
44
  })
39
45
 
40
- const statementsCoverage = totalStatements > 0 ? ((coveredStatements / totalStatements) * 100).toFixed(2) : '0.00'
41
- const branchesCoverage = totalBranches > 0 ? ((coveredBranches / totalBranches) * 100).toFixed(2) : '0.00'
42
- const functionsCoverage = totalFunctions > 0 ? ((coveredFunctions / totalFunctions) * 100).toFixed(2) : '0.00'
46
+ const statementsCoverage =
47
+ totalStatements > 0 ? ((coveredStatements / totalStatements) * 100).toFixed(2) : '0.00'
48
+ const branchesCoverage =
49
+ totalBranches > 0 ? ((coveredBranches / totalBranches) * 100).toFixed(2) : '0.00'
50
+ const functionsCoverage =
51
+ totalFunctions > 0 ? ((coveredFunctions / totalFunctions) * 100).toFixed(2) : '0.00'
43
52
  const linesCoverage = totalLines > 0 ? ((coveredLines / totalLines) * 100).toFixed(2) : '0.00'
44
53
 
45
54
  console.log('\n📊 Test Coverage Summary')
46
55
  console.log('═══════════════════════════════════════')
47
- console.log(` Statements : ${statementsCoverage.padStart(6)}% (${coveredStatements}/${totalStatements})`)
48
- console.log(` Branches : ${branchesCoverage.padStart(6)}% (${coveredBranches}/${totalBranches})`)
49
- console.log(` Functions : ${functionsCoverage.padStart(6)}% (${coveredFunctions}/${totalFunctions})`)
56
+ console.log(
57
+ ` Statements : ${statementsCoverage.padStart(6)}% (${coveredStatements}/${totalStatements})`
58
+ )
59
+ console.log(
60
+ ` Branches : ${branchesCoverage.padStart(6)}% (${coveredBranches}/${totalBranches})`
61
+ )
62
+ console.log(
63
+ ` Functions : ${functionsCoverage.padStart(6)}% (${coveredFunctions}/${totalFunctions})`
64
+ )
50
65
  console.log(` Lines : ${linesCoverage.padStart(6)}% (${coveredLines}/${totalLines})`)
51
66
  console.log('═══════════════════════════════════════')
52
67
 
@@ -55,10 +70,10 @@ try {
55
70
  parseFloat(statementsCoverage),
56
71
  parseFloat(branchesCoverage),
57
72
  parseFloat(functionsCoverage),
58
- parseFloat(linesCoverage)
73
+ parseFloat(linesCoverage),
59
74
  ]
60
-
61
- const failedMetrics = allMetrics.filter(metric => metric < 80).length
75
+
76
+ const failedMetrics = allMetrics.filter((metric) => metric < 80).length
62
77
 
63
78
  if (failedMetrics === 0) {
64
79
  console.log('\n✅ All metrics achieved the 80% target!')
@@ -67,8 +82,7 @@ try {
67
82
  console.log(' Please check coverage/index.html for details.')
68
83
  }
69
84
  console.log()
70
-
71
85
  } catch (error) {
72
86
  console.error('❌ Failed to read coverage report:', error.message)
73
87
  process.exit(1)
74
- }
88
+ }