Conversational onboarding for A Team. Detects ROADMAP.md, extracts context, generates INIT.md without requiring technical knowledge. Invoked automatically by the orchestrator when INIT.md is missing.
Installs into .claude/skills of the current project.
Are you the author of Smart Init?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/rbraga01-smart-init)
---
name: smart-init
description: Conversational onboarding for A Team. Detects ROADMAP.md, extracts context, generates INIT.md without requiring technical knowledge. Invoked automatically by the orchestrator when INIT.md is missing.
---
# Smart Init — Conversational Onboarding
## Trigger
This skill is invoked by the orchestrator when `/orchestrate init` is called and no `INIT.md` exists.
## Detection Sequence
Check in this order:
1. `INIT.md` exists → stop, use current init flow unchanged
2. `ROADMAP.md` exists → Path A (extract from ROADMAP)
3. `ROADMAP_*.md` exists (e.g. `ROADMAP_icd10.md`) → Path A (extract from that file)
4. Neither exists → Path B (full 5-question interview)
---
## Path A — ROADMAP Exists
Read the ROADMAP file and extract:
| Look for in ROADMAP | Maps to INIT.md field |
|--------------------|-----------------------|
| Project name in H1 or title | Project name |
| Description paragraph | Project overview |
| Stack table or technology mentions | Languages & stack |
| "Princípios não-negociáveis" or "Non-negotiable" section | Immutable rules |
| "Próximo" / "Next" / "Roadmap" items | Active work context |
| Compliance mentions (GDPR, local-first, privacy, HIPAA) | Compliance scope |
| "Feito" / "Done" section | Existing coverage |
After extraction, ask **only one question** (the only thing a ROADMAP cannot tell you):
> "Que ferramentas de IA estás a usar para escrever código neste projecto?"
> → A) Claude Code
> → B) Codex CLI
> → C) Cursor
> → D) OpenCode
> → E) Várias — escolho mais do que uma
Then generate INIT.md (see Template section below) and show the review gate.
---
## Path B — No ROADMAP (Full Interview)
Ask these 5 questions, one at a time. Use plain language — assume the user is non-technical.
**Q1 (free text):**
> "O que queres construir? Descreve com as tuas palavras."
**Q2 (multiple choice):**
> "Já existe código ou começas do zero?"
> → A) Começo do zero
> → B) Já existe código
> → C) Não tenho a certeza
*If answer is B: run stack inference silently (see Stack Inference section).*
**Q3 (multiple choice):**
> "Que tipo de projecto é?"
> → A) App web (abre no browser)
> → B) App móvel (iPhone ou Android)
> → C) API ou serviço de backend
> → D) Análise de dados ou automação
> → E) Outro
**Q4 (multiple choice):**
> "Em que dispositivo ou plataforma deve correr?"
> → A) Browser (qualquer dispositivo)
> → B) iPhone / iPad
> → C) Android
> → D) Desktop (Windows / Mac / Linux)
> → E) Servidor / cloud
**Q5 (multiple choice):**
> "Que ferramentas de IA estás a usar para escrever código?"
> → A) Claude Code
> → B) Codex CLI
> → C) Cursor
> → D) OpenCode
> → E) Várias — escolho mais do que uma
After Q5: generate INIT.md, show review gate, then **offer to create ROADMAP.md**:
> "Queres que eu crie um ROADMAP.md para este projecto com base no que descreveste? É útil para futuras sessões."
---
## Stack Inference (Path B, answer B to Q2 only)
Run silently after the user answers B. Do NOT run for new projects (answer A or C).
```bash
git ls-files | sed 's/.*\.//' | sort | uniq -c | sort -rn | head -10
```
Extension → stack mapping:
- `.kt` → Kotlin / Android (agents: kotlin-reviewer, compose-ui)
- `.swift` → Swift / iOS (agents: swift-reviewer)
- `.py` → Python (agents: python-reviewer)
- `.ts` or `.tsx` → TypeScript / React (agents: code-reviewer)
- `.go` → Go (agents: go-reviewer)
- `.rs` → Rust (agents: rust-reviewer)
- `.dart` → Flutter (agents: flutter-reviewer)
- `.java` → Java / Android (agents: kotlin-reviewer as fallback)
Confidence threshold: if one extension accounts for >40% of tracked files, pre-fill Q3/Q4 and confirm with user. If ambiguous, ask normally.
---
## Review Gate
After generating INIT.md, display ONLY the `## O que entendi` section and ask:
> "Está correcto? Falta alguma coisa?"
- User says "ok" / "sim" / "yes" → run `/orchestrate init` automatically
- User describes a correction → update the relevant INIT.md section, show `## O que entendi` again
- After 3 correction rounds without approval → ask user to edit INIT.md manually: "Não consegui perceber a correcção. Por favor edita o INIT.md directamente e diz 'ok' quando estiver pronto."
---
## Codex Warning
Show this **before** the final approval:
> "Última coisa: o Codex vai pedir para aprovares um script de segurança na próxima sessão. Clica em 'Trust' para continuar — é o script de estado da A Team."
---
## INIT.md Template
Generate this file at the project root. Fill each field from the interview answers or ROADMAP extraction.
```markdown
## O que entendi
[Plain language summary: what the project is, inferred stack, active AI platforms, agent count after init]
Se algo estiver errado, edita este ficheiro antes de continuar.
---
# INIT.md — [Project Name]
> Run `/orchestrate init` after reviewing this file.
## Project Overview
**Name:** [from Q1 or ROADMAP H1]
**Type:** [from Q3: web app / mobile app / API / data / other]
**Status:** [New project / Active development]
**Description:** [from Q1 free text or ROADMAP description]
## Languages & Stack
[Check all that apply — inferred from ROADMAP or stack scan]
- [ ] Kotlin
- [ ] Swift
- [ ] Python
- [ ] TypeScript / JavaScript
- [ ] Go
- [ ] Rust
- [ ] Flutter / Dart
- [ ] Other: ___
**Framework / UI:** [inferred or left blank]
**Database:** [inferred or left blank]
**Build system:** [inferred or left blank]
## Compliance Scope
[Extracted from ROADMAP compliance mentions, or left unchecked]
- [ ] GDPR
- [ ] Child privacy / COPPA
- [ ] Local-first / no external data
- [ ] HIPAA
- [ ] PCI-DSS
## Active AI Platforms
[From Q5 or Path A question]
- [ ] Claude Code
- [ ] Codex CLI
- [ ] Cursor
- [ ] OpenCode
## Non-Negotiable Rules
[Extracted from ROADMAP "princípios não-negociáveis" section, or left blank]
## Active Work / Next Steps
[Extracted from ROADMAP "Próximo" / "Next" section, or left blank]
## Agents to Prune
[Inferred from stack — list agents irrelevant to this project's languages/domain]
```