| 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:
INIT.md exists → stop, use current init flow unchanged
ROADMAP.md exists → Path A (extract from ROADMAP)
ROADMAP_*.md exists (e.g. ROADMAP_icd10.md) → Path A (extract from that file)
- 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).
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.
## 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]