claude-code-arcane 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/agents/engineering/e2e-tester.md +65 -0
  3. package/agents/engineering/nestjs-engineer.md +74 -0
  4. package/agents/engineering/nextjs-engineer.md +72 -0
  5. package/agents/engineering/nextjs-reviewer.md +40 -0
  6. package/dist/cli.js +105 -6
  7. package/docs/trusted-publishing-setup.md +163 -0
  8. package/package.json +1 -1
  9. package/profiles/backend-nestjs.yaml +58 -0
  10. package/profiles/backend-nextjs.yaml +56 -0
  11. package/rules/nestjs-code.md +73 -0
  12. package/rules/nextjs-code.md +60 -0
  13. package/rules/react-perf.md +59 -0
  14. package/skills/ai-sdk-setup/SKILL.md +82 -0
  15. package/skills/nestjs-best-practices/SKILL.md +70 -0
  16. package/skills/nestjs-best-practices/references/api-design.md +34 -0
  17. package/skills/nestjs-best-practices/references/architecture.md +53 -0
  18. package/skills/nestjs-best-practices/references/database.md +37 -0
  19. package/skills/nestjs-best-practices/references/dependency-injection.md +45 -0
  20. package/skills/nestjs-best-practices/references/error-handling.md +43 -0
  21. package/skills/nestjs-best-practices/references/microservices-devops.md +41 -0
  22. package/skills/nestjs-best-practices/references/performance.md +32 -0
  23. package/skills/nestjs-best-practices/references/security.md +50 -0
  24. package/skills/nestjs-best-practices/references/testing.md +32 -0
  25. package/skills/nestjs-scaffold/SKILL.md +75 -0
  26. package/skills/nextjs-best-practices/SKILL.md +64 -0
  27. package/skills/nextjs-best-practices/references/advanced.md +21 -0
  28. package/skills/nextjs-best-practices/references/bundle-size.md +32 -0
  29. package/skills/nextjs-best-practices/references/client-fetching.md +20 -0
  30. package/skills/nextjs-best-practices/references/javascript.md +47 -0
  31. package/skills/nextjs-best-practices/references/rendering.md +46 -0
  32. package/skills/nextjs-best-practices/references/rerender.md +55 -0
  33. package/skills/nextjs-best-practices/references/server.md +47 -0
  34. package/skills/nextjs-best-practices/references/waterfalls.md +41 -0
  35. package/skills/nextjs-scaffold/SKILL.md +76 -0
  36. package/skills/pgvector-search/SKILL.md +67 -0
  37. package/skills/seo-nextjs/SKILL.md +81 -0
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: pgvector-search
3
+ description: "Búsqueda semántica con Postgres + pgvector: embeddings, schema con columna vector, índices HNSW/IVFFlat, queries de similitud y RAG. Usar para implementar semantic search o retrieval sobre Postgres."
4
+ category: "backend"
5
+ argument-hint: "[setup|index|query|rag]"
6
+ user-invocable: true
7
+ allowed-tools: Read, Glob, Grep, Bash, Write, Edit, Task
8
+ ---
9
+ # pgvector-search — Búsqueda semántica con Postgres
10
+
11
+ ## MANDATORY WORKFLOW
12
+
13
+ **Antes de generar o modificar código/schema, completar estos pasos en orden.**
14
+
15
+ ### Step 0: Gather Requirements
16
+ 1. **Modelo de embeddings** y dimensión (ej: OpenAI `text-embedding-3-small` = 1536; Cohere = 1024)
17
+ 2. **Volumen** de vectores (define el índice: HNSW para alta recall, IVFFlat para datasets grandes/escritura frecuente)
18
+ 3. **Métrica de distancia:** cosine (`<=>`, default para texto) / L2 (`<->`) / inner product (`<#>`)
19
+ 4. ¿Es para RAG (retrieval + LLM) o solo ranking de similitud?
20
+
21
+ ### Step 1: Habilitar extensión + schema
22
+ ```sql
23
+ CREATE EXTENSION IF NOT EXISTS vector;
24
+ CREATE TABLE documents (
25
+ id bigserial PRIMARY KEY,
26
+ content text NOT NULL,
27
+ embedding vector(1536) NOT NULL,
28
+ metadata jsonb
29
+ );
30
+ ```
31
+
32
+ ### Step 2: Índice
33
+ ```sql
34
+ -- HNSW: mejor recall/latencia, recomendado por defecto
35
+ CREATE INDEX ON documents USING hnsw (embedding vector_cosine_ops);
36
+ -- IVFFlat (alternativa para datasets muy grandes): definir lists ≈ rows/1000
37
+ ```
38
+
39
+ ### Step 3: Insertar embeddings
40
+ Generar el embedding del `content` con el modelo y guardarlo. (Si usás Next + AI SDK, ver skill `ai-sdk-setup`.)
41
+ ```ts
42
+ const { embedding } = await embed({ model, value: content });
43
+ await sql`INSERT INTO documents (content, embedding) VALUES (${content}, ${JSON.stringify(embedding)})`;
44
+ ```
45
+
46
+ ### Step 4: Query de similitud
47
+ ```sql
48
+ SELECT content, 1 - (embedding <=> $1) AS similarity
49
+ FROM documents
50
+ ORDER BY embedding <=> $1 -- usa el índice
51
+ LIMIT 5;
52
+ ```
53
+
54
+ ### Step 5: Buenas prácticas
55
+ - **Chunking** del contenido antes de embeddear (no documentos enteros)
56
+ - Filtrar por `metadata` (jsonb) + similitud para hybrid search
57
+ - `SET hnsw.ef_search` para tunear recall vs latencia
58
+ - Re-embeddear si cambia el modelo (la dimensión debe matchear)
59
+ - No mezclar embeddings de modelos distintos en la misma columna
60
+
61
+ ## Cierre
62
+
63
+ Verificar que el índice se usa (`EXPLAIN ANALYZE` debe mostrar Index Scan, no Seq Scan) y medir recall/latencia con queries reales. Schema + índice + query validados → setup **READY**. Confirmar cambios de schema con el usuario antes de aplicarlos. Siguiente paso: skill `ai-sdk-setup` para generar embeddings, o `database-indexing` para tuning.
64
+
65
+ ---
66
+
67
+ _Inspirado en `postgres-semantic-search` de [laguagu/claude-code-nextjs-skills](https://github.com/laguagu/claude-code-nextjs-skills). Adaptado al formato Arcane. Relacionado: skill `database-indexing`._
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: seo-nextjs
3
+ description: "SEO técnico para Next.js App Router: Metadata API, generateMetadata dinámico, sitemap.ts, robots.ts, JSON-LD structured data, Open Graph y canonical. Usar al agregar o auditar SEO en una app Next."
4
+ category: "frontend"
5
+ argument-hint: "[metadata|sitemap|jsonld|audit]"
6
+ user-invocable: true
7
+ allowed-tools: Read, Glob, Grep, Bash, Write, Edit, Task
8
+ ---
9
+ # seo-nextjs — SEO técnico para Next.js
10
+
11
+ ## MANDATORY WORKFLOW
12
+
13
+ **Antes de generar o modificar código, completar estos pasos en orden.**
14
+
15
+ ### Step 0: Determinar scope
16
+ 1. ¿App nueva o auditoría de SEO existente?
17
+ 2. ¿Contenido estático, dinámico (DB/CMS) o mixto?
18
+ 3. ¿Necesita structured data (JSON-LD) para rich results? (artículos, productos, FAQ, breadcrumbs)
19
+
20
+ ### Step 1: Metadata base (`app/layout.tsx`)
21
+ ```ts
22
+ export const metadata: Metadata = {
23
+ metadataBase: new URL('https://example.com'),
24
+ title: { default: 'Site', template: '%s · Site' },
25
+ description: '...',
26
+ openGraph: { type: 'website', siteName: 'Site', images: ['/og.png'] },
27
+ twitter: { card: 'summary_large_image' },
28
+ alternates: { canonical: '/' },
29
+ };
30
+ ```
31
+
32
+ ### Step 2: Metadata dinámica (`generateMetadata`)
33
+ ```ts
34
+ export async function generateMetadata({ params }): Promise<Metadata> {
35
+ const post = await getPost(params.slug);
36
+ return {
37
+ title: post.title,
38
+ description: post.excerpt,
39
+ alternates: { canonical: `/blog/${post.slug}` },
40
+ openGraph: { images: [post.cover] },
41
+ };
42
+ }
43
+ ```
44
+ Nunca tags `<meta>` manuales en el body — siempre la Metadata API.
45
+
46
+ ### Step 3: sitemap.ts y robots.ts
47
+ ```ts
48
+ // app/sitemap.ts
49
+ export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
50
+ const posts = await getAllPosts();
51
+ return [{ url: 'https://example.com', changeFrequency: 'daily' },
52
+ ...posts.map(p => ({ url: `https://example.com/blog/${p.slug}`, lastModified: p.updatedAt }))];
53
+ }
54
+ // app/robots.ts → reglas + link al sitemap
55
+ ```
56
+
57
+ ### Step 4: JSON-LD structured data
58
+ ```tsx
59
+ <script type="application/ld+json"
60
+ dangerouslySetInnerHTML={{ __html: JSON.stringify({
61
+ '@context': 'https://schema.org', '@type': 'Article',
62
+ headline: post.title, datePublished: post.date, author: {...} }) }} />
63
+ ```
64
+ Validar con Rich Results Test de Google.
65
+
66
+ ### Step 5: Checklist
67
+ - [ ] `metadataBase` seteado (evita URLs OG rotas)
68
+ - [ ] Canonical en cada page indexable
69
+ - [ ] OG image 1200×630 por page importante
70
+ - [ ] sitemap.ts + robots.ts presentes
71
+ - [ ] JSON-LD donde aplique rich result
72
+ - [ ] Sin `noindex` accidental en prod
73
+ - [ ] LCP/CLS sanos (ver skill `nextjs-best-practices`)
74
+
75
+ ## Cierre
76
+
77
+ Validar el structured data con el Rich Results Test de Google y los meta tags con el inspector del navegador. Si el checklist pasa → SEO **READY**. Confirmar cambios con el usuario antes de escribir. Siguiente paso: skill `nextjs-best-practices` para Web Vitals, o `ai-seo` para estrategia de contenido.
78
+
79
+ ---
80
+
81
+ _Inspirado en las skills de SEO de [laguagu/claude-code-nextjs-skills](https://github.com/laguagu/claude-code-nextjs-skills). Adaptado al formato Arcane. Relacionado: skill `ai-seo`._