vibe-and-thrive 1.7.5 → 1.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/bin/postinstall.sh +21 -0
- package/package.json +1 -1
- package/templates/examples/CLAUDE-django.md +9 -0
- package/templates/examples/CLAUDE-fastapi.md +9 -0
- package/templates/examples/CLAUDE-fastmcp.md +8 -0
- package/templates/examples/CLAUDE-fullstack.md +18 -0
- package/templates/examples/CLAUDE-node.md +8 -0
- package/templates/examples/CLAUDE-react.md +9 -0
package/bin/postinstall.sh
CHANGED
|
@@ -102,6 +102,27 @@ install_ralph() {
|
|
|
102
102
|
if [[ ! -f "PROMPT.md" ]] && [[ -f "$PKG_ROOT/templates/PROMPT.md" ]]; then
|
|
103
103
|
cp "$PKG_ROOT/templates/PROMPT.md" "PROMPT.md"
|
|
104
104
|
fi
|
|
105
|
+
|
|
106
|
+
# Install CLAUDE.md if missing (project-specific AI instructions)
|
|
107
|
+
if [[ ! -f "CLAUDE.md" ]]; then
|
|
108
|
+
local claude_template=""
|
|
109
|
+
# Select template based on project type
|
|
110
|
+
if [[ -f "manage.py" ]]; then
|
|
111
|
+
claude_template="$PKG_ROOT/templates/examples/CLAUDE-django.md"
|
|
112
|
+
elif [[ -f "pyproject.toml" ]] && grep -q "fastapi" pyproject.toml 2>/dev/null; then
|
|
113
|
+
claude_template="$PKG_ROOT/templates/examples/CLAUDE-fastapi.md"
|
|
114
|
+
elif [[ -d "frontend" ]] && [[ -d "backend" || -d "api" ]]; then
|
|
115
|
+
claude_template="$PKG_ROOT/templates/examples/CLAUDE-fullstack.md"
|
|
116
|
+
elif [[ -f "package.json" ]] && grep -q '"react"' package.json 2>/dev/null; then
|
|
117
|
+
claude_template="$PKG_ROOT/templates/examples/CLAUDE-react.md"
|
|
118
|
+
elif [[ -f "package.json" ]]; then
|
|
119
|
+
claude_template="$PKG_ROOT/templates/examples/CLAUDE-node.md"
|
|
120
|
+
fi
|
|
121
|
+
|
|
122
|
+
if [[ -n "$claude_template" ]] && [[ -f "$claude_template" ]]; then
|
|
123
|
+
cp "$claude_template" "CLAUDE.md"
|
|
124
|
+
fi
|
|
125
|
+
fi
|
|
105
126
|
}
|
|
106
127
|
|
|
107
128
|
configure_mcp() {
|
package/package.json
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Project Instructions for AI Coding Agents
|
|
2
2
|
|
|
3
|
+
## Naming Conventions
|
|
4
|
+
- **Files**: `snake_case.py` — e.g., `user_views.py`, `auth_serializers.py`
|
|
5
|
+
- **Functions/Variables**: `snake_case` — e.g., `get_user_by_id`, `is_authenticated`
|
|
6
|
+
- **Classes**: `PascalCase` — e.g., `UserViewSet`, `AuthSerializer`
|
|
7
|
+
- **Models**: `PascalCase` singular — e.g., `User`, `BlogPost` (Django pluralizes table names)
|
|
8
|
+
- **Constants**: `SCREAMING_SNAKE` — e.g., `MAX_UPLOAD_SIZE`, `DEFAULT_PAGE_SIZE`
|
|
9
|
+
- **URL patterns**: `kebab-case` — e.g., `/api/user-profile/`, `/api/blog-posts/`
|
|
10
|
+
- **Template files**: `snake_case.html` — e.g., `user_detail.html`
|
|
11
|
+
|
|
3
12
|
## Tech Stack
|
|
4
13
|
- **Backend**: Django 5, Django REST Framework
|
|
5
14
|
- **Database**: PostgreSQL
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# CLAUDE.md - FastAPI Project
|
|
2
2
|
|
|
3
|
+
## Naming Conventions
|
|
4
|
+
- **Files**: `snake_case.py` — e.g., `user_service.py`, `auth_router.py`
|
|
5
|
+
- **Functions/Variables**: `snake_case` — e.g., `get_user_by_id`, `is_valid`
|
|
6
|
+
- **Classes**: `PascalCase` — e.g., `UserService`, `AuthRouter`
|
|
7
|
+
- **Pydantic Models**: `PascalCase` — e.g., `UserCreate`, `UserResponse`
|
|
8
|
+
- **Constants**: `SCREAMING_SNAKE` — e.g., `MAX_RETRIES`, `DEFAULT_LIMIT`
|
|
9
|
+
- **Database tables**: `snake_case` — e.g., `user_sessions`, `api_keys`
|
|
10
|
+
- **API endpoints**: `kebab-case` — e.g., `/api/user-profile`, `/api/v1/auth`
|
|
11
|
+
|
|
3
12
|
## Project Overview
|
|
4
13
|
|
|
5
14
|
This is a FastAPI backend application with async SQLAlchemy and Pydantic.
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# CLAUDE.md - FastMCP Server
|
|
2
2
|
|
|
3
|
+
## Naming Conventions
|
|
4
|
+
- **Files**: `snake_case.py` — e.g., `search_tool.py`, `db_resource.py`
|
|
5
|
+
- **Functions/Variables**: `snake_case` — e.g., `search_files`, `is_valid`
|
|
6
|
+
- **Classes**: `PascalCase` — e.g., `SearchResult`, `FileResource`
|
|
7
|
+
- **Tool names**: `snake_case` — e.g., `search_files`, `read_database`
|
|
8
|
+
- **Resource URIs**: `kebab-case` — e.g., `file://project-files`, `db://user-data`
|
|
9
|
+
- **Constants**: `SCREAMING_SNAKE` — e.g., `MAX_RESULTS`, `DEFAULT_TIMEOUT`
|
|
10
|
+
|
|
3
11
|
## Project Overview
|
|
4
12
|
|
|
5
13
|
This is an MCP (Model Context Protocol) server built with FastMCP. It exposes tools, resources, and prompts to LLM clients.
|
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# Project Instructions for AI Coding Agents
|
|
2
2
|
|
|
3
|
+
## Naming Conventions
|
|
4
|
+
|
|
5
|
+
### Frontend (React/TypeScript)
|
|
6
|
+
- **Files**: `PascalCase.tsx` for components, `camelCase.ts` for utilities
|
|
7
|
+
- **Components**: `PascalCase` — e.g., `UserProfile`, `AuthProvider`
|
|
8
|
+
- **Hooks**: `useCamelCase` — e.g., `useAuth`, `useUserData`
|
|
9
|
+
- **Functions/Variables**: `camelCase` — e.g., `handleSubmit`, `isLoading`
|
|
10
|
+
|
|
11
|
+
### Backend (Django/Python)
|
|
12
|
+
- **Files**: `snake_case.py` — e.g., `user_views.py`
|
|
13
|
+
- **Functions/Variables**: `snake_case` — e.g., `get_user_by_id`
|
|
14
|
+
- **Classes**: `PascalCase` — e.g., `UserViewSet`, `UserSerializer`
|
|
15
|
+
|
|
16
|
+
### Shared
|
|
17
|
+
- **API endpoints**: `kebab-case` — e.g., `/api/user-profile/`
|
|
18
|
+
- **Database tables**: `snake_case` — e.g., `user_sessions`
|
|
19
|
+
- **Constants**: `SCREAMING_SNAKE` — e.g., `MAX_RETRIES`
|
|
20
|
+
|
|
3
21
|
## Tech Stack
|
|
4
22
|
- **Frontend**: React 18, TypeScript, Vite, TailwindCSS
|
|
5
23
|
- **Backend**: Django 5, Django REST Framework
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Project Instructions for AI Coding Agents
|
|
2
2
|
|
|
3
|
+
## Naming Conventions
|
|
4
|
+
- **Files**: `kebab-case.ts` — e.g., `user-service.ts`, `auth-middleware.ts`
|
|
5
|
+
- **Functions/Variables**: `camelCase` — e.g., `getUserById`, `isValid`
|
|
6
|
+
- **Classes/Interfaces/Types**: `PascalCase` — e.g., `UserService`, `CreateUserInput`
|
|
7
|
+
- **Constants**: `SCREAMING_SNAKE` — e.g., `MAX_RETRIES`, `DEFAULT_PORT`
|
|
8
|
+
- **Database tables**: `snake_case` — e.g., `user_sessions` (Prisma converts to camelCase)
|
|
9
|
+
- **API endpoints**: `kebab-case` — e.g., `/api/user-profile`, `/api/auth/sign-in`
|
|
10
|
+
|
|
3
11
|
## Tech Stack
|
|
4
12
|
- **Runtime**: Node.js 20+
|
|
5
13
|
- **Framework**: Express.js / Fastify
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Project Instructions for AI Coding Agents
|
|
2
2
|
|
|
3
|
+
## Naming Conventions
|
|
4
|
+
- **Files**: `PascalCase.tsx` for components, `camelCase.ts` for utilities — e.g., `UserProfile.tsx`, `useAuth.ts`
|
|
5
|
+
- **Components**: `PascalCase` — e.g., `UserProfile`, `AuthProvider`
|
|
6
|
+
- **Hooks**: `useCamelCase` — e.g., `useAuth`, `useUserData`
|
|
7
|
+
- **Functions/Variables**: `camelCase` — e.g., `handleSubmit`, `isLoading`
|
|
8
|
+
- **Types/Interfaces**: `PascalCase` — e.g., `UserProps`, `AuthState`
|
|
9
|
+
- **Constants**: `SCREAMING_SNAKE` — e.g., `API_BASE_URL`, `MAX_RETRIES`
|
|
10
|
+
- **CSS classes**: `kebab-case` (TailwindCSS utility classes are standard)
|
|
11
|
+
|
|
3
12
|
## Tech Stack
|
|
4
13
|
- **Frontend**: React 18, TypeScript, Vite
|
|
5
14
|
- **Styling**: TailwindCSS
|