npi-2026/db/init/002_seed_gates.sql
DJP 26d3eb03ed Initial commit — NPI Tracker application
Full-stack NPI (New Product Introduction) gate tracking tool with:
- Express/TypeScript API with PostgreSQL
- React/Vite/Mantine frontend
- 13-gate process (G0-G12) with 4 product categories
- RACI matrix auto-population from templates
- File attachments with preview (images, PDFs, text)
- Kanban board, Gantt/timeline views
- Docker Compose orchestration

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 14:36:31 -04:00

92 lines
4.9 KiB
SQL

-- Seed the 13 NPI gates (G0-G12)
INSERT INTO gates (gate_number, name, description, sort_order) VALUES
(0, 'Intake, Classification & Tailoring', 'Route work to correct governance path. Ensure no shadow agents.', 0),
(1, 'Idea/Request Filtering (Ideation)', 'Confirm work is worthwhile pursuing. Define use case and success criteria.', 1),
(2, 'Prioritisation', 'Agree priority vs other work. Commercial viability check.', 2),
(3, 'Concept Development', 'Define "what and why" clearly. Safety, compliance, legal, commercial sign-offs.', 3),
(4, 'Design', 'Turn concept into build-ready requirements. Architecture and integration patterns.', 4),
(5, 'Build & Test (Iterative)', 'Build and test working increments. Quality gates and evaluation.', 5),
(6, 'Launch Readiness', 'Ensure business and operations readiness for launch.', 6),
(7, 'Feature Handover', 'Formal handover to deploy/support owners.', 7),
(8, 'Staging Testing', 'Prove release stability in production-like environment.', 8),
(9, 'UAT', 'Validate against user/client needs.', 9),
(10, 'Live Deployment + Beta', 'Deploy safely and confirm production verification.', 10),
(11, 'Support, Hypercare & BAU', 'Stabilise, measure outcomes, transition to BAU.', 11),
(12, 'End of Life', 'Retire safely and cleanly.', 12);
-- Gate applicability per agent type
-- Cat I: lightweight, skips many gates
-- Cat IB: moderate governance
-- Cat II: full internal governance
-- Cat III: full governance + commercial
-- All agent types go through G0, G1, G5, G11, G12
INSERT INTO gate_applicability (gate_id, category, is_required, is_trigger_based) VALUES
-- G0: All types
((SELECT id FROM gates WHERE gate_number = 0), 'I', true, false),
((SELECT id FROM gates WHERE gate_number = 0), 'IB', true, false),
((SELECT id FROM gates WHERE gate_number = 0), 'II', true, false),
((SELECT id FROM gates WHERE gate_number = 0), 'III', true, false),
-- G1: All types
((SELECT id FROM gates WHERE gate_number = 1), 'I', true, false),
((SELECT id FROM gates WHERE gate_number = 1), 'IB', true, false),
((SELECT id FROM gates WHERE gate_number = 1), 'II', true, false),
((SELECT id FROM gates WHERE gate_number = 1), 'III', true, false),
-- G2: IB, II, III (skip for I)
((SELECT id FROM gates WHERE gate_number = 2), 'IB', true, false),
((SELECT id FROM gates WHERE gate_number = 2), 'II', true, false),
((SELECT id FROM gates WHERE gate_number = 2), 'III', true, false),
-- G3: trigger-based for I, required for IB+
((SELECT id FROM gates WHERE gate_number = 3), 'I', false, true),
((SELECT id FROM gates WHERE gate_number = 3), 'IB', true, false),
((SELECT id FROM gates WHERE gate_number = 3), 'II', true, false),
((SELECT id FROM gates WHERE gate_number = 3), 'III', true, false),
-- G4: II, III only
((SELECT id FROM gates WHERE gate_number = 4), 'II', true, false),
((SELECT id FROM gates WHERE gate_number = 4), 'III', true, false),
-- G5: All types
((SELECT id FROM gates WHERE gate_number = 5), 'I', true, false),
((SELECT id FROM gates WHERE gate_number = 5), 'IB', true, false),
((SELECT id FROM gates WHERE gate_number = 5), 'II', true, false),
((SELECT id FROM gates WHERE gate_number = 5), 'III', true, false),
-- G6: II, III only
((SELECT id FROM gates WHERE gate_number = 6), 'II', true, false),
((SELECT id FROM gates WHERE gate_number = 6), 'III', true, false),
-- G7: IB, II, III
((SELECT id FROM gates WHERE gate_number = 7), 'IB', true, false),
((SELECT id FROM gates WHERE gate_number = 7), 'II', true, false),
((SELECT id FROM gates WHERE gate_number = 7), 'III', true, false),
-- G8: II, III only
((SELECT id FROM gates WHERE gate_number = 8), 'II', true, false),
((SELECT id FROM gates WHERE gate_number = 8), 'III', true, false),
-- G9: II, III only
((SELECT id FROM gates WHERE gate_number = 9), 'II', true, false),
((SELECT id FROM gates WHERE gate_number = 9), 'III', true, false),
-- G10: All types (deploy)
((SELECT id FROM gates WHERE gate_number = 10), 'I', true, false),
((SELECT id FROM gates WHERE gate_number = 10), 'IB', true, false),
((SELECT id FROM gates WHERE gate_number = 10), 'II', true, false),
((SELECT id FROM gates WHERE gate_number = 10), 'III', true, false),
-- G11: All types
((SELECT id FROM gates WHERE gate_number = 11), 'I', true, false),
((SELECT id FROM gates WHERE gate_number = 11), 'IB', true, false),
((SELECT id FROM gates WHERE gate_number = 11), 'II', true, false),
((SELECT id FROM gates WHERE gate_number = 11), 'III', true, false),
-- G12: All types
((SELECT id FROM gates WHERE gate_number = 12), 'I', true, false),
((SELECT id FROM gates WHERE gate_number = 12), 'IB', true, false),
((SELECT id FROM gates WHERE gate_number = 12), 'II', true, false),
((SELECT id FROM gates WHERE gate_number = 12), 'III', true, false);