view --main gremlin-skill-dlya-platformy-onlayn-kursov.md
Gremlin: скилл для платформы онлайн-курсов
SKILL.md
description_ar.txt
description_cn.txt
description_de.txt
description_en.txt
description_es.txt
description_fr.txt
description_it.txt
description_ja.txt
description_ko.txt
description_ru.txt
description_tw.txt
stats.json
readonly
--- lines
---
name: gremlin
displayName: Gremlin Course Platform
description: Work on gremlin — the Convex-powered next-gen course platform. Use when any task mentions gremlin, gremlincms, wizardshit, course platform, badass-courses, or working on the gremlin monorepo. Loads project context, points to config files, ADRs, and related skills.
version: 0.1.0
author: joel
tags:
- gremlin
- course-platform
- convex
- tanstack
- nextjs
---
# Gremlin — Course Platform
Gremlin is the next-gen course platform built on Convex, with a provider/adapter pattern supporting multiple frameworks. Namespace: `@gremlincms`.
Accounting and payouts are being developed in `skillrecordings/payout` as a reusable financial core that is a piece of Gremlin’s future platform architecture.
## When to Use
Triggers: `gremlin`, `gremlincms`, `wizardshit`, `course platform`, `badass-courses`, `work on gremlin`, `gremlin repo`, or any task involving the gremlin monorepo.
## Key Paths
| What | Path |
|------|------|
| **Repo root** | `/Users/joel/Code/badass-courses/gremlin` |
| **AGENTS.md** | `/Users/joel/Code/badass-courses/gremlin/AGENTS.md` |
| **ADRs** | `/Users/joel/Code/badass-courses/gremlin/docs/adr/` |
| **ADR index** | `/Users/joel/Code/badass-courses/gremlin/docs/adr/README.md` |
| **GitHub** | `github.com/badass-courses/gremlin` |
### Apps
| App | Path | Framework | Domain |
|-----|------|-----------|--------|
| **wizardshit-ai** | `apps/wizardshit-ai` | Next.js 16 | wizardshit.ai |
| **gremlin-cms** | `apps/gremlin-cms` | TanStack Start | gremlincms.com |
### Packages
| Package | Path | Purpose |
|---------|------|---------|
| `@gremlincms/core` | `packages/core` | Router, schemas, types |
| `@gremlincms/db` | `packages/db` | ContentResourceAdapter interface |
### Planned packages (from ADRs, not yet created)
- `@gremlincms/convex-adapter` → `packages/convex-adapter/`
- `@gremlincms/drizzle-adapter` → `packages/drizzle-adapter/`
- `@gremlincms/next` → `packages/next/`
- `@gremlincms/tanstack` → `packages/tanstack/`
## Architecture Decisions
Read these before making structural changes:
- **ADR-010**: Convex-first provider/adapter pattern — Convex is primary DB, adapters are separate packages
- **ADR-011**: Multi-framework frontend support — Next.js + TanStack Start priority, framework-agnostic core
- **ADR-012**: Reference site architecture — wizardshit-ai (Next.js 16) + gremlin-cms (TanStack Start)
Legacy ADRs (001–009) cover auth, router, content model, tooling, monorepo structure, testing, CI/CD.
## Vercel Deploys
Both sites deploy via **git push** to `main` on `badass-courses/gremlin`. No CLI deploys needed.
- Vercel org: `skillrecordings` (team `team_QwoK7Pe6T0HIuFjig2Pm4qH8`)
- wizardshit-ai: root dir `apps/wizardshit-ai`
- gremlin-cms: root dir `apps/gremlin-cms`
## Related Skills
Load these when working on specific areas:
- **tanstack-start**: TanStack Start patterns, server functions, deployment quirks
- **next-best-practices**: Next.js App Router conventions
- **nextjs-static-shells**: Static-first rendering with dynamic slots
- **next-cache-components**: `'use cache'`, `cacheLife`, `cacheTag`
- **convex**: Convex development patterns (umbrella)
- **convex-schema-validator**: Schema design with Convex
- **favicon**: Emoji favicon generation with emojico
- **frontend-design**: UI/design quality standards
- **skillrecordings-payout**: financial core + payout rules used as Gremlin/platform accounting substrate
## SEO Standards
All gremlin sites follow these SEO practices:
- **Static-first content** — no client-side data fetching for content
- **Full JSON-LD** — `WebSite` schema at minimum, `Course`/`Organization` per page type
- **Dynamic OG images** — `/og` (Next.js) or `/og-image` (TanStack Start) endpoints
- **Canonical URLs**, robots directives, Twitter cards, Open Graph tags
- **Semantic HTML** — proper heading hierarchy, lang attribute, structured content
## Rules
1. **Always read `AGENTS.md`** at `/Users/joel/Code/badass-courses/gremlin/AGENTS.md` before making changes — it has project-specific constraints.
2. **Use pnpm** — never edit `package.json` by hand for deps. Use `pnpm add`.
3. **Namespace is `@gremlincms`** — not `@badass` (legacy packages still use `@badass`, rename deferred).
4. **Adapter packages are separate** — never co-locate Convex and Drizzle adapters.
5. **Check ADRs before structural changes** — if there's no ADR, write one first.
6. **No CLI deploys** — push to git, let Vercel auto-deploy.
7. **TanStack Start needs `nitro()` plugin** — without it, Vercel deploys 404. Already configured in `vite.config.ts`.
## Quick Start
```bash
cd /Users/joel/Code/badass-courses/gremlin
# Install deps
pnpm install
# Dev (both apps)
pnpm dev
# Dev (single app)
pnpm --filter @wizardshit/web dev
pnpm --filter @gremlin/gremlin-cms dev
# Test
pnpm test
# Build
pnpm build
```
Инициализация мануала...
//
$ ls -R related_skills/
package.json
$ install --global
skills.sh
npx skills add https://github.com/NeverSight/learn-skills.dev/tree/main/data/skills-md/joelhooks/joelclaw/gremlin
$ download --local
man
[HINT] Скачивает всю директорию скилла с GitHub: SKILL.md и все связанные файлы