Initial commit
This commit is contained in:
11
.claude-plugin/plugin.json
Normal file
11
.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"name": "project-setup-standards",
|
||||||
|
"description": "Guide for standardized project initialization following team conventions",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"author": {
|
||||||
|
"name": "natifridman"
|
||||||
|
},
|
||||||
|
"commands": [
|
||||||
|
"./commands"
|
||||||
|
]
|
||||||
|
}
|
||||||
3
README.md
Normal file
3
README.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# project-setup-standards
|
||||||
|
|
||||||
|
Guide for standardized project initialization following team conventions
|
||||||
182
commands/project-setup.md
Normal file
182
commands/project-setup.md
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
---
|
||||||
|
description: Guides through standardized project initialization following team conventions
|
||||||
|
---
|
||||||
|
|
||||||
|
# Project Setup Standards
|
||||||
|
|
||||||
|
You are helping set up a new project following our team's standardized conventions. Guide the developer through the following setup steps:
|
||||||
|
|
||||||
|
## 1. Project Structure
|
||||||
|
Create a well-organized project structure based on the project type:
|
||||||
|
|
||||||
|
### For Backend Projects:
|
||||||
|
```
|
||||||
|
project-name/
|
||||||
|
├── src/
|
||||||
|
│ ├── api/
|
||||||
|
│ ├── services/
|
||||||
|
│ ├── models/
|
||||||
|
│ ├── utils/
|
||||||
|
│ └── config/
|
||||||
|
├── tests/
|
||||||
|
│ ├── unit/
|
||||||
|
│ └── integration/
|
||||||
|
├── docs/
|
||||||
|
├── .github/
|
||||||
|
│ └── workflows/
|
||||||
|
├── .gitignore
|
||||||
|
├── README.md
|
||||||
|
├── package.json (or equivalent)
|
||||||
|
└── .env.example
|
||||||
|
```
|
||||||
|
|
||||||
|
### For Frontend Projects:
|
||||||
|
```
|
||||||
|
project-name/
|
||||||
|
├── src/
|
||||||
|
│ ├── components/
|
||||||
|
│ ├── pages/
|
||||||
|
│ ├── hooks/
|
||||||
|
│ ├── utils/
|
||||||
|
│ ├── styles/
|
||||||
|
│ └── assets/
|
||||||
|
├── tests/
|
||||||
|
├── public/
|
||||||
|
├── docs/
|
||||||
|
├── .github/
|
||||||
|
│ └── workflows/
|
||||||
|
├── .gitignore
|
||||||
|
├── README.md
|
||||||
|
├── package.json
|
||||||
|
└── .env.example
|
||||||
|
```
|
||||||
|
|
||||||
|
## 2. Essential Configuration Files
|
||||||
|
|
||||||
|
### .gitignore
|
||||||
|
Include standard ignores for:
|
||||||
|
- Dependencies (node_modules, venv, etc.)
|
||||||
|
- Environment files (.env, .env.local)
|
||||||
|
- Build outputs (dist, build, *.log)
|
||||||
|
- IDE-specific files (.vscode, .idea)
|
||||||
|
- OS-specific files (.DS_Store, Thumbs.db)
|
||||||
|
|
||||||
|
### README.md Template
|
||||||
|
```markdown
|
||||||
|
# Project Name
|
||||||
|
|
||||||
|
## Description
|
||||||
|
Brief description of what this project does
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
- List required software/tools
|
||||||
|
- Minimum versions
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
Step-by-step installation instructions
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
How to run the project
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
How to run tests
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
Link to contribution guidelines
|
||||||
|
|
||||||
|
## License
|
||||||
|
License information
|
||||||
|
```
|
||||||
|
|
||||||
|
## 3. Dependency Management
|
||||||
|
|
||||||
|
### For Node.js Projects:
|
||||||
|
- Initialize with `npm init` or `yarn init`
|
||||||
|
- Set up package.json with proper scripts:
|
||||||
|
- `start`, `dev`, `build`, `test`, `lint`
|
||||||
|
- Include commonly used dependencies and devDependencies
|
||||||
|
- Set up a lockfile (package-lock.json or yarn.lock)
|
||||||
|
|
||||||
|
### For Python Projects:
|
||||||
|
- Create requirements.txt or use Poetry/Pipenv
|
||||||
|
- Set up virtual environment
|
||||||
|
- Include common dependencies with pinned versions
|
||||||
|
- Create requirements-dev.txt for development dependencies
|
||||||
|
|
||||||
|
## 4. Code Quality Tools
|
||||||
|
|
||||||
|
Set up the following tools:
|
||||||
|
- **Linter**: ESLint (JS/TS), Pylint/Flake8 (Python), etc.
|
||||||
|
- **Formatter**: Prettier (JS/TS), Black (Python), etc.
|
||||||
|
- **Pre-commit Hooks**: Use Husky or pre-commit framework
|
||||||
|
- **Type Checking**: TypeScript or mypy for Python
|
||||||
|
|
||||||
|
## 5. Testing Setup
|
||||||
|
|
||||||
|
Initialize testing framework:
|
||||||
|
- **JavaScript/TypeScript**: Jest, Vitest, or Mocha
|
||||||
|
- **Python**: pytest or unittest
|
||||||
|
- Create initial test structure
|
||||||
|
- Set up test coverage reporting
|
||||||
|
|
||||||
|
## 6. CI/CD Pipeline
|
||||||
|
|
||||||
|
Create `.github/workflows/ci.yml` with:
|
||||||
|
- Automated testing on pull requests
|
||||||
|
- Linting and formatting checks
|
||||||
|
- Build verification
|
||||||
|
- Optional: deployment workflows
|
||||||
|
|
||||||
|
Example workflow:
|
||||||
|
```yaml
|
||||||
|
name: CI
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Setup
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: '18'
|
||||||
|
- run: npm ci
|
||||||
|
- run: npm test
|
||||||
|
- run: npm run lint
|
||||||
|
```
|
||||||
|
|
||||||
|
## 7. Environment Variables
|
||||||
|
|
||||||
|
Create `.env.example` with:
|
||||||
|
- All required environment variables (without values)
|
||||||
|
- Comments explaining each variable
|
||||||
|
- Example values where appropriate
|
||||||
|
|
||||||
|
## 8. Documentation
|
||||||
|
|
||||||
|
Set up:
|
||||||
|
- API documentation (Swagger/OpenAPI for backends)
|
||||||
|
- Component documentation (Storybook for frontends)
|
||||||
|
- Architecture decision records (ADR) in docs/adr/
|
||||||
|
|
||||||
|
## 9. Git Setup
|
||||||
|
|
||||||
|
- Initialize git repository if not already done
|
||||||
|
- Create initial commit with project structure
|
||||||
|
- Set up branch protection rules on main/master
|
||||||
|
- Create development branch
|
||||||
|
|
||||||
|
## 10. Team-Specific Conventions
|
||||||
|
|
||||||
|
Apply team-specific standards:
|
||||||
|
- Naming conventions (camelCase, snake_case, etc.)
|
||||||
|
- Code organization patterns
|
||||||
|
- Commit message format (Conventional Commits)
|
||||||
|
- PR template in `.github/pull_request_template.md`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
After gathering project requirements, guide the developer through each applicable section, creating necessary files and configurations. Explain the reasoning behind each standard to promote understanding.
|
||||||
|
|
||||||
45
plugin.lock.json
Normal file
45
plugin.lock.json
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
"$schema": "internal://schemas/plugin.lock.v1.json",
|
||||||
|
"pluginId": "gh:natifridman/claude-plugins:plugins/project-setup-standards",
|
||||||
|
"normalized": {
|
||||||
|
"repo": null,
|
||||||
|
"ref": "refs/tags/v20251128.0",
|
||||||
|
"commit": "ff6588909e683d47fe9c161739da7d7d7055f165",
|
||||||
|
"treeHash": "bbb3c9688f7f135fdc8a150f903012fcf3b897a20f6aad771a574b0bb9120d77",
|
||||||
|
"generatedAt": "2025-11-28T10:27:16.959180Z",
|
||||||
|
"toolVersion": "publish_plugins.py@0.2.0"
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"remote": "git@github.com:zhongweili/42plugin-data.git",
|
||||||
|
"branch": "master",
|
||||||
|
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
|
||||||
|
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
|
||||||
|
},
|
||||||
|
"manifest": {
|
||||||
|
"name": "project-setup-standards",
|
||||||
|
"description": "Guide for standardized project initialization following team conventions",
|
||||||
|
"version": "1.0.0"
|
||||||
|
},
|
||||||
|
"content": {
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"path": "README.md",
|
||||||
|
"sha256": "59ff860a8c1988a31fc2ee7676de4f6a5b872930d1d81511c56523d74b93ebdd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": ".claude-plugin/plugin.json",
|
||||||
|
"sha256": "95d90865bce5f553d91d2949caca3aa66d724510edda2d53232437334a2687b6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "commands/project-setup.md",
|
||||||
|
"sha256": "a95e86cc329bee1c52e88218775d8fada7200bbd3523c4de6eb5479a331a2628"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dirSha256": "bbb3c9688f7f135fdc8a150f903012fcf3b897a20f6aad771a574b0bb9120d77"
|
||||||
|
},
|
||||||
|
"security": {
|
||||||
|
"scannedAt": null,
|
||||||
|
"scannerVersion": null,
|
||||||
|
"flags": []
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user