// engine/platform-engineering/dora-advisor.ts — SPEC-048
// Generates DORA metrics acceptance criteria and tooling recommendations.
// Based on DORA Research Program 2024 definitions.
// DORA Research Program 2024 — Elite performer targets
const DORA_CRITERIA = [
    '- [ ] El Deployment Frequency es medido y publicado en dashboard (objetivo: ≥1 deploy/semana para proyectos en crecimiento, múltiples/día para high performers)',
    '- [ ] El Lead Time for Changes (desde PR merge hasta producción) es < 1 día — ver [DORA Research 2024](https://dora.dev/research/)',
    '- [ ] El Change Failure Rate (% de deploys que causan incidentes) es < 15% (objetivo elite: < 5%)',
    '- [ ] El Mean Time to Recovery (MTTR) para incidentes P1 es < 4 horas (objetivo elite: < 1 hora)',
];
// Developer portal criteria
const DEVELOPER_PORTAL_CRITERIA = [
    '- [ ] El portal interno lista todos los servicios con owner, runbook, alertas, y deployment status',
    '- [ ] La documentación técnica (ADRs, runbooks, API docs) está en el portal y es searchable',
    '- [ ] El portal muestra service health en tiempo real (linked a OTel/Prometheus)',
    '- [ ] Los servicios tienen entradas en el software catalog con metadata: owner, SLA, tier, oncall',
];
// Onboarding automation criteria
const ONBOARDING_CRITERIA = [
    '- [ ] El día 1 de un nuevo developer incluye: acceso a todos los repos necesarios, ambiente local funcionando, primer PR mergeable — todo sin intervención manual del equipo',
    '- [ ] El tiempo de onboarding (desde oferta aceptada hasta primer PR en producción) es ≤ 5 días laborales',
    '- [ ] El proceso de onboarding está automatizado via scripts/IaC — no depende de conocimiento tribal',
];
// Challenge questions for platform engineering
const PLATFORM_CHALLENGE_QUESTIONS = [
    '¿Qué pasa cuando el IDP está caído — los developers quedan bloqueados?',
    '¿Las abstracciones de plataforma ocultan demasiado y hacen el debugging difícil?',
    '¿Los costos de infraestructura son visibles por equipo/servicio o van a un pool compartido?',
    '¿Los equipos de producto saben cuándo dependen de un servicio de plataforma en estado degradado?',
    '¿La complejidad del IDP es proporcional al tamaño del equipo?',
];
/**
 * Returns DORA metrics acceptance criteria for HU.md.
 * Only relevant for platform-engineering-candidate or multi-team projects.
 */
export function getDoraCriteria(teamScale) {
    if (teamScale !== 'platform-engineering-candidate' && teamScale !== 'multi-team') {
        return [];
    }
    return [
        '',
        '## DORA Metrics Requirements',
        '',
        '> Based on DORA Research Program 2024. These are measurable targets, not blocking requirements.',
        '> Priority: high — track from day 1 of platform adoption.',
        '',
        ...DORA_CRITERIA,
    ];
}
/**
 * Returns developer portal acceptance criteria for HU.md.
 */
export function getDeveloperPortalCriteria(teamScale) {
    if (teamScale !== 'platform-engineering-candidate' && teamScale !== 'multi-team') {
        return [];
    }
    return ['', '## Developer Portal Requirements', '', ...DEVELOPER_PORTAL_CRITERIA];
}
/**
 * Returns onboarding automation acceptance criteria for HU.md.
 */
export function getOnboardingCriteria(teamScale) {
    if (teamScale !== 'platform-engineering-candidate' && teamScale !== 'multi-team') {
        return [];
    }
    return ['', '## Developer Onboarding Requirements', '', ...ONBOARDING_CRITERIA];
}
/**
 * Returns challenge questions for platform engineering specs.
 */
export function getPlatformChallengeQuestions() {
    return PLATFORM_CHALLENGE_QUESTIONS.map((q) => `- ${q}`);
}
/**
 * Returns DORA tools recommendation lines for suggest_tooling.
 */
export function buildDoraToolingLines() {
    return [
        '## DORA Metrics Tooling',
        '',
        '**Measure engineering performance with DORA 4 metrics:**',
        '',
        '| Tool | Type | Sources |',
        '|------|------|---------|',
        '| [Faros.ai](https://faros.ai) | Open-source | GitHub, Jira, PagerDuty, CircleCI |',
        '| [LinearB](https://linearb.io) | SaaS | Git + Jira/Linear (developer productivity) |',
        '| [Cortex](https://cortex.io) | SaaS | Engineering intelligence, service maturity scoring |',
        '| [GitHub Insights](https://github.com/features/insights) | Included | PR metrics, deployment frequency |',
        '',
        '**Quick start:** Faros.ai (open-source, deploy to your infra, multi-source)',
        '',
    ];
}
//# sourceMappingURL=dora-advisor.js.map