ccjk 3.7.3 → 3.8.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/README.md +103 -896
- package/dist/chunks/ccr.mjs +1 -0
- package/dist/chunks/doctor.mjs +58 -0
- package/dist/chunks/index.mjs +6 -0
- package/dist/chunks/package.mjs +1 -1
- package/dist/chunks/permissions.mjs +164 -342
- package/dist/chunks/thinking.mjs +615 -0
- package/dist/chunks/vim.mjs +891 -0
- package/dist/cli.mjs +49 -0
- package/dist/i18n/locales/en/configuration.json +97 -1
- package/dist/i18n/locales/en/lsp.json +78 -0
- package/dist/i18n/locales/en/mcp.json +11 -0
- package/dist/i18n/locales/en/permissions.json +53 -1
- package/dist/i18n/locales/en/thinking.json +65 -0
- package/dist/i18n/locales/en/vim.json +169 -0
- package/dist/i18n/locales/zh-CN/configuration.json +97 -1
- package/dist/i18n/locales/zh-CN/lsp.json +78 -0
- package/dist/i18n/locales/zh-CN/mcp.json +11 -0
- package/dist/i18n/locales/zh-CN/permissions.json +53 -1
- package/dist/i18n/locales/zh-CN/thinking.json +65 -0
- package/dist/i18n/locales/zh-CN/vim.json +169 -0
- package/dist/shared/ccjk.pi0nsyn3.mjs +1242 -0
- package/package.json +55 -55
- package/templates/claude-code/common/settings.json +63 -30
- package/templates/CLAUDE.md +0 -219
- package/templates/claude-code/CLAUDE.md +0 -250
- package/templates/claude-code/en/workflow/bmad/commands/bmad-init.md +0 -165
- package/templates/claude-code/en/workflow/common/agents/get-current-datetime.md +0 -29
- package/templates/claude-code/en/workflow/common/agents/init-architect.md +0 -114
- package/templates/claude-code/en/workflow/common/commands/init-project.md +0 -53
- package/templates/claude-code/en/workflow/essential/agents/get-current-datetime.md +0 -29
- package/templates/claude-code/en/workflow/essential/agents/init-architect.md +0 -114
- package/templates/claude-code/en/workflow/essential/agents/planner.md +0 -116
- package/templates/claude-code/en/workflow/essential/agents/ui-ux-designer.md +0 -91
- package/templates/claude-code/en/workflow/essential/commands/feat.md +0 -250
- package/templates/claude-code/en/workflow/essential/commands/init-project.md +0 -53
- package/templates/claude-code/en/workflow/plan/agents/planner.md +0 -116
- package/templates/claude-code/en/workflow/plan/agents/ui-ux-designer.md +0 -91
- package/templates/claude-code/en/workflow/plan/commands/feat.md +0 -105
- package/templates/claude-code/zh-CN/workflow/bmad/commands/bmad-init.md +0 -172
- package/templates/claude-code/zh-CN/workflow/common/agents/get-current-datetime.md +0 -29
- package/templates/claude-code/zh-CN/workflow/common/agents/init-architect.md +0 -114
- package/templates/claude-code/zh-CN/workflow/common/commands/init-project.md +0 -53
- package/templates/claude-code/zh-CN/workflow/essential/agents/get-current-datetime.md +0 -29
- package/templates/claude-code/zh-CN/workflow/essential/agents/init-architect.md +0 -114
- package/templates/claude-code/zh-CN/workflow/essential/agents/planner.md +0 -116
- package/templates/claude-code/zh-CN/workflow/essential/agents/ui-ux-designer.md +0 -91
- package/templates/claude-code/zh-CN/workflow/essential/commands/feat.md +0 -248
- package/templates/claude-code/zh-CN/workflow/essential/commands/init-project.md +0 -53
- package/templates/claude-code/zh-CN/workflow/plan/agents/planner.md +0 -116
- package/templates/claude-code/zh-CN/workflow/plan/agents/ui-ux-designer.md +0 -91
- package/templates/claude-code/zh-CN/workflow/plan/commands/feat.md +0 -105
- package/templates/codex/common/config.toml +0 -0
- package/templates/common/output-styles/en/casual-friendly.md +0 -97
- package/templates/common/output-styles/en/expert-concise.md +0 -93
- package/templates/common/output-styles/en/pair-programmer.md +0 -177
- package/templates/common/output-styles/en/senior-architect.md +0 -121
- package/templates/common/output-styles/en/speed-coder.md +0 -185
- package/templates/common/output-styles/en/teaching-mode.md +0 -102
- package/templates/common/output-styles/en/technical-precise.md +0 -101
- package/templates/common/output-styles/zh-CN/pair-programmer.md +0 -177
- package/templates/common/output-styles/zh-CN/senior-architect.md +0 -297
- package/templates/common/output-styles/zh-CN/speed-coder.md +0 -185
- package/templates/common/skills/code-review.md +0 -343
- package/templates/common/skills/en/agent-browser.md +0 -258
- package/templates/common/skills/en/brainstorming.md +0 -64
- package/templates/common/skills/en/code-review.md +0 -81
- package/templates/common/skills/en/documentation-gen.md +0 -808
- package/templates/common/skills/en/executing-plans.md +0 -75
- package/templates/common/skills/en/git-commit.md +0 -216
- package/templates/common/skills/en/interview.md +0 -223
- package/templates/common/skills/en/migration-assistant.md +0 -312
- package/templates/common/skills/en/performance-profiling.md +0 -576
- package/templates/common/skills/en/pr-review.md +0 -341
- package/templates/common/skills/en/refactoring.md +0 -384
- package/templates/common/skills/en/security-audit.md +0 -462
- package/templates/common/skills/en/systematic-debugging.md +0 -82
- package/templates/common/skills/en/tdd-workflow.md +0 -93
- package/templates/common/skills/en/verification.md +0 -81
- package/templates/common/skills/en/workflow.md +0 -370
- package/templates/common/skills/en/writing-plans.md +0 -78
- package/templates/common/skills/summarize.md +0 -312
- package/templates/common/skills/translate.md +0 -202
- package/templates/common/skills/zh-CN/agent-browser.md +0 -260
- package/templates/common/skills/zh-CN/documentation-gen.md +0 -807
- package/templates/common/skills/zh-CN/migration-assistant.md +0 -318
- package/templates/common/skills/zh-CN/performance-profiling.md +0 -746
- package/templates/common/skills/zh-CN/pr-review.md +0 -341
- package/templates/common/skills/zh-CN/refactoring.md +0 -384
- package/templates/common/skills/zh-CN/security-audit.md +0 -462
- package/templates/common/smart-guide/en/smart-guide.md +0 -72
- package/templates/common/smart-guide/zh-CN/smart-guide.md +0 -72
- package/templates/common/workflow/git/en/git-cleanBranches.md +0 -102
- package/templates/common/workflow/git/en/git-commit.md +0 -205
- package/templates/common/workflow/git/en/git-rollback.md +0 -90
- package/templates/common/workflow/git/en/git-worktree.md +0 -276
- package/templates/common/workflow/git/zh-CN/git-cleanBranches.md +0 -102
- package/templates/common/workflow/git/zh-CN/git-commit.md +0 -205
- package/templates/common/workflow/git/zh-CN/git-rollback.md +0 -90
- package/templates/common/workflow/git/zh-CN/git-worktree.md +0 -276
- package/templates/common/workflow/interview/en/interview.md +0 -212
- package/templates/common/workflow/interview/zh-CN/interview.md +0 -212
- package/templates/common/workflow/sixStep/en/workflow.md +0 -357
- package/templates/common/workflow/sixStep/zh-CN/workflow.md +0 -357
- package/templates/industry/devops/en/ci-cd-pipeline.md +0 -410
- package/templates/industry/web-dev/en/api-design.md +0 -299
- package/templates/industry/web-dev/en/react-nextjs-setup.md +0 -236
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
# React/Next.js Project Setup Template
|
|
2
|
-
|
|
3
|
-
## Project Initialization
|
|
4
|
-
|
|
5
|
-
```bash
|
|
6
|
-
# Create Next.js project with TypeScript
|
|
7
|
-
npx create-next-app@latest my-app --typescript --tailwind --eslint --app --src-dir
|
|
8
|
-
|
|
9
|
-
cd my-app
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
## Recommended Project Structure
|
|
13
|
-
|
|
14
|
-
```
|
|
15
|
-
src/
|
|
16
|
-
├── app/ # Next.js App Router
|
|
17
|
-
│ ├── (auth)/ # Route group for auth pages
|
|
18
|
-
│ │ ├── login/
|
|
19
|
-
│ │ └── register/
|
|
20
|
-
│ ├── (dashboard)/ # Route group for dashboard
|
|
21
|
-
│ │ └── dashboard/
|
|
22
|
-
│ ├── api/ # API routes
|
|
23
|
-
│ ├── layout.tsx # Root layout
|
|
24
|
-
│ └── page.tsx # Home page
|
|
25
|
-
├── components/
|
|
26
|
-
│ ├── ui/ # Reusable UI components
|
|
27
|
-
│ │ ├── Button/
|
|
28
|
-
│ │ ├── Input/
|
|
29
|
-
│ │ └── Modal/
|
|
30
|
-
│ ├── features/ # Feature-specific components
|
|
31
|
-
│ │ ├── auth/
|
|
32
|
-
│ │ └── dashboard/
|
|
33
|
-
│ └── layouts/ # Layout components
|
|
34
|
-
├── hooks/ # Custom React hooks
|
|
35
|
-
├── lib/ # Utilities and configs
|
|
36
|
-
│ ├── api.ts # API client
|
|
37
|
-
│ ├── auth.ts # Auth utilities
|
|
38
|
-
│ └── utils.ts # General utilities
|
|
39
|
-
├── stores/ # State management
|
|
40
|
-
├── types/ # TypeScript types
|
|
41
|
-
└── styles/ # Global styles
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## Essential Dependencies
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
# UI & Styling
|
|
48
|
-
pnpm add @radix-ui/react-dialog @radix-ui/react-dropdown-menu
|
|
49
|
-
pnpm add class-variance-authority clsx tailwind-merge
|
|
50
|
-
pnpm add lucide-react
|
|
51
|
-
|
|
52
|
-
# State & Data
|
|
53
|
-
pnpm add @tanstack/react-query zustand
|
|
54
|
-
pnpm add zod react-hook-form @hookform/resolvers
|
|
55
|
-
|
|
56
|
-
# Dev Dependencies
|
|
57
|
-
pnpm add -D @types/node prettier prettier-plugin-tailwindcss
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## Configuration Files
|
|
61
|
-
|
|
62
|
-
### tailwind.config.ts
|
|
63
|
-
```typescript
|
|
64
|
-
import type { Config } from 'tailwindcss'
|
|
65
|
-
|
|
66
|
-
const config: Config = {
|
|
67
|
-
darkMode: ['class'],
|
|
68
|
-
content: ['./src/**/*.{ts,tsx}'],
|
|
69
|
-
theme: {
|
|
70
|
-
extend: {
|
|
71
|
-
colors: {
|
|
72
|
-
border: 'hsl(var(--border))',
|
|
73
|
-
background: 'hsl(var(--background))',
|
|
74
|
-
foreground: 'hsl(var(--foreground))',
|
|
75
|
-
primary: {
|
|
76
|
-
DEFAULT: 'hsl(var(--primary))',
|
|
77
|
-
foreground: 'hsl(var(--primary-foreground))',
|
|
78
|
-
},
|
|
79
|
-
},
|
|
80
|
-
},
|
|
81
|
-
},
|
|
82
|
-
plugins: [require('tailwindcss-animate')],
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export default config
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### lib/utils.ts
|
|
89
|
-
```typescript
|
|
90
|
-
import { type ClassValue, clsx } from 'clsx'
|
|
91
|
-
import { twMerge } from 'tailwind-merge'
|
|
92
|
-
|
|
93
|
-
export function cn(...inputs: ClassValue[]) {
|
|
94
|
-
return twMerge(clsx(inputs))
|
|
95
|
-
}
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
## Component Example
|
|
99
|
-
|
|
100
|
-
### components/ui/Button/Button.tsx
|
|
101
|
-
```typescript
|
|
102
|
-
import { forwardRef } from 'react'
|
|
103
|
-
import { cva, type VariantProps } from 'class-variance-authority'
|
|
104
|
-
import { cn } from '@/lib/utils'
|
|
105
|
-
|
|
106
|
-
const buttonVariants = cva(
|
|
107
|
-
'inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50',
|
|
108
|
-
{
|
|
109
|
-
variants: {
|
|
110
|
-
variant: {
|
|
111
|
-
default: 'bg-primary text-primary-foreground hover:bg-primary/90',
|
|
112
|
-
outline: 'border border-input bg-background hover:bg-accent',
|
|
113
|
-
ghost: 'hover:bg-accent hover:text-accent-foreground',
|
|
114
|
-
},
|
|
115
|
-
size: {
|
|
116
|
-
default: 'h-10 px-4 py-2',
|
|
117
|
-
sm: 'h-9 px-3',
|
|
118
|
-
lg: 'h-11 px-8',
|
|
119
|
-
},
|
|
120
|
-
},
|
|
121
|
-
defaultVariants: {
|
|
122
|
-
variant: 'default',
|
|
123
|
-
size: 'default',
|
|
124
|
-
},
|
|
125
|
-
}
|
|
126
|
-
)
|
|
127
|
-
|
|
128
|
-
interface ButtonProps
|
|
129
|
-
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
|
|
130
|
-
VariantProps<typeof buttonVariants> {}
|
|
131
|
-
|
|
132
|
-
const Button = forwardRef<HTMLButtonElement, ButtonProps>(
|
|
133
|
-
({ className, variant, size, ...props }, ref) => {
|
|
134
|
-
return (
|
|
135
|
-
<button
|
|
136
|
-
className={cn(buttonVariants({ variant, size, className }))}
|
|
137
|
-
ref={ref}
|
|
138
|
-
{...props}
|
|
139
|
-
/>
|
|
140
|
-
)
|
|
141
|
-
}
|
|
142
|
-
)
|
|
143
|
-
|
|
144
|
-
Button.displayName = 'Button'
|
|
145
|
-
|
|
146
|
-
export { Button, buttonVariants }
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
## API Route Example
|
|
150
|
-
|
|
151
|
-
### app/api/users/route.ts
|
|
152
|
-
```typescript
|
|
153
|
-
import { NextResponse } from 'next/server'
|
|
154
|
-
import { z } from 'zod'
|
|
155
|
-
|
|
156
|
-
const userSchema = z.object({
|
|
157
|
-
name: z.string().min(1),
|
|
158
|
-
email: z.string().email(),
|
|
159
|
-
})
|
|
160
|
-
|
|
161
|
-
export async function POST(request: Request) {
|
|
162
|
-
try {
|
|
163
|
-
const body = await request.json()
|
|
164
|
-
const validated = userSchema.parse(body)
|
|
165
|
-
|
|
166
|
-
// Create user logic here
|
|
167
|
-
|
|
168
|
-
return NextResponse.json(
|
|
169
|
-
{ message: 'User created', data: validated },
|
|
170
|
-
{ status: 201 }
|
|
171
|
-
)
|
|
172
|
-
} catch (error) {
|
|
173
|
-
if (error instanceof z.ZodError) {
|
|
174
|
-
return NextResponse.json(
|
|
175
|
-
{ error: 'Validation failed', details: error.errors },
|
|
176
|
-
{ status: 400 }
|
|
177
|
-
)
|
|
178
|
-
}
|
|
179
|
-
return NextResponse.json(
|
|
180
|
-
{ error: 'Internal server error' },
|
|
181
|
-
{ status: 500 }
|
|
182
|
-
)
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
## React Query Setup
|
|
188
|
-
|
|
189
|
-
### lib/query-client.ts
|
|
190
|
-
```typescript
|
|
191
|
-
import { QueryClient } from '@tanstack/react-query'
|
|
192
|
-
|
|
193
|
-
export const queryClient = new QueryClient({
|
|
194
|
-
defaultOptions: {
|
|
195
|
-
queries: {
|
|
196
|
-
staleTime: 60 * 1000,
|
|
197
|
-
retry: 1,
|
|
198
|
-
},
|
|
199
|
-
},
|
|
200
|
-
})
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
### hooks/useUsers.ts
|
|
204
|
-
```typescript
|
|
205
|
-
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'
|
|
206
|
-
|
|
207
|
-
export function useUsers() {
|
|
208
|
-
return useQuery({
|
|
209
|
-
queryKey: ['users'],
|
|
210
|
-
queryFn: () => fetch('/api/users').then(r => r.json()),
|
|
211
|
-
})
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
export function useCreateUser() {
|
|
215
|
-
const queryClient = useQueryClient()
|
|
216
|
-
|
|
217
|
-
return useMutation({
|
|
218
|
-
mutationFn: (data: CreateUserInput) =>
|
|
219
|
-
fetch('/api/users', {
|
|
220
|
-
method: 'POST',
|
|
221
|
-
body: JSON.stringify(data),
|
|
222
|
-
}).then(r => r.json()),
|
|
223
|
-
onSuccess: () => {
|
|
224
|
-
queryClient.invalidateQueries({ queryKey: ['users'] })
|
|
225
|
-
},
|
|
226
|
-
})
|
|
227
|
-
}
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
## Best Practices
|
|
231
|
-
|
|
232
|
-
1. **Server Components by Default**: Use client components only when needed
|
|
233
|
-
2. **Colocation**: Keep related files together
|
|
234
|
-
3. **Type Safety**: Use Zod for runtime validation
|
|
235
|
-
4. **Error Boundaries**: Implement proper error handling
|
|
236
|
-
5. **Loading States**: Use Suspense and loading.tsx
|