@@ -14,17 +14,17 @@ describe("emilPackage", () => {
1414 test ( "systemPrompt identity is Emil / EmilDirector (package id stays emil)" , ( ) => {
1515 const p = emilPackage . systemPrompt ;
1616 expect ( p ) . toMatch ( / E m i l D i r e c t o r \( E m i l \) / ) ;
17- expect ( p ) . toMatch ( / d e s i g n - e n g l a w s l a n e o n l y / i) ;
17+ expect ( p ) . toMatch ( / d e s i g n - e n g c r i t i q u e l a n e o n l y / i) ;
1818 } ) ;
1919
2020 test ( "systemPrompt states PRIMARY INTENT" , ( ) => {
2121 expect ( emilPackage . systemPrompt ) . toMatch ( / P R I M A R Y I N T E N T / i) ;
2222 expect ( emilPackage . systemPrompt ) . toContain ( "route to builder" ) ;
2323 } ) ;
2424
25- test ( "systemPrompt is design-eng laws review , never-fix" , ( ) => {
25+ test ( "systemPrompt is design-eng critique , never-fix" , ( ) => {
2626 const p = emilPackage . systemPrompt ;
27- expect ( p ) . toMatch ( / d e s i g n - e n g i n e e r i n g l a w s r e v i e w / i) ;
27+ expect ( p ) . toMatch ( / d e s i g n - e n g i n e e r i n g c r i t i q u e / i) ;
2828 expect ( p ) . toMatch ( / n e v e r f i x / i) ;
2929 expect ( p ) . toMatch ( / c i t e a t l e a s t o n e p e r f i n d i n g / i) ;
3030 expect ( p ) . toMatch ( / D e s i g n - e n g i n e e r i n g c r a f t / i) ;
@@ -37,12 +37,20 @@ describe("emilPackage", () => {
3737 expect ( p ) . not . toMatch ( / r o u t e t o c r i t i q u e \b / ) ;
3838 } ) ;
3939
40+ test ( "systemPrompt covers product decisions, not just code" , ( ) => {
41+ const p = emilPackage . systemPrompt ;
42+ expect ( p ) . toMatch ( / p r o d u c t d e c i s i o n s / i) ;
43+ expect ( p ) . toMatch (
44+ / c r i t i c a l e y e t h a t f i n d s p r o b l e m s t h r o u g h p r i n c i p l e s a n d e v i d e n c e / i,
45+ ) ;
46+ } ) ;
47+
4048 test ( "systemPrompt has blinders-on / brief-scoped design-eng review" , ( ) => {
4149 const p = emilPackage . systemPrompt ;
4250 expect ( p ) . toMatch ( / B L I N D E R S O N / i) ;
4351 expect ( p ) . toMatch ( / s u c c e s s _ c r i t e r i a / i) ;
4452 expect ( p ) . toMatch ( / D o n o t w a n d e r / i) ;
45- expect ( p ) . toMatch ( / i n v e n t l a w v i o l a t i o n s f r o m v i b e s / i) ;
53+ expect ( p ) . toMatch ( / i n v e n t l a w \s + v i o l a t i o n s f r o m v i b e s / i) ;
4654 } ) ;
4755
4856 test ( "systemPrompt keeps classic software laws as secondary lenses" , ( ) => {
@@ -53,6 +61,62 @@ describe("emilPackage", () => {
5361 expect ( p ) . toMatch ( / N o i m p l e m e n t a t i o n p r e s c r i p t i o n s / i) ;
5462 } ) ;
5563
64+ test ( "systemPrompt restores the Thinking & Reasoning laws (CL-7801)" , ( ) => {
65+ const p = emilPackage . systemPrompt ;
66+ expect ( p ) . toMatch ( / T h i n k i n g & r e a s o n i n g / i) ;
67+ expect ( p ) . toMatch ( / F i r s t P r i n c i p l e s / ) ;
68+ expect ( p ) . toMatch ( / I n v e r s i o n / ) ;
69+ expect ( p ) . toMatch ( / M a p I s N o t t h e T e r r i t o r y / ) ;
70+ expect ( p ) . toMatch ( / G i l b ' s L a w / ) ;
71+ } ) ;
72+
73+ test ( "systemPrompt restores the Boy Scout Rule (CL-7801)" , ( ) => {
74+ expect ( emilPackage . systemPrompt ) . toMatch ( / B o y S c o u t R u l e / ) ;
75+ } ) ;
76+
77+ test ( "systemPrompt restores the reviewer capabilities incl. temp tests (CL-7801)" , ( ) => {
78+ const p = emilPackage . systemPrompt ;
79+ expect ( p ) . toMatch ( / t m p \/ c r i t i q u e - t e s t s / ) ;
80+ expect ( p ) . toMatch ( / R u n e x i s t i n g t e s t s u i t e s / i) ;
81+ expect ( p ) . toMatch ( / l i n t e r | t y p e c h e c k e r | s t a t i c a n a l y s i s / i) ;
82+ expect ( p ) . toMatch (
83+ / I f a t e s t d i s p r o v e s y o u r h y p o t h e s i s , d i s c a r d t h a t f i n d i n g / i,
84+ ) ;
85+ } ) ;
86+
87+ test ( "systemPrompt restores the design-eng cross-reference checklist (CL-7801)" , ( ) => {
88+ const p = emilPackage . systemPrompt ;
89+ expect ( p ) . toMatch ( / c r o s s - r e f e r e n c e / i) ;
90+ expect ( p ) . toMatch ( / m i s s i n g w i l l - c h a n g e / i) ;
91+ expect ( p ) . toMatch ( / s c a l e - o n - p r e s s v a l u e s / i) ;
92+ expect ( p ) . toMatch ( / h i t a r e a m i n i m u m s / i) ;
93+ } ) ;
94+
95+ test ( "systemPrompt restores the full report format (CL-7801)" , ( ) => {
96+ const p = emilPackage . systemPrompt ;
97+ expect ( p ) . toMatch ( / # R e p o r t f o r m a t / i) ;
98+ expect ( p ) . toMatch ( / # # S u m m a r y / ) ;
99+ expect ( p ) . toMatch ( / # # F i n d i n g s / ) ;
100+ expect ( p ) . toMatch ( / # # T e s t r e s u l t s / ) ;
101+ expect ( p ) . toMatch ( / R e c o m m e n d e d t e s t s f o r p e r m a n e n t i n c l u s i o n / i) ;
102+ expect ( p ) . toMatch ( / # # O b s e r v a t i o n s / ) ;
103+ expect ( p ) . toMatch ( / # # B l o c k e r s / ) ;
104+ expect ( p ) . toMatch ( / # # P a t h s / ) ;
105+ expect ( p ) . toMatch ( / C o n f i d e n c e .* V E R I F I E D \/ H I G H \/ M E D I U M / ) ;
106+ } ) ;
107+
108+ test ( "systemPrompt restores guidelines and negative constraints (CL-7801)" , ( ) => {
109+ const p = emilPackage . systemPrompt ;
110+ expect ( p ) . toMatch ( / Q u a l i t y O v e r Q u a n t i t y / i) ;
111+ expect ( p ) . toMatch ( / C i t e t h e L a w / i) ;
112+ expect ( p ) . toMatch ( / E v i d e n c e R e q u i r e d / i) ;
113+ expect ( p ) . toMatch ( / S e v e r i t y M a t t e r s / i) ;
114+ expect ( p ) . toMatch ( / D o n ' t M o r a l i z e / i) ;
115+ expect ( p ) . toMatch ( / D o n o t m o d i f y p r o d u c t i o n c o d e / i) ;
116+ expect ( p ) . toMatch ( / D o n o t c o m m i t c h a n g e s / i) ;
117+ expect ( p ) . toMatch ( / D o n o t w r i t e p e r m a n e n t t e s t f i l e s / i) ;
118+ } ) ;
119+
56120 test ( "systemPrompt has no tool-schema restatement or fake caps" , ( ) => {
57121 const p = emilPackage . systemPrompt ;
58122 expect ( p ) . not . toMatch ( / p a r a m e t e r s ? : / i) ;
@@ -64,11 +128,7 @@ describe("emilPackage", () => {
64128 expect ( p ) . not . toMatch ( / S h e l l f i n d \/ r g / i) ;
65129 expect ( p ) . not . toMatch ( / W r i t e t o o l s a r e n o t m o u n t e d / i) ;
66130 expect ( p ) . not . toMatch ( / v i a r u n _ s h e l l / i) ;
67- expect ( p ) . not . toMatch ( / n o t t e m p t e s t f i l e s / i) ;
68- expect ( p ) . not . toMatch ( / # R e p o r t s h a p e / ) ;
69- expect ( p ) . not . toMatch ( / # # S u m m a r y / ) ;
70131 expect ( p ) . not . toMatch ( / N e v e r s p a w n / ) ;
71- expect ( p ) . not . toMatch ( / N e v e r c o m m i t / ) ;
72132 } ) ;
73133
74134 test ( "spawn.maySpawn is false" , ( ) => {
@@ -88,6 +148,12 @@ describe("emilPackage", () => {
88148 expect ( emilPackage . modelRole ) . toBe ( "review" ) ;
89149 } ) ;
90150
151+ test ( "description matches the CMO original (CL-7801)" , ( ) => {
152+ expect ( emilPackage . description ) . toMatch ( / D e s i g n e n g i n e e r i n g c r i t i q u e / i) ;
153+ expect ( emilPackage . description ) . toMatch ( / p r o d u c t d e c i s i o n s / i) ;
154+ expect ( emilPackage . description ) . toMatch ( / n e v e r f i x e s t h e m / i) ;
155+ } ) ;
156+
91157 test ( "primaryIntent and outOfLane match emil lane" , ( ) => {
92158 expect ( emilPackage . primaryIntent ) . toBe (
93159 "Design-engineering laws review; never fix product code" ,
0 commit comments