Skip to content
Back to skills

42 Init

ASecurity

Bootstrap een klantproject voor 42-SEO-Skills. Vraagt naar profiel (content/ecom/technical/full), activeert alleen relevante skills via disabledSkills in .claude/settings.local.json, zet auth (.env) op, maakt de gedeelde Python venv in ~/.claude/venvs/42-seo/, en prikt 42-reports/<klant>/ neer. Use when user says "init SEO project", "42-init", "setup SEO", "nieuw klantproject", "initialiseer SEO".

  • 4 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 12, 2026
databasespythongobashapi

Works with

  • claude code
  • cli
  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 2 files and shows the line behind each finding

Scanned September 12, 2026

npx -y skills add aibot88/sec_skill_store --skill 42-init --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 42 Init?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 42 Init
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aibot88-42-init/badge)](https://www.skillsdirectory.com/skills/aibot88-42-init)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: 42-init
description: >
  Bootstrap een klantproject voor 42-SEO-Skills. Vraagt naar profiel
  (content/ecom/technical/full), activeert alleen relevante skills via
  disabledSkills in .claude/settings.local.json, zet auth (.env) op,
  maakt de gedeelde Python venv in ~/.claude/venvs/42-seo/, en prikt
  42-reports/<klant>/ neer. Use when user says "init SEO project",
  "42-init", "setup SEO", "nieuw klantproject", "initialiseer SEO".
allowed-tools: Read, Write, Edit, Bash, AskUserQuestion
version: 1.0.0
tags: [init, bootstrap, setup, onboarding]
---

# /42-init — Project Bootstrap

Zet een schoon klantproject op voor gebruik van de 42-SEO-Skills plugin. Zes stappen,
in deze volgorde. Ga pas door naar de volgende stap als de vorige geslaagd is.

---

## Stap 1 — Profiel kiezen

Vraag de gebruiker **één** AskUserQuestion met deze opties:

| Profiel | Voor | Aantal skills |
|---|---|---|
| `content` | Blogs, editorial, thought leadership | 13 |
| `ecom` | Webshops, productpagina's, categorieën | 16 |
| `technical` | Hreflang/sitemap/schema/migrations | 14 |
| `full` | Alles (agency of onbekend) | alle 59 |

Lees het gekozen profiel:
```bash
cat "${CLAUDE_PLUGIN_ROOT}/profiles/<profiel>.json"
```

Parse `skills[]` — die heb je straks nodig voor stap 5.

---

## Stap 2 — Klantnaam

Vraag: "Wat is de naam (slug) van dit project? Bijvoorbeeld: `acme-nl`, `klant-xyz`."

Valideer: alleen `[a-z0-9-]`. Bij hoofdletters of spaties: vervang automatisch en toon
de genormaliseerde vorm ter bevestiging.

Maak aan:
```bash
mkdir -p "42-reports/<klant-slug>"
```

---

## Stap 3 — Auth (.env)

Check of `.env` al bestaat in cwd. Als niet:

```bash
cp "${CLAUDE_PLUGIN_ROOT}/.env.example" .env
```

Lees de lege `.env` in, toon de verplichte velden en vraag welke keys de gebruiker
nu wil invullen. Minimaal nodig voor de gekozen profielen:

- **content / ecom**: `GOOGLE_API_KEY` (Gemini), `DATAFORSEO_LOGIN` + `DATAFORSEO_PASSWORD`
- **technical**: `FIRECRAWL_API_KEY` (alleen als gebruiker Firecrawl gebruikt)
- **full**: alles bovenstaand + `GSC_SERVICE_ACCOUNT_JSON` (pad naar service account file)

Gebruiker kan overslaan ("later") — alleen waarschuwen dat sommige skills dan falen
met duidelijke error.

---

## Stap 4 — Gedeelde Python venv

De venv is **gedeeld** over alle klantprojecten en staat op `~/.claude/venvs/42-seo/`.
Check eerst of hij al bestaat:

```bash
VENV="$HOME/.claude/venvs/42-seo"
if [ ! -d "$VENV" ]; then
  mkdir -p "$HOME/.claude/venvs"
  python3 -m venv "$VENV"
  "$VENV/bin/pip" install --upgrade pip
  "$VENV/bin/pip" install -r "${CLAUDE_PLUGIN_ROOT}/requirements.txt"
fi
```

Als hij wel bestaat: `pip install --upgrade` om nieuwe/bijgewerkte packages uit
`requirements.txt` te installeren (idempotent).

Schrijf daarna een `.envrc` of leg uit hoe te activeren:
```bash
source ~/.claude/venvs/42-seo/bin/activate
```

**Optionele deps** (playwright, spacy, reportlab, etc.): vraag *alleen* bij
profielen die ze nodig hebben. Bijvoorbeeld `playwright` alleen als 42-internal-links
of 42-seo-agi in profiel zit.

---

## Stap 5 — Skill allowlist via disabledSkills

Bereken welke skills **uit moeten staan** op basis van het profiel. Pak alle 59 skills
min de geselecteerde set, en converteer naar glob-patterns waar mogelijk voor
compactheid.

Schrijf `.claude/settings.local.json`:

```bash
mkdir -p .claude
```

Genereer JSON:
```json
{
  "disabledSkills": [
    "42-ecom-*",
    "42-product-titles",
    "42-geo-sales",
    "42-programmatic-seo"
  ],
  "42-init": {
    "profile": "content",
    "client": "<klant-slug>",
    "initializedAt": "<ISO datum>"
  }
}
```

Als er al een `.claude/settings.local.json` is — **merge** in plaats van overschrijven.
Bewaar bestaande keys (bv. permissions, env).

**Belangrijk**: `42-init` zelf mag nooit op de disabled-lijst staan, anders kan de
gebruiker niet her-initialiseren.

---

## Stap 6 — Samenvatting tonen

Toon een korte samenvatting:

```
✓ 42-SEO-Skills geïnitialiseerd voor <klant-slug>

Profiel:     content (13 skills actief)
Venv:        ~/.claude/venvs/42-seo (gedeeld)
Reports:     ./42-reports/<klant-slug>/
Auth:        .env (ingevuld: GOOGLE_API_KEY, DATAFORSEO_*)
             .env (nog leeg: GSC_SERVICE_ACCOUNT_JSON)

Eerste stap: /42-audit <domein>
             of: /42-seo-project start <domein>
```

Herstart-hint tonen: "Herstart je Claude Code-sessie (`/reload`) zodat de
allowlist actief wordt."

---

## Fouten en edge cases

- **Geen `python3`**: waarschuw en stop. Vraag om Python 3.11+ te installeren.
- **venv failure**: toon de foutmelding letterlijk, niet uitleggen alsof het werkt.
- **Geen schrijfrechten in cwd**: stop, vraag om in project-root te staan.
- **Al geïnitialiseerd** (settings.local.json heeft `42-init.profile`): vraag of
  gebruiker wil overschrijven of aanvullen.

---

## Re-init flow

Als `/42-init` opnieuw gedraaid wordt in een project dat al een `42-init`-sectie
heeft in `.claude/settings.local.json`, bied drie opties:

1. **Profiel wijzigen** — overschrijf `disabledSkills`, behoud .env en venv
2. **Alleen deps bijwerken** — skip settings en .env, alleen `pip install -U`
3. **Opnieuw beginnen** — wis settings, .env, reports (met bevestiging!)

---

## Notes voor Claude

- Gebruik **AskUserQuestion** voor alle keuzes, niet free-text prompts
- Voer **bash in project-root** uit (niet `cd` naar plugin-root)
- Verwijs naar scripts met `${CLAUDE_PLUGIN_ROOT}/scripts/...`
- De gedeelde venv beteken dat **alle klantprojecten dezelfde package-versies delen**
  — als een klant een oudere versie nodig heeft, waarschuw en bied aan project-
  lokale venv (`./.venv`) te maken als override

Files in this skill

  • SKILL.md5.6 KB
  • source.json884 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.