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.
- package/.claude/agents-en/acceptance-test-generator.md +4 -3
- package/.claude/agents-en/code-reviewer.md +2 -2
- package/.claude/agents-en/code-verifier.md +2 -2
- package/.claude/agents-en/design-sync.md +2 -2
- package/.claude/agents-en/document-reviewer.md +4 -4
- package/.claude/agents-en/integration-test-reviewer.md +2 -2
- package/.claude/agents-en/investigator.md +2 -2
- package/.claude/agents-en/prd-creator.md +4 -2
- package/.claude/agents-en/quality-fixer-frontend.md +7 -5
- package/.claude/agents-en/quality-fixer.md +3 -3
- package/.claude/agents-en/requirement-analyzer.md +2 -2
- package/.claude/agents-en/scope-discoverer.md +2 -2
- package/.claude/agents-en/skill-creator.md +2 -2
- package/.claude/agents-en/skill-reviewer.md +2 -2
- package/.claude/agents-en/solver.md +2 -2
- package/.claude/agents-en/task-decomposer.md +2 -2
- package/.claude/agents-en/task-executor-frontend.md +3 -3
- package/.claude/agents-en/task-executor.md +2 -2
- package/.claude/agents-en/technical-designer-frontend.md +17 -6
- package/.claude/agents-en/technical-designer.md +2 -2
- package/.claude/agents-en/ui-spec-designer.md +115 -0
- package/.claude/agents-en/verifier.md +2 -2
- package/.claude/agents-en/work-planner.md +2 -2
- package/.claude/agents-ja/acceptance-test-generator.md +4 -3
- package/.claude/agents-ja/code-reviewer.md +2 -2
- package/.claude/agents-ja/code-verifier.md +2 -2
- package/.claude/agents-ja/design-sync.md +2 -2
- package/.claude/agents-ja/document-reviewer.md +4 -4
- package/.claude/agents-ja/integration-test-reviewer.md +2 -2
- package/.claude/agents-ja/investigator.md +2 -2
- package/.claude/agents-ja/prd-creator.md +4 -2
- package/.claude/agents-ja/quality-fixer-frontend.md +7 -5
- package/.claude/agents-ja/quality-fixer.md +3 -3
- package/.claude/agents-ja/requirement-analyzer.md +2 -2
- package/.claude/agents-ja/scope-discoverer.md +2 -2
- package/.claude/agents-ja/skill-creator.md +2 -2
- package/.claude/agents-ja/skill-reviewer.md +2 -2
- package/.claude/agents-ja/solver.md +2 -2
- package/.claude/agents-ja/task-decomposer.md +2 -2
- package/.claude/agents-ja/task-executor-frontend.md +3 -3
- package/.claude/agents-ja/task-executor.md +2 -2
- package/.claude/agents-ja/technical-designer-frontend.md +17 -6
- package/.claude/agents-ja/technical-designer.md +2 -2
- package/.claude/agents-ja/ui-spec-designer.md +115 -0
- package/.claude/agents-ja/verifier.md +2 -2
- package/.claude/agents-ja/work-planner.md +2 -2
- package/.claude/commands-en/add-integration-tests.md +1 -1
- package/.claude/commands-en/build.md +55 -19
- package/.claude/commands-en/create-skill.md +1 -1
- package/.claude/commands-en/design.md +1 -1
- package/.claude/commands-en/diagnose.md +2 -2
- package/.claude/commands-en/front-build.md +40 -20
- package/.claude/commands-en/front-design.md +25 -8
- package/.claude/commands-en/front-plan.md +17 -9
- package/.claude/commands-en/front-review.md +2 -2
- package/.claude/commands-en/implement.md +15 -10
- package/.claude/commands-en/project-inject.md +1 -1
- package/.claude/commands-en/refine-skill.md +1 -1
- package/.claude/commands-en/reverse-engineer.md +3 -3
- package/.claude/commands-en/review.md +2 -2
- package/.claude/commands-en/sync-skills.md +1 -1
- package/.claude/commands-en/update-doc.md +2 -2
- package/.claude/commands-ja/add-integration-tests.md +1 -1
- package/.claude/commands-ja/build.md +56 -18
- package/.claude/commands-ja/create-skill.md +1 -1
- package/.claude/commands-ja/design.md +1 -1
- package/.claude/commands-ja/diagnose.md +2 -2
- package/.claude/commands-ja/front-build.md +41 -21
- package/.claude/commands-ja/front-design.md +26 -9
- package/.claude/commands-ja/front-plan.md +15 -7
- package/.claude/commands-ja/front-review.md +2 -2
- package/.claude/commands-ja/implement.md +15 -10
- package/.claude/commands-ja/project-inject.md +1 -1
- package/.claude/commands-ja/refine-skill.md +1 -1
- package/.claude/commands-ja/reverse-engineer.md +3 -3
- package/.claude/commands-ja/review.md +2 -2
- package/.claude/commands-ja/sync-skills.md +1 -1
- package/.claude/commands-ja/update-doc.md +2 -2
- package/.claude/skills-en/documentation-criteria/SKILL.md +37 -1
- package/.claude/skills-en/documentation-criteria/references/design-template.md +24 -0
- package/.claude/skills-en/documentation-criteria/references/prd-template.md +10 -0
- package/.claude/skills-en/documentation-criteria/references/ui-spec-template.md +145 -0
- package/.claude/skills-en/{frontend/technical-spec → frontend-technical-spec}/SKILL.md +5 -5
- package/.claude/skills-en/{frontend/typescript-rules → frontend-typescript-rules}/SKILL.md +1 -1
- package/.claude/skills-en/{frontend/typescript-testing → frontend-typescript-testing}/SKILL.md +9 -2
- package/.claude/skills-en/frontend-typescript-testing/references/e2e.md +185 -0
- package/.claude/skills-en/integration-e2e-testing/SKILL.md +4 -0
- package/.claude/skills-en/integration-e2e-testing/references/e2e-design.md +86 -0
- package/.claude/skills-en/subagents-orchestration-guide/SKILL.md +44 -22
- package/.claude/skills-en/task-analyzer/references/skills-index.yaml +15 -11
- package/.claude/skills-en/technical-spec/SKILL.md +5 -4
- package/.claude/skills-ja/documentation-criteria/SKILL.md +37 -1
- package/.claude/skills-ja/documentation-criteria/references/design-template.md +24 -0
- package/.claude/skills-ja/documentation-criteria/references/prd-template.md +10 -0
- package/.claude/skills-ja/documentation-criteria/references/ui-spec-template.md +145 -0
- package/.claude/skills-ja/{frontend/technical-spec → frontend-technical-spec}/SKILL.md +5 -5
- package/.claude/skills-ja/{frontend/typescript-rules → frontend-typescript-rules}/SKILL.md +1 -1
- package/.claude/skills-ja/{frontend/typescript-testing → frontend-typescript-testing}/SKILL.md +2 -2
- package/.claude/skills-ja/frontend-typescript-testing/references/e2e.md +185 -0
- package/.claude/skills-ja/integration-e2e-testing/SKILL.md +4 -0
- package/.claude/skills-ja/integration-e2e-testing/references/e2e-design.md +86 -0
- package/.claude/skills-ja/subagents-orchestration-guide/SKILL.md +44 -22
- package/.claude/skills-ja/task-analyzer/references/skills-index.yaml +15 -11
- package/.claude/skills-ja/technical-spec/SKILL.md +5 -4
- package/CHANGELOG.md +67 -0
- package/CLAUDE.en.md +2 -2
- package/CLAUDE.ja.md +2 -2
- package/CLAUDE.md +68 -86
- package/README.ja.md +10 -7
- package/README.md +10 -7
- package/bin/create-project.js +76 -75
- package/biome.json +5 -8
- package/package.json +11 -24
- package/scripts/post-setup.js +54 -57
- package/scripts/set-language.js +107 -112
- package/scripts/setup-project.js +97 -92
- package/scripts/show-coverage.js +36 -22
- package/scripts/update-project.js +205 -201
- package/scripts/utils.js +19 -21
- package/tsconfig.json +3 -3
- package/vitest.config.mjs +2 -2
- package/.tsprunerc +0 -11
- package/scripts/check-unused-exports.js +0 -69
package/scripts/show-coverage.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
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
|
|
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 =
|
|
41
|
-
|
|
42
|
-
const
|
|
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(
|
|
48
|
-
|
|
49
|
-
|
|
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
|
+
}
|