Skip to content

Commit 75fa49a

Browse files
author
Saif Ali
committed
feat: initial release v1.0.0 — 30 Claude AI skills, auto-install for full-stack freelancers
0 parents  commit 75fa49a

46 files changed

Lines changed: 6583 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
name: Bug Report
3+
about: Something broke during setup or a skill isn't working
4+
title: "[BUG] "
5+
labels: bug
6+
assignees: ''
7+
---
8+
9+
## Describe the Bug
10+
A clear description of what went wrong.
11+
12+
## Steps to Reproduce
13+
1. Ran `./setup.sh`
14+
2. Got error at step `...`
15+
3. See error below
16+
17+
## Error Output
18+
```
19+
paste full error here
20+
```
21+
22+
## Environment
23+
- **macOS version:** (run `sw_vers`)
24+
- **Chip:** Apple Silicon (M1/M2/M3) / Intel
25+
- **Shell:** zsh / bash
26+
- **Node version:** (run `node --version`)
27+
- **Was this a fresh install or re-run?**
28+
29+
## Expected Behavior
30+
What should have happened?
31+
32+
## Screenshots
33+
If applicable, add screenshots.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
name: Feature Request / New Skill
3+
about: Suggest a new skill or feature for the setup
4+
title: "[FEAT] "
5+
labels: enhancement
6+
assignees: ''
7+
---
8+
9+
## What would you like to add?
10+
A clear description of the skill or feature you want.
11+
12+
## Is this a new Skill or a setup.sh change?
13+
- [ ] New Claude skill
14+
- [ ] New tool to install in setup.sh
15+
- [ ] Documentation improvement
16+
- [ ] Other
17+
18+
## Describe the skill (if applicable)
19+
- **Skill name:** e.g. `stripe-expert`
20+
- **Triggers on:** What phrases should activate it?
21+
- **What it knows:** Key topics / frameworks / patterns
22+
23+
## Why is this useful?
24+
Who benefits from this addition?
25+
26+
## Additional context
27+
Any links, references, or examples.

.github/workflows/ci.yml

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
name: CI — Validate Skills & Script
2+
3+
on:
4+
push:
5+
branches: [main, develop]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
# ─── 1. Validate setup.sh syntax ───────────────────────────
11+
validate-script:
12+
name: Validate setup.sh
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- name: Check bash syntax
18+
run: bash -n setup.sh && echo "✅ setup.sh syntax OK"
19+
20+
- name: Check script is executable
21+
run: |
22+
if [ -x setup.sh ]; then
23+
echo "✅ setup.sh is executable"
24+
else
25+
echo "⚠️ setup.sh not executable — run: chmod +x setup.sh"
26+
exit 1
27+
fi
28+
29+
- name: Lint with shellcheck
30+
uses: ludeeus/action-shellcheck@master
31+
with:
32+
scandir: '.'
33+
severity: warning
34+
continue-on-error: true
35+
36+
# ─── 2. Validate all SKILL.md files ────────────────────────
37+
validate-skills:
38+
name: Validate Skills
39+
runs-on: ubuntu-latest
40+
steps:
41+
- uses: actions/checkout@v4
42+
43+
- name: Check every skill has a SKILL.md
44+
run: |
45+
ERRORS=0
46+
for dir in skills/*/; do
47+
skill=$(basename "$dir")
48+
if [ ! -f "${dir}SKILL.md" ]; then
49+
echo "❌ Missing SKILL.md in: $skill"
50+
ERRORS=$((ERRORS + 1))
51+
else
52+
echo "✅ $skill"
53+
fi
54+
done
55+
if [ $ERRORS -gt 0 ]; then
56+
echo "$ERRORS skill(s) missing SKILL.md"
57+
exit 1
58+
fi
59+
echo "All $(ls skills/ | wc -l | tr -d ' ') skills valid"
60+
61+
- name: Check SKILL.md frontmatter has name and description
62+
run: |
63+
ERRORS=0
64+
for skill_file in skills/*/SKILL.md; do
65+
skill=$(basename $(dirname "$skill_file"))
66+
if ! grep -q "^name:" "$skill_file"; then
67+
echo "❌ $skill: missing 'name:' in frontmatter"
68+
ERRORS=$((ERRORS + 1))
69+
fi
70+
if ! grep -q "^description:" "$skill_file"; then
71+
echo "❌ $skill: missing 'description:' in frontmatter"
72+
ERRORS=$((ERRORS + 1))
73+
fi
74+
done
75+
if [ $ERRORS -gt 0 ]; then
76+
echo "$ERRORS frontmatter error(s) found"
77+
exit 1
78+
fi
79+
echo "✅ All skill frontmatters valid"
80+
81+
- name: Count and report skills
82+
run: |
83+
COUNT=$(ls skills/ | wc -l | tr -d ' ')
84+
echo "📦 Total skills: $COUNT"
85+
ls skills/ | sed 's/^/ - /'
86+
87+
# ─── 3. Validate VS Code config JSON ───────────────────────
88+
validate-vscode:
89+
name: Validate VS Code JSON
90+
runs-on: ubuntu-latest
91+
steps:
92+
- uses: actions/checkout@v4
93+
94+
- name: Validate settings.json
95+
run: python3 -c "import json; json.load(open('vscode/settings.json')); print('✅ settings.json valid')"
96+
97+
- name: Validate keybindings.json
98+
run: python3 -c "import json; json.load(open('vscode/keybindings.json')); print('✅ keybindings.json valid')"
99+
100+
# ─── 4. Check README is up to date ─────────────────────────
101+
validate-docs:
102+
name: Validate Documentation
103+
runs-on: ubuntu-latest
104+
steps:
105+
- uses: actions/checkout@v4
106+
107+
- name: Check required files exist
108+
run: |
109+
FILES=(README.md CONTRIBUTING.md CHANGELOG.md LICENSE .gitignore CLAUDE.md setup.sh)
110+
ERRORS=0
111+
for f in "${FILES[@]}"; do
112+
if [ -f "$f" ]; then
113+
echo "✅ $f"
114+
else
115+
echo "❌ Missing: $f"
116+
ERRORS=$((ERRORS + 1))
117+
fi
118+
done
119+
if [ $ERRORS -gt 0 ]; then exit 1; fi
120+
121+
- name: Check README mentions all skills
122+
run: |
123+
MISSING=0
124+
for dir in skills/*/; do
125+
skill=$(basename "$dir")
126+
if ! grep -q "$skill" README.md; then
127+
echo "⚠️ README doesn't mention skill: $skill"
128+
MISSING=$((MISSING + 1))
129+
fi
130+
done
131+
if [ $MISSING -gt 0 ]; then
132+
echo "$MISSING skill(s) not documented in README"
133+
else
134+
echo "✅ All skills documented in README"
135+
fi
136+
continue-on-error: true

.gitignore

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# macOS
2+
.DS_Store
3+
.DS_Store?
4+
._*
5+
.Spotlight-V100
6+
.Trashes
7+
ehthumbs.db
8+
Thumbs.db
9+
10+
# Editor
11+
.vscode/
12+
!vscode/
13+
.idea/
14+
*.swp
15+
*.swo
16+
17+
# Logs
18+
*.log
19+
npm-debug.log*
20+
21+
# Environment
22+
.env
23+
.env.local
24+
.env.*.local
25+
26+
# Test output
27+
/coverage
28+
*.lcov
29+
30+
# Temp
31+
tmp/
32+
temp/

CHANGELOG.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented here.
4+
5+
Format: [Semantic Versioning](https://semver.org/)`MAJOR.MINOR.PATCH`
6+
7+
---
8+
9+
## [1.0.0] — 2026-02-27
10+
11+
### 🎉 Initial Release
12+
13+
#### Added
14+
- `setup.sh` — fully automated macOS install script (Apple Silicon + Intel)
15+
- Smart install detection — skips already-installed tools, never duplicates
16+
- 19 tools installed: Homebrew, Node.js (NVM), Claude CLI, TypeScript, tsx, NestJS CLI, EAS CLI, Expo CLI, Flutter, Docker, PostgreSQL 16, Redis, Nginx, AWS CLI, VS Code, Git, GitHub CLI, jq, wget
17+
- 30 Claude Code skills installed to `~/.claude/skills/`
18+
- VS Code settings, keybindings, and 21 extensions auto-configured
19+
- Global `CLAUDE.md` with coding standards and freelance context
20+
21+
#### Skills Included (30 total)
22+
23+
**Custom Built (8):**
24+
- `react-native-expo` — Expo Router, EAS Build, Reanimated 3, FlashList
25+
- `flutter-dev` — Riverpod 2, GoRouter, Freezed, Dio, Material 3
26+
- `nodejs-backend` — NestJS, Prisma, JWT, Redis, BullMQ
27+
- `nextjs-frontend` — App Router, React Query, shadcn/ui, SEO
28+
- `uiux-design` — Tailwind, CVA, Framer Motion, WCAG accessibility
29+
- `devops-cicd` — Docker, Nginx, GitHub Actions, AWS, zero-downtime deploy
30+
- `upwork-freelancer` — Proposals, client replies, scoping, rate negotiation
31+
- `fullstack-architecture` — Monorepo, Stripe, S3, WebSockets, multi-tenant
32+
33+
**Community (22, from Jeffallan/claude-skills):**
34+
- `react-native-expert`, `flutter-expert`, `nestjs-expert`, `nextjs-developer`
35+
- `devops-engineer`, `django-expert`, `fastapi-expert`, `graphql-architect`
36+
- `typescript-pro`, `python-pro`, `laravel-specialist`, `vue-expert`
37+
- `api-designer`, `microservices-architect`, `secure-code-guardian`
38+
- `test-master`, `kubernetes-specialist`, `cloud-architect`
39+
- `debugging-wizard`, `code-reviewer`, `feature-forge`, `python-pro`
40+
41+
---
42+
43+
## [Unreleased]
44+
45+
### Planned
46+
- Linux (Ubuntu/Debian) support for `setup.sh`
47+
- Windows WSL2 support
48+
- `supabase` skill
49+
- `stripe-expert` skill
50+
- `prisma-expert` skill
51+
- `react-query-expert` skill
52+
- Auto-update command (`./setup.sh --update`)
53+
54+
---
55+
56+
[1.0.0]: https://github.com/thesaifalitai/claude-setup/releases/tag/v1.0.0

CLAUDE.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Claude Global Configuration
2+
3+
## Identity
4+
You are a senior full-stack engineer and Upwork freelancer assistant.
5+
Your core expertise: React Native, Flutter, Next.js, Node.js/NestJS, AWS, Docker, UI/UX.
6+
7+
## Coding Standards
8+
9+
### Always
10+
- Use TypeScript strict mode (`"strict": true`)
11+
- Write self-documenting code with meaningful names
12+
- Handle loading, error, and empty states explicitly
13+
- Add JSDoc for exported functions/components
14+
- Follow the project's existing patterns before introducing new ones
15+
16+
### Never
17+
- Use `any` type without a comment explaining why
18+
- Leave TODO comments without a ticket/issue reference
19+
- Commit secrets, API keys, or `.env` files
20+
- Use `console.log` in production code (use proper logging)
21+
- Skip error handling in async functions
22+
23+
## Response Format
24+
- Start with the solution, explain after
25+
- Show complete, runnable code (not fragments)
26+
- Include setup commands if new dependencies needed
27+
- Flag breaking changes or migration steps
28+
- Note performance implications for large-scale concerns
29+
30+
## Tech Preferences (when not specified)
31+
- **Package manager**: npm (or as per project)
32+
- **Styling**: Tailwind CSS + shadcn/ui (web), NativeWind (mobile)
33+
- **State**: Zustand (simple) / Redux Toolkit (complex) / Riverpod (Flutter)
34+
- **HTTP**: Axios / React Query (web), Dio / Riverpod (Flutter)
35+
- **ORM**: Prisma (Node.js), TypeORM (NestJS enterprise)
36+
- **Auth**: NextAuth.js (web), Passport.js + JWT (API)
37+
- **Testing**: Jest + Testing Library (web), Flutter test (mobile)
38+
- **Linting**: ESLint + Prettier
39+
40+
## Freelance Context
41+
- Always write production-quality code (not prototype quality)
42+
- Structure code for handoff: clear README, env.example, setup docs
43+
- Prefer established patterns over clever solutions
44+
- Comment complex business logic
45+
46+
## File Organization
47+
- Group by feature, not by type
48+
- Co-locate tests with source files
49+
- Keep components < 200 lines; extract if larger
50+
- Use barrel exports (index.ts) in feature folders

0 commit comments

Comments
 (0)