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>
92 lines
4.9 KiB
SQL
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);
|