claude-code-arcane 2.2.0 → 2.3.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 (47) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +56 -55
  3. package/agents/career/career-strategist.md +88 -0
  4. package/agents/career/cv-reviewer.md +81 -0
  5. package/agents/career/hiring-manager.md +68 -0
  6. package/agents/career/mock-interviewer.md +76 -0
  7. package/agents/freelance/client-screener.md +84 -0
  8. package/agents/freelance/discovery-call.md +65 -0
  9. package/agents/freelance/pipeline-strategist.md +99 -0
  10. package/agents/freelance/proposal-reviewer.md +82 -0
  11. package/dist/cli.js +52 -13
  12. package/docs/RELEASE-SETUP.md +1 -1
  13. package/docs/SKILLS-CATALOG.md +27 -3
  14. package/docs/USER-GUIDE.md +77 -72
  15. package/docs/agent-hierarchy.md +21 -1
  16. package/docs/presentations/build_arcane_deck.py +2 -2
  17. package/docs/presentations/build_arcane_deck_12.py +2 -2
  18. package/package.json +2 -2
  19. package/profiles/freelance.yaml +43 -0
  20. package/profiles/job-hunt.yaml +5 -2
  21. package/rules/drafter-reviewer.md +16 -3
  22. package/rules/freelance-guardrails.md +53 -0
  23. package/skills/career-registry/SKILL.md +95 -0
  24. package/skills/career-registry/scripts/career_registry.py +488 -0
  25. package/skills/client-screen/SKILL.md +83 -0
  26. package/skills/client-screen/references/red-flags.md +95 -0
  27. package/skills/cover-letter/SKILL.md +4 -3
  28. package/skills/cv-tailor/SKILL.md +11 -2
  29. package/skills/freelance-deliver/SKILL.md +90 -0
  30. package/skills/freelance-hunt/SKILL.md +126 -0
  31. package/skills/freelance-hunt/references/templates/Connects.md +39 -0
  32. package/skills/freelance-hunt/references/templates/Contrato.md +60 -0
  33. package/skills/freelance-hunt/references/templates/Propuesta.md +66 -0
  34. package/skills/freelance-kickoff/SKILL.md +94 -0
  35. package/skills/freelance-pipeline/SKILL.md +109 -0
  36. package/skills/freelance-pipeline/scripts/import_history.py +425 -0
  37. package/skills/freelance-profile/SKILL.md +93 -0
  38. package/skills/freelance-proposal/SKILL.md +112 -0
  39. package/skills/freelance-scan/SKILL.md +196 -0
  40. package/skills/freelance-scan/references/dedup.md +35 -0
  41. package/skills/freelance-scan/references/platforms.md +167 -0
  42. package/skills/freelance-scan/scripts/freelance_search.py +1077 -0
  43. package/skills/interview-prep/SKILL.md +11 -3
  44. package/skills/job-aplicar/SKILL.md +5 -1
  45. package/skills/job-hunt/SKILL.md +17 -0
  46. package/skills/job-outcome/SKILL.md +15 -1
  47. package/skills/job-upskill/SKILL.md +10 -2
package/CHANGELOG.md CHANGED
@@ -1,3 +1,25 @@
1
+ # [2.3.0](https://github.com/SebastianLuser/claude-code-arcane/compare/v2.2.0...v2.3.0) (2026-08-12)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **cli:** stop update and remove from reporting work they never did ([4473090](https://github.com/SebastianLuser/claude-code-arcane/commit/44730906cd0f62e349841bc728a09105498d9825))
7
+ * **docs:** name the published package in every install instruction ([2cc21ec](https://github.com/SebastianLuser/claude-code-arcane/commit/2cc21ecbc0bb949715857d6594426f47fd17be72))
8
+ * **freelance-kickoff:** repair a word split in the acceptance criteria step ([cd5140d](https://github.com/SebastianLuser/claude-code-arcane/commit/cd5140d3d23809d69b14cb1916b2c6b58f8074d5))
9
+ * **freelance-scan:** filter by relevance, GetOnBrd search only ranks ([8f2a088](https://github.com/SebastianLuser/claude-code-arcane/commit/8f2a0887d134f15e0490e106a8248f741a6d5c84))
10
+ * **freelance-scan:** split search terms on commas, not only spaces ([03eaf18](https://github.com/SebastianLuser/claude-code-arcane/commit/03eaf18b9de6d876f9a41c11c940a9df0d9c8d69))
11
+ * **freelance:** source projects from public keyless APIs, not a per-user key ([6cb1c73](https://github.com/SebastianLuser/claude-code-arcane/commit/6cb1c738a55f0ca83501fd38421746d750ff02e4))
12
+
13
+
14
+ ### Features
15
+
16
+ * **career:** add /career-registry for traceability across job hunt and freelance ([0dfe091](https://github.com/SebastianLuser/claude-code-arcane/commit/0dfe0914be20c14c8f04ebb482c4ce75e305e873))
17
+ * **freelance-scan:** expand category searches into the words clients write ([6ef3a93](https://github.com/SebastianLuser/claude-code-arcane/commit/6ef3a932d9345e6cbb0d48fe9b81421d6f368c3f))
18
+ * **freelance-scan:** reach the marketplaces through WebSearch, and open the door for API keys ([84a46f3](https://github.com/SebastianLuser/claude-code-arcane/commit/84a46f33b1828387ef2c125d15087835335dbfce))
19
+ * **freelance:** add +freelance profile for Upwork project hunting ([6612336](https://github.com/SebastianLuser/claude-code-arcane/commit/66123369545fcba3853a855eb9ff500c6b462e5e))
20
+ * **freelance:** close the loop from won contract to delivered work ([01dd077](https://github.com/SebastianLuser/claude-code-arcane/commit/01dd0774aed710b4f339dab6f58de97d647d9f87))
21
+ * **job-hunt:** add 4 fresh-context career agents ([97ecfa8](https://github.com/SebastianLuser/claude-code-arcane/commit/97ecfa8139158c5cf159615381d74d0973b81211))
22
+
1
23
  # [2.2.0](https://github.com/SebastianLuser/claude-code-arcane/compare/v2.1.0...v2.2.0) (2026-08-08)
2
24
 
3
25
 
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Claude Code Arcane
2
2
 
3
- > **388 skills, 98 agents, 16 hooks and 26 rules for Claude Code — selective deploy by profile.**
3
+ > **397 skills, 106 agents, 16 hooks and 27 rules for Claude Code — selective deploy by profile.**
4
4
 
5
5
  A configuration harness installable via `npx`. Pick a **profile** that matches your stack and only the relevant tools get installed into your project's `.claude/` directory.
6
6
 
@@ -13,7 +13,7 @@ A configuration harness installable via `npx`. Pick a **profile** that matches y
13
13
  cd ~/projects/my-app
14
14
 
15
15
  # Install a profile (no clone needed)
16
- npx arcane install backend-ts+agile
16
+ npx claude-code-arcane install backend-ts+agile
17
17
 
18
18
  # Open Claude Code
19
19
  claude
@@ -44,7 +44,7 @@ permissions:
44
44
  ### 2. Combine profiles with `+`
45
45
 
46
46
  ```bash
47
- npx arcane install backend-ts+agile+testing
47
+ npx claude-code-arcane install backend-ts+agile+testing
48
48
  # ^^^^^^^^^^ ^^^^^ ^^^^^^^
49
49
  # base addon addon
50
50
  ```
@@ -82,27 +82,27 @@ my-project/.claude/
82
82
  ### Install a profile
83
83
 
84
84
  ```bash
85
- npx arcane install backend-ts+agile # Install profile combination
86
- npx arcane install # Show available profiles (interactive)
87
- npx arcane install unity-dev --dry-run # Preview without installing
85
+ npx claude-code-arcane install backend-ts+agile # Install profile combination
86
+ npx claude-code-arcane install # Show available profiles (interactive)
87
+ npx claude-code-arcane install unity-dev --dry-run # Preview without installing
88
88
  ```
89
89
 
90
90
  ### Add skills or profiles to an existing installation
91
91
 
92
92
  ```bash
93
- npx arcane add api-design # Add a single skill
94
- npx arcane add security-audit owasp # Add multiple skills
95
- npx arcane add +security # Add an entire profile as addon
96
- npx arcane add +database +testing # Add multiple profiles
93
+ npx claude-code-arcane add api-design # Add a single skill
94
+ npx claude-code-arcane add security-audit owasp # Add multiple skills
95
+ npx claude-code-arcane add +security # Add an entire profile as addon
96
+ npx claude-code-arcane add +database +testing # Add multiple profiles
97
97
  ```
98
98
 
99
99
  ### Remove skills, profiles, or agents
100
100
 
101
101
  ```bash
102
- npx arcane remove api-design # Remove a single skill
103
- npx arcane remove slack postman # Remove multiple skills
104
- npx arcane remove +agile # Remove entire profile (skills + agents + rules)
105
- npx arcane remove +testing api-design # Mix: remove a profile and a skill
102
+ npx claude-code-arcane remove api-design # Remove a single skill
103
+ npx claude-code-arcane remove slack postman # Remove multiple skills
104
+ npx claude-code-arcane remove +agile # Remove entire profile (skills + agents + rules)
105
+ npx claude-code-arcane remove +testing api-design # Mix: remove a profile and a skill
106
106
  ```
107
107
 
108
108
  When removing a profile, Arcane only deletes assets **exclusive** to that profile. Skills, agents, and rules shared with other active profiles are preserved.
@@ -112,9 +112,9 @@ Core skills (21) and the core profile cannot be removed.
112
112
  ### Global hooks (worktree-isolation auto-apply)
113
113
 
114
114
  ```bash
115
- npx arcane global # Install global SessionStart hook
116
- npx arcane global --status # Show global hooks status
117
- npx arcane global --remove # Remove global hooks
115
+ npx claude-code-arcane global # Install global SessionStart hook
116
+ npx claude-code-arcane global --status # Show global hooks status
117
+ npx claude-code-arcane global --remove # Remove global hooks
118
118
  ```
119
119
 
120
120
  Installs worktree-isolation scripts into `~/.claude/scripts/` and adds a `SessionStart` hook to `~/.claude/settings.json` that auto-applies isolation on every new Claude Code session.
@@ -122,10 +122,10 @@ Installs worktree-isolation scripts into `~/.claude/scripts/` and adds a `Sessio
122
122
  ### Other commands
123
123
 
124
124
  ```bash
125
- npx arcane list # List all profiles and skills
126
- npx arcane status # Show current installation
127
- npx arcane update # Check for updates
128
- npx arcane clean --force # Remove Arcane entirely from project
125
+ npx claude-code-arcane list # List all profiles and skills
126
+ npx claude-code-arcane status # Show current installation
127
+ npx claude-code-arcane update # Check for updates
128
+ npx claude-code-arcane clean --force # Remove Arcane entirely from project
129
129
  ```
130
130
 
131
131
  ---
@@ -193,7 +193,8 @@ Once installed, manage the installation from within a Claude Code session:
193
193
  | `+finance` | Investment analysis, financial modeling, SaaS metrics | 3 | business |
194
194
  | `+marketing` | Content, growth, SEO/CRO, strategy, analytics | 44 | marketing |
195
195
  | `+regulatory` | ISO 13485, GDPR, FDA, SOC 2, ISMS, QMS, MDR | 13 | regulatory |
196
- | `+job-hunt` | Job search end-to-end — master profile, ATS CV with verification, job scraping with dedup, LinkedIn, portfolio, cover letters, outreach, interview prep | 16 | — |
196
+ | `+job-hunt` | Job search end-to-end — master profile, ATS CV with verification, job scraping with dedup, LinkedIn, portfolio, cover letters, outreach, interview prep, registry/CSV traceability, fresh-context review agents | 17 | career |
197
+ | `+freelance` | Freelance projects — keyless public-source scanning with dedup, market rate intel, client risk screening, proposals priced above your net floor rate, contracts/SOWs, registry/CSV traceability, kickoff scope validation, delivery and change orders, acquisition-cost pipeline | 15 | freelance |
197
198
  | `+ecommerce` | Commerce end-to-end agnóstico de lenguaje — data model, checkout, inventario, órdenes, pagos, promociones, shipping/tax, listings, analytics, feeds, storefront, suscripciones | 12 | ecommerce |
198
199
  | `+second-brain` | Second brain en Obsidian — captura sin fricción, reviews diario/semanal/mensual, notas atómicas y hub files (PARA + Zettelkasten), búsqueda con ranking, caché de contexto entre sesiones, auditoría de salud del vault, sintaxis nativa (markdown, Bases, Canvas) | 14 | — |
199
200
  | `+self-improving` | Agent self-improvement and skill extraction | 2 | — |
@@ -209,37 +210,37 @@ Once installed, manage the installation from within a Claude Code session:
209
210
 
210
211
  ```bash
211
212
  # Unity dev only
212
- npx arcane install unity-dev
213
+ npx claude-code-arcane install unity-dev
213
214
 
214
215
  # Unity with team and management
215
- npx arcane install unity-dev+unity-design+agile+clickup
216
+ npx claude-code-arcane install unity-dev+unity-design+agile+clickup
216
217
 
217
218
  # Go microservice with infra
218
- npx arcane install backend-go+infra+agile+jira
219
+ npx claude-code-arcane install backend-go+infra+agile+jira
219
220
 
220
221
  # Full-stack monorepo
221
- npx arcane install backend-ts+frontend+testing+database
222
+ npx claude-code-arcane install backend-ts+frontend+testing+database
222
223
 
223
224
  # Mobile app with CI/CD
224
- npx arcane install mobile+agile+clickup+testing
225
+ npx claude-code-arcane install mobile+agile+clickup+testing
225
226
 
226
227
  # Secure backend with docs
227
- npx arcane install backend-ts+security+docs+database
228
+ npx claude-code-arcane install backend-ts+security+docs+database
228
229
 
229
230
  # AI/ML project with data pipelines
230
- npx arcane install backend-go+ai+infra
231
+ npx claude-code-arcane install backend-go+ai+infra
231
232
 
232
233
  # SaaS with full marketing stack
233
- npx arcane install backend-ts+marketing+business+finance
234
+ npx claude-code-arcane install backend-ts+marketing+business+finance
234
235
 
235
236
  # Regulated medical device
236
- npx arcane install backend-ts+regulatory+security+testing
237
+ npx claude-code-arcane install backend-ts+regulatory+security+testing
237
238
 
238
239
  # Founder advisory setup
239
- npx arcane install clevel+business+finance+marketing
240
+ npx claude-code-arcane install clevel+business+finance+marketing
240
241
 
241
242
  # With status bar
242
- npx arcane install backend-ts+agile+statusline
243
+ npx claude-code-arcane install backend-ts+agile+statusline
243
244
  ```
244
245
 
245
246
  ---
@@ -248,26 +249,26 @@ npx arcane install backend-ts+agile+statusline
248
249
 
249
250
  ```bash
250
251
  # Start with a base profile
251
- npx arcane install backend-ts
252
+ npx claude-code-arcane install backend-ts
252
253
 
253
254
  # Later, add testing and security
254
- npx arcane add +testing +security
255
+ npx claude-code-arcane add +testing +security
255
256
 
256
257
  # Add a specific skill you need
257
- npx arcane add docker-setup
258
+ npx claude-code-arcane add docker-setup
258
259
 
259
260
  # Realize you don't need testing anymore
260
- npx arcane remove +testing
261
+ npx claude-code-arcane remove +testing
261
262
 
262
263
  # Remove a specific skill
263
- npx arcane remove docker-setup
264
+ npx claude-code-arcane remove docker-setup
264
265
 
265
266
  # Check what you have now
266
- npx arcane status
267
+ npx claude-code-arcane status
267
268
 
268
269
  # Start over
269
- npx arcane clean --force
270
- npx arcane install backend-ts+agile
270
+ npx claude-code-arcane clean --force
271
+ npx claude-code-arcane install backend-ts+agile
271
272
  ```
272
273
 
273
274
  ---
@@ -280,24 +281,24 @@ Work on multiple features in parallel using git worktrees, each with its own Arc
280
281
 
281
282
  ```bash
282
283
  # Create worktree + install Arcane in one step
283
- npx arcane worktree feat/new-api --profile backend-ts+agile
284
+ npx claude-code-arcane worktree feat/new-api --profile backend-ts+agile
284
285
 
285
286
  # Inherits profile from current installation
286
- npx arcane worktree feat/new-api
287
+ npx claude-code-arcane worktree feat/new-api
287
288
 
288
289
  # With dependency install and Docker port isolation
289
- npx arcane worktree feat/new-api --install-deps --isolate
290
+ npx claude-code-arcane worktree feat/new-api --install-deps --isolate
290
291
 
291
292
  # Custom path and base branch
292
- npx arcane worktree feat/new-api --path ../my-api-worktree --base develop
293
+ npx claude-code-arcane worktree feat/new-api --path ../my-api-worktree --base develop
293
294
 
294
295
  # Preview without creating
295
- npx arcane worktree feat/new-api --dry-run
296
+ npx claude-code-arcane worktree feat/new-api --dry-run
296
297
  ```
297
298
 
298
299
  ### Worktree-aware installation
299
300
 
300
- When you run `npx arcane install` inside a git worktree, Arcane automatically:
301
+ When you run `npx claude-code-arcane install` inside a git worktree, Arcane automatically:
301
302
  - Detects it's in a worktree
302
303
  - Finds the main worktree's Arcane installation
303
304
  - **Shares** hooks/ and docs/ via symlink (read-only, identical across worktrees)
@@ -305,10 +306,10 @@ When you run `npx arcane install` inside a git worktree, Arcane automatically:
305
306
 
306
307
  ```bash
307
308
  # Manual: share from a specific installation
308
- npx arcane install backend-ts --share-from /path/to/main/worktree
309
+ npx claude-code-arcane install backend-ts --share-from /path/to/main/worktree
309
310
 
310
311
  # Disable sharing
311
- npx arcane worktree feat/api --no-share
312
+ npx claude-code-arcane worktree feat/api --no-share
312
313
  ```
313
314
 
314
315
  ### What gets shared vs independent
@@ -326,7 +327,7 @@ npx arcane worktree feat/api --no-share
326
327
  ### Status shows worktree info
327
328
 
328
329
  ```bash
329
- npx arcane status
330
+ npx claude-code-arcane status
330
331
  # === Arcane Status ===
331
332
  # Profiles: backend-ts + agile
332
333
  # Worktree: yes (main: /path/to/main/checkout)
@@ -350,11 +351,11 @@ claude-code-arcane/
350
351
  │ ├── manifest.ts # Read/write arcane-manifest.json
351
352
  │ ├── types.ts # TypeScript interfaces
352
353
  │ └── utils.ts # Cross-platform helpers
353
- ├── skills/ # 388 skills (flat, one dir per skill)
354
- ├── profiles/ # 36 profiles (YAML)
355
- ├── agents/ # 13 dirs, 86+ agents (Markdown)
356
- ├── hooks/ # 15 lifecycle hooks (Bash)
357
- ├── rules/ # 26 rules (Markdown)
354
+ ├── skills/ # 397 skills (flat, one dir per skill)
355
+ ├── profiles/ # 37 profiles (YAML)
356
+ ├── agents/ # 17 dirs, 106 agents (Markdown)
357
+ ├── hooks/ # 16 lifecycle hooks (Bash)
358
+ ├── rules/ # 27 rules (Markdown)
358
359
  ├── templates/ # Gamedev templates
359
360
  ├── docs/ # Documentation
360
361
  └── skills-selftest/ # QA framework
@@ -0,0 +1,88 @@
1
+ ---
2
+ name: career-strategist
3
+ description: "Diagnostica el embudo completo de la busqueda, no una postulacion: calcula tasas de conversion por etapa, ubica donde se pierde el candidato y propone UN cambio de estrategia (targeting, perfil, seniority o upskill). Exige volumen minimo antes de afirmar patrones. Read-only."
4
+ tools: Read, Glob, Grep, WebSearch
5
+ model: opus
6
+ maxTurns: 20
7
+ memory: user
8
+ disallowedTools: Bash, Write, Edit
9
+ skills: [job-outcome, job-upskill, job-search, master-profile]
10
+ ---
11
+
12
+ Sos el **Career Strategist**. Mirás la búsqueda entera, no una oferta. Tu unidad de análisis es el **embudo**: 30 postulaciones y sus resultados, no el CV de mañana.
13
+
14
+ Sos read-only. Diagnosticás y recomendás; los cambios los aplica la main session con los skills correspondientes.
15
+
16
+ ## Por qué existís
17
+
18
+ Los demás skills del perfil optimizan la próxima aplicación. Ninguno contesta la pregunta que importa después de 20 rechazos: **¿por qué siempre me frenan en la misma etapa?**
19
+
20
+ `/job-outcome` registra datos y tiene prohibido interpretarlos. La interpretación es tuya.
21
+
22
+ ## Qué leés
23
+
24
+ Del career workspace:
25
+
26
+ - `03-Aplicaciones/` - todas las notas: frontmatter (`estado`, `empresa`, `match_score` o `score`, fechas) y las secciones `## Timeline / seguimiento`, `## Entrevistas` y `## Notas` (ahí está el feedback textual recibido).
27
+ - `00-Dashboard.md` - para cruzar y detectar notas que quedaron fuera de sincronía.
28
+ - `01-Perfiles/` - el perfil maestro y los derivados, para juzgar si el problema es el material o su presentación.
29
+ - `06-Entrevistas/` - patrones de qué preguntas se repiten y en cuáles se cae.
30
+
31
+ Research web solo para calibrar mercado: bandas salariales, qué se pide hoy para ese seniority, si el rol que busca existe en su región/modalidad.
32
+
33
+ ## El guard de volumen (obligatorio, primero)
34
+
35
+ Antes de afirmar cualquier patrón, contá.
36
+
37
+ - **Menos de 10 aplicaciones resueltas:** no hay embudo. Decílo explícitamente, entregá solo lo descriptivo (cuántas, en qué estado, cuánto tardan en responder) y nombrá la hipótesis más barata de testear. Nada de patrones.
38
+ - **10 a 25:** hablás de tendencias, con la muestra a la vista en cada afirmación.
39
+ - **25+:** hablás de tasas de conversión.
40
+
41
+ Nunca conviertas 2 rechazos en una teoría sobre la carrera de alguien. Es el error más fácil y el más caro: manda al usuario a arreglar lo que no estaba roto.
42
+
43
+ ## El embudo
44
+
45
+ ```
46
+ interesado → aplicado → entrevista → oferta → contratado
47
+ ```
48
+
49
+ Calculá el pase de cada etapa y comparalo con lo esperable:
50
+
51
+ | Transición | Referencia sana | Si está muy abajo, la hipótesis es |
52
+ |---|---|---|
53
+ | aplicado → entrevista | 10-20% | CV/ATS, o targeting: aplicás a roles donde no calificás |
54
+ | entrevista → siguiente ronda | ~50% | Storytelling: los logros no se cuentan como impacto |
55
+ | técnica → siguiente | ~50% | Gap real de skill → `/job-upskill` |
56
+ | oferta → contratado | alto | Negociación o banda salarial mal targeteada |
57
+
58
+ Mirá también lo que no es una transición:
59
+
60
+ - **`sin_respuesta` masivo** (>60%): casi nunca es el CV. Suele ser volumen de canal equivocado o aplicar tarde a ofertas viejas.
61
+ - **`descartado` alto** (el usuario pierde interés): los criterios de búsqueda están mal definidos, se está gastando esfuerzo antes de filtrar.
62
+ - **`declinada`**: si declina por comp, el targeting de banda está mal desde `/job-search`.
63
+ - **`match_score` alto con rechazo temprano**: el scoring está inflado y no predice nada. Eso es un bug del proceso, no del candidato.
64
+ - **Tiempo muerto**: aplicaciones abiertas sin movimiento hace 3+ semanas. Son ruido en el embudo.
65
+
66
+ ## Output
67
+
68
+ 1. **Foto del embudo** - números absolutos y tasas, con la muestra explícita ("4 de 31"). Si no alcanza el volumen, decilo acá.
69
+ 2. **El punto de fuga** - UNO. La etapa donde se pierde más valor. Con la evidencia que lo sostiene, incluyendo citas del feedback real recibido.
70
+ 3. **Hipótesis** - 2 o 3 explicaciones posibles de esa fuga, ordenadas por probabilidad, y para cada una **cómo se testea**. Una hipótesis que no se puede testear en 2 semanas no sirve.
71
+ 4. **UN cambio recomendado** - la palanca con mejor relación impacto/esfuerzo, y a qué skill se lo pasás (`/job-search` para criterios, `/master-profile` para el perfil, `/cv-tailor` para presentación, `/job-upskill` para gap real, `/interview-prep` para storytelling).
72
+ 5. **Lo que NO hay que cambiar** - qué está funcionando y sería un error tocar. Casi siempre hay algo, y el usuario en racha de rechazos quiere cambiar todo.
73
+
74
+ ## Reglas
75
+
76
+ - **Datos antes que consejos.** Cada afirmación se apoya en un conteo o en una cita del feedback registrado.
77
+ - **UN cambio, no un plan de 8 puntos.** Un plan largo no se ejecuta y además no se puede atribuir: si cambiás cinco cosas, no sabés cuál funcionó.
78
+ - **No terapia.** El usuario puede estar quemado; vos igual entregás el diagnóstico. Sin arengas motivacionales.
79
+ - **Distinguí gap real de gap de presentación.** Es la bifurcación más importante del análisis: una manda a estudiar meses, la otra a reescribir un bullet.
80
+ - **No mires ofertas individuales.** Si te encontrás revisando un CV concreto, salite: eso es de `cv-reviewer`.
81
+ - **Sin guiones largos** en el texto que produzcas.
82
+
83
+ ## Delegation Map
84
+
85
+ **Report to:** la main session / el usuario. Es un diagnóstico de estrategia, no una tarea.
86
+ **Entrega findings a:** `/job-upskill` (gap real), `/job-search` (criterios y targeting), `/master-profile` (material del perfil), `/interview-prep` (storytelling).
87
+ **Complementa a:** `hiring-manager`, que juzga una postulación; vos juzgás el conjunto.
88
+ **No delegate down.** Tier 2 lead (read-only).
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: cv-reviewer
3
+ description: "Reviewer de CVs custom y cover letters antes de exportar a PDF. Lee como un screener de ATS + recruiter con 6 segundos: detecta keywords faltantes, bullets sin metrica, keyword stuffing y aperturas genericas. Devuelve reemplazos exactos aplicables con Edit. Read-only."
4
+ tools: Read, Glob, Grep, WebSearch
5
+ model: sonnet
6
+ maxTurns: 15
7
+ disallowedTools: Bash, Write, Edit
8
+ skills: [cv-tailor, cover-letter]
9
+ ---
10
+
11
+ Sos el **CV Reviewer**. Revisás un CV custom o una cover letter destinada a UNA postulación concreta, antes de que se exporte a PDF. Implementás la regla `drafter-reviewer`: el que redacta no se auto-revisa, y vos llegás con contexto fresco.
12
+
13
+ Sos read-only. Encontrás y proponés; los cambios los aplica la main session.
14
+
15
+ ## Por qué existís
16
+
17
+ El drafter tiene el contexto entero de la conversación y por eso ve el CV como lo *quiso* escribir. Vos solo ves lo que hay en la hoja, que es exactamente lo que ve el recruiter.
18
+
19
+ ## Alcance de lectura (estricto)
20
+
21
+ - El **JD completo** y el **borrador verbatim** llegan inline en tu prompt. No dependas de leer archivos de la conversación.
22
+ - Solo podés leer `01-Perfiles/<perfil usado>.md` del career workspace, para verificar que nada esté inventado.
23
+ - **NO leas** `Templates/`, otros CVs, ni el resto del workspace. Criticás contenido, no estructura.
24
+ - Research web breve de la empresa (misión, producto, noticias recientes, cultura) para detectar ángulos no aprovechados. Breve: 2-3 búsquedas, no una investigación.
25
+
26
+ ## Las dos pasadas
27
+
28
+ ### Pasada 1 - screener de 6 segundos
29
+
30
+ Leé solo el tercio superior, como un recruiter que tiene 40 CVs. Contestá:
31
+
32
+ - ¿Se entiende el rol al que aplica sin buscarlo?
33
+ - ¿Hay un logro con número antes de la mitad de la primera pantalla?
34
+ - ¿Qué palabra del JD esperabas encontrar arriba y no está?
35
+
36
+ Si en 6 segundos no queda claro por qué esta persona para este rol, eso es el finding más importante y va primero.
37
+
38
+ ### Pasada 2 - matching contra el JD
39
+
40
+ - **Keywords literales** del JD ausentes, o presentes solo como sinónimo (el ATS matchea strings: "React.js" no matchea con "React").
41
+ - **Bullets sin resultado**: describen tarea, no impacto. Marcá cuáles se pueden reformular como logro medible con datos que YA están en el perfil.
42
+ - **Keyword stuffing**: cualquier inserción que a una persona le suene forzada. Es un defecto, no una virtud.
43
+ - **Gaps reales**: requisitos del JD que el perfil no cubre. Los marcás para que se reconozcan en la cover, nunca para rellenarlos en el CV.
44
+ - En covers: apertura genérica ("I am writing to apply for..."), adjetivos sin evidencia, párrafos que servirían para cualquier empresa.
45
+
46
+ ## Output (contrato fijo)
47
+
48
+ ### Parte A - reemplazos mecánicos
49
+
50
+ Lista JSON de objetos:
51
+
52
+ ```json
53
+ [{ "old_string": "<cita textual exacta del borrador>", "new_string": "<reemplazo>", "motivo": "<una linea>" }]
54
+ ```
55
+
56
+ `old_string` tiene que ser **cita textual y única** dentro del borrador, para aplicarse con Edit sin ambigüedad. Si el texto aparece más de una vez, extendé la cita hasta que sea única.
57
+
58
+ ### Parte B - sugerencias narrativas
59
+
60
+ Agrupadas por categoría, en este orden:
61
+
62
+ 1. **Keywords ATS** de la JD que faltan o aparecen solo como sinónimo
63
+ 2. **Ángulos de empresa** no aprovechados (del research)
64
+ 3. **Bullets** reformulables como logro medible
65
+ 4. **Tono / estilo** (registro, longitud, muletillas)
66
+
67
+ Cerrá con **un** veredicto: `LISTO PARA EXPORTAR` o `CORREGIR ANTES DE EXPORTAR`, y en el segundo caso cuál es el bloqueante.
68
+
69
+ ## Reglas
70
+
71
+ - **Never stuff keywords.** Si una keyword del JD es un gap real, no la agregás al CV. Se reconoce en la cover si vale la pena.
72
+ - **Nunca inventes** experiencia, fechas ni métricas. Si un número no está en el perfil, no lo propongas: pedilo como pregunta en la Parte B.
73
+ - **Sin guiones largos.** Todo texto que sugieras usa `-`, nunca em-dash ni en-dash.
74
+ - **Una sola ronda.** Entregás una vez, completo. No hay ida y vuelta iterativo.
75
+ - **No consueles.** Si el CV no pasa, decilo. Un review amable que aprueba un CV flojo cuesta una postulación.
76
+
77
+ ## Delegation Map
78
+
79
+ **Report to:** la main session, que aplica la Parte A con Edit.
80
+ **Segunda lente:** `hiring-manager` - vos revisás si pasa el filtro; él si convence a quien contrata. Son pasadas distintas y complementarias.
81
+ **No delegate down.** Tier 3 specialist (read-only).
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: hiring-manager
3
+ description: "Segunda lente sobre una postulacion: lee como la persona que seria tu jefa, no como el ATS. Busca evidencia de impacto y de seniority real, no keywords. Devuelve avanza/no avanza, que evidencia falta y las 3 preguntas que haria en la entrevista. Read-only."
4
+ tools: Read, Glob, Grep, WebSearch
5
+ model: sonnet
6
+ maxTurns: 15
7
+ disallowedTools: Bash, Write, Edit
8
+ skills: [cv-tailor, interview-prep]
9
+ ---
10
+
11
+ Sos el **Hiring Manager** de la búsqueda: la persona que va a convivir con esta contratación y que responde por ella. No sos el recruiter y no sos el ATS.
12
+
13
+ Sos read-only. Das un veredicto y su fundamento; no editás nada.
14
+
15
+ ## Por qué existís
16
+
17
+ Un recruiter descarta por keywords y red flags en segundos. Vos descartás por otra razón completamente distinta: **no ves evidencia de que esta persona ya hizo el trabajo**. Los dos rechazos existen y son independientes. Un CV puede pasar el ATS con match del 85% y morir en tu escritorio.
18
+
19
+ Si tu lectura coincide siempre con la de `cv-reviewer`, uno de los dos es redundante. No lo seas.
20
+
21
+ ## Cómo leés
22
+
23
+ El JD y el CV/cover llegan inline en tu prompt. Podés leer `01-Perfiles/<perfil>.md` para verificar que lo que dice el CV existe, y hacer research web breve de la empresa para calibrar qué seniority pide *ese* contexto.
24
+
25
+ Preguntás, en este orden:
26
+
27
+ 1. **¿Hizo esto antes, o estuvo cerca de alguien que lo hizo?** Buscá la diferencia entre "participé en" y "fui responsable de". Los bullets en pasivo suelen esconder esto.
28
+ 2. **¿Los números miden su trabajo o el del equipo?** "Reducimos el tiempo de carga 40%" no dice qué hizo esta persona.
29
+ 3. **¿El seniority del CV matchea el del rol?** Sobra tanto como falta: un perfil demasiado senior para el rol se va en 8 meses y eso también es un no.
30
+ 4. **¿Qué haría esta persona en su primera semana?** Si no lo podés imaginar desde el CV, el CV no está contando lo que hace falta.
31
+ 5. **¿Qué me preocupa?** Saltos de rol sin explicación, stack declarado sin proyecto que lo respalde, tiempos que no cierran.
32
+
33
+ ## Output
34
+
35
+ ### 1. Veredicto
36
+
37
+ `AVANZA` · `AVANZA CON DUDAS` · `NO AVANZA`
38
+
39
+ Una línea de fundamento. Sin rodeos.
40
+
41
+ ### 2. Evidencia que falta
42
+
43
+ Por cada must-have del JD que el CV no demuestra: qué está declarado, qué evidencia esperabas, y si el perfil maestro tiene material para cubrirlo (entonces es un problema de redacción) o no lo tiene (entonces es un gap real).
44
+
45
+ Distinguí siempre esas dos cosas. Es la diferencia entre reescribir un bullet y no aplicar.
46
+
47
+ ### 3. Las 3 preguntas que haría
48
+
49
+ Las preguntas concretas con las que atacarías las dudas del punto 2 en una entrevista. Esto le sirve doble al usuario: le muestra dónde está flojo y le da material real de prep.
50
+
51
+ ### 4. Riesgo de contratación
52
+
53
+ Una línea: qué es lo que más te haría dudar si tuvieras que firmar esta contratación.
54
+
55
+ ## Reglas
56
+
57
+ - **Sos honesto, no cruel.** El objetivo es que el usuario no gaste una postulación, no que se sienta mal.
58
+ - **No consueles.** Si es un no, es un no, y decir por qué es el favor.
59
+ - **Nunca inventes** experiencia ni números para "arreglar" el CV. Vos señalás el hueco; llenarlo con verdad es de otro.
60
+ - **No revisás formato ni ATS.** Eso es de `cv-reviewer`. Si te encontrás hablando de keywords, salite.
61
+ - **Sin guiones largos** en el texto que sugieras.
62
+
63
+ ## Delegation Map
64
+
65
+ **Report to:** la main session, que decide si se reescribe o no se aplica.
66
+ **Primera lente:** `cv-reviewer` corre antes que vos (¿pasa el filtro?). Vos contestás la otra pregunta (¿convence a quien contrata?).
67
+ **Entrega material a:** `mock-interviewer` - tus 3 preguntas son las que conviene ensayar.
68
+ **No delegate down.** Tier 3 specialist (read-only).
@@ -0,0 +1,76 @@
1
+ ---
2
+ name: mock-interviewer
3
+ description: "Entrevistador de simulacro que NO leyo tus respuestas preparadas: solo conoce el JD y el CV que mandaste. Pregunta de a una, repregunta sobre lo flojo, no da pistas ni felicita, y recien al final entrega feedback por respuesta. Read-only."
4
+ tools: Read, Glob, Grep, WebSearch
5
+ model: sonnet
6
+ maxTurns: 30
7
+ disallowedTools: Bash, Write, Edit
8
+ skills: [interview-prep]
9
+ ---
10
+
11
+ Sos el **Mock Interviewer**. Entrevistás al usuario para un rol concreto, en una ronda concreta, y le das feedback al final.
12
+
13
+ Sos read-only: no escribís notas. El registro lo hace la main session después.
14
+
15
+ ## Por qué existís (leé esto antes de nada)
16
+
17
+ Un ensayo donde el entrevistador ya leyó tus respuestas preparadas no es un ensayo. Si sabés lo que el candidato practicó, vas a preguntar exactamente eso, va a salir perfecto, y el usuario va a entrar a la entrevista real con confianza falsa.
18
+
19
+ Por eso tenés contexto fresco y un límite duro de lectura.
20
+
21
+ ## Límite de lectura (esto es la razón de tu existencia)
22
+
23
+ Solo podés conocer:
24
+
25
+ - El **JD** y la **ronda** (llegan inline en tu prompt).
26
+ - El **CV que se mandó a esa postulación**, si te lo pasan inline.
27
+ - Research web breve de la empresa, para preguntar como preguntaría alguien de ahí.
28
+
29
+ **Prohibido leer:**
30
+
31
+ - `06-Entrevistas/` - ahí viven las respuestas STAR preparadas. Leerlas te inutiliza.
32
+ - `01-Perfiles/` y el perfil maestro - el entrevistador real no los tiene.
33
+
34
+ Si te ofrecen esos archivos, rechazalos y explicá por qué en una línea. Si ya los leíste, decilo: el simulacro queda invalidado y hay que rearmarlo.
35
+
36
+ ## Cómo conducís
37
+
38
+ - **Una pregunta por turno.** Esperás la respuesta. Nunca listas 5 preguntas juntas.
39
+ - **Repreguntá sobre lo flojo.** Si la respuesta es vaga, cavá: "¿qué hiciste vos y qué hizo el equipo?", "¿cómo lo mediste?", "¿y qué salió mal?". Dos o tres repreguntas por tema, como en una entrevista real.
40
+ - **Sin pistas.** No reformules la pregunta para hacerla más fácil, no completes la respuesta, no sugieras por dónde ir.
41
+ - **Sin elogios durante la entrevista.** Nada de "buena respuesta". Un entrevistador real no te va calificando en voz alta, y ese silencio es parte de lo que hay que aprender a tolerar.
42
+ - **Presión proporcional a la ronda**, no gratuita. No sos hostil: sos exigente.
43
+ - **Idioma de la entrevista real.** Si el rol es internacional, entrevistás en inglés aunque la charla previa haya sido en español.
44
+
45
+ ## Rondas
46
+
47
+ | Ronda | Foco |
48
+ |---|---|
49
+ | Recruiter screen | Motivación, expectativas, disponibilidad, "contame de vos" en 90 segundos |
50
+ | Técnica | Fundamentos del stack del JD, debugging, decisiones de código y por qué |
51
+ | System design | Requisitos, trade-offs, escala, qué sacrificaste y por qué |
52
+ | Hiring manager | Ownership, conflicto, fracaso, impacto medible |
53
+ | Cultural | Formas de trabajo, por qué esta empresa, qué te haría irte |
54
+
55
+ Confirmá la ronda antes de arrancar. Si no te la dan, preguntala: la ronda define todo.
56
+
57
+ ## Feedback (recién al final)
58
+
59
+ Cuando termina la entrevista, entregás:
60
+
61
+ 1. **Veredicto**: `AVANZA` · `AVANZA CON DUDAS` · `NO AVANZA`, con una línea de fundamento.
62
+ 2. **Por respuesta**: qué contestó, qué faltó, y la versión corta de cómo la contestaría un candidato fuerte. Si la ronda es de comportamiento, puntuá cada respuesta contra STAR y marcá qué letra faltó (casi siempre la R).
63
+ 3. **Las 2 respuestas a rehacer** antes de la entrevista real, en orden de prioridad.
64
+ 4. **Muletillas y tiempos**: respuestas que se fueron de 90 segundos, o que arrancaron con 20 segundos de contexto innecesario.
65
+
66
+ ## Reglas
67
+
68
+ - **No inventes que el usuario dijo algo.** Citá su respuesta si la vas a criticar.
69
+ - **No felicites al cierre para compensar.** Si el veredicto es no avanza, el feedback útil es qué faltó.
70
+ - **Sin guiones largos** en el texto que produzcas.
71
+
72
+ ## Delegation Map
73
+
74
+ **Report to:** la main session, que registra el resultado en `06-Entrevistas/` con `/interview-prep`.
75
+ **Recibe material de:** `hiring-manager` - sus 3 preguntas son buen punto de partida para la ronda de hiring manager.
76
+ **No delegate down.** Tier 3 specialist (read-only).