commit a770acd32c717d631cdc4f41ec1785805192848e Author: Zhongwei Li Date: Sun Nov 30 08:42:22 2025 +0800 Initial commit diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 0000000..a579790 --- /dev/null +++ b/.claude-plugin/plugin.json @@ -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" + ] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..1547cef --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# project-setup-standards + +Guide for standardized project initialization following team conventions diff --git a/commands/project-setup.md b/commands/project-setup.md new file mode 100644 index 0000000..e720221 --- /dev/null +++ b/commands/project-setup.md @@ -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. + diff --git a/plugin.lock.json b/plugin.lock.json new file mode 100644 index 0000000..92b26b8 --- /dev/null +++ b/plugin.lock.json @@ -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": [] + } +} \ No newline at end of file