Initial commit
This commit is contained in:
12
.claude-plugin/plugin.json
Normal file
12
.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"name": "tech-stack",
|
||||||
|
"description": "Commands for setup or update of CLAUDE.md file with best practices for specific language or framework.",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"author": {
|
||||||
|
"name": "Vlad Goncharov",
|
||||||
|
"email": "vlad.goncharov@neolab.finance"
|
||||||
|
},
|
||||||
|
"commands": [
|
||||||
|
"./commands"
|
||||||
|
]
|
||||||
|
}
|
||||||
3
README.md
Normal file
3
README.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# tech-stack
|
||||||
|
|
||||||
|
Commands for setup or update of CLAUDE.md file with best practices for specific language or framework.
|
||||||
42
commands/add-typescript-best-practices.md
Normal file
42
commands/add-typescript-best-practices.md
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
---
|
||||||
|
description: Setup TypeScript best practices and code style rules in CLAUDE.md
|
||||||
|
argument-hint: None required - creates standardized TypeScript guidelines
|
||||||
|
---
|
||||||
|
|
||||||
|
# Setup TypeScript Best Practices
|
||||||
|
|
||||||
|
Create or update CLAUDE.md in with following content, <critical>write it strictly as it is<critical>, do not summaraise or introduce and new additional information:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
## Code Style Rules
|
||||||
|
|
||||||
|
### General Principles
|
||||||
|
|
||||||
|
- **TypeScript**: All code must be strictly typed, leverage TypeScript's type safety features
|
||||||
|
|
||||||
|
### Code style rules
|
||||||
|
|
||||||
|
- Interfaces over types - use interfaces for object types
|
||||||
|
- Use enum for constant values, prefer them over string literals
|
||||||
|
- Export all types by default
|
||||||
|
- Use type guards instead of type assertions
|
||||||
|
|
||||||
|
### Best Practices
|
||||||
|
|
||||||
|
#### Library-First Approach
|
||||||
|
|
||||||
|
- Common areas where libraries should be preferred:
|
||||||
|
- Date/time manipulation → date-fns, dayjs
|
||||||
|
- Form validation → joi, yup, zod
|
||||||
|
- HTTP requests → axios, got
|
||||||
|
- State management → Redux, MobX, Zustand
|
||||||
|
- Utility functions → lodash, ramda
|
||||||
|
|
||||||
|
#### Code Quality
|
||||||
|
|
||||||
|
- Use destructuring of objects where possible:
|
||||||
|
- Instead of `const name = user.name` use `const { name } = user`
|
||||||
|
- Instead of `const result = await getUser(userId)` use `const { data: user } = await getUser(userId)`
|
||||||
|
- Instead of `const parseData = (data) => data.name` use `const parseData = ({ name }) => name`
|
||||||
|
- Use `ms` package for time related configuration and environment variables, instead of multiplying numbers by 1000
|
||||||
|
```
|
||||||
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:NeoLabHQ/context-engineering-kit:plugins/tech-stack",
|
||||||
|
"normalized": {
|
||||||
|
"repo": null,
|
||||||
|
"ref": "refs/tags/v20251128.0",
|
||||||
|
"commit": "ee8b1da67f83c4d87169862d6801573d0d038b78",
|
||||||
|
"treeHash": "f9fe666a57e7888b33a0b564f98df88721fbadf55fdad7737fb2df1b554537ce",
|
||||||
|
"generatedAt": "2025-11-28T10:12:12.072226Z",
|
||||||
|
"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": "tech-stack",
|
||||||
|
"description": "Commands for setup or update of CLAUDE.md file with best practices for specific language or framework.",
|
||||||
|
"version": "1.0.0"
|
||||||
|
},
|
||||||
|
"content": {
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"path": "README.md",
|
||||||
|
"sha256": "61c78678eab54c84ac6ca3edfcd724a81297ce474e59a4faa2e6a725c148e7fd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": ".claude-plugin/plugin.json",
|
||||||
|
"sha256": "69f8672a97c449c2da5bfd90b3f6c840e29bb40c68509b2fa8ab6131df0c0e98"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "commands/add-typescript-best-practices.md",
|
||||||
|
"sha256": "69f81e829cdb3b0a731d4e7471e7ea1025f45be035ad8ee385c0b059034d18fe"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dirSha256": "f9fe666a57e7888b33a0b564f98df88721fbadf55fdad7737fb2df1b554537ce"
|
||||||
|
},
|
||||||
|
"security": {
|
||||||
|
"scannedAt": null,
|
||||||
|
"scannerVersion": null,
|
||||||
|
"flags": []
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user