Reference implementation for the Phoenix Architecture. Work in progress. aicoding.leaflet.pub/
ai coding crazy
at main 88 lines 2.0 kB view raw
1/** 2 * Implementation Unit (IU) — stable compilation boundary. 3 * 4 * Maps canonical requirements to generated code modules. 5 */ 6 7export type IUKind = 'module' | 'function'; 8export type RiskTier = 'low' | 'medium' | 'high' | 'critical'; 9 10export interface IUContract { 11 /** Description of what this IU does */ 12 description: string; 13 /** Input types / parameters */ 14 inputs: string[]; 15 /** Output types / return values */ 16 outputs: string[]; 17 /** Invariants that must hold */ 18 invariants: string[]; 19} 20 21export interface BoundaryPolicy { 22 code: { 23 allowed_ius: string[]; 24 allowed_packages: string[]; 25 forbidden_ius: string[]; 26 forbidden_packages: string[]; 27 forbidden_paths: string[]; 28 }; 29 side_channels: { 30 databases: string[]; 31 queues: string[]; 32 caches: string[]; 33 config: string[]; 34 external_apis: string[]; 35 files: string[]; 36 }; 37} 38 39export interface EnforcementConfig { 40 dependency_violation: { severity: 'error' | 'warning' }; 41 side_channel_violation: { severity: 'error' | 'warning' }; 42} 43 44export interface EvidencePolicy { 45 /** What evidence is required for this risk tier */ 46 required: string[]; 47} 48 49export interface ImplementationUnit { 50 iu_id: string; 51 kind: IUKind; 52 name: string; 53 risk_tier: RiskTier; 54 contract: IUContract; 55 source_canon_ids: string[]; 56 dependencies: string[]; 57 boundary_policy: BoundaryPolicy; 58 enforcement: EnforcementConfig; 59 evidence_policy: EvidencePolicy; 60 output_files: string[]; 61} 62 63export function defaultBoundaryPolicy(): BoundaryPolicy { 64 return { 65 code: { 66 allowed_ius: [], 67 allowed_packages: [], 68 forbidden_ius: [], 69 forbidden_packages: [], 70 forbidden_paths: [], 71 }, 72 side_channels: { 73 databases: [], 74 queues: [], 75 caches: [], 76 config: [], 77 external_apis: [], 78 files: [], 79 }, 80 }; 81} 82 83export function defaultEnforcement(): EnforcementConfig { 84 return { 85 dependency_violation: { severity: 'error' }, 86 side_channel_violation: { severity: 'warning' }, 87 }; 88}