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.
- package/CHANGELOG.md +22 -0
- package/README.md +56 -55
- package/agents/career/career-strategist.md +88 -0
- package/agents/career/cv-reviewer.md +81 -0
- package/agents/career/hiring-manager.md +68 -0
- package/agents/career/mock-interviewer.md +76 -0
- package/agents/freelance/client-screener.md +84 -0
- package/agents/freelance/discovery-call.md +65 -0
- package/agents/freelance/pipeline-strategist.md +99 -0
- package/agents/freelance/proposal-reviewer.md +82 -0
- package/dist/cli.js +52 -13
- package/docs/RELEASE-SETUP.md +1 -1
- package/docs/SKILLS-CATALOG.md +27 -3
- package/docs/USER-GUIDE.md +77 -72
- package/docs/agent-hierarchy.md +21 -1
- package/docs/presentations/build_arcane_deck.py +2 -2
- package/docs/presentations/build_arcane_deck_12.py +2 -2
- package/package.json +2 -2
- package/profiles/freelance.yaml +43 -0
- package/profiles/job-hunt.yaml +5 -2
- package/rules/drafter-reviewer.md +16 -3
- package/rules/freelance-guardrails.md +53 -0
- package/skills/career-registry/SKILL.md +95 -0
- package/skills/career-registry/scripts/career_registry.py +488 -0
- package/skills/client-screen/SKILL.md +83 -0
- package/skills/client-screen/references/red-flags.md +95 -0
- package/skills/cover-letter/SKILL.md +4 -3
- package/skills/cv-tailor/SKILL.md +11 -2
- package/skills/freelance-deliver/SKILL.md +90 -0
- package/skills/freelance-hunt/SKILL.md +126 -0
- package/skills/freelance-hunt/references/templates/Connects.md +39 -0
- package/skills/freelance-hunt/references/templates/Contrato.md +60 -0
- package/skills/freelance-hunt/references/templates/Propuesta.md +66 -0
- package/skills/freelance-kickoff/SKILL.md +94 -0
- package/skills/freelance-pipeline/SKILL.md +109 -0
- package/skills/freelance-pipeline/scripts/import_history.py +425 -0
- package/skills/freelance-profile/SKILL.md +93 -0
- package/skills/freelance-proposal/SKILL.md +112 -0
- package/skills/freelance-scan/SKILL.md +196 -0
- package/skills/freelance-scan/references/dedup.md +35 -0
- package/skills/freelance-scan/references/platforms.md +167 -0
- package/skills/freelance-scan/scripts/freelance_search.py +1077 -0
- package/skills/interview-prep/SKILL.md +11 -3
- package/skills/job-aplicar/SKILL.md +5 -1
- package/skills/job-hunt/SKILL.md +17 -0
- package/skills/job-outcome/SKILL.md +15 -1
- 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
|
-
> **
|
|
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 |
|
|
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/ #
|
|
354
|
-
├── profiles/ #
|
|
355
|
-
├── agents/ #
|
|
356
|
-
├── hooks/ #
|
|
357
|
-
├── rules/ #
|
|
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).
|