Initial release v1.0.0

Open-source marketplace for AI Agent skills.

Features:
- Next.js 15 web app with i18n (en/fa)
- CLI tool for skill installation (npx skillhub)
- GitHub crawler/indexer with multi-strategy discovery
- Security scanning for all indexed skills
- Self-hostable with Docker

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
airano
2026-02-12 06:08:51 +03:30
commit 97b427831a
227 changed files with 48411 additions and 0 deletions

281
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,281 @@
# Contributing to SkillHub
Thank you for your interest in contributing to SkillHub! This document provides guidelines and instructions for contributing.
---
## Table of Contents
- [Code of Conduct](#code-of-conduct)
- [How Can I Contribute?](#how-can-i-contribute)
- [Development Setup](#development-setup)
- [Pull Request Process](#pull-request-process)
- [Coding Standards](#coding-standards)
- [Commit Messages](#commit-messages)
---
## Code of Conduct
This project follows the [Contributor Covenant](https://www.contributor-covenant.org/version/2/1/code_of_conduct/). Please be respectful and constructive in all interactions.
---
## How Can I Contribute?
### Report Bugs
Found a bug? Please open an issue with:
1. **Clear title** describing the problem
2. **Steps to reproduce** the issue
3. **Expected behavior** vs actual behavior
4. **Environment details** (OS, Node version, browser)
5. **Screenshots** if applicable
### Suggest Features
Have an idea? Open an issue with:
1. **Use case** - What problem does it solve?
2. **Proposed solution** - How should it work?
3. **Alternatives considered** - What else did you think about?
### Submit Skills
Want to add your skill to SkillHub?
1. Ensure your repository has a valid `SKILL.md` file
2. Go to [skills.palebluedot.live/claim](https://skills.palebluedot.live/claim)
3. Sign in with GitHub
4. Submit your repository URL
### Code Contributions
We welcome code contributions for:
- Bug fixes
- New features
- Performance improvements
- Documentation updates
- Test coverage
- Translations (i18n)
---
## Development Setup
### Prerequisites
- Node.js 18+
- pnpm 9+
- Docker (for database and services)
- Git
### Setup Steps
```bash
# Clone the repository
git clone https://github.com/airano-ir/skillhub.git
cd skillhub
# Install dependencies
pnpm install
# Copy environment file
cp .env.example .env
# Start infrastructure (database, redis, meilisearch)
docker compose up -d db redis meilisearch
# Run database migrations
pnpm db:push
# Seed sample data (optional)
docker exec -i skillhub-db psql -U postgres -d skillhub < scripts/seed-data.sql
# Start development servers
pnpm dev
```
### Project Scripts
```bash
pnpm dev # Start all apps in dev mode
pnpm build # Build all packages
pnpm test # Run all tests
pnpm lint # Lint all packages
pnpm typecheck # TypeScript type checking
```
### Package-Specific Commands
```bash
# Web app
pnpm --filter @skillhub/web dev
pnpm --filter @skillhub/web build
# CLI
pnpm --filter skillhub dev
pnpm --filter skillhub build
# Core library
pnpm --filter skillhub-core test
# Database
pnpm --filter @skillhub/db studio # Open Drizzle Studio
```
---
## Pull Request Process
### Before Submitting
1. **Create an issue first** - Discuss your change before implementing
2. **Fork the repository** - Work on your own fork
3. **Create a feature branch** - `git checkout -b feature/your-feature`
4. **Write tests** - Add tests for new functionality
5. **Run tests locally** - `pnpm test`
6. **Lint your code** - `pnpm lint`
### PR Guidelines
1. **Title format:** `type(scope): description`
- Types: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`
- Example: `feat(cli): add update --all command`
2. **Description should include:**
- What changes were made
- Why the changes were needed
- How to test the changes
- Screenshots (for UI changes)
3. **Keep PRs focused** - One feature/fix per PR
4. **Update documentation** - If your change affects user-facing features
### Review Process
1. Maintainers will review within 3-5 business days
2. Address feedback promptly
3. Once approved, a maintainer will merge
---
## Coding Standards
### TypeScript
- Use TypeScript for all new code
- Enable strict mode
- Avoid `any` type - use `unknown` or proper types
- Use interfaces over types when possible
```typescript
// Good
interface SkillMetadata {
name: string;
description: string;
version?: string;
}
// Avoid
const skill: any = fetchSkill();
```
### React/Next.js
- Use functional components with hooks
- Prefer server components where possible
- Use `next-intl` for translations
- Follow Next.js 15 patterns (async params, etc.)
```typescript
// Good - Next.js 15 pattern
export default async function Page({ params }: { params: Promise<{ id: string }> }) {
const { id } = await params;
// ...
}
```
### Styling
- Use Tailwind CSS
- Follow design token system (`bg-surface`, `text-text-primary`)
- Avoid hardcoded colors
- Support dark mode
```tsx
// Good
<div className="bg-surface text-text-primary">
// Avoid
<div className="bg-white text-gray-900">
```
### Testing
- Write unit tests for utilities and functions
- Write integration tests for API routes
- Use Vitest for unit tests
- Use Playwright for E2E tests
```typescript
// Example test
import { describe, it, expect } from 'vitest';
describe('parseSkillMd', () => {
it('should parse valid SKILL.md', () => {
const result = parseSkillMd(validInput);
expect(result.name).toBe('expected-name');
});
});
```
---
## Commit Messages
Follow [Conventional Commits](https://www.conventionalcommits.org/):
```
type(scope): description
[optional body]
[optional footer]
```
### Types
| Type | Description |
|------|-------------|
| `feat` | New feature |
| `fix` | Bug fix |
| `docs` | Documentation |
| `style` | Formatting (no code change) |
| `refactor` | Code restructuring |
| `test` | Adding tests |
| `chore` | Maintenance |
### Examples
```bash
feat(cli): add search command with category filter
fix(web): resolve RTL layout issues on skill page
docs: update README with new installation steps
test(core): add tests for SKILL.md parser
```
---
## Questions?
- **GitHub Discussions:** For general questions
- **GitHub Issues:** For bugs and feature requests
- **Discord:** Coming soon
---
Thank you for contributing to SkillHub!