[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"summaries-tag-harness engineering":3,"summaries-facets-categories":4,"articles-tag-harness engineering":3590},[],[5,8,11,14,17,20,22,24,26,28,30,32,35,37,39,41,43,45,47,49,51,53,56,59,61,63,66,68,70,73,75,77,79,81,83,85,87,89,91,93,95,97,99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,129,131,133,135,137,139,141,143,145,147,149,151,153,155,157,159,161,163,165,167,169,171,173,175,177,179,181,183,185,187,189,191,193,195,197,199,201,203,205,207,209,211,213,215,217,219,221,223,225,227,229,231,233,235,237,239,241,243,245,247,249,251,253,255,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,311,313,315,317,319,321,323,325,327,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394,396,398,400,402,404,406,408,410,412,414,416,418,420,422,424,426,428,430,432,434,436,438,440,442,444,446,448,450,452,454,456,458,460,462,464,466,468,470,472,474,476,478,480,482,484,486,488,490,492,494,496,498,500,502,504,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,564,566,568,570,572,574,576,578,580,582,584,586,588,590,592,594,596,598,600,602,604,606,608,610,612,614,616,618,620,622,624,626,628,630,632,634,636,638,640,642,644,646,648,650,652,654,656,658,660,662,664,666,668,670,672,674,676,678,680,682,684,686,688,690,692,694,696,698,700,702,704,706,708,710,712,714,716,718,720,722,724,726,728,730,732,734,736,738,740,742,744,746,748,750,752,754,756,758,760,762,764,766,768,770,772,774,776,778,780,782,784,786,788,790,792,794,796,798,800,802,804,806,808,810,812,814,816,818,820,822,824,826,828,830,832,834,836,838,840,842,844,846,848,850,852,854,856,858,860,862,864,866,868,870,872,874,876,878,880,882,884,886,888,890,892,894,896,898,900,902,904,906,908,910,912,914,916,918,920,922,924,926,928,930,932,934,936,938,940,942,944,946,948,950,952,954,956,958,960,962,964,966,968,970,972,974,976,978,980,982,984,986,988,990,992,994,996,998,1000,1002,1004,1006,1008,1010,1012,1014,1016,1018,1020,1022,1024,1026,1028,1030,1032,1034,1036,1038,1040,1042,1044,1046,1048,1050,1052,1054,1056,1058,1060,1062,1064,1066,1068,1070,1072,1074,1076,1078,1080,1082,1084,1086,1088,1090,1092,1094,1096,1098,1100,1102,1104,1106,1108,1110,1112,1114,1116,1118,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1154,1156,1158,1160,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1216,1218,1220,1222,1224,1226,1228,1230,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1328,1330,1332,1334,1336,1338,1340,1342,1344,1346,1348,1350,1352,1354,1356,1358,1360,1362,1364,1366,1368,1370,1372,1374,1376,1378,1380,1382,1384,1386,1388,1390,1392,1394,1396,1398,1400,1402,1404,1406,1408,1410,1412,1414,1416,1418,1420,1422,1424,1426,1428,1430,1432,1434,1436,1438,1440,1442,1444,1446,1448,1450,1452,1454,1456,1458,1460,1462,1464,1466,1468,1470,1472,1474,1476,1478,1480,1482,1484,1486,1488,1490,1492,1494,1496,1498,1500,1502,1504,1506,1508,1510,1512,1514,1516,1518,1520,1522,1524,1526,1528,1530,1532,1534,1536,1538,1540,1542,1544,1546,1548,1550,1552,1554,1556,1558,1560,1562,1564,1566,1568,1570,1572,1574,1576,1578,1580,1582,1584,1586,1588,1590,1592,1594,1596,1598,1600,1602,1604,1606,1608,1610,1612,1614,1616,1618,1620,1622,1624,1626,1628,1630,1632,1634,1636,1638,1640,1642,1644,1646,1648,1650,1652,1654,1656,1658,1660,1662,1664,1666,1668,1670,1672,1674,1676,1678,1680,1682,1684,1686,1688,1690,1692,1694,1696,1698,1700,1702,1704,1706,1708,1710,1712,1714,1716,1718,1720,1722,1724,1726,1728,1730,1732,1734,1736,1738,1740,1742,1744,1746,1748,1750,1752,1754,1756,1758,1760,1762,1764,1766,1768,1770,1772,1774,1776,1778,1780,1782,1784,1786,1788,1790,1792,1794,1796,1798,1800,1802,1804,1806,1808,1810,1812,1814,1816,1818,1820,1822,1824,1826,1828,1830,1832,1834,1836,1838,1840,1842,1844,1846,1848,1850,1852,1854,1856,1858,1860,1862,1864,1866,1868,1870,1872,1874,1876,1878,1880,1882,1884,1886,1888,1890,1892,1894,1896,1898,1900,1902,1904,1906,1908,1910,1912,1914,1916,1918,1920,1922,1924,1926,1928,1930,1932,1934,1936,1938,1940,1942,1944,1946,1948,1950,1952,1954,1956,1958,1960,1962,1964,1966,1968,1970,1972,1974,1976,1978,1980,1982,1984,1986,1988,1990,1992,1994,1996,1998,2000,2002,2004,2006,2008,2010,2012,2014,2016,2018,2020,2022,2024,2026,2028,2030,2032,2034,2036,2038,2040,2042,2044,2046,2048,2050,2052,2054,2056,2058,2060,2062,2064,2066,2068,2070,2072,2074,2076,2078,2080,2082,2084,2086,2088,2090,2092,2094,2096,2098,2100,2102,2104,2106,2108,2110,2112,2114,2116,2118,2120,2122,2124,2126,2128,2130,2132,2134,2136,2138,2140,2142,2144,2146,2148,2150,2152,2154,2156,2158,2160,2162,2164,2166,2168,2170,2172,2174,2176,2178,2180,2182,2184,2186,2188,2190,2192,2194,2196,2198,2200,2202,2204,2206,2208,2210,2212,2214,2216,2218,2220,2222,2224,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2254,2256,2258,2260,2262,2264,2266,2268,2270,2272,2274,2276,2278,2280,2282,2284,2286,2288,2290,2292,2294,2296,2298,2300,2302,2304,2306,2308,2310,2312,2314,2316,2318,2320,2322,2324,2326,2328,2330,2332,2334,2336,2338,2340,2342,2344,2346,2348,2350,2352,2354,2356,2358,2360,2362,2364,2366,2368,2370,2372,2374,2376,2378,2380,2382,2384,2386,2388,2390,2392,2394,2396,2398,2400,2402,2404,2406,2408,2410,2412,2414,2416,2418,2420,2422,2424,2426,2428,2430,2432,2434,2436,2438,2440,2442,2444,2446,2448,2450,2452,2454,2456,2458,2460,2462,2464,2466,2468,2470,2472,2474,2476,2478,2480,2482,2484,2486,2488,2490,2492,2494,2496,2498,2500,2502,2504,2506,2508,2510,2512,2514,2516,2518,2520,2522,2524,2526,2528,2530,2532,2534,2536,2538,2540,2542,2544,2546,2548,2550,2552,2554,2556,2558,2560,2562,2564,2566,2568,2570,2572,2574,2576,2578,2580,2582,2584,2586,2588,2590,2592,2594,2596,2598,2600,2602,2604,2606,2608,2610,2612,2614,2616,2618,2620,2622,2624,2626,2628,2630,2632,2634,2636,2638,2640,2642,2644,2646,2648,2650,2652,2654,2656,2658,2660,2662,2664,2666,2668,2670,2672,2674,2676,2678,2680,2682,2684,2686,2688,2690,2692,2694,2696,2698,2700,2702,2704,2706,2708,2710,2712,2714,2716,2718,2720,2722,2724,2726,2728,2730,2732,2734,2736,2738,2740,2742,2744,2746,2748,2750,2752,2754,2756,2758,2760,2762,2764,2766,2768,2770,2772,2774,2776,2778,2780,2782,2784,2786,2788,2790,2792,2794,2796,2798,2800,2802,2804,2806,2808,2810,2812,2814,2816,2818,2820,2822,2824,2826,2828,2830,2832,2834,2836,2838,2840,2842,2844,2846,2848,2850,2852,2854,2856,2858,2860,2862,2864,2866,2868,2870,2872,2874,2876,2878,2880,2882,2884,2886,2888,2890,2892,2894,2896,2898,2900,2902,2904,2906,2908,2910,2912,2914,2916,2918,2920,2922,2924,2926,2928,2930,2932,2934,2936,2938,2940,2942,2944,2946,2948,2950,2952,2954,2956,2958,2960,2962,2964,2966,2968,2970,2972,2974,2976,2978,2980,2982,2984,2986,2988,2990,2992,2994,2996,2998,3000,3002,3004,3006,3008,3010,3012,3014,3016,3018,3020,3022,3024,3026,3028,3030,3032,3034,3036,3038,3040,3042,3044,3046,3048,3050,3052,3054,3056,3058,3060,3062,3064,3066,3068,3070,3072,3074,3076,3078,3080,3082,3084,3086,3088,3090,3092,3094,3096,3098,3100,3102,3104,3106,3108,3110,3112,3114,3116,3118,3120,3122,3124,3126,3128,3130,3132,3134,3136,3138,3140,3142,3144,3146,3148,3150,3152,3154,3156,3158,3160,3162,3164,3166,3168,3170,3172,3174,3176,3178,3180,3182,3184,3186,3188,3190,3192,3194,3196,3198,3200,3202,3204,3206,3208,3210,3212,3214,3216,3218,3220,3222,3224,3226,3228,3230,3232,3234,3236,3238,3240,3242,3244,3246,3248,3250,3252,3254,3256,3258,3260,3262,3264,3266,3268,3270,3272,3274,3276,3278,3280,3282,3284,3286,3288,3290,3292,3294,3296,3298,3300,3302,3304,3306,3308,3310,3312,3314,3316,3318,3320,3322,3324,3326,3328,3330,3332,3334,3336,3338,3340,3342,3344,3346,3348,3350,3352,3354,3356,3358,3360,3362,3364,3366,3368,3370,3372,3374,3376,3378,3380,3382,3384,3386,3388,3390,3392,3394,3396,3398,3400,3402,3404,3406,3408,3410,3412,3414,3416,3418,3420,3422,3424,3426,3428,3430,3432,3434,3436,3438,3440,3442,3444,3446,3448,3450,3452,3454,3456,3458,3460,3462,3464,3466,3468,3470,3472,3474,3476,3478,3480,3482,3484,3486,3488,3490,3492,3494,3496,3498,3500,3502,3504,3506,3508,3510,3512,3514,3516,3518,3520,3522,3524,3526,3528,3530,3532,3534,3536,3538,3540,3542,3544,3546,3548,3550,3552,3554,3556,3558,3560,3562,3564,3566,3568,3570,3572,3574,3576,3578,3580,3582,3584,3586,3588],{"categories":6},[7],"Developer Productivity",{"categories":9},[10],"Business & SaaS",{"categories":12},[13],"AI & LLMs",{"categories":15},[16],"AI Automation",{"categories":18},[19],"Product Strategy",{"categories":21},[13],{"categories":23},[7],{"categories":25},[10],{"categories":27},[],{"categories":29},[13],{"categories":31},[],{"categories":33},[34],"AI News & Trends",{"categories":36},[16],{"categories":38},[34],{"categories":40},[16],{"categories":42},[16],{"categories":44},[13],{"categories":46},[13],{"categories":48},[34],{"categories":50},[13],{"categories":52},[],{"categories":54},[55],"Design & Frontend",{"categories":57},[58],"Data Science & Visualization",{"categories":60},[34],{"categories":62},[],{"categories":64},[65],"Software Engineering",{"categories":67},[13],{"categories":69},[16],{"categories":71},[72],"Marketing & Growth",{"categories":74},[13],{"categories":76},[16],{"categories":78},[],{"categories":80},[],{"categories":82},[55],{"categories":84},[16],{"categories":86},[7],{"categories":88},[55],{"categories":90},[13],{"categories":92},[16],{"categories":94},[34],{"categories":96},[],{"categories":98},[],{"categories":100},[16],{"categories":102},[65],{"categories":104},[],{"categories":106},[10],{"categories":108},[],{"categories":110},[],{"categories":112},[16],{"categories":114},[16],{"categories":116},[13],{"categories":118},[],{"categories":120},[65],{"categories":122},[],{"categories":124},[],{"categories":126},[],{"categories":128},[13],{"categories":130},[72],{"categories":132},[55],{"categories":134},[55],{"categories":136},[13],{"categories":138},[16],{"categories":140},[13],{"categories":142},[13],{"categories":144},[16],{"categories":146},[16],{"categories":148},[58],{"categories":150},[34],{"categories":152},[16],{"categories":154},[72],{"categories":156},[16],{"categories":158},[19],{"categories":160},[],{"categories":162},[16],{"categories":164},[],{"categories":166},[16],{"categories":168},[65],{"categories":170},[55],{"categories":172},[13],{"categories":174},[],{"categories":176},[],{"categories":178},[16],{"categories":180},[],{"categories":182},[13],{"categories":184},[],{"categories":186},[7],{"categories":188},[65],{"categories":190},[10],{"categories":192},[34],{"categories":194},[13],{"categories":196},[],{"categories":198},[13],{"categories":200},[],{"categories":202},[65],{"categories":204},[58],{"categories":206},[],{"categories":208},[13],{"categories":210},[55],{"categories":212},[],{"categories":214},[55],{"categories":216},[16],{"categories":218},[],{"categories":220},[16],{"categories":222},[34],{"categories":224},[10],{"categories":226},[13],{"categories":228},[],{"categories":230},[16],{"categories":232},[13],{"categories":234},[19],{"categories":236},[],{"categories":238},[13],{"categories":240},[16],{"categories":242},[16],{"categories":244},[],{"categories":246},[58],{"categories":248},[13],{"categories":250},[],{"categories":252},[7],{"categories":254},[10],{"categories":256},[13],{"categories":258},[16],{"categories":260},[65],{"categories":262},[13],{"categories":264},[],{"categories":266},[],{"categories":268},[13],{"categories":270},[],{"categories":272},[55],{"categories":274},[],{"categories":276},[13],{"categories":278},[],{"categories":280},[16],{"categories":282},[13],{"categories":284},[55],{"categories":286},[],{"categories":288},[13],{"categories":290},[13],{"categories":292},[10],{"categories":294},[16],{"categories":296},[13],{"categories":298},[55],{"categories":300},[16],{"categories":302},[],{"categories":304},[],{"categories":306},[34],{"categories":308},[],{"categories":310},[13],{"categories":312},[10,72],{"categories":314},[],{"categories":316},[13],{"categories":318},[],{"categories":320},[],{"categories":322},[13],{"categories":324},[],{"categories":326},[13],{"categories":328},[329],"DevOps & Cloud",{"categories":331},[],{"categories":333},[34],{"categories":335},[55],{"categories":337},[],{"categories":339},[34],{"categories":341},[34],{"categories":343},[13],{"categories":345},[72],{"categories":347},[],{"categories":349},[10],{"categories":351},[],{"categories":353},[13,329],{"categories":355},[13],{"categories":357},[13],{"categories":359},[16],{"categories":361},[13,65],{"categories":363},[58],{"categories":365},[13],{"categories":367},[72],{"categories":369},[16],{"categories":371},[16],{"categories":373},[],{"categories":375},[16],{"categories":377},[13,10],{"categories":379},[],{"categories":381},[55],{"categories":383},[55],{"categories":385},[],{"categories":387},[],{"categories":389},[34],{"categories":391},[],{"categories":393},[7],{"categories":395},[65],{"categories":397},[13],{"categories":399},[55],{"categories":401},[16],{"categories":403},[65],{"categories":405},[34],{"categories":407},[55],{"categories":409},[],{"categories":411},[13],{"categories":413},[13],{"categories":415},[13],{"categories":417},[34],{"categories":419},[7],{"categories":421},[13],{"categories":423},[16],{"categories":425},[329],{"categories":427},[55],{"categories":429},[16],{"categories":431},[],{"categories":433},[],{"categories":435},[55],{"categories":437},[34],{"categories":439},[58],{"categories":441},[],{"categories":443},[13],{"categories":445},[13],{"categories":447},[10],{"categories":449},[13],{"categories":451},[13],{"categories":453},[34],{"categories":455},[],{"categories":457},[16],{"categories":459},[65],{"categories":461},[],{"categories":463},[13],{"categories":465},[13],{"categories":467},[16],{"categories":469},[],{"categories":471},[],{"categories":473},[13],{"categories":475},[],{"categories":477},[10],{"categories":479},[16],{"categories":481},[],{"categories":483},[7],{"categories":485},[13],{"categories":487},[10],{"categories":489},[34],{"categories":491},[],{"categories":493},[],{"categories":495},[],{"categories":497},[34],{"categories":499},[34],{"categories":501},[],{"categories":503},[],{"categories":505},[10],{"categories":507},[],{"categories":509},[],{"categories":511},[7],{"categories":513},[],{"categories":515},[72],{"categories":517},[16],{"categories":519},[10],{"categories":521},[16],{"categories":523},[65],{"categories":525},[],{"categories":527},[19],{"categories":529},[55],{"categories":531},[65],{"categories":533},[13],{"categories":535},[16],{"categories":537},[10],{"categories":539},[13],{"categories":541},[],{"categories":543},[],{"categories":545},[65],{"categories":547},[58],{"categories":549},[19],{"categories":551},[16],{"categories":553},[13],{"categories":555},[],{"categories":557},[329],{"categories":559},[],{"categories":561},[16],{"categories":563},[],{"categories":565},[],{"categories":567},[13],{"categories":569},[55],{"categories":571},[72],{"categories":573},[16],{"categories":575},[],{"categories":577},[7],{"categories":579},[],{"categories":581},[34],{"categories":583},[13,329],{"categories":585},[34],{"categories":587},[13],{"categories":589},[10],{"categories":591},[13],{"categories":593},[],{"categories":595},[10],{"categories":597},[],{"categories":599},[65],{"categories":601},[55],{"categories":603},[34],{"categories":605},[58],{"categories":607},[7],{"categories":609},[13],{"categories":611},[65],{"categories":613},[],{"categories":615},[],{"categories":617},[19],{"categories":619},[],{"categories":621},[13],{"categories":623},[],{"categories":625},[55],{"categories":627},[55],{"categories":629},[55],{"categories":631},[],{"categories":633},[],{"categories":635},[34],{"categories":637},[16],{"categories":639},[13],{"categories":641},[13],{"categories":643},[13],{"categories":645},[10],{"categories":647},[13],{"categories":649},[],{"categories":651},[65],{"categories":653},[65],{"categories":655},[10],{"categories":657},[],{"categories":659},[13],{"categories":661},[13],{"categories":663},[10],{"categories":665},[34],{"categories":667},[72],{"categories":669},[16],{"categories":671},[],{"categories":673},[55],{"categories":675},[],{"categories":677},[13],{"categories":679},[],{"categories":681},[10],{"categories":683},[16],{"categories":685},[],{"categories":687},[329],{"categories":689},[58],{"categories":691},[65],{"categories":693},[72],{"categories":695},[65],{"categories":697},[16],{"categories":699},[],{"categories":701},[],{"categories":703},[16],{"categories":705},[7],{"categories":707},[16],{"categories":709},[19],{"categories":711},[10],{"categories":713},[],{"categories":715},[13],{"categories":717},[19],{"categories":719},[13],{"categories":721},[13],{"categories":723},[72],{"categories":725},[55],{"categories":727},[16],{"categories":729},[],{"categories":731},[],{"categories":733},[329],{"categories":735},[65],{"categories":737},[],{"categories":739},[16],{"categories":741},[13],{"categories":743},[55,13],{"categories":745},[7],{"categories":747},[],{"categories":749},[13],{"categories":751},[7],{"categories":753},[55],{"categories":755},[16],{"categories":757},[65],{"categories":759},[],{"categories":761},[13],{"categories":763},[],{"categories":765},[7],{"categories":767},[],{"categories":769},[16],{"categories":771},[19],{"categories":773},[13],{"categories":775},[13],{"categories":777},[55],{"categories":779},[16],{"categories":781},[329],{"categories":783},[55],{"categories":785},[16],{"categories":787},[13],{"categories":789},[13],{"categories":791},[13],{"categories":793},[34],{"categories":795},[],{"categories":797},[19],{"categories":799},[16],{"categories":801},[55],{"categories":803},[16],{"categories":805},[65],{"categories":807},[55],{"categories":809},[16],{"categories":811},[34],{"categories":813},[],{"categories":815},[13],{"categories":817},[55],{"categories":819},[13],{"categories":821},[7],{"categories":823},[34],{"categories":825},[13],{"categories":827},[72],{"categories":829},[13],{"categories":831},[13],{"categories":833},[16],{"categories":835},[16],{"categories":837},[13],{"categories":839},[16],{"categories":841},[55],{"categories":843},[13],{"categories":845},[],{"categories":847},[],{"categories":849},[65],{"categories":851},[],{"categories":853},[7],{"categories":855},[329],{"categories":857},[],{"categories":859},[7],{"categories":861},[10],{"categories":863},[72],{"categories":865},[],{"categories":867},[10],{"categories":869},[],{"categories":871},[],{"categories":873},[],{"categories":875},[],{"categories":877},[],{"categories":879},[13],{"categories":881},[16],{"categories":883},[329],{"categories":885},[7],{"categories":887},[13],{"categories":889},[65],{"categories":891},[19],{"categories":893},[13],{"categories":895},[72],{"categories":897},[13],{"categories":899},[13],{"categories":901},[13],{"categories":903},[13,7],{"categories":905},[65],{"categories":907},[65],{"categories":909},[55],{"categories":911},[13],{"categories":913},[],{"categories":915},[],{"categories":917},[],{"categories":919},[65],{"categories":921},[58],{"categories":923},[34],{"categories":925},[55],{"categories":927},[],{"categories":929},[13],{"categories":931},[13],{"categories":933},[],{"categories":935},[],{"categories":937},[16],{"categories":939},[13],{"categories":941},[10],{"categories":943},[],{"categories":945},[7],{"categories":947},[13],{"categories":949},[7],{"categories":951},[13],{"categories":953},[65],{"categories":955},[72],{"categories":957},[13,55],{"categories":959},[34],{"categories":961},[55],{"categories":963},[],{"categories":965},[329],{"categories":967},[55],{"categories":969},[16],{"categories":971},[],{"categories":973},[],{"categories":975},[],{"categories":977},[],{"categories":979},[65],{"categories":981},[16],{"categories":983},[16],{"categories":985},[329],{"categories":987},[13],{"categories":989},[13],{"categories":991},[13],{"categories":993},[],{"categories":995},[55],{"categories":997},[],{"categories":999},[],{"categories":1001},[16],{"categories":1003},[],{"categories":1005},[],{"categories":1007},[72],{"categories":1009},[72],{"categories":1011},[16],{"categories":1013},[],{"categories":1015},[13],{"categories":1017},[13],{"categories":1019},[65],{"categories":1021},[55],{"categories":1023},[55],{"categories":1025},[16],{"categories":1027},[7],{"categories":1029},[13],{"categories":1031},[55],{"categories":1033},[55],{"categories":1035},[16],{"categories":1037},[16],{"categories":1039},[13],{"categories":1041},[],{"categories":1043},[],{"categories":1045},[13],{"categories":1047},[16],{"categories":1049},[34],{"categories":1051},[65],{"categories":1053},[7],{"categories":1055},[13],{"categories":1057},[],{"categories":1059},[16],{"categories":1061},[16],{"categories":1063},[],{"categories":1065},[7],{"categories":1067},[13],{"categories":1069},[7],{"categories":1071},[7],{"categories":1073},[],{"categories":1075},[],{"categories":1077},[16],{"categories":1079},[16],{"categories":1081},[13],{"categories":1083},[13],{"categories":1085},[34],{"categories":1087},[58],{"categories":1089},[19],{"categories":1091},[34],{"categories":1093},[55],{"categories":1095},[],{"categories":1097},[34],{"categories":1099},[],{"categories":1101},[],{"categories":1103},[],{"categories":1105},[],{"categories":1107},[65],{"categories":1109},[58],{"categories":1111},[],{"categories":1113},[13],{"categories":1115},[13],{"categories":1117},[58],{"categories":1119},[65],{"categories":1121},[],{"categories":1123},[],{"categories":1125},[16],{"categories":1127},[34],{"categories":1129},[34],{"categories":1131},[16],{"categories":1133},[7],{"categories":1135},[13,329],{"categories":1137},[],{"categories":1139},[55],{"categories":1141},[7],{"categories":1143},[16],{"categories":1145},[55],{"categories":1147},[],{"categories":1149},[16],{"categories":1151},[16],{"categories":1153},[13],{"categories":1155},[72],{"categories":1157},[65],{"categories":1159},[55],{"categories":1161},[],{"categories":1163},[16],{"categories":1165},[13],{"categories":1167},[16],{"categories":1169},[16],{"categories":1171},[16],{"categories":1173},[72],{"categories":1175},[16],{"categories":1177},[13],{"categories":1179},[],{"categories":1181},[72],{"categories":1183},[34],{"categories":1185},[16],{"categories":1187},[],{"categories":1189},[],{"categories":1191},[13],{"categories":1193},[16],{"categories":1195},[34],{"categories":1197},[16],{"categories":1199},[],{"categories":1201},[],{"categories":1203},[],{"categories":1205},[16],{"categories":1207},[],{"categories":1209},[],{"categories":1211},[58],{"categories":1213},[13],{"categories":1215},[58],{"categories":1217},[34],{"categories":1219},[13],{"categories":1221},[13],{"categories":1223},[16],{"categories":1225},[13],{"categories":1227},[],{"categories":1229},[],{"categories":1231},[329],{"categories":1233},[],{"categories":1235},[],{"categories":1237},[7],{"categories":1239},[],{"categories":1241},[],{"categories":1243},[],{"categories":1245},[],{"categories":1247},[65],{"categories":1249},[34],{"categories":1251},[72],{"categories":1253},[10],{"categories":1255},[13],{"categories":1257},[13],{"categories":1259},[10],{"categories":1261},[],{"categories":1263},[55],{"categories":1265},[16],{"categories":1267},[10],{"categories":1269},[13],{"categories":1271},[13],{"categories":1273},[7],{"categories":1275},[],{"categories":1277},[7],{"categories":1279},[13],{"categories":1281},[72],{"categories":1283},[16],{"categories":1285},[34],{"categories":1287},[10],{"categories":1289},[13],{"categories":1291},[16],{"categories":1293},[],{"categories":1295},[13],{"categories":1297},[7],{"categories":1299},[13],{"categories":1301},[],{"categories":1303},[34],{"categories":1305},[13],{"categories":1307},[],{"categories":1309},[10],{"categories":1311},[13],{"categories":1313},[],{"categories":1315},[],{"categories":1317},[],{"categories":1319},[13],{"categories":1321},[],{"categories":1323},[329],{"categories":1325},[13],{"categories":1327},[],{"categories":1329},[13],{"categories":1331},[13],{"categories":1333},[13],{"categories":1335},[13,329],{"categories":1337},[13],{"categories":1339},[13],{"categories":1341},[55],{"categories":1343},[16],{"categories":1345},[],{"categories":1347},[16],{"categories":1349},[13],{"categories":1351},[13],{"categories":1353},[13],{"categories":1355},[7],{"categories":1357},[7],{"categories":1359},[65],{"categories":1361},[55],{"categories":1363},[16],{"categories":1365},[],{"categories":1367},[13],{"categories":1369},[34],{"categories":1371},[13],{"categories":1373},[10],{"categories":1375},[],{"categories":1377},[329],{"categories":1379},[55],{"categories":1381},[55],{"categories":1383},[16],{"categories":1385},[34],{"categories":1387},[16],{"categories":1389},[13],{"categories":1391},[],{"categories":1393},[13],{"categories":1395},[],{"categories":1397},[],{"categories":1399},[13],{"categories":1401},[13],{"categories":1403},[13],{"categories":1405},[16],{"categories":1407},[13],{"categories":1409},[],{"categories":1411},[58],{"categories":1413},[16],{"categories":1415},[],{"categories":1417},[],{"categories":1419},[13],{"categories":1421},[34],{"categories":1423},[],{"categories":1425},[55],{"categories":1427},[329],{"categories":1429},[34],{"categories":1431},[65],{"categories":1433},[65],{"categories":1435},[34],{"categories":1437},[34],{"categories":1439},[329],{"categories":1441},[],{"categories":1443},[34],{"categories":1445},[13],{"categories":1447},[7],{"categories":1449},[34],{"categories":1451},[],{"categories":1453},[58],{"categories":1455},[34],{"categories":1457},[65],{"categories":1459},[34],{"categories":1461},[329],{"categories":1463},[13],{"categories":1465},[13],{"categories":1467},[],{"categories":1469},[10],{"categories":1471},[],{"categories":1473},[],{"categories":1475},[13],{"categories":1477},[13],{"categories":1479},[13],{"categories":1481},[13],{"categories":1483},[],{"categories":1485},[58],{"categories":1487},[7],{"categories":1489},[],{"categories":1491},[13],{"categories":1493},[13],{"categories":1495},[329],{"categories":1497},[329],{"categories":1499},[],{"categories":1501},[16],{"categories":1503},[34],{"categories":1505},[34],{"categories":1507},[13],{"categories":1509},[16],{"categories":1511},[],{"categories":1513},[55],{"categories":1515},[13],{"categories":1517},[13],{"categories":1519},[],{"categories":1521},[],{"categories":1523},[329],{"categories":1525},[13],{"categories":1527},[65],{"categories":1529},[10],{"categories":1531},[13],{"categories":1533},[],{"categories":1535},[16],{"categories":1537},[7],{"categories":1539},[7],{"categories":1541},[],{"categories":1543},[13],{"categories":1545},[55],{"categories":1547},[16],{"categories":1549},[],{"categories":1551},[13],{"categories":1553},[13],{"categories":1555},[16],{"categories":1557},[],{"categories":1559},[16],{"categories":1561},[65],{"categories":1563},[],{"categories":1565},[13],{"categories":1567},[],{"categories":1569},[13],{"categories":1571},[],{"categories":1573},[13],{"categories":1575},[13],{"categories":1577},[],{"categories":1579},[13],{"categories":1581},[34],{"categories":1583},[13],{"categories":1585},[13],{"categories":1587},[7],{"categories":1589},[13],{"categories":1591},[34],{"categories":1593},[16],{"categories":1595},[],{"categories":1597},[13],{"categories":1599},[72],{"categories":1601},[],{"categories":1603},[],{"categories":1605},[],{"categories":1607},[7],{"categories":1609},[34],{"categories":1611},[16],{"categories":1613},[13],{"categories":1615},[55],{"categories":1617},[16],{"categories":1619},[],{"categories":1621},[16],{"categories":1623},[],{"categories":1625},[13],{"categories":1627},[16],{"categories":1629},[13],{"categories":1631},[],{"categories":1633},[13],{"categories":1635},[13],{"categories":1637},[34],{"categories":1639},[55],{"categories":1641},[16],{"categories":1643},[55],{"categories":1645},[10],{"categories":1647},[],{"categories":1649},[],{"categories":1651},[13],{"categories":1653},[7],{"categories":1655},[34],{"categories":1657},[],{"categories":1659},[],{"categories":1661},[65],{"categories":1663},[55],{"categories":1665},[],{"categories":1667},[13],{"categories":1669},[],{"categories":1671},[72],{"categories":1673},[13],{"categories":1675},[329],{"categories":1677},[65],{"categories":1679},[],{"categories":1681},[16],{"categories":1683},[13],{"categories":1685},[16],{"categories":1687},[16],{"categories":1689},[13],{"categories":1691},[],{"categories":1693},[7],{"categories":1695},[13],{"categories":1697},[10],{"categories":1699},[65],{"categories":1701},[55],{"categories":1703},[],{"categories":1705},[],{"categories":1707},[],{"categories":1709},[16],{"categories":1711},[55],{"categories":1713},[34],{"categories":1715},[13],{"categories":1717},[34],{"categories":1719},[55],{"categories":1721},[],{"categories":1723},[55],{"categories":1725},[34],{"categories":1727},[10],{"categories":1729},[13],{"categories":1731},[34],{"categories":1733},[72],{"categories":1735},[],{"categories":1737},[],{"categories":1739},[58],{"categories":1741},[13,65],{"categories":1743},[34],{"categories":1745},[13],{"categories":1747},[16],{"categories":1749},[16],{"categories":1751},[13],{"categories":1753},[],{"categories":1755},[65],{"categories":1757},[13],{"categories":1759},[58],{"categories":1761},[16],{"categories":1763},[72],{"categories":1765},[329],{"categories":1767},[],{"categories":1769},[7],{"categories":1771},[16],{"categories":1773},[16],{"categories":1775},[65],{"categories":1777},[13],{"categories":1779},[13],{"categories":1781},[],{"categories":1783},[],{"categories":1785},[],{"categories":1787},[329],{"categories":1789},[34],{"categories":1791},[13],{"categories":1793},[13],{"categories":1795},[13],{"categories":1797},[],{"categories":1799},[58],{"categories":1801},[10],{"categories":1803},[],{"categories":1805},[16],{"categories":1807},[329],{"categories":1809},[],{"categories":1811},[55],{"categories":1813},[55],{"categories":1815},[],{"categories":1817},[65],{"categories":1819},[55],{"categories":1821},[13],{"categories":1823},[],{"categories":1825},[34],{"categories":1827},[13],{"categories":1829},[55],{"categories":1831},[16],{"categories":1833},[34],{"categories":1835},[],{"categories":1837},[16],{"categories":1839},[55],{"categories":1841},[13],{"categories":1843},[],{"categories":1845},[13],{"categories":1847},[13],{"categories":1849},[329],{"categories":1851},[34],{"categories":1853},[58],{"categories":1855},[58],{"categories":1857},[],{"categories":1859},[],{"categories":1861},[],{"categories":1863},[16],{"categories":1865},[65],{"categories":1867},[65],{"categories":1869},[],{"categories":1871},[],{"categories":1873},[13],{"categories":1875},[],{"categories":1877},[16],{"categories":1879},[13],{"categories":1881},[],{"categories":1883},[13],{"categories":1885},[10],{"categories":1887},[13],{"categories":1889},[72],{"categories":1891},[16],{"categories":1893},[13],{"categories":1895},[65],{"categories":1897},[34],{"categories":1899},[16],{"categories":1901},[],{"categories":1903},[34],{"categories":1905},[16],{"categories":1907},[16],{"categories":1909},[],{"categories":1911},[10],{"categories":1913},[16],{"categories":1915},[],{"categories":1917},[13],{"categories":1919},[7],{"categories":1921},[34],{"categories":1923},[329],{"categories":1925},[16],{"categories":1927},[16],{"categories":1929},[7],{"categories":1931},[13],{"categories":1933},[],{"categories":1935},[],{"categories":1937},[55],{"categories":1939},[13,10],{"categories":1941},[],{"categories":1943},[7],{"categories":1945},[58],{"categories":1947},[13],{"categories":1949},[65],{"categories":1951},[13],{"categories":1953},[16],{"categories":1955},[13],{"categories":1957},[13],{"categories":1959},[34],{"categories":1961},[16],{"categories":1963},[],{"categories":1965},[],{"categories":1967},[16],{"categories":1969},[13],{"categories":1971},[329],{"categories":1973},[],{"categories":1975},[13],{"categories":1977},[16],{"categories":1979},[],{"categories":1981},[13],{"categories":1983},[72],{"categories":1985},[58],{"categories":1987},[16],{"categories":1989},[13],{"categories":1991},[329],{"categories":1993},[],{"categories":1995},[13],{"categories":1997},[72],{"categories":1999},[55],{"categories":2001},[13],{"categories":2003},[],{"categories":2005},[72],{"categories":2007},[34],{"categories":2009},[13],{"categories":2011},[13],{"categories":2013},[7],{"categories":2015},[],{"categories":2017},[],{"categories":2019},[55],{"categories":2021},[13],{"categories":2023},[58],{"categories":2025},[72],{"categories":2027},[72],{"categories":2029},[34],{"categories":2031},[],{"categories":2033},[],{"categories":2035},[13],{"categories":2037},[],{"categories":2039},[13,65],{"categories":2041},[34],{"categories":2043},[16],{"categories":2045},[65],{"categories":2047},[13],{"categories":2049},[7],{"categories":2051},[],{"categories":2053},[],{"categories":2055},[7],{"categories":2057},[72],{"categories":2059},[13],{"categories":2061},[],{"categories":2063},[55,13],{"categories":2065},[329],{"categories":2067},[7],{"categories":2069},[],{"categories":2071},[10],{"categories":2073},[10],{"categories":2075},[13],{"categories":2077},[65],{"categories":2079},[16],{"categories":2081},[34],{"categories":2083},[72],{"categories":2085},[55],{"categories":2087},[13],{"categories":2089},[13],{"categories":2091},[13],{"categories":2093},[7],{"categories":2095},[13],{"categories":2097},[16],{"categories":2099},[34],{"categories":2101},[],{"categories":2103},[],{"categories":2105},[58],{"categories":2107},[65],{"categories":2109},[13],{"categories":2111},[55],{"categories":2113},[58],{"categories":2115},[13],{"categories":2117},[13],{"categories":2119},[16],{"categories":2121},[16],{"categories":2123},[13,10],{"categories":2125},[],{"categories":2127},[55],{"categories":2129},[],{"categories":2131},[13],{"categories":2133},[34],{"categories":2135},[7],{"categories":2137},[7],{"categories":2139},[16],{"categories":2141},[13],{"categories":2143},[10],{"categories":2145},[65],{"categories":2147},[72],{"categories":2149},[],{"categories":2151},[34],{"categories":2153},[13],{"categories":2155},[13],{"categories":2157},[34],{"categories":2159},[65],{"categories":2161},[13],{"categories":2163},[16],{"categories":2165},[34],{"categories":2167},[13],{"categories":2169},[55],{"categories":2171},[13],{"categories":2173},[13],{"categories":2175},[329],{"categories":2177},[19],{"categories":2179},[16],{"categories":2181},[13],{"categories":2183},[34],{"categories":2185},[16],{"categories":2187},[72],{"categories":2189},[13],{"categories":2191},[],{"categories":2193},[13],{"categories":2195},[],{"categories":2197},[],{"categories":2199},[],{"categories":2201},[10],{"categories":2203},[13],{"categories":2205},[16],{"categories":2207},[34],{"categories":2209},[34],{"categories":2211},[34],{"categories":2213},[34],{"categories":2215},[],{"categories":2217},[7],{"categories":2219},[16],{"categories":2221},[34],{"categories":2223},[7],{"categories":2225},[16],{"categories":2227},[13],{"categories":2229},[13,16],{"categories":2231},[16],{"categories":2233},[329],{"categories":2235},[34],{"categories":2237},[34],{"categories":2239},[16],{"categories":2241},[13],{"categories":2243},[],{"categories":2245},[34],{"categories":2247},[72],{"categories":2249},[7],{"categories":2251},[13],{"categories":2253},[13],{"categories":2255},[],{"categories":2257},[65],{"categories":2259},[],{"categories":2261},[7],{"categories":2263},[16],{"categories":2265},[34],{"categories":2267},[13],{"categories":2269},[34],{"categories":2271},[7],{"categories":2273},[34],{"categories":2275},[34],{"categories":2277},[],{"categories":2279},[10],{"categories":2281},[16],{"categories":2283},[34],{"categories":2285},[34],{"categories":2287},[34],{"categories":2289},[34],{"categories":2291},[34],{"categories":2293},[34],{"categories":2295},[34],{"categories":2297},[34],{"categories":2299},[34],{"categories":2301},[34],{"categories":2303},[58],{"categories":2305},[7],{"categories":2307},[13],{"categories":2309},[13],{"categories":2311},[],{"categories":2313},[13,7],{"categories":2315},[],{"categories":2317},[16],{"categories":2319},[34],{"categories":2321},[16],{"categories":2323},[13],{"categories":2325},[13],{"categories":2327},[13],{"categories":2329},[13],{"categories":2331},[13],{"categories":2333},[16],{"categories":2335},[10],{"categories":2337},[55],{"categories":2339},[34],{"categories":2341},[13],{"categories":2343},[],{"categories":2345},[],{"categories":2347},[16],{"categories":2349},[55],{"categories":2351},[13],{"categories":2353},[],{"categories":2355},[],{"categories":2357},[72],{"categories":2359},[13],{"categories":2361},[],{"categories":2363},[],{"categories":2365},[7],{"categories":2367},[10],{"categories":2369},[13],{"categories":2371},[10],{"categories":2373},[55],{"categories":2375},[],{"categories":2377},[34],{"categories":2379},[],{"categories":2381},[55],{"categories":2383},[13],{"categories":2385},[72],{"categories":2387},[],{"categories":2389},[72],{"categories":2391},[],{"categories":2393},[],{"categories":2395},[16],{"categories":2397},[],{"categories":2399},[10],{"categories":2401},[7],{"categories":2403},[55],{"categories":2405},[65],{"categories":2407},[],{"categories":2409},[],{"categories":2411},[13],{"categories":2413},[7],{"categories":2415},[72],{"categories":2417},[],{"categories":2419},[16],{"categories":2421},[16],{"categories":2423},[34],{"categories":2425},[13],{"categories":2427},[16],{"categories":2429},[13],{"categories":2431},[16],{"categories":2433},[13],{"categories":2435},[19],{"categories":2437},[34],{"categories":2439},[],{"categories":2441},[72],{"categories":2443},[65],{"categories":2445},[16],{"categories":2447},[],{"categories":2449},[13],{"categories":2451},[16],{"categories":2453},[10],{"categories":2455},[7],{"categories":2457},[13],{"categories":2459},[55],{"categories":2461},[65],{"categories":2463},[65],{"categories":2465},[13],{"categories":2467},[58],{"categories":2469},[13],{"categories":2471},[16],{"categories":2473},[10],{"categories":2475},[16],{"categories":2477},[13],{"categories":2479},[13],{"categories":2481},[16],{"categories":2483},[34],{"categories":2485},[],{"categories":2487},[7],{"categories":2489},[13],{"categories":2491},[16],{"categories":2493},[13],{"categories":2495},[13],{"categories":2497},[],{"categories":2499},[55],{"categories":2501},[10],{"categories":2503},[34],{"categories":2505},[13],{"categories":2507},[13],{"categories":2509},[55],{"categories":2511},[72],{"categories":2513},[58],{"categories":2515},[13],{"categories":2517},[34],{"categories":2519},[13],{"categories":2521},[16],{"categories":2523},[329],{"categories":2525},[13],{"categories":2527},[16],{"categories":2529},[58],{"categories":2531},[],{"categories":2533},[16],{"categories":2535},[65],{"categories":2537},[55],{"categories":2539},[13],{"categories":2541},[7],{"categories":2543},[10],{"categories":2545},[65],{"categories":2547},[],{"categories":2549},[16],{"categories":2551},[13],{"categories":2553},[],{"categories":2555},[34],{"categories":2557},[],{"categories":2559},[34],{"categories":2561},[13],{"categories":2563},[16],{"categories":2565},[16],{"categories":2567},[16],{"categories":2569},[],{"categories":2571},[],{"categories":2573},[13],{"categories":2575},[13],{"categories":2577},[],{"categories":2579},[55],{"categories":2581},[16],{"categories":2583},[72],{"categories":2585},[7],{"categories":2587},[],{"categories":2589},[],{"categories":2591},[34],{"categories":2593},[65],{"categories":2595},[13],{"categories":2597},[13],{"categories":2599},[13],{"categories":2601},[65],{"categories":2603},[34],{"categories":2605},[55],{"categories":2607},[13],{"categories":2609},[13],{"categories":2611},[13],{"categories":2613},[34],{"categories":2615},[13],{"categories":2617},[34],{"categories":2619},[16],{"categories":2621},[16],{"categories":2623},[65],{"categories":2625},[16],{"categories":2627},[13],{"categories":2629},[65],{"categories":2631},[55],{"categories":2633},[],{"categories":2635},[16],{"categories":2637},[],{"categories":2639},[],{"categories":2641},[],{"categories":2643},[10],{"categories":2645},[13],{"categories":2647},[16],{"categories":2649},[7],{"categories":2651},[16],{"categories":2653},[72],{"categories":2655},[],{"categories":2657},[16],{"categories":2659},[],{"categories":2661},[7],{"categories":2663},[16],{"categories":2665},[],{"categories":2667},[16],{"categories":2669},[13],{"categories":2671},[34],{"categories":2673},[13],{"categories":2675},[16],{"categories":2677},[34],{"categories":2679},[16],{"categories":2681},[65],{"categories":2683},[55],{"categories":2685},[7],{"categories":2687},[],{"categories":2689},[16],{"categories":2691},[55],{"categories":2693},[329],{"categories":2695},[34],{"categories":2697},[13],{"categories":2699},[55],{"categories":2701},[7],{"categories":2703},[],{"categories":2705},[16],{"categories":2707},[16],{"categories":2709},[13],{"categories":2711},[],{"categories":2713},[16],{"categories":2715},[19],{"categories":2717},[34],{"categories":2719},[16],{"categories":2721},[10],{"categories":2723},[],{"categories":2725},[13],{"categories":2727},[19],{"categories":2729},[13],{"categories":2731},[16],{"categories":2733},[34],{"categories":2735},[7],{"categories":2737},[329],{"categories":2739},[13],{"categories":2741},[13],{"categories":2743},[13],{"categories":2745},[34],{"categories":2747},[10],{"categories":2749},[13],{"categories":2751},[55],{"categories":2753},[34],{"categories":2755},[329],{"categories":2757},[13],{"categories":2759},[],{"categories":2761},[],{"categories":2763},[329],{"categories":2765},[58],{"categories":2767},[16],{"categories":2769},[16],{"categories":2771},[34],{"categories":2773},[13],{"categories":2775},[7],{"categories":2777},[55],{"categories":2779},[16],{"categories":2781},[13],{"categories":2783},[72],{"categories":2785},[13],{"categories":2787},[16],{"categories":2789},[],{"categories":2791},[13],{"categories":2793},[13],{"categories":2795},[34],{"categories":2797},[7],{"categories":2799},[],{"categories":2801},[13],{"categories":2803},[13],{"categories":2805},[65],{"categories":2807},[55],{"categories":2809},[13,16],{"categories":2811},[72,10],{"categories":2813},[13],{"categories":2815},[],{"categories":2817},[16],{"categories":2819},[],{"categories":2821},[65],{"categories":2823},[13],{"categories":2825},[34],{"categories":2827},[],{"categories":2829},[16],{"categories":2831},[],{"categories":2833},[55],{"categories":2835},[16],{"categories":2837},[7],{"categories":2839},[16],{"categories":2841},[13],{"categories":2843},[329],{"categories":2845},[72],{"categories":2847},[10],{"categories":2849},[10],{"categories":2851},[7],{"categories":2853},[7],{"categories":2855},[13],{"categories":2857},[16],{"categories":2859},[13],{"categories":2861},[13],{"categories":2863},[7],{"categories":2865},[13],{"categories":2867},[72],{"categories":2869},[34],{"categories":2871},[13],{"categories":2873},[16],{"categories":2875},[13],{"categories":2877},[],{"categories":2879},[65],{"categories":2881},[],{"categories":2883},[16],{"categories":2885},[7],{"categories":2887},[],{"categories":2889},[329],{"categories":2891},[13],{"categories":2893},[],{"categories":2895},[34],{"categories":2897},[16],{"categories":2899},[65],{"categories":2901},[13],{"categories":2903},[16],{"categories":2905},[65],{"categories":2907},[16],{"categories":2909},[34],{"categories":2911},[7],{"categories":2913},[34],{"categories":2915},[65],{"categories":2917},[13],{"categories":2919},[55],{"categories":2921},[13],{"categories":2923},[13],{"categories":2925},[13],{"categories":2927},[13],{"categories":2929},[16],{"categories":2931},[13],{"categories":2933},[16],{"categories":2935},[13],{"categories":2937},[7],{"categories":2939},[13],{"categories":2941},[16],{"categories":2943},[55],{"categories":2945},[7],{"categories":2947},[16],{"categories":2949},[55],{"categories":2951},[],{"categories":2953},[13],{"categories":2955},[13],{"categories":2957},[65],{"categories":2959},[],{"categories":2961},[16],{"categories":2963},[72],{"categories":2965},[13],{"categories":2967},[34],{"categories":2969},[72],{"categories":2971},[16],{"categories":2973},[10],{"categories":2975},[10],{"categories":2977},[13],{"categories":2979},[7],{"categories":2981},[],{"categories":2983},[13],{"categories":2985},[],{"categories":2987},[7],{"categories":2989},[13],{"categories":2991},[16],{"categories":2993},[16],{"categories":2995},[],{"categories":2997},[65],{"categories":2999},[65],{"categories":3001},[72],{"categories":3003},[55],{"categories":3005},[],{"categories":3007},[13],{"categories":3009},[7],{"categories":3011},[13],{"categories":3013},[65],{"categories":3015},[7],{"categories":3017},[34],{"categories":3019},[34],{"categories":3021},[],{"categories":3023},[34],{"categories":3025},[16],{"categories":3027},[55],{"categories":3029},[58],{"categories":3031},[13],{"categories":3033},[],{"categories":3035},[34],{"categories":3037},[65],{"categories":3039},[10],{"categories":3041},[13],{"categories":3043},[7],{"categories":3045},[329],{"categories":3047},[7],{"categories":3049},[],{"categories":3051},[],{"categories":3053},[34],{"categories":3055},[],{"categories":3057},[16],{"categories":3059},[16],{"categories":3061},[16],{"categories":3063},[],{"categories":3065},[13],{"categories":3067},[],{"categories":3069},[34],{"categories":3071},[7],{"categories":3073},[55],{"categories":3075},[13],{"categories":3077},[34],{"categories":3079},[34],{"categories":3081},[],{"categories":3083},[34],{"categories":3085},[7],{"categories":3087},[13],{"categories":3089},[],{"categories":3091},[16],{"categories":3093},[16],{"categories":3095},[7],{"categories":3097},[],{"categories":3099},[],{"categories":3101},[],{"categories":3103},[55],{"categories":3105},[16],{"categories":3107},[13],{"categories":3109},[],{"categories":3111},[],{"categories":3113},[],{"categories":3115},[55],{"categories":3117},[],{"categories":3119},[7],{"categories":3121},[],{"categories":3123},[],{"categories":3125},[55],{"categories":3127},[13],{"categories":3129},[34],{"categories":3131},[],{"categories":3133},[72],{"categories":3135},[34],{"categories":3137},[72],{"categories":3139},[13],{"categories":3141},[],{"categories":3143},[],{"categories":3145},[16],{"categories":3147},[],{"categories":3149},[],{"categories":3151},[16],{"categories":3153},[13],{"categories":3155},[],{"categories":3157},[16],{"categories":3159},[34],{"categories":3161},[72],{"categories":3163},[58],{"categories":3165},[16],{"categories":3167},[16],{"categories":3169},[],{"categories":3171},[],{"categories":3173},[],{"categories":3175},[34],{"categories":3177},[],{"categories":3179},[],{"categories":3181},[55],{"categories":3183},[7],{"categories":3185},[],{"categories":3187},[10],{"categories":3189},[72],{"categories":3191},[13],{"categories":3193},[65],{"categories":3195},[7],{"categories":3197},[58],{"categories":3199},[10],{"categories":3201},[65],{"categories":3203},[],{"categories":3205},[],{"categories":3207},[16],{"categories":3209},[7],{"categories":3211},[55],{"categories":3213},[7],{"categories":3215},[16],{"categories":3217},[329],{"categories":3219},[16],{"categories":3221},[],{"categories":3223},[13],{"categories":3225},[34],{"categories":3227},[65],{"categories":3229},[],{"categories":3231},[55],{"categories":3233},[34],{"categories":3235},[7],{"categories":3237},[16],{"categories":3239},[13],{"categories":3241},[10],{"categories":3243},[16,329],{"categories":3245},[16],{"categories":3247},[65],{"categories":3249},[13],{"categories":3251},[58],{"categories":3253},[72],{"categories":3255},[16],{"categories":3257},[],{"categories":3259},[16],{"categories":3261},[13],{"categories":3263},[10],{"categories":3265},[],{"categories":3267},[],{"categories":3269},[13],{"categories":3271},[58],{"categories":3273},[13],{"categories":3275},[],{"categories":3277},[34],{"categories":3279},[],{"categories":3281},[34],{"categories":3283},[65],{"categories":3285},[16],{"categories":3287},[13],{"categories":3289},[72],{"categories":3291},[65],{"categories":3293},[],{"categories":3295},[34],{"categories":3297},[13],{"categories":3299},[],{"categories":3301},[13],{"categories":3303},[16],{"categories":3305},[13],{"categories":3307},[16],{"categories":3309},[13],{"categories":3311},[13],{"categories":3313},[13],{"categories":3315},[13],{"categories":3317},[10],{"categories":3319},[],{"categories":3321},[19],{"categories":3323},[34],{"categories":3325},[13],{"categories":3327},[],{"categories":3329},[65],{"categories":3331},[13],{"categories":3333},[13],{"categories":3335},[16],{"categories":3337},[34],{"categories":3339},[13],{"categories":3341},[13],{"categories":3343},[10],{"categories":3345},[16],{"categories":3347},[55],{"categories":3349},[],{"categories":3351},[58],{"categories":3353},[13],{"categories":3355},[],{"categories":3357},[34],{"categories":3359},[72],{"categories":3361},[],{"categories":3363},[],{"categories":3365},[34],{"categories":3367},[34],{"categories":3369},[72],{"categories":3371},[7],{"categories":3373},[16],{"categories":3375},[16],{"categories":3377},[13],{"categories":3379},[10],{"categories":3381},[],{"categories":3383},[],{"categories":3385},[34],{"categories":3387},[58],{"categories":3389},[65],{"categories":3391},[16],{"categories":3393},[55],{"categories":3395},[58],{"categories":3397},[58],{"categories":3399},[],{"categories":3401},[34],{"categories":3403},[13],{"categories":3405},[13],{"categories":3407},[65],{"categories":3409},[],{"categories":3411},[34],{"categories":3413},[34],{"categories":3415},[34],{"categories":3417},[],{"categories":3419},[16],{"categories":3421},[13],{"categories":3423},[],{"categories":3425},[7],{"categories":3427},[10],{"categories":3429},[],{"categories":3431},[13],{"categories":3433},[13],{"categories":3435},[],{"categories":3437},[65],{"categories":3439},[],{"categories":3441},[],{"categories":3443},[],{"categories":3445},[],{"categories":3447},[13],{"categories":3449},[34],{"categories":3451},[],{"categories":3453},[],{"categories":3455},[13],{"categories":3457},[13],{"categories":3459},[13],{"categories":3461},[58],{"categories":3463},[13],{"categories":3465},[58],{"categories":3467},[],{"categories":3469},[58],{"categories":3471},[58],{"categories":3473},[329],{"categories":3475},[16],{"categories":3477},[65],{"categories":3479},[],{"categories":3481},[],{"categories":3483},[58],{"categories":3485},[65],{"categories":3487},[65],{"categories":3489},[65],{"categories":3491},[],{"categories":3493},[7],{"categories":3495},[65],{"categories":3497},[65],{"categories":3499},[7],{"categories":3501},[65],{"categories":3503},[10],{"categories":3505},[65],{"categories":3507},[65],{"categories":3509},[65],{"categories":3511},[58],{"categories":3513},[34],{"categories":3515},[34],{"categories":3517},[13],{"categories":3519},[65],{"categories":3521},[58],{"categories":3523},[329],{"categories":3525},[58],{"categories":3527},[58],{"categories":3529},[58],{"categories":3531},[],{"categories":3533},[10],{"categories":3535},[],{"categories":3537},[329],{"categories":3539},[65],{"categories":3541},[65],{"categories":3543},[65],{"categories":3545},[16],{"categories":3547},[34,10],{"categories":3549},[58],{"categories":3551},[],{"categories":3553},[],{"categories":3555},[58],{"categories":3557},[],{"categories":3559},[58],{"categories":3561},[34],{"categories":3563},[16],{"categories":3565},[],{"categories":3567},[65],{"categories":3569},[13],{"categories":3571},[55],{"categories":3573},[],{"categories":3575},[13],{"categories":3577},[],{"categories":3579},[34],{"categories":3581},[7],{"categories":3583},[58],{"categories":3585},[],{"categories":3587},[65],{"categories":3589},[34],[3591,4213,5386],{"id":3592,"title":3593,"ai_summary":3594,"author":3595,"body":3596,"category":4187,"date_modified":4188,"description":4189,"excerpt":3595,"extension":4190,"faq":4188,"keywords":4191,"meta":4200,"meta_description":4201,"meta_title":4202,"navigation":4203,"path":4204,"primary_keyword":4192,"published_at":4188,"related_posts":4205,"sections":4206,"seo":4207,"sitemap":4208,"slug":4209,"status":4210,"stem":4211,"__hash__":4212},"articles\u002Farticles\u002Fagent-architecture-the-orchestration-stack-that-actually-emerged-article.md","The Emergent AI Agent Orchestration Stack: Harnesses, Specs, and Primitives","AI agent orchestration stacks mature compute layers atop lagging coordination using YAML harnesses, spec-driven workflows, and primitives like tool registries and state persistence. Tools such as Archon V3 and Claude Code enable deterministic multi-agent execution for production reliability without frameworks.","",{"type":3597,"value":3598,"toc":4178},"minimark",[3599,3622,3632,3637,3646,3656,3668,3671,3681,3685,3696,3706,3716,3719,3723,3734,3750,3753,3756,3760,3769,3791,3808,3811,3815,3824,3844,3847,3850,3910,3913,3916,3920,3931,3948,3971,3974,3977,4174],[3600,3601,3602,3603,3614],"p",{},"Production AI agent orchestration demands stack literacy across six uneven layers, from mature compute sandboxes like E2B Firecracker to lagging coordination without Kubernetes-grade tools. Builders bridge gaps with YAML harnesses and spec-driven workflows today, delivering deterministic multi-agent execution via Archon V3 and Claude Code primitives.",[3604,3605,3606],"sup",{},[3607,3608,3613],"a",{"href":3609,"ariaDescribedBy":3610,"dataFootnoteRef":3595,"id":3612},"#user-content-fn-1",[3611],"footnote-label","user-content-fnref-1","1",[3604,3615,3616],{},[3607,3617,3621],{"href":3618,"ariaDescribedBy":3619,"dataFootnoteRef":3595,"id":3620},"#user-content-fn-2",[3611],"user-content-fnref-2","2",[3600,3623,3624,3625,3631],{},"Demos shine with single agents, but real systems crumble on orchestration failures—compounding errors across layers drop end-to-end reliability from five 99% components to 95% overall.",[3604,3626,3627],{},[3607,3628,3613],{"href":3609,"ariaDescribedBy":3629,"dataFootnoteRef":3595,"id":3630},[3611],"user-content-fnref-1-2"," Without primitives like tool registries and state persistence, you risk hyperscaler lock-in and sprawl. This guide maps the stack, harnesses, specs, challenges, and pitfalls to ship reliable agents now.",[3633,3634,3636],"h2",{"id":3635},"the-layered-maturity-of-the-ai-agent-stack","The Layered Maturity of the AI Agent Stack",[3600,3638,3639,3640],{},"The AI agent stack matures unevenly across six layers—compute and sandboxing lead with mature tools like Browserbase and E2B Firecracker for isolated execution, while orchestration lags like pre-Kubernetes eras without infra-grade scheduling or FinOps. Identity\u002Fcomms transitions via emerging agent-native protocols beyond email shims. This creates production bottlenecks in coordination, demanding immediate stack literacy.",[3604,3641,3642],{},[3607,3643,3613],{"href":3609,"ariaDescribedBy":3644,"dataFootnoteRef":3595,"id":3645},[3611],"user-content-fnref-1-3",[3600,3647,3648,3649,3655],{},"Nate B. Jones breaks it into six layers in his analysis.",[3604,3650,3651],{},[3607,3652,3613],{"href":3609,"ariaDescribedBy":3653,"dataFootnoteRef":3595,"id":3654},[3611],"user-content-fnref-1-4"," Compute\u002Fsandboxing handles isolated execution reliably. Identity\u002Fcomms transitions with emerging agent-native protocols over email shims.",[3600,3657,3658,3659,3667],{},"Memory sits early, blending Mem0 hybrids but risking vendor lock-in.",[3604,3660,3661],{},[3607,3662,3666],{"href":3663,"ariaDescribedBy":3664,"dataFootnoteRef":3595,"id":3665},"#user-content-fn-3",[3611],"user-content-fnref-3","3"," Tools explode via Compose connectors for auth-heavy integrations.",[3600,3669,3670],{},"Provisioning emerges in Stripe Projects for dynamic scaling. Orchestration gaps lack FinOps and infra-grade controls—no standard for fleets.",[3600,3672,3673,3674,3680],{},"Ephemeral agents suit quick tasks; persistent ones need state for long runs. Gartner notes a 1,445% multi-agent surge, amplifying these mismatches.",[3604,3675,3676],{},[3607,3677,3613],{"href":3609,"ariaDescribedBy":3678,"dataFootnoteRef":3595,"id":3679},[3611],"user-content-fnref-1-5"," Skip stack literacy, and your agents stay demo-bound.",[3633,3682,3684],{"id":3683},"what-is-harness-engineering-for-ai-agent-orchestration","What Is Harness Engineering for AI Agent Orchestration?",[3600,3686,3687,3688],{},"Harness engineering wraps unreliable AI agents in declarative YAML or Markdown workflows that use DAGs for dependencies, Git worktrees for parallel isolation, and pre\u002Fpost-tool hooks for self-correction and verification loops like type-checks or rewrites. This enables Stripe-scale PRs (1,300\u002Fweek) without constant oversight by treating agents as deterministic nodes.",[3604,3689,3690],{},[3607,3691,3695],{"href":3692,"ariaDescribedBy":3693,"dataFootnoteRef":3595,"id":3694},"#user-content-fn-4",[3611],"user-content-fnref-4","4",[3600,3697,3698,3699,3705],{},"Archon V3 defines this: YAML commands like classify\u002Fplan\u002Fimplement form nodes in DAGs with dependencies.",[3604,3700,3701],{},[3607,3702,3695],{"href":3692,"ariaDescribedBy":3703,"dataFootnoteRef":3595,"id":3704},[3611],"user-content-fnref-4-2"," Worktrees isolate parallel runs—four agents at once without clashes. Pre\u002Fpost-tool hooks loop for verification, like type-checks or rewrites.",[3600,3707,3708,3709,3715],{},"Claude Code adds structured metadata, permissions, and multi-agent forks.",[3604,3710,3711],{},[3607,3712,3621],{"href":3618,"ariaDescribedBy":3713,"dataFootnoteRef":3595,"id":3714},[3611],"user-content-fnref-2-2"," Mix precise steps with AI nodes; extend as Markdown primitives standard in Anthropic\u002FOpenAI for chaining. You treat agents as cogs in deterministic machines, not free-range thinkers.",[3600,3717,3718],{},"This beats prompt tweaks alone. Version YAML in Git for audits. Production demands it over ad-hoc calls.",[3633,3720,3722],{"id":3721},"the-shift-to-spec-centric-development","The Shift to Spec-Centric Development",[3600,3724,3725,3726],{},"Spec-centric development flips code-first workflows by making declarative specs in YAML or Markdown the executable single source of truth, driving AI agents like GitHub SpecKit to generate synchronized code through staged pipelines of specify\u002Fplan\u002Ftasks\u002Fimplement for consistent handoffs.",[3604,3727,3728],{},[3607,3729,3733],{"href":3730,"ariaDescribedBy":3731,"dataFootnoteRef":3595,"id":3732},"#user-content-fn-5",[3611],"user-content-fnref-5","5",[3600,3735,3736,3737,3743,3744],{},"Code drifts specs outdated; specs drive regeneration instead.",[3604,3738,3739],{},[3607,3740,3733],{"href":3730,"ariaDescribedBy":3741,"dataFootnoteRef":3595,"id":3742},[3611],"user-content-fnref-5-2"," GitHub SpecKit structures .github\u002Fprompts\u002Fagents for PM\u002Farchitect\u002Fengineer handoffs. Anthropic harnesses use minimal three agents—planner\u002Fgenerator\u002Fevaluator—outpacing bloated frameworks on Opus models.",[3604,3745,3746],{},[3607,3747,3621],{"href":3618,"ariaDescribedBy":3748,"dataFootnoteRef":3595,"id":3749},[3611],"user-content-fnref-2-3",[3600,3751,3752],{},"Version specs in repos for team reliability. No more merge hell from AI code dumps. Specs ensure handoffs work; code follows.",[3600,3754,3755],{},"I prefer this for complex projects. It cuts ambiguity. Agents execute living docs, not stale prose.",[3633,3757,3759],{"id":3758},"why-ai-agent-orchestration-is-the-biggest-unsolved-problem","Why AI Agent Orchestration Is the Biggest Unsolved Problem",[3600,3761,3762,3763],{},"AI agent orchestration fails production due to critical gaps in scheduling\u002Flifecycle management, supervision hierarchies, FinOps controls, inter-agent comms protocols, and observability tools—current libraries like LangGraph manage notebooks but crumble under 50-agent fleets needing audits and traces.",[3604,3764,3765],{},[3607,3766,3666],{"href":3663,"ariaDescribedBy":3767,"dataFootnoteRef":3595,"id":3768},[3611],"user-content-fnref-3-2",[3770,3771,3772,3782,3785,3788],"ul",{},[3773,3774,3775,3776],"li",{},"Dynamic scheduling beats cron; state persists across crashes.",[3604,3777,3778],{},[3607,3779,3666],{"href":3663,"ariaDescribedBy":3780,"dataFootnoteRef":3595,"id":3781},[3611],"user-content-fnref-3-3",[3773,3783,3784],{},"Retry logic and error isolation prevent cascades.",[3773,3786,3787],{},"Token budgeting enforces FinOps per task.",[3773,3789,3790],{},"MCP protocols limit comms; no standard for negotiation.",[3600,3792,3793,3794,3800,3801,3807],{},"MindStudio calls it the core blocker: demos route simply, production demands hierarchies and traces.",[3604,3795,3796],{},[3607,3797,3666],{"href":3663,"ariaDescribedBy":3798,"dataFootnoteRef":3595,"id":3799},[3611],"user-content-fnref-3-4"," Jones likens it to pre-K8s chaos.",[3604,3802,3803],{},[3607,3804,3613],{"href":3609,"ariaDescribedBy":3805,"dataFootnoteRef":3595,"id":3806},[3611],"user-content-fnref-1-6"," Flexibility invites emergence; determinism suits enterprise.",[3600,3809,3810],{},"Trade-off bites: emergent behavior thrills but flakes. Prioritize primitives over frameworks. Libraries add overhead without infra.",[3633,3812,3814],{"id":3813},"key-primitives-for-production-ai-agent-orchestration","Key Primitives for Production AI Agent Orchestration",[3600,3816,3817,3818],{},"Production AI agent orchestration relies on 12 primitives from Claude Code leaks, including tool registries for metadata filtering, tiered permissions to block rogue actions, state persistence via JSON sessions, token budgeting with projections and halts, structured logging through typed events, verification loops, plus agent typing and dynamic pools for crash-resilient, observable multi-agent workflows.",[3604,3819,3820],{},[3607,3821,3621],{"href":3618,"ariaDescribedBy":3822,"dataFootnoteRef":3595,"id":3823},[3611],"user-content-fnref-2-4",[3770,3825,3826,3835,3838,3841],{},[3773,3827,3828,3829],{},"Dual registries list 207 commands with metadata for filtering.",[3604,3830,3831],{},[3607,3832,3621],{"href":3618,"ariaDescribedBy":3833,"dataFootnoteRef":3595,"id":3834},[3611],"user-content-fnref-2-5",[3773,3836,3837],{},"Permissions tier built-in\u002Fplugins\u002Fuser to block rogue acts.",[3773,3839,3840],{},"JSON persists sessions; projections halt overruns.",[3773,3842,3843],{},"Typed events stream logs.",[3600,3845,3846],{},"Agents specialize: explore\u002Fplan\u002Fverify types in hierarchies. Formula: Role+Goal+Tools+Rules+Output.",[3600,3848,3849],{},"Code stub for tools:",[3851,3852,3856],"pre",{"className":3853,"code":3854,"language":3855,"meta":3595,"style":3595},"language-yaml shiki shiki-themes github-light github-dark","tools:\n  - name: list_files\n    description: List files in directory\n    source: builtin\n","yaml",[3857,3858,3859,3872,3888,3899],"code",{"__ignoreMap":3595},[3860,3861,3864,3868],"span",{"class":3862,"line":3863},"line",1,[3860,3865,3867],{"class":3866},"s9eBZ","tools",[3860,3869,3871],{"class":3870},"sVt8B",":\n",[3860,3873,3875,3878,3881,3884],{"class":3862,"line":3874},2,[3860,3876,3877],{"class":3870},"  - ",[3860,3879,3880],{"class":3866},"name",[3860,3882,3883],{"class":3870},": ",[3860,3885,3887],{"class":3886},"sZZnC","list_files\n",[3860,3889,3891,3894,3896],{"class":3862,"line":3890},3,[3860,3892,3893],{"class":3866},"    description",[3860,3895,3883],{"class":3870},[3860,3897,3898],{"class":3886},"List files in directory\n",[3860,3900,3902,3905,3907],{"class":3862,"line":3901},4,[3860,3903,3904],{"class":3866},"    source",[3860,3906,3883],{"class":3870},[3860,3908,3909],{"class":3886},"builtin\n",[3600,3911,3912],{},"Persist post-events. Update claude.md for skills; \u002Fplan for tasks. Pools assemble per-session.",[3600,3914,3915],{},"These make fleets observable. Skip them, stay small-scale.",[3633,3917,3919],{"id":3918},"common-pitfalls-and-trade-offs-in-multi-agent-systems","Common Pitfalls and Trade-offs in Multi-Agent Systems",[3600,3921,3922,3923],{},"Multi-agent systems trip on overkill by jumping to agents before mastering 5 workflows, bloat from skills exceeding 150 lines, lock-in via hyperscaler memory, and ignoring compounding failures that drop reliability—counter them by testing quantitatively, tiering skills, and designing agent-first for composability.",[3604,3924,3925],{},[3607,3926,3930],{"href":3927,"ariaDescribedBy":3928,"dataFootnoteRef":3595,"id":3929},"#user-content-fn-6",[3611],"user-content-fnref-6","6",[3770,3932,3933,3942,3945],{},[3773,3934,3935,3936],{},"Vague skills undertrigger; self-evals overconfident; no permissions equals demos.",[3604,3937,3938],{},[3607,3939,3621],{"href":3618,"ariaDescribedBy":3940,"dataFootnoteRef":3595,"id":3941},[3611],"user-content-fnref-2-6",[3773,3943,3944],{},"Single agents scale until they don't—multi for handoffs.",[3773,3946,3947],{},"Ephemeral for bursts; persistent for state.",[3600,3949,3950,3951,3957,3958,3964,3965],{},"Frameworks bloat post-Opus; chaining routes first.",[3604,3952,3953],{},[3607,3954,3930],{"href":3927,"ariaDescribedBy":3955,"dataFootnoteRef":3595,"id":3956},[3611],"user-content-fnref-6-2"," Margerie: Master Role+Goal+Tools+Rules+Output.",[3604,3959,3960],{},[3607,3961,3930],{"href":3927,"ariaDescribedBy":3962,"dataFootnoteRef":3595,"id":3963},[3611],"user-content-fnref-6-3"," Jones: Primitives avert pain.",[3604,3966,3967],{},[3607,3968,3613],{"href":3609,"ariaDescribedBy":3969,"dataFootnoteRef":3595,"id":3970},[3611],"user-content-fnref-1-7",[3600,3972,3973],{},"Test E2E: 99% layers compound poorly. Agent-first composes; code-first breaks.",[3600,3975,3976],{},"Audit your agent workflow against Claude Code's 12 primitives today. Fork an Archon V3 YAML harness into a Git repo, route a test issue through planner\u002Fgenerator\u002Fevaluator, and log E2E reliability metrics before adding agents.",[3978,3979,3982,3987],"section",{"className":3980,"dataFootnotes":3595},[3981],"footnotes",[3633,3983,3986],{"className":3984,"id":3611},[3985],"sr-only","Footnotes",[3988,3989,3990,4045,4089,4119,4135,4151],"ol",{},[3773,3991,3993,3994,4001,4002,4001,4009,4001,4016,4001,4023,4001,4030,4001,4037],{"id":3992},"user-content-fn-1","Nate B. Jones, \"6-Layer AI Agent Stack: Build Literacy Now,\" AI News & Strategy Daily. ",[3607,3995,4000],{"href":3996,"ariaLabel":3997,"className":3998,"dataFootnoteBackref":3595},"#user-content-fnref-1","Back to reference 1",[3999],"data-footnote-backref","↩"," ",[3607,4003,4000,4007],{"href":4004,"ariaLabel":4005,"className":4006,"dataFootnoteBackref":3595},"#user-content-fnref-1-2","Back to reference 1-2",[3999],[3604,4008,3621],{},[3607,4010,4000,4014],{"href":4011,"ariaLabel":4012,"className":4013,"dataFootnoteBackref":3595},"#user-content-fnref-1-3","Back to reference 1-3",[3999],[3604,4015,3666],{},[3607,4017,4000,4021],{"href":4018,"ariaLabel":4019,"className":4020,"dataFootnoteBackref":3595},"#user-content-fnref-1-4","Back to reference 1-4",[3999],[3604,4022,3695],{},[3607,4024,4000,4028],{"href":4025,"ariaLabel":4026,"className":4027,"dataFootnoteBackref":3595},"#user-content-fnref-1-5","Back to reference 1-5",[3999],[3604,4029,3733],{},[3607,4031,4000,4035],{"href":4032,"ariaLabel":4033,"className":4034,"dataFootnoteBackref":3595},"#user-content-fnref-1-6","Back to reference 1-6",[3999],[3604,4036,3930],{},[3607,4038,4000,4042],{"href":4039,"ariaLabel":4040,"className":4041,"dataFootnoteBackref":3595},"#user-content-fnref-1-7","Back to reference 1-7",[3999],[3604,4043,4044],{},"7",[3773,4046,4048,4049,4001,4054,4001,4061,4001,4068,4001,4075,4001,4082],{"id":4047},"user-content-fn-2","Nick Puru, \"Claude Code Leak Reveals Full AI Orchestration Engine,\" AI Automation. ",[3607,4050,4000],{"href":4051,"ariaLabel":4052,"className":4053,"dataFootnoteBackref":3595},"#user-content-fnref-2","Back to reference 2",[3999],[3607,4055,4000,4059],{"href":4056,"ariaLabel":4057,"className":4058,"dataFootnoteBackref":3595},"#user-content-fnref-2-2","Back to reference 2-2",[3999],[3604,4060,3621],{},[3607,4062,4000,4066],{"href":4063,"ariaLabel":4064,"className":4065,"dataFootnoteBackref":3595},"#user-content-fnref-2-3","Back to reference 2-3",[3999],[3604,4067,3666],{},[3607,4069,4000,4073],{"href":4070,"ariaLabel":4071,"className":4072,"dataFootnoteBackref":3595},"#user-content-fnref-2-4","Back to reference 2-4",[3999],[3604,4074,3695],{},[3607,4076,4000,4080],{"href":4077,"ariaLabel":4078,"className":4079,"dataFootnoteBackref":3595},"#user-content-fnref-2-5","Back to reference 2-5",[3999],[3604,4081,3733],{},[3607,4083,4000,4087],{"href":4084,"ariaLabel":4085,"className":4086,"dataFootnoteBackref":3595},"#user-content-fnref-2-6","Back to reference 2-6",[3999],[3604,4088,3930],{},[3773,4090,4092,4093,4001,4098,4001,4105,4001,4112],{"id":4091},"user-content-fn-3","MindStudio, \"What Is Agent Orchestration? Why It's the Biggest Unsolved Problem in the AI Stack.\" ",[3607,4094,4000],{"href":4095,"ariaLabel":4096,"className":4097,"dataFootnoteBackref":3595},"#user-content-fnref-3","Back to reference 3",[3999],[3607,4099,4000,4103],{"href":4100,"ariaLabel":4101,"className":4102,"dataFootnoteBackref":3595},"#user-content-fnref-3-2","Back to reference 3-2",[3999],[3604,4104,3621],{},[3607,4106,4000,4110],{"href":4107,"ariaLabel":4108,"className":4109,"dataFootnoteBackref":3595},"#user-content-fnref-3-3","Back to reference 3-3",[3999],[3604,4111,3666],{},[3607,4113,4000,4117],{"href":4114,"ariaLabel":4115,"className":4116,"dataFootnoteBackref":3595},"#user-content-fnref-3-4","Back to reference 3-4",[3999],[3604,4118,3695],{},[3773,4120,4122,4123,4001,4128],{"id":4121},"user-content-fn-4","\"Archon V3: YAML Harnesses for AI Coding Agents,\" DIY Smart Code. ",[3607,4124,4000],{"href":4125,"ariaLabel":4126,"className":4127,"dataFootnoteBackref":3595},"#user-content-fnref-4","Back to reference 4",[3999],[3607,4129,4000,4133],{"href":4130,"ariaLabel":4131,"className":4132,"dataFootnoteBackref":3595},"#user-content-fnref-4-2","Back to reference 4-2",[3999],[3604,4134,3621],{},[3773,4136,4138,4139,4001,4144],{"id":4137},"user-content-fn-5","\"SDD Makes Specs the Single Source of Truth via AI Agents,\" Level Up Coding. ",[3607,4140,4000],{"href":4141,"ariaLabel":4142,"className":4143,"dataFootnoteBackref":3595},"#user-content-fnref-5","Back to reference 5",[3999],[3607,4145,4000,4149],{"href":4146,"ariaLabel":4147,"className":4148,"dataFootnoteBackref":3595},"#user-content-fnref-5-2","Back to reference 5-2",[3999],[3604,4150,3621],{},[3773,4152,4154,4155,4001,4160,4001,4167],{"id":4153},"user-content-fn-6","Lukas Margerie insights on agent fundamentals. ",[3607,4156,4000],{"href":4157,"ariaLabel":4158,"className":4159,"dataFootnoteBackref":3595},"#user-content-fnref-6","Back to reference 6",[3999],[3607,4161,4000,4165],{"href":4162,"ariaLabel":4163,"className":4164,"dataFootnoteBackref":3595},"#user-content-fnref-6-2","Back to reference 6-2",[3999],[3604,4166,3621],{},[3607,4168,4000,4172],{"href":4169,"ariaLabel":4170,"className":4171,"dataFootnoteBackref":3595},"#user-content-fnref-6-3","Back to reference 6-3",[3999],[3604,4173,3666],{},[4175,4176,4177],"style",{},"html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":3595,"searchDepth":3874,"depth":3874,"links":4179},[4180,4181,4182,4183,4184,4185,4186],{"id":3635,"depth":3874,"text":3636},{"id":3683,"depth":3874,"text":3684},{"id":3721,"depth":3874,"text":3722},{"id":3758,"depth":3874,"text":3759},{"id":3813,"depth":3874,"text":3814},{"id":3918,"depth":3874,"text":3919},{"id":3611,"depth":3874,"text":3986},"ai-agents",null,"Production AI agent orchestration demands stack literacy across six uneven layers, from mature compute sandboxes like E2B Firecracker to lagging coordination without Kubernetes-grade tools. Builders bridge gaps with YAML harnesses and spec-driven workflows today, delivering deterministic multi-agent execution via Archon V3 and Claude Code primitives.12","md",[4192,4193,4194,4195,4196,4197,4198,4199],"AI agent orchestration","agent stack","harness engineering","spec-centric development","multi-agent systems","Claude Code","Archon V3","production AI agents",{},"Master the emergent AI agent orchestration stack: uneven maturity, harness engineering, spec-centric dev, and key primitives for production multi-agent systems. Avoid pitfalls with practical workflows from Claude Code and Archon V3.","AI Agent Orchestration Stack: Layers and Primitives",true,"\u002Farticles\u002Fagent-architecture-the-orchestration-stack-that-actually-emerged-article",[],{"the-layered-maturity-of-the-ai-agent-stack":3636,"what-is-harness-engineering-for-ai-agent-orchestration":3684,"the-shift-to-spec-centric-development":3722,"why-ai-agent-orchestration-is-the-biggest-unsolved-problem":3759,"key-primitives-for-production-ai-agent-orchestration":3814,"common-pitfalls-and-trade-offs-in-multi-agent-systems":3919},{"title":3593,"description":4189},{"loc":4204},"emergent-ai-agent-orchestration-stack-harnesess-specs-primitives","ready","articles\u002Fagent-architecture-the-orchestration-stack-that-actually-emerged-article","xdOSx_FUsF7EEM6WqQRjgq4p4T-5gHkBnwndjo2dz-M",{"id":4214,"title":4215,"ai_summary":4216,"author":3595,"body":4217,"category":5366,"date_modified":4188,"description":5367,"excerpt":3595,"extension":4190,"faq":4188,"keywords":5368,"meta":5374,"meta_description":5375,"meta_title":5376,"navigation":4203,"path":5377,"primary_keyword":4225,"published_at":4188,"related_posts":5378,"sections":5379,"seo":5381,"sitemap":5382,"slug":5383,"status":4210,"stem":5384,"__hash__":5385},"articles\u002Farticles\u002Fthe-3-core-agent-harness-why-production-agent-systems-need-planner-generator-evaluator-not-frameworks-article.md","The 3-Core Agent Harness: Planner, Generator, Evaluator for Production AI Agents","Production AI agent systems succeed with a 3-core agent harness: Planner creates high-level outlines, Generator builds outputs from them, and Evaluator critiques via graded rubrics. This strips 90% redundant framework overhead, leveraging modern LLMs for reliable, scalable results on long tasks.",{"type":3597,"value":4218,"toc":5356},[4219,4233,4236,4245,4253,4267,4270,4478,4481,4485,4494,4497,4505,4519,4522,4526,4537,4544,4552,4560,4568,4581,4584,4593,4596,4632,4635,4639,4649,4652,4655,4658,4667,4670,4674,4686,4689,4692,4700,4703,4707,4720,4750,4758,4764,4767,4842,4845,4851,4878,4881,4890,4896,4976,4991,4996,5028,5040,5043,5047,5063,5066,5090,5093,5102,5105,5108,5112,5121,5124,5150,5160,5163,5166,5169,5353],[3600,4220,4221,4222,4226,4227,4232],{},"Production AI agent systems thrive with a ",[4223,4224,4225],"strong",{},"3-core agent harness","—Planner for high-level outlines, Generator for implementation, Evaluator for adversarial critique using graded rubrics—stripping 90% bloated framework overhead per Anthropic tests.",[3604,4228,4229],{},[3607,4230,3613],{"href":3609,"ariaDescribedBy":4231,"dataFootnoteRef":3595,"id":3612},[3611]," This leverages modern LLMs' 1M+ token windows and coherence for reliable, scalable outputs on long-horizon tasks.",[3600,4234,4235],{},"You've likely tried agent frameworks that promise reliability but deliver cascading errors from micro-task sharding. Those assumptions fit older LLMs with short contexts and poor coherence, not Claude Opus 4.6. This harness ships product-level work like high-volume AI-generated PRs, letting you focus on primitives over complexity.",[3600,4237,4238,4239,4244],{},"Anthropic's experiments, summarized by AI LABS, tested stripping frameworks layer by layer on long tasks.",[3604,4240,4241],{},[3607,4242,3613],{"href":3609,"ariaDescribedBy":4243,"dataFootnoteRef":3595,"id":3630},[3611]," Results showed only the Planner for product outlines, Generator for execution, and Evaluator for critique delivered gains. Complex staging in SpecKit or loops in GSD added token bloat and error drift without benefits.",[3600,4246,4247,4248],{},"Contrast traditional setups: BMAD shards PRDs into micro-tasks to handle context resets; GSD enforces rigid agent loops for weak reasoning. With 1M-token windows, LLMs now manage full product scopes autonomously—micro-sharding forces premature decisions that fail downstream.",[3604,4249,4250],{},[3607,4251,3613],{"href":3609,"ariaDescribedBy":4252,"dataFootnoteRef":3595,"id":3645},[3611],[3600,4254,4255,4256,4261,4262],{},"Nate B. Jones's analysis of Claude's leaked code reinforces primitives over frameworks for scalability.",[3604,4257,4258],{},[3607,4259,3621],{"href":3618,"ariaDescribedBy":4260,"dataFootnoteRef":3595,"id":3620},[3611]," Agent Blueprint advises single-agent mastery before multi-agent scaling.",[3604,4263,4264],{},[3607,4265,3666],{"href":3663,"ariaDescribedBy":4266,"dataFootnoteRef":3595,"id":3665},[3611],[3600,4268,4269],{},"To see it in action, here's a minimal YAML harness stub using Archon V3 style for a task-tracking app:",[3851,4271,4273],{"className":3853,"code":4272,"language":3855,"meta":3595,"style":3595},"harness:\n  planner:\n    role: \"Product Lead\"\n    goal: \"Outline task-tracking app\"\n    tools: [\"search\"]\n    rules: [\"High-level only; flag risks; no code\"]\n    output: \"Markdown: user stories, features, roadmap\"\n  generator:\n    role: \"Engineer\"\n    goal: \"Implement planner outline\"\n    tools: [\"git\", \"calc\"]\n    rules: [\"Isolated worktree; commit artifacts\"]\n    output: \"Code files + README\"\n  evaluator:\n    role: \"QA Adversary\"\n    goal: \"Score vs rubric\"\n    tools: [\"playwright\"]\n    rules: [\"Assume flaws; weighted scores\"]\n    output: \"JSON: scores, fixes\"\n",[3857,4274,4275,4282,4289,4299,4309,4324,4337,4348,4356,4366,4376,4394,4406,4416,4424,4434,4444,4456,4468],{"__ignoreMap":3595},[3860,4276,4277,4280],{"class":3862,"line":3863},[3860,4278,4279],{"class":3866},"harness",[3860,4281,3871],{"class":3870},[3860,4283,4284,4287],{"class":3862,"line":3874},[3860,4285,4286],{"class":3866},"  planner",[3860,4288,3871],{"class":3870},[3860,4290,4291,4294,4296],{"class":3862,"line":3890},[3860,4292,4293],{"class":3866},"    role",[3860,4295,3883],{"class":3870},[3860,4297,4298],{"class":3886},"\"Product Lead\"\n",[3860,4300,4301,4304,4306],{"class":3862,"line":3901},[3860,4302,4303],{"class":3866},"    goal",[3860,4305,3883],{"class":3870},[3860,4307,4308],{"class":3886},"\"Outline task-tracking app\"\n",[3860,4310,4312,4315,4318,4321],{"class":3862,"line":4311},5,[3860,4313,4314],{"class":3866},"    tools",[3860,4316,4317],{"class":3870},": [",[3860,4319,4320],{"class":3886},"\"search\"",[3860,4322,4323],{"class":3870},"]\n",[3860,4325,4327,4330,4332,4335],{"class":3862,"line":4326},6,[3860,4328,4329],{"class":3866},"    rules",[3860,4331,4317],{"class":3870},[3860,4333,4334],{"class":3886},"\"High-level only; flag risks; no code\"",[3860,4336,4323],{"class":3870},[3860,4338,4340,4343,4345],{"class":3862,"line":4339},7,[3860,4341,4342],{"class":3866},"    output",[3860,4344,3883],{"class":3870},[3860,4346,4347],{"class":3886},"\"Markdown: user stories, features, roadmap\"\n",[3860,4349,4351,4354],{"class":3862,"line":4350},8,[3860,4352,4353],{"class":3866},"  generator",[3860,4355,3871],{"class":3870},[3860,4357,4359,4361,4363],{"class":3862,"line":4358},9,[3860,4360,4293],{"class":3866},[3860,4362,3883],{"class":3870},[3860,4364,4365],{"class":3886},"\"Engineer\"\n",[3860,4367,4369,4371,4373],{"class":3862,"line":4368},10,[3860,4370,4303],{"class":3866},[3860,4372,3883],{"class":3870},[3860,4374,4375],{"class":3886},"\"Implement planner outline\"\n",[3860,4377,4379,4381,4383,4386,4389,4392],{"class":3862,"line":4378},11,[3860,4380,4314],{"class":3866},[3860,4382,4317],{"class":3870},[3860,4384,4385],{"class":3886},"\"git\"",[3860,4387,4388],{"class":3870},", ",[3860,4390,4391],{"class":3886},"\"calc\"",[3860,4393,4323],{"class":3870},[3860,4395,4397,4399,4401,4404],{"class":3862,"line":4396},12,[3860,4398,4329],{"class":3866},[3860,4400,4317],{"class":3870},[3860,4402,4403],{"class":3886},"\"Isolated worktree; commit artifacts\"",[3860,4405,4323],{"class":3870},[3860,4407,4409,4411,4413],{"class":3862,"line":4408},13,[3860,4410,4342],{"class":3866},[3860,4412,3883],{"class":3870},[3860,4414,4415],{"class":3886},"\"Code files + README\"\n",[3860,4417,4419,4422],{"class":3862,"line":4418},14,[3860,4420,4421],{"class":3866},"  evaluator",[3860,4423,3871],{"class":3870},[3860,4425,4427,4429,4431],{"class":3862,"line":4426},15,[3860,4428,4293],{"class":3866},[3860,4430,3883],{"class":3870},[3860,4432,4433],{"class":3886},"\"QA Adversary\"\n",[3860,4435,4437,4439,4441],{"class":3862,"line":4436},16,[3860,4438,4303],{"class":3866},[3860,4440,3883],{"class":3870},[3860,4442,4443],{"class":3886},"\"Score vs rubric\"\n",[3860,4445,4447,4449,4451,4454],{"class":3862,"line":4446},17,[3860,4448,4314],{"class":3866},[3860,4450,4317],{"class":3870},[3860,4452,4453],{"class":3886},"\"playwright\"",[3860,4455,4323],{"class":3870},[3860,4457,4459,4461,4463,4466],{"class":3862,"line":4458},18,[3860,4460,4329],{"class":3866},[3860,4462,4317],{"class":3870},[3860,4464,4465],{"class":3886},"\"Assume flaws; weighted scores\"",[3860,4467,4323],{"class":3870},[3860,4469,4471,4473,4475],{"class":3862,"line":4470},19,[3860,4472,4342],{"class":3866},[3860,4474,3883],{"class":3870},[3860,4476,4477],{"class":3886},"\"JSON: scores, fixes\"\n",[3600,4479,4480],{},"Run via GitHub Actions: trigger on issue, parse YAML, invoke Claude sequentially. This beats npm installs—I've shipped PRs weekly this way. We'll detail roles, primitives, build steps, and trade-offs next.",[3633,4482,4484],{"id":4483},"why-production-agent-systems-need-a-3-core-agent-harness","Why Production Agent Systems Need a 3-Core Agent Harness",[3600,4486,4487,4488,4493],{},"Ditch bloated agent frameworks—a 3-core agent harness with Planner, Generator, and Evaluator outperforms them by playing to LLM strengths like large contexts and autonomy. Anthropic's Claude Opus 4.6 tests show 90% of components in BMAD, GSD, and SpecKit are redundant overhead that propagates errors on long-horizon tasks.",[3604,4489,4490],{},[3607,4491,3613],{"href":3609,"ariaDescribedBy":4492,"dataFootnoteRef":3595,"id":3654},[3611]," High-level planning avoids flawed detailed specs, while separate evaluation enforces rigor.",[3600,4495,4496],{},"Traditional frameworks compensate for outdated LLM limits: context resets demand sharding, weak coherence needs rigid loops. But 1M-token windows and improved reasoning make micro-tasking counterproductive—it forces premature decisions that cascade failures.",[3600,4498,4499,4500],{},"Anthropic's experiments, summarized by AI LABS, tested stripping frameworks layer by layer. Results? Only the planner for product outlines, generator for execution, and evaluator for critique yielded gains. Complex staging in SpecKit or GSD loops adds no value; it bloats token use and invites drift.",[3604,4501,4502],{},[3607,4503,3613],{"href":3609,"ariaDescribedBy":4504,"dataFootnoteRef":3595,"id":3679},[3611],[3600,4506,4507,4508,4513,4514],{},"Nate B. Jones's analysis of Claude's leaked code echoes this: primitives beat frameworks for scalability.",[3604,4509,4510],{},[3607,4511,3621],{"href":3618,"ariaDescribedBy":4512,"dataFootnoteRef":3595,"id":3714},[3611]," Agent Blueprint stresses single-agent mastery first, scaling only for distinct skills.",[3604,4515,4516],{},[3607,4517,3666],{"href":3663,"ariaDescribedBy":4518,"dataFootnoteRef":3595,"id":3768},[3611],[3600,4520,4521],{},"I've built agents both ways. Frameworks feel safe until production hits—then you're debugging orchestration bugs, not shipping features. The harness cuts that noise.",[3633,4523,4525],{"id":4524},"the-planners-role-in-a-3-core-agent-harness","The Planner's Role in a 3-Core Agent Harness",[3600,4527,4528,4529,4531,4532],{},"In a ",[4223,4530,4225],{},", the Planner generates high-level product outlines, feature breakdowns, and user stories—not micro-tasks—enabling LLMs to autonomously discover optimal paths and avoid error cascades from over-specification. Anthropic's boundary-testing prompts prove Claude Opus 4.6 excels here, generating phased docs without diving into code.",[3604,4533,4534],{},[3607,4535,3613],{"href":3609,"ariaDescribedBy":4536,"dataFootnoteRef":3595,"id":3806},[3611],[3600,4538,4539,4540,4543],{},"Start prompts with ",[4223,4541,4542],{},"Role + Goal + high-level deliverables",". Here's a concrete example for a task-tracking app:",[3851,4545,4550],{"className":4546,"code":4548,"language":4549},[4547],"language-text","You are a product lead with 10+ years shipping SaaS.\n\nGoal: Outline a task-tracking app for indie devs.\n\nDeliverables:\n- 5-10 user stories (As a [user], I want [feature] so [benefit])\n- Key features prioritized by MVP\n- Phased roadmap (Week 1: Core; Week 2: Polish)\n- Risks and assumptions\n\nRules: Stay high-level—no code, tech stacks, or UI mocks. Flag unknowns.\n\nOutput: Markdown sections only.\n","text",[3857,4551,4548],{"__ignoreMap":3595},[3600,4553,4554,4555],{},"Claude Opus 4.6 generates phased docs like this, iterating on creative paths humans might miss.",[3604,4556,4557],{},[3607,4558,3613],{"href":3609,"ariaDescribedBy":4559,"dataFootnoteRef":3595,"id":3970},[3611],[3600,4561,4562,4563],{},"Avoid native \"plan\" modes—they fixate on implementation details too early. Archon V3 uses declarative YAML for living workflows, updating plans mid-run.",[3604,4564,4565],{},[3607,4566,3695],{"href":3692,"ariaDescribedBy":4567,"dataFootnoteRef":3595,"id":3694},[3611],[3600,4569,4570,4571,4574,4575,4580],{},"Agent Blueprint's formula drives reliability: ",[4223,4572,4573],{},"Role + Goal + Tools + Rules + Output",".",[3604,4576,4577],{},[3607,4578,3666],{"href":3663,"ariaDescribedBy":4579,"dataFootnoteRef":3595,"id":3781},[3611]," For Planner: Tools minimal (search only), Rules (\"Stay high-level; flag risks\"), Output (Markdown sections).",[3600,4582,4583],{},"Benefits compound. LLMs outperform humans on detail synthesis—let them handle it post-outline. I've used this for 20+ newsletter outlines; it surfaces non-obvious features like \"AI-suggested subtasks\" I overlooked.",[3600,4585,4586,4587,4592],{},"Contrast SpecKit: It stages detailed specs early, locking in assumptions that drift during generation.",[3604,4588,4589],{},[3607,4590,3733],{"href":3730,"ariaDescribedBy":4591,"dataFootnoteRef":3595,"id":3732},[3611]," High-level planning iterates faster.",[3600,4594,4595],{},"For code integration, pipe output to Generator via file:",[3851,4597,4601],{"className":4598,"code":4599,"language":4600,"meta":3595,"style":3595},"language-bash shiki shiki-themes github-light github-dark","claude --prompt planner_prompt.md --output planner_outline.md\ngit add planner_outline.md\n","bash",[3857,4602,4603,4622],{"__ignoreMap":3595},[3860,4604,4605,4609,4613,4616,4619],{"class":3862,"line":3863},[3860,4606,4608],{"class":4607},"sScJk","claude",[3860,4610,4612],{"class":4611},"sj4cs"," --prompt",[3860,4614,4615],{"class":3886}," planner_prompt.md",[3860,4617,4618],{"class":4611}," --output",[3860,4620,4621],{"class":3886}," planner_outline.md\n",[3860,4623,4624,4627,4630],{"class":3862,"line":3874},[3860,4625,4626],{"class":4607},"git",[3860,4628,4629],{"class":3886}," add",[3860,4631,4621],{"class":3886},[3600,4633,4634],{},"This keeps plans as artifacts, versioned and reviewable. Scale to repos: Plan entire features from GitHub issues.",[3633,4636,4638],{"id":4637},"the-generators-focused-role-in-the-3-core-agent-harness","The Generator's Focused Role in the 3-Core Agent Harness",[3600,4640,4528,4641,4643,4644],{},[4223,4642,4225],{},", the Generator executes solely on Planner outlines in isolated environments like Git worktrees, producing code, content, or artifacts while avoiding self-evaluation bias and memory bloat. It uses tools sparingly (search, calc) for clean, iterable outputs. Archon V3's Markdown commands make this reusable across tasks.",[3604,4645,4646],{},[3607,4647,3695],{"href":3692,"ariaDescribedBy":4648,"dataFootnoteRef":3595,"id":3704},[3611],[3600,4650,4651],{},"Core loop: Think, tool if needed, observe, repeat—but single-purpose. No chit-chat; output to files for persistence.",[3600,4653,4654],{},"Contrast multi-role agents: Combining generation and eval leads to overconfidence. Generators praise mediocre work; separation forces honesty.",[3600,4656,4657],{},"Examples abound. For newsletters: Planner outlines sections, Generator drafts in Markdown. For code: Implement features in fresh worktrees, committing artifacts.",[3600,4659,4660,4661,4666],{},"This ties to spec-centric flows like SDD or SpecKit—Generator translates living specs without drift.",[3604,4662,4663],{},[3607,4664,3733],{"href":3730,"ariaDescribedBy":4665,"dataFootnoteRef":3595,"id":3742},[3611]," No shared memory; pass via files.",[3600,4668,4669],{},"In practice, isolation prevents hallucinations from long contexts. I've generated 50+ PRs weekly this way—far beyond chat-based tinkering.",[3633,4671,4673],{"id":4672},"why-a-separate-evaluator-delivers-production-quality","Why a Separate Evaluator Delivers Production Quality",[3600,4675,4676,4677,4679,4680],{},"A dedicated Evaluator in the ",[4223,4678,4225],{}," scores outputs adversarially against graded rubrics—like UI axes (design: 25%, originality: 25%, craft: 25%, functionality: 25%)—iterating until standards hit and upgrading GSD's pass\u002Ffail to nuanced critique assuming bugs exist. Anthropic stresses holistic excellence over TDD alone.",[3604,4681,4682],{},[3607,4683,3613],{"href":3609,"ariaDescribedBy":4684,"dataFootnoteRef":3595,"id":4685},[3611],"user-content-fnref-1-8",[3600,4687,4688],{},"Rubrics weight criteria explicitly. UI example: \"Design: Modern, intuitive? Originality: Avoids gradients? Craft: Typography\u002Fspacing precise? Functionality: Playwright-tested?\"",[3600,4690,4691],{},"Why separate? Generators optimize for completion, not quality—they hallucinate strengths. Evaluator simulates users, probing edge cases.",[3600,4693,4694,4695],{},"Loop: Critique → Regenerate → Rescore until pass. Agent Blueprint pairs evaluator-optimizer for this.",[3604,4696,4697],{},[3607,4698,3666],{"href":3663,"ariaDescribedBy":4699,"dataFootnoteRef":3595,"id":3799},[3611],[3600,4701,4702],{},"Examples scale to subjective work. UI grading rejects cookie-cutter designs; content rubrics check voice alignment.",[3633,4704,4706],{"id":4705},"essential-primitives-for-reliable-3-core-agent-harnesses","Essential Primitives for Reliable 3-Core Agent Harnesses",[3600,4708,4709,4710,4713,4714,4719],{},"Production ",[4223,4711,4712],{},"3-core agent harnesses"," require \"boring\" primitives like dual tool registries (207+ commands), tiered permissions (18 bash modules), JSON state persistence, token budgeting with projections, structured streaming, and verification. As detailed in Nate B. Jones's analysis of Claude's leaked code, these essentials harden demos into scalable systems handling crashes, controlling costs, and ensuring 24\u002F7 operation.",[3604,4715,4716],{},[3607,4717,3621],{"href":3618,"ariaDescribedBy":4718,"dataFootnoteRef":3595,"id":3749},[3611]," Without them, you're prototyping, not producing.",[3770,4721,4722,4730,4738,4741,4744,4747],{},[3773,4723,4724,4725],{},"Dual tool registries (207+ commands)",[3604,4726,4727],{},[3607,4728,3621],{"href":3618,"ariaDescribedBy":4729,"dataFootnoteRef":3595,"id":3823},[3611],[3773,4731,4732,4733],{},"Tiered permissions (18 bash modules)",[3604,4734,4735],{},[3607,4736,3621],{"href":3618,"ariaDescribedBy":4737,"dataFootnoteRef":3595,"id":3834},[3611],[3773,4739,4740],{},"JSON state persistence",[3773,4742,4743],{},"Token budgeting with projections",[3773,4745,4746],{},"Structured streaming",[3773,4748,4749],{},"Verification",[3600,4751,4752,4753],{},"Nate B. Jones details 12 keys from the Claude code leak: Registries filter runtime tools dynamically; permissions gate risks (built-in > plugins > user-defined).",[3604,4754,4755],{},[3607,4756,3621],{"href":3618,"ariaDescribedBy":4757,"dataFootnoteRef":3595,"id":3941},[3611],[3600,4759,4760,4763],{},[4223,4761,4762],{},"State Persistence",": Full session JSON (messages, tokens, config) for crash recovery.",[3600,4765,4766],{},"Example:",[3851,4768,4772],{"className":4769,"code":4770,"language":4771,"meta":3595,"style":3595},"language-json shiki shiki-themes github-light github-dark","{\n  \"session\": {\n    \"messages\": [...],\n    \"tokens_used\": 12500,\n    \"config\": {\"model\": \"claude-3.5-sonnet\"}\n  }\n}\n","json",[3857,4773,4774,4779,4787,4801,4814,4833,4838],{"__ignoreMap":3595},[3860,4775,4776],{"class":3862,"line":3863},[3860,4777,4778],{"class":3870},"{\n",[3860,4780,4781,4784],{"class":3862,"line":3874},[3860,4782,4783],{"class":4611},"  \"session\"",[3860,4785,4786],{"class":3870},": {\n",[3860,4788,4789,4792,4794,4798],{"class":3862,"line":3890},[3860,4790,4791],{"class":4611},"    \"messages\"",[3860,4793,4317],{"class":3870},[3860,4795,4797],{"class":4796},"s7hpK","...",[3860,4799,4800],{"class":3870},"],\n",[3860,4802,4803,4806,4808,4811],{"class":3862,"line":3901},[3860,4804,4805],{"class":4611},"    \"tokens_used\"",[3860,4807,3883],{"class":3870},[3860,4809,4810],{"class":4611},"12500",[3860,4812,4813],{"class":3870},",\n",[3860,4815,4816,4819,4822,4825,4827,4830],{"class":3862,"line":4311},[3860,4817,4818],{"class":4611},"    \"config\"",[3860,4820,4821],{"class":3870},": {",[3860,4823,4824],{"class":4611},"\"model\"",[3860,4826,3883],{"class":3870},[3860,4828,4829],{"class":3886},"\"claude-3.5-sonnet\"",[3860,4831,4832],{"class":3870},"}\n",[3860,4834,4835],{"class":3862,"line":4326},[3860,4836,4837],{"class":3870},"  }\n",[3860,4839,4840],{"class":3862,"line":4339},[3860,4841,4832],{"class":3870},[3600,4843,4844],{},"Save on every tool call; resume seamlessly.",[3600,4846,4847,4850],{},[4223,4848,4849],{},"Budgeting",": Hard limits + projections. Pre-compute: \"This task forecasts 50k input + 20k output tokens.\"",[3851,4852,4856],{"className":4853,"code":4854,"language":4855,"meta":3595,"style":3595},"language-python shiki shiki-themes github-light github-dark","def project_tokens(prompt_len, steps=10):\n    return prompt_len * 1.2 * steps  # Conservative multiplier\nif project_tokens(len(planner_outline)) > 100000:\n    abort(\"Budget exceeded\")\n","python",[3857,4857,4858,4863,4868,4873],{"__ignoreMap":3595},[3860,4859,4860],{"class":3862,"line":3863},[3860,4861,4862],{},"def project_tokens(prompt_len, steps=10):\n",[3860,4864,4865],{"class":3862,"line":3874},[3860,4866,4867],{},"    return prompt_len * 1.2 * steps  # Conservative multiplier\n",[3860,4869,4870],{"class":3862,"line":3890},[3860,4871,4872],{},"if project_tokens(len(planner_outline)) > 100000:\n",[3860,4874,4875],{"class":3862,"line":3901},[3860,4876,4877],{},"    abort(\"Budget exceeded\")\n",[3600,4879,4880],{},"I've seen major cost savings with budgeting alone on weekly PR batches.",[3600,4882,4883,4886,4887],{},[4223,4884,4885],{},"Observability",": Typed events\u002Flogs. Stream: ",[3857,4888,4889],{},"{\"event\": \"tool_call\", \"tool\": \"git\", \"result\": \"committed\"}",[3600,4891,4892,4895],{},[4223,4893,4894],{},"Tool Registry",": Metadata-driven:",[3851,4897,4899],{"className":3853,"code":4898,"language":3855,"meta":3595,"style":3595},"tools:\n  git:\n    desc: \"Git operations\"\n    perms: \"built-in\"\n    args: [\"commit\", \"push\"]\n  playwright:\n    desc: \"UI tests\"\n    perms: \"plugin\"\n",[3857,4900,4901,4907,4914,4924,4934,4951,4958,4967],{"__ignoreMap":3595},[3860,4902,4903,4905],{"class":3862,"line":3863},[3860,4904,3867],{"class":3866},[3860,4906,3871],{"class":3870},[3860,4908,4909,4912],{"class":3862,"line":3874},[3860,4910,4911],{"class":3866},"  git",[3860,4913,3871],{"class":3870},[3860,4915,4916,4919,4921],{"class":3862,"line":3890},[3860,4917,4918],{"class":3866},"    desc",[3860,4920,3883],{"class":3870},[3860,4922,4923],{"class":3886},"\"Git operations\"\n",[3860,4925,4926,4929,4931],{"class":3862,"line":3901},[3860,4927,4928],{"class":3866},"    perms",[3860,4930,3883],{"class":3870},[3860,4932,4933],{"class":3886},"\"built-in\"\n",[3860,4935,4936,4939,4941,4944,4946,4949],{"class":3862,"line":4311},[3860,4937,4938],{"class":3866},"    args",[3860,4940,4317],{"class":3870},[3860,4942,4943],{"class":3886},"\"commit\"",[3860,4945,4388],{"class":3870},[3860,4947,4948],{"class":3886},"\"push\"",[3860,4950,4323],{"class":3870},[3860,4952,4953,4956],{"class":3862,"line":4326},[3860,4954,4955],{"class":3866},"  playwright",[3860,4957,3871],{"class":3870},[3860,4959,4960,4962,4964],{"class":3862,"line":4339},[3860,4961,4918],{"class":3866},[3860,4963,3883],{"class":3870},[3860,4965,4966],{"class":3886},"\"UI tests\"\n",[3860,4968,4969,4971,4973],{"class":3862,"line":4350},[3860,4970,4928],{"class":3866},[3860,4972,3883],{"class":3870},[3860,4974,4975],{"class":3886},"\"plugin\"\n",[3600,4977,4978,4981,4982,4985],{},[4223,4979,4980],{},"Permissions",": State objects—no world access. ",[3857,4983,4984],{},"permissions: {\"bash\": [\"ls\", \"cat\"], \"deny\": [\"rm -rf\"]}",[3604,4986,4987],{},[3607,4988,3621],{"href":3618,"ariaDescribedBy":4989,"dataFootnoteRef":3595,"id":4990},[3611],"user-content-fnref-2-7",[3600,4992,4993,4995],{},[4223,4994,4749],{},": Guardrail tests post-output. Archon V3 adds pre\u002Fpost-tool hooks:",[3851,4997,4999],{"className":3853,"code":4998,"language":3855,"meta":3595,"style":3595},"hooks:\n  pre-tool: \"validate_args(tool, args)\"\n  post-tool: \"verify_output_schema(result)\"\n",[3857,5000,5001,5008,5018],{"__ignoreMap":3595},[3860,5002,5003,5006],{"class":3862,"line":3863},[3860,5004,5005],{"class":3866},"hooks",[3860,5007,3871],{"class":3870},[3860,5009,5010,5013,5015],{"class":3862,"line":3874},[3860,5011,5012],{"class":3866},"  pre-tool",[3860,5014,3883],{"class":3870},[3860,5016,5017],{"class":3886},"\"validate_args(tool, args)\"\n",[3860,5019,5020,5023,5025],{"class":3862,"line":3890},[3860,5021,5022],{"class":3866},"  post-tool",[3860,5024,3883],{"class":3870},[3860,5026,5027],{"class":3886},"\"verify_output_schema(result)\"\n",[3600,5029,5030,5033,5034],{},[4223,5031,5032],{},"Agent Typing",": Modes like explore\u002Fplan\u002Fverify; permissions evolve with state.",[3604,5035,5036],{},[3607,5037,3621],{"href":3618,"ariaDescribedBy":5038,"dataFootnoteRef":3595,"id":5039},[3611],"user-content-fnref-2-8",[3600,5041,5042],{},"Dynamic pools swap tools mid-run. Skip these, long tasks fail frequently—primitives ensure 24\u002F7 operation.",[3633,5044,5046],{"id":5045},"building-and-scaling-your-3-core-agent-harness","Building and Scaling Your 3-Core Agent Harness",[3600,5048,5049,5050,5056,5062],{},"Assemble a 3-core agent harness via YAML\u002FDAGs (Archon V3), Claude teams, or SpecKit staging: Define each core with Role+Goal+Tools+Rules+Output, layer primitives, master single-agent first, then scale multi for skills.",[3604,5051,5052],{},[3607,5053,3666],{"href":3663,"ariaDescribedBy":5054,"dataFootnoteRef":3595,"id":5055},[3611],"user-content-fnref-3-5",[3604,5057,5058],{},[3607,5059,3695],{"href":3692,"ariaDescribedBy":5060,"dataFootnoteRef":3595,"id":5061},[3611],"user-content-fnref-4-3"," GitHub Actions trigger workflows; minimal tools\u002Fmemory.",[3600,5064,5065],{},"Steps:",[3988,5067,5068,5078,5084],{},[3773,5069,5070,5073,5074,5077],{},[4223,5071,5072],{},"Planner Prompt",": \"Role: Product lead. Goal: ",[3860,5075,5076],{},"Task",". Tools: Search. Rules: High-level only. Output: Markdown outline.\"",[3773,5079,5080,5083],{},[4223,5081,5082],{},"Generator",": \"Role: Engineer. Goal: Implement outline. Tools: Git, calc. Rules: Isolated worktree. Output: Committed artifacts.\"",[3773,5085,5086,5089],{},[4223,5087,5088],{},"Evaluator",": \"Role: QA adversary. Goal: Score vs rubric. Tools: Playwright. Rules: Assume flaws. Output: Scores + fixes.\"",[3600,5091,5092],{},"Add primitives: Token budgeter, JSON state.",[3600,5094,5095,5096],{},"Test on messy inputs. Ready starters: GSD + rubrics; Archon builtins (fix-issue, idea-to-PR).",[3604,5097,5098],{},[3607,5099,3695],{"href":3692,"ariaDescribedBy":5100,"dataFootnoteRef":3595,"id":5101},[3611],"user-content-fnref-4-4",[3600,5103,5104],{},"Scaling: Orchestrators route; parallelism via DAGs.",[3600,5106,5107],{},"Harness over frameworks—I've shipped 10x faster.",[3633,5109,5111],{"id":5110},"trade-offs-misconceptions-and-when-to-skip-agents","Trade-offs, Misconceptions, and When to Skip Agents",[3600,5113,5114,5115],{},"The 3-core agent harness swaps framework \"safety\" for speed but requires primitive investment; it costs more upfront yet runs leaner long-term, with budgeting taming expenses. Misconceptions: Micro-tasks aren't needed (LLMs obsolete them); always multi-agent (master single first). Skip for deterministic chaining\u002Frouting—use Anthropic's 5 workflows.",[3604,5116,5117],{},[3607,5118,3666],{"href":3663,"ariaDescribedBy":5119,"dataFootnoteRef":3595,"id":5120},[3611],"user-content-fnref-3-6",[3600,5122,5123],{},"Trade-offs:",[3770,5125,5126,5132,5138],{},[3773,5127,5128,5131],{},[4223,5129,5130],{},"Build Time",": Primitives take days vs. framework npm install.",[3773,5133,5134,5137],{},[4223,5135,5136],{},"Eval Subjectivity",": Rubrics need tuning for creative work.",[3773,5139,5140,5143,5144],{},[4223,5141,5142],{},"Costs",": Long tasks hit tokens—mitigate with projections.",[3604,5145,5146],{},[3607,5147,3621],{"href":3618,"ariaDescribedBy":5148,"dataFootnoteRef":3595,"id":5149},[3611],"user-content-fnref-2-9",[3600,5151,5152,5153,5159],{},"Risks: No permissions = demo, not product.",[3604,5154,5155],{},[3607,5156,3621],{"href":3618,"ariaDescribedBy":5157,"dataFootnoteRef":3595,"id":5158},[3611],"user-content-fnref-2-10"," Frameworks aren't future-proof; LLMs evolve.",[3600,5161,5162],{},"When to skip: Simple transforms? Chain prompts. Agents shine on open-ended horizons.",[3600,5164,5165],{},"Open: Rubric standards? This works today—iterate your own.",[3600,5167,5168],{},"Pick a stalled repo project. Strip any agent setup to these three roles using Role+Goal+Tools+Rules+Output. Add token budgeting as your first primitive. Run on one feature, measure output quality and costs before scaling—you'll ship faster than with frameworks.",[3978,5170,5172,5175],{"className":5171,"dataFootnotes":3595},[3981],[3633,5173,3986],{"className":5174,"id":3611},[3985],[3988,5176,5177,5221,5282,5317,5342],{},[3773,5178,5179,5180,4001,5183,4001,5188,4001,5193,4001,5198,4001,5203,4001,5208,4001,5213],{"id":3992},"AI LABS, \"Anthropic: Agent Harnesses Need Only 3 Core Agents\" (YouTube summary). ",[3607,5181,4000],{"href":3996,"ariaLabel":3997,"className":5182,"dataFootnoteBackref":3595},[3999],[3607,5184,4000,5186],{"href":4004,"ariaLabel":4005,"className":5185,"dataFootnoteBackref":3595},[3999],[3604,5187,3621],{},[3607,5189,4000,5191],{"href":4011,"ariaLabel":4012,"className":5190,"dataFootnoteBackref":3595},[3999],[3604,5192,3666],{},[3607,5194,4000,5196],{"href":4018,"ariaLabel":4019,"className":5195,"dataFootnoteBackref":3595},[3999],[3604,5197,3695],{},[3607,5199,4000,5201],{"href":4025,"ariaLabel":4026,"className":5200,"dataFootnoteBackref":3595},[3999],[3604,5202,3733],{},[3607,5204,4000,5206],{"href":4032,"ariaLabel":4033,"className":5205,"dataFootnoteBackref":3595},[3999],[3604,5207,3930],{},[3607,5209,4000,5211],{"href":4039,"ariaLabel":4040,"className":5210,"dataFootnoteBackref":3595},[3999],[3604,5212,4044],{},[3607,5214,4000,5218],{"href":5215,"ariaLabel":5216,"className":5217,"dataFootnoteBackref":3595},"#user-content-fnref-1-8","Back to reference 1-8",[3999],[3604,5219,5220],{},"8",[3773,5222,5223,5224,4001,5227,4001,5232,4001,5237,4001,5242,4001,5247,4001,5252,4001,5259,4001,5266,4001,5274],{"id":4047},"Nate B. Jones, \"Claude Code Leak: 12 Primitives for Production Agents\" (YouTube). ",[3607,5225,4000],{"href":4051,"ariaLabel":4052,"className":5226,"dataFootnoteBackref":3595},[3999],[3607,5228,4000,5230],{"href":4056,"ariaLabel":4057,"className":5229,"dataFootnoteBackref":3595},[3999],[3604,5231,3621],{},[3607,5233,4000,5235],{"href":4063,"ariaLabel":4064,"className":5234,"dataFootnoteBackref":3595},[3999],[3604,5236,3666],{},[3607,5238,4000,5240],{"href":4070,"ariaLabel":4071,"className":5239,"dataFootnoteBackref":3595},[3999],[3604,5241,3695],{},[3607,5243,4000,5245],{"href":4077,"ariaLabel":4078,"className":5244,"dataFootnoteBackref":3595},[3999],[3604,5246,3733],{},[3607,5248,4000,5250],{"href":4084,"ariaLabel":4085,"className":5249,"dataFootnoteBackref":3595},[3999],[3604,5251,3930],{},[3607,5253,4000,5257],{"href":5254,"ariaLabel":5255,"className":5256,"dataFootnoteBackref":3595},"#user-content-fnref-2-7","Back to reference 2-7",[3999],[3604,5258,4044],{},[3607,5260,4000,5264],{"href":5261,"ariaLabel":5262,"className":5263,"dataFootnoteBackref":3595},"#user-content-fnref-2-8","Back to reference 2-8",[3999],[3604,5265,5220],{},[3607,5267,4000,5271],{"href":5268,"ariaLabel":5269,"className":5270,"dataFootnoteBackref":3595},"#user-content-fnref-2-9","Back to reference 2-9",[3999],[3604,5272,5273],{},"9",[3607,5275,4000,5279],{"href":5276,"ariaLabel":5277,"className":5278,"dataFootnoteBackref":3595},"#user-content-fnref-2-10","Back to reference 2-10",[3999],[3604,5280,5281],{},"10",[3773,5283,5284,5285,4001,5288,4001,5293,4001,5298,4001,5303,4001,5310],{"id":4091},"Lukas Margerie, \"Agent Blueprint: Role + Goal + Tools + Rules + Output\" (YouTube). ",[3607,5286,4000],{"href":4095,"ariaLabel":4096,"className":5287,"dataFootnoteBackref":3595},[3999],[3607,5289,4000,5291],{"href":4100,"ariaLabel":4101,"className":5290,"dataFootnoteBackref":3595},[3999],[3604,5292,3621],{},[3607,5294,4000,5296],{"href":4107,"ariaLabel":4108,"className":5295,"dataFootnoteBackref":3595},[3999],[3604,5297,3666],{},[3607,5299,4000,5301],{"href":4114,"ariaLabel":4115,"className":5300,"dataFootnoteBackref":3595},[3999],[3604,5302,3695],{},[3607,5304,4000,5308],{"href":5305,"ariaLabel":5306,"className":5307,"dataFootnoteBackref":3595},"#user-content-fnref-3-5","Back to reference 3-5",[3999],[3604,5309,3733],{},[3607,5311,4000,5315],{"href":5312,"ariaLabel":5313,"className":5314,"dataFootnoteBackref":3595},"#user-content-fnref-3-6","Back to reference 3-6",[3999],[3604,5316,3930],{},[3773,5318,5319,5320,4001,5323,4001,5328,4001,5335],{"id":4121},"DIY Smart Code, \"Archon V3: YAML Harnesses for AI Coding Agents\" (YouTube). ",[3607,5321,4000],{"href":4125,"ariaLabel":4126,"className":5322,"dataFootnoteBackref":3595},[3999],[3607,5324,4000,5326],{"href":4130,"ariaLabel":4131,"className":5325,"dataFootnoteBackref":3595},[3999],[3604,5327,3621],{},[3607,5329,4000,5333],{"href":5330,"ariaLabel":5331,"className":5332,"dataFootnoteBackref":3595},"#user-content-fnref-4-3","Back to reference 4-3",[3999],[3604,5334,3666],{},[3607,5336,4000,5340],{"href":5337,"ariaLabel":5338,"className":5339,"dataFootnoteBackref":3595},"#user-content-fnref-4-4","Back to reference 4-4",[3999],[3604,5341,3695],{},[3773,5343,5344,5345,4001,5348],{"id":4137},"Level Up Coding, \"SDD Makes Specs the Single Source of Truth via AI Agents.\" ",[3607,5346,4000],{"href":4141,"ariaLabel":4142,"className":5347,"dataFootnoteBackref":3595},[3999],[3607,5349,4000,5351],{"href":4146,"ariaLabel":4147,"className":5350,"dataFootnoteBackref":3595},[3999],[3604,5352,3621],{},[4175,5354,5355],{},"html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s7hpK, html code.shiki .s7hpK{--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}",{"title":3595,"searchDepth":3874,"depth":3874,"links":5357},[5358,5359,5360,5361,5362,5363,5364,5365],{"id":4483,"depth":3874,"text":4484},{"id":4524,"depth":3874,"text":4525},{"id":4637,"depth":3874,"text":4638},{"id":4672,"depth":3874,"text":4673},{"id":4705,"depth":3874,"text":4706},{"id":5045,"depth":3874,"text":5046},{"id":5110,"depth":3874,"text":5111},{"id":3611,"depth":3874,"text":3986},"ai-llms","Production AI agent systems thrive with a 3-core agent harness—Planner for high-level outlines, Generator for implementation, Evaluator for adversarial critique using graded rubrics—stripping 90% bloated framework overhead per Anthropic tests.1 This leverages modern LLMs' 1M+ token windows and coherence for reliable, scalable outputs on long-horizon tasks.",[4225,4199,5369,5370,5371,5372,4194,5373],"planner generator evaluator","agent frameworks","Claude Opus","AI agent primitives","minimalist agents",{},"Learn why production AI agents need just Planner, Generator, and Evaluator—not frameworks. Anthropic tests show 90% framework bloat is obsolete. Build scalable harnesses with primitives for reliable outputs in code, UI, and content.","3-Core Agent Harness for Production AI","\u002Farticles\u002Fthe-3-core-agent-harness-why-production-agent-systems-need-planner-generator-evaluator-not-frameworks-article",[],{"intro":5380,"why-production-agent-systems-need-a-3-core-agent-harness":4484,"the-planners-role-in-a-3-core-agent-harness":4525,"the-generators-focused-role-in-the-3-core-agent-harness":4638,"why-a-separate-evaluator-delivers-production-quality":4673,"essential-primitives-for-reliable-3-core-agent-harnesses":4706,"building-and-scaling-your-3-core-agent-harness":5046,"trade-offs-misconceptions-and-when-to-skip-agents":5111},"Introduction",{"title":4215,"description":5367},{"loc":5377},"3-core-agent-harness-planner-generator-evaluator-production-ai-agents","articles\u002Fthe-3-core-agent-harness-why-production-agent-systems-need-planner-generator-evaluator-not-frameworks-article","pEqxcDCwoMVirkXg2PYcYkpR4uAFqYg3dO1nMbJGObo",{"id":5387,"title":5388,"ai_summary":5389,"author":3595,"body":5390,"category":5366,"date_modified":4188,"description":6180,"excerpt":3595,"extension":4190,"faq":4188,"keywords":6181,"meta":6188,"meta_description":6189,"meta_title":6190,"navigation":4203,"path":6191,"primary_keyword":4194,"published_at":4188,"related_posts":6192,"sections":6193,"seo":6194,"sitemap":6195,"slug":6196,"status":4210,"stem":6197,"__hash__":6198},"articles\u002Farticles\u002Fthe-3-core-agent-harness-why-production-agent-systems-need-planner-generator-evaluator-not-frameworks-ca-203-baseline-round2-article.md","Harness Engineering: The 3-Core System for Reliable Production AI Agents","Production AI agents succeed through harness engineering—a structured system around the model featuring a Planner for specs, Generator for implementation, and independent Evaluator for critique—outperforming solo agents by addressing generosity bias and self-evaluation failures. This 3-core harness delivers reliable outputs for coding and long tasks. (50 words)",{"type":3597,"value":5391,"toc":6168},[5392,5401,5410,5413,5417,5429,5432,5435,5455,5470,5473,5477,5486,5493,5500,5503,5512,5515,5518,5522,5531,5534,5555,5564,5567,5576,5579,5583,5592,5595,5603,5606,5609,5654,5657,5660,5664,5673,5678,5684,5687,5692,5703,5706,5709,5717,5726,5729,5748,5752,5761,5767,5773,5784,5798,5801,5850,5853,5856,5859,5863,5872,5875,5883,5899,5907,5910,5913,5917,5926,5928,5939,5942,5945,5985,5988,5991,5995,5998,6001,6004,6021,6024,6165],[3600,5393,5394,5395,5400],{},"Production AI agents fail at an 88% rate despite LLM advances because they rely on solo models without proper scaffolding.",[3604,5396,5397],{},[3607,5398,3613],{"href":3609,"ariaDescribedBy":5399,"dataFootnoteRef":3595,"id":3612},[3611]," Harness engineering fixes this: build a 3-core system with a Planner for specs, Generator for code, and independent Evaluator for critique. This outperforms single agents by countering generosity bias and self-evaluation flaws (42 words).",[3600,5402,5403,5404,5409],{},"You've seen the hype—agents that code apps, manage workflows, ship features. But in production, most crumble. A solo agent might spit out a game engine in 20 minutes for $9, only for core mechanics to break on first play.",[3604,5405,5406],{},[3607,5407,3621],{"href":3618,"ariaDescribedBy":5408,"dataFootnoteRef":3595,"id":3620},[3611]," The 3-core harness, drawn from Anthropic's research, takes six hours and $200 but delivers a fully playable title with advanced features like multiplayer and AI opponents.",[3600,5411,5412],{},"Why does this matter now? As an indie builder or AI dev, you're shipping products where unreliable agents mean broken features, wasted cycles, and lost trust. Harness engineering isn't theory—it's the system that turns demos into deployables. We'll break down the why, the architecture, components, results, and trade-offs, with prompts and patterns you can use today.",[3633,5414,5416],{"id":5415},"what-is-harness-engineering","What Is Harness Engineering?",[3600,5418,5419,5420,4574,5423,5428],{},"Harness engineering is the discipline of building production-grade scaffolding around LLMs—coordination layers, specialized agents, validation loops, and session orchestration—that ensures reliable AI agent performance, far more than model choice alone. It evolved from prompt engineering to handle complex, multi-turn tasks like app development, with components like guides (feedforward) and sensors (feedback) encoding fixes for model weaknesses. Tian Pan boils it down: ",[4223,5421,5422],{},"Agent = Model + Harness",[3604,5424,5425],{},[3607,5426,3666],{"href":3663,"ariaDescribedBy":5427,"dataFootnoteRef":3595,"id":3665},[3611]," (72 words)",[3600,5430,5431],{},"Prompt engineering works for single turns: stuff context, get output. But production agents run sessions—hours of back-and-forth, context resets, accumulating errors. Harness engineering orchestrates this: it sequences agent calls, injects state, validates outputs, and loops on failures.",[3600,5433,5434],{},"Core principles set it apart:",[3770,5436,5437,5443,5449],{},[3773,5438,5439,5442],{},[4223,5440,5441],{},"Specialization",": No jack-of-all-trades agents. Use dedicated Planner, Generator, Evaluator.",[3773,5444,5445,5448],{},[4223,5446,5447],{},"Validation loops",": External checks (tests, linters) before declaring \"done.\"",[3773,5450,5451,5454],{},[4223,5452,5453],{},"Externalized state",": Progress files in JSON or Markdown persist across resets.",[3600,5456,5457,5458,5463,5464,5469],{},"Without it, 88% of agent projects never hit production—not from dumb models, but brittle systems.",[3604,5459,5460],{},[3607,5461,3613],{"href":3609,"ariaDescribedBy":5462,"dataFootnoteRef":3595,"id":3630},[3611]," MindStudio calls this the shift from \"prompt hacking\" to \"session engineering.\"",[3604,5465,5466],{},[3607,5467,3695],{"href":3692,"ariaDescribedBy":5468,"dataFootnoteRef":3595,"id":3694},[3611]," You need it for coding agents, long-running tasks, or anything beyond chat.",[3600,5471,5472],{},"I've built agent pipelines for indie apps. Swapping Claude for Gemini barely moved the needle—until I added a harness. Reliability jumped from flaky to shippable.",[3633,5474,5476],{"id":5475},"why-single-ai-agents-fail-in-production","Why Single AI Agents Fail in Production",[3600,5478,5479,5480,5485],{},"Single AI agents fail production at an 88% rate because LLMs suffer generosity bias (self-praise of mediocre work), context anxiety (rushing as tokens fill), and unreliable self-evaluation—leading to broken outputs in coding or long tasks. Benchmarks show solo agents produce non-functional apps, while harnessed systems deliver working ones. Apurv Khare nails it: models can't judge their own code.",[3604,5481,5482],{},[3607,5483,3621],{"href":3618,"ariaDescribedBy":5484,"dataFootnoteRef":3595,"id":3714},[3611]," (68 words)",[3600,5487,5488,5489,5492],{},"Start with ",[4223,5490,5491],{},"generosity bias",". LLMs rate their output high even when it's junk. A solo agent declares a half-baked function \"complete\" because it lacks external critique.",[3600,5494,5495,5496,5499],{},"Then ",[4223,5497,5498],{},"context anxiety",": As the window fills with history, models truncate reasoning to fit. Outputs get hasty, errors compound.",[3600,5501,5502],{},"Self-evaluation? Worse. The same model generating code can't spot its flaws—it's like grading your own homework.",[3600,5504,5505,5506,5511],{},"Real example: That 20-minute\u002F$9 solo agent game.",[3604,5507,5508],{},[3607,5509,3621],{"href":3618,"ariaDescribedBy":5510,"dataFootnoteRef":3595,"id":3749},[3611]," It rendered sprites but crashed on collisions. No multiplayer, no saves—core broken.",[3600,5513,5514],{},"Community echoes this. Nurunnubi Talukder: \"Generator-judge fails because models lie to themselves.\" Christian Ingul: \"Same agent generating and judging doesn't work.\" Divyansh Puri: \"A harness tames the wild horse.\"",[3600,5516,5517],{},"For you? Wasted API spend, debugging agent hallucinations in prod, features that flake under load. Solo agents demo well but ship poorly.",[3633,5519,5521],{"id":5520},"the-3-core-agent-harness-planner-generator-evaluator","The 3-Core-Agent Harness: Planner, Generator, Evaluator",[3600,5523,5524,5525,5530],{},"The 3-core-agent harness in harness engineering separates concerns into a Planner (goal-to-spec), Generator (incremental builds with negotiated \"done\" contracts), and Evaluator (independent testing\u002Fcritique)—creating a GAN-inspired loop that overcomes solo agent limits for production reliability in tasks like game engines or apps. Anthropic's benchmarks prove it: harnessed agents ship quality where solos fail.",[3604,5526,5527],{},[3607,5528,3621],{"href":3618,"ariaDescribedBy":5529,"dataFootnoteRef":3595,"id":3823},[3611]," (74 words)",[3600,5532,5533],{},"Here's the flow:",[3988,5535,5536,5542,5547,5552],{},[3773,5537,5538,5541],{},[4223,5539,5540],{},"Planner",": High-level goal → detailed spec + Definition of Done (DoD).",[3773,5543,5544,5546],{},[4223,5545,5082],{},": Picks a sprint, negotiates DoD with Evaluator, codes incrementally using progress files.",[3773,5548,5549,5551],{},[4223,5550,5088],{},": Runs end-to-end tests (e.g., Playwright), reports file\u002Fline fixes needed.",[3773,5553,5554],{},"Loop: Failures route back to Generator. Success advances progress file.",[3600,5556,5557,5558,5563],{},"It's GAN-like: Generator improves via Evaluator's adversarial feedback.",[3604,5559,5560],{},[3607,5561,3733],{"href":3730,"ariaDescribedBy":5562,"dataFootnoteRef":3595,"id":3732},[3611]," External memory—progress.json tracks tasks, code state, decisions—handles resets.",[3600,5565,5566],{},"Why superior? Independent eval kills bias. Negotiation upfront aligns expectations. Iteration polishes.",[3600,5568,5569,5570,5575],{},"From Anthropic: Solo = broken basics. Harness = advanced, playable.",[3604,5571,5572],{},[3607,5573,3621],{"href":3618,"ariaDescribedBy":5574,"dataFootnoteRef":3595,"id":3834},[3611]," I've used variants for backend APIs—output went from 60% passing tests to 95%.",[3600,5577,5578],{},"Prompt each core narrowly. Planner stays high-level to avoid over-spec. Generator reads progress.json. Evaluator gets tools for real testing.",[3633,5580,5582],{"id":5581},"how-the-planner-turns-goals-into-actionable-specs","How the Planner Turns Goals into Actionable Specs",[3600,5584,5585,5586,5591],{},"The Planner agent in harness engineering takes 1-4 sentence high-level goals and expands them into detailed product specs and Definition of Done, avoiding cascading errors by staying high-level and defining success criteria upfront—setting a solid foundation for Generator sprints. Anthropic's game engine example: \"Build a multiplayer shooter\" becomes UI flows, mechanics, tech stack, and testable DoD.",[3604,5587,5588],{},[3607,5589,3621],{"href":3618,"ariaDescribedBy":5590,"dataFootnoteRef":3595,"id":3941},[3611]," (62 words)",[3600,5593,5594],{},"Process is simple:",[3770,5596,5597,5600],{},[3773,5598,5599],{},"Input: \"Build a web-based task manager with user auth.\"",[3773,5601,5602],{},"Output: YAML spec with features (login, CRUD tasks, search), stack (React\u002FNode\u002FPostgres), DoD (e.g., \"User can create task via UI, persists to DB, lists 100 items\").",[3600,5604,5605],{},"Benefits? No Generator assumptions—everything explicit. Sprints stay bite-sized (one feature).",[3600,5607,5608],{},"Example spec snippet:",[3851,5610,5612],{"className":3853,"code":5611,"language":3855,"meta":3595,"style":3595},"features:\n  - login: JWT auth, form validation\ndod:\n  - \"Playwright test: New user logs in, redirects to dashboard\"\n  - \"API endpoint \u002Ftasks returns JSON array\"\n",[3857,5613,5614,5621,5633,5640,5647],{"__ignoreMap":3595},[3860,5615,5616,5619],{"class":3862,"line":3863},[3860,5617,5618],{"class":3866},"features",[3860,5620,3871],{"class":3870},[3860,5622,5623,5625,5628,5630],{"class":3862,"line":3874},[3860,5624,3877],{"class":3870},[3860,5626,5627],{"class":3866},"login",[3860,5629,3883],{"class":3870},[3860,5631,5632],{"class":3886},"JWT auth, form validation\n",[3860,5634,5635,5638],{"class":3862,"line":3890},[3860,5636,5637],{"class":3866},"dod",[3860,5639,3871],{"class":3870},[3860,5641,5642,5644],{"class":3862,"line":3901},[3860,5643,3877],{"class":3870},[3860,5645,5646],{"class":3886},"\"Playwright test: New user logs in, redirects to dashboard\"\n",[3860,5648,5649,5651],{"class":3862,"line":4311},[3860,5650,3877],{"class":3870},[3860,5652,5653],{"class":3886},"\"API endpoint \u002Ftasks returns JSON array\"\n",[3600,5655,5656],{},"Tips: Prompt with \"Output YAML only. Stay high-level—no code.\" Limit to 5-10 sprints. Review manually first time.",[3600,5658,5659],{},"This prevents 80% of early failures I've seen. Builders skip it, watch cascades.",[3633,5661,5663],{"id":5662},"generator-and-evaluator-the-iteration-loop-that-delivers-quality","Generator and Evaluator: The Iteration Loop That Delivers Quality",[3600,5665,5666,5667,5672],{},"In harness engineering, the Generator implements sprints based on Planner specs and pre-negotiated DoD contracts, while the Evaluator independently tests via tools like Playwright—reporting precise file\u002Fline failures for targeted fixes in a feedback loop that yields far superior outputs than self-evaluation. Contrast: Solo agents break on basics; harnessed ones ship advanced features.",[3604,5668,5669],{},[3607,5670,3621],{"href":3618,"ariaDescribedBy":5671,"dataFootnoteRef":3595,"id":4990},[3611]," (71 words)",[3600,5674,5675,5677],{},[4223,5676,5082],{}," reads spec, progress.json, negotiates DoD:",[3851,5679,5682],{"className":5680,"code":5681,"language":4549},[4547],"Generator: \"Sprint: Login form. Proposed DoD: Form submits, stores JWT in localStorage.\"\nEvaluator: \"Accept. Add: Error on invalid creds.\"\n",[3857,5683,5681],{"__ignoreMap":3595},[3600,5685,5686],{},"Codes incrementally—edits files, commits to git-like state.",[3600,5688,5689,5691],{},[4223,5690,5088],{}," launches app, runs tests:",[3770,5693,5694,5697,5700],{},[3773,5695,5696],{},"UI: Playwright clicks, asserts.",[3773,5698,5699],{},"API: Curl endpoints.",[3773,5701,5702],{},"DB: Query state.",[3600,5704,5705],{},"Feedback: \"src\u002Fauth.js:47—JWT decode fails on expiry. Fix expiry check.\"",[3600,5707,5708],{},"Loop 3-5 times per sprint. Tools make it concrete—no vagueness.",[3600,5710,5711,5712],{},"GAN analogy from Talukder: Evaluator \"fights\" Generator to quality.",[3604,5713,5714],{},[3607,5715,3733],{"href":3730,"ariaDescribedBy":5716,"dataFootnoteRef":3595,"id":3742},[3611],[3600,5718,5719,5720,5725],{},"Solo vs. harness: 20min broken → 6hr playable.",[3604,5721,5722],{},[3607,5723,3621],{"href":3618,"ariaDescribedBy":5724,"dataFootnoteRef":3595,"id":5039},[3611]," In my tests, eval precision cut revisions 40%.",[3600,5727,5728],{},"Integrate Playwright:",[3851,5730,5732],{"className":4598,"code":5731,"language":4600,"meta":3595,"style":3595},"npx playwright test --project=agent-eval\n",[3857,5733,5734],{"__ignoreMap":3595},[3860,5735,5736,5739,5742,5745],{"class":3862,"line":3863},[3860,5737,5738],{"class":4607},"npx",[3860,5740,5741],{"class":3886}," playwright",[3860,5743,5744],{"class":3886}," test",[3860,5746,5747],{"class":4611}," --project=agent-eval\n",[3633,5749,5751],{"id":5750},"harness-components-guides-sensors-and-orchestration","Harness Components: Guides, Sensors, and Orchestration",[3600,5753,5754,5755,5760],{},"Effective harness engineering relies on guides (feedforward docs\u002Fspecs), sensors (feedback like linters\u002Ftests), session orchestration (context injection\u002Fvalidation), and output loops—plus state files and specialization—to make agents reliable across resets and complex tasks. Tian Pan: Guides steer proactively; sensors correct reactively.",[3604,5756,5757],{},[3607,5758,3666],{"href":3663,"ariaDescribedBy":5759,"dataFootnoteRef":3595,"id":3768},[3611]," (54 words)",[3600,5762,5763,5766],{},[4223,5764,5765],{},"Guides",": Docs encoding \"good\"—architecture.md, prompt templates, examples. Injected per session.",[3600,5768,5769,5772],{},[4223,5770,5771],{},"Sensors",": Linters (ESLint), tests (Jest), AI reviewers. Run post-generation.",[3600,5774,5775,5778,5779],{},[4223,5776,5777],{},"Orchestration"," (MindStudio):",[3604,5780,5781],{},[3607,5782,3695],{"href":3692,"ariaDescribedBy":5783,"dataFootnoteRef":3595,"id":3704},[3611],[3770,5785,5786,5789,5792,5795],{},[3773,5787,5788],{},"Start: Inject goal + progress.",[3773,5790,5791],{},"Route: Planner → Generator\u002FEval loop.",[3773,5793,5794],{},"Validate: Schema check outputs.",[3773,5796,5797],{},"Persist: Update progress.json.",[3600,5799,5800],{},"State files example:",[3851,5802,5804],{"className":4769,"code":5803,"language":4771,"meta":3595,"style":3595},"{\n  \"completed\": [\"auth\"],\n  \"in_progress\": \"tasks-crud\",\n  \"dod\": [\"API returns 200 with tasks\"]\n}\n",[3857,5805,5806,5810,5822,5834,5846],{"__ignoreMap":3595},[3860,5807,5808],{"class":3862,"line":3863},[3860,5809,4778],{"class":3870},[3860,5811,5812,5815,5817,5820],{"class":3862,"line":3874},[3860,5813,5814],{"class":4611},"  \"completed\"",[3860,5816,4317],{"class":3870},[3860,5818,5819],{"class":3886},"\"auth\"",[3860,5821,4800],{"class":3870},[3860,5823,5824,5827,5829,5832],{"class":3862,"line":3890},[3860,5825,5826],{"class":4611},"  \"in_progress\"",[3860,5828,3883],{"class":3870},[3860,5830,5831],{"class":3886},"\"tasks-crud\"",[3860,5833,4813],{"class":3870},[3860,5835,5836,5839,5841,5844],{"class":3862,"line":3901},[3860,5837,5838],{"class":4611},"  \"dod\"",[3860,5840,4317],{"class":3870},[3860,5842,5843],{"class":3886},"\"API returns 200 with tasks\"",[3860,5845,4323],{"class":3870},[3860,5847,5848],{"class":3862,"line":4311},[3860,5849,4832],{"class":3870},[3600,5851,5852],{},"Specialization: Add ArchAgent for design, TestGen for suites.",[3600,5854,5855],{},"This combo handles resets—your session crashed? Resume from state.",[3600,5857,5858],{},"No guides\u002Fsensors? Back to solo fragility.",[3633,5860,5862],{"id":5861},"real-results-why-the-harness-beats-solo-agents","Real Results: Why the Harness Beats Solo Agents",[3600,5864,5865,5866,5871],{},"Benchmarks from Anthropic show the 3-core harness builds fully playable games with advanced features in 6 hours\u002F$200, versus solo agents' broken cores in 20min\u002F$9—proving harness engineering delivers production quality where models alone fail. Community validates: Better systems, not smarter models.",[3604,5867,5868],{},[3607,5869,3621],{"href":3618,"ariaDescribedBy":5870,"dataFootnoteRef":3595,"id":5149},[3611]," (52 words)",[3600,5873,5874],{},"Anthropic case: Goal—\"multiplayer FPS.\"",[3770,5876,5877,5880],{},[3773,5878,5879],{},"Solo: Sprites move, but no collisions, scoring, multiplayer.",[3773,5881,5882],{},"Harness: Full UI, netcode, AI bots, saves—all working.",[3600,5884,5885,5886,5891,5892,5898],{},"Khare: \"Harness is the interesting space.\"",[3604,5887,5888],{},[3607,5889,3621],{"href":3618,"ariaDescribedBy":5890,"dataFootnoteRef":3595,"id":5158},[3611]," Talukder: \"Encode model limits.\"",[3604,5893,5894],{},[3607,5895,3733],{"href":3730,"ariaDescribedBy":5896,"dataFootnoteRef":3595,"id":5897},[3611],"user-content-fnref-5-3"," Ripley: \"Systems around models.\" Ben Ripley on LinkedIn.",[3600,5900,5901,5902],{},"Broader: Fixes 88% failure by design.",[3604,5903,5904],{},[3607,5905,3613],{"href":3609,"ariaDescribedBy":5906,"dataFootnoteRef":3595,"id":3645},[3611],[3600,5908,5909],{},"Evolve it: As models improve, delete sensors for self-eval. Audit quarterly.",[3600,5911,5912],{},"I've shipped a CRM agent this way—solo would've bombed prod.",[3633,5914,5916],{"id":5915},"trade-offs-and-how-to-implement-harness-engineering-today","Trade-offs and How to Implement Harness Engineering Today",[3600,5918,5919,5920,5925],{},"Harness engineering adds cost\u002Flatency (e.g., 30x time) but justifies for production via reliability; implement via LangChain\u002FCrewAI for orchestration, start with Generator-Evaluator pair for simple tasks, scale to 3-core, and audit regularly. Not frameworks alone—custom loops win.",[3604,5921,5922],{},[3607,5923,3666],{"href":3663,"ariaDescribedBy":5924,"dataFootnoteRef":3595,"id":3781},[3611]," (48 words)",[3600,5927,5123],{},[3770,5929,5930,5933,5936],{},[3773,5931,5932],{},"Overhead: $200 vs. $9, hours vs. minutes.",[3773,5934,5935],{},"When simplify: Short tasks → Gen-Eval. Complex → full harness.",[3773,5937,5938],{},"Cost threshold: >$50\u002Ftask? Harness pays off.",[3600,5940,5941],{},"Misconception: CrewAI ≠ harness. It's orchestration—build custom.",[3600,5943,5944],{},"Quick start pseudocode:",[3851,5946,5948],{"className":4853,"code":5947,"language":4855,"meta":3595,"style":3595},"while not done(progress):\n    spec = planner(goal)\n    for sprint in spec:\n        dod = negotiate(gen, eval, sprint)\n        code = generator(sprint, progress)\n        feedback = evaluator(code, dod)\n        if pass: update_progress()\n",[3857,5949,5950,5955,5960,5965,5970,5975,5980],{"__ignoreMap":3595},[3860,5951,5952],{"class":3862,"line":3863},[3860,5953,5954],{},"while not done(progress):\n",[3860,5956,5957],{"class":3862,"line":3874},[3860,5958,5959],{},"    spec = planner(goal)\n",[3860,5961,5962],{"class":3862,"line":3890},[3860,5963,5964],{},"    for sprint in spec:\n",[3860,5966,5967],{"class":3862,"line":3901},[3860,5968,5969],{},"        dod = negotiate(gen, eval, sprint)\n",[3860,5971,5972],{"class":3862,"line":4311},[3860,5973,5974],{},"        code = generator(sprint, progress)\n",[3860,5976,5977],{"class":3862,"line":4326},[3860,5978,5979],{},"        feedback = evaluator(code, dod)\n",[3860,5981,5982],{"class":3862,"line":4339},[3860,5983,5984],{},"        if pass: update_progress()\n",[3600,5986,5987],{},"Tools: LangChain for chains, Playwright for eval, JSON for state.",[3600,5989,5990],{},"Audit: Run solo vs. harness on toy task. Measure pass rate.",[3633,5992,5994],{"id":5993},"next-steps-bootstrap-your-harness-today","Next Steps: Bootstrap Your Harness Today",[3600,5996,5997],{},"Harness engineering moves agents from demo toys to production engines—Planner sets rails, Generator-Eval loop grinds quality, components make it resilient. Recap: Model matters less than system.",[3600,5999,6000],{},"Future: Dynamic harnesses auto-simplify; agent-first dev.",[3600,6002,6003],{},"Checklist:",[3770,6005,6006,6009,6012,6015,6018],{},[3773,6007,6008],{},"Map your agent to 3 cores.",[3773,6010,6011],{},"Add Playwright to Eval.",[3773,6013,6014],{},"Externalize state to JSON.",[3773,6016,6017],{},"Negotiate DoD pre-code.",[3773,6019,6020],{},"Benchmark solo vs. harness on a feature.",[3600,6022,6023],{},"Audit your current project now: Slot it into Planner\u002FGen\u002FEval, wire an independent evaluator with Playwright tests, run one sprint, and compare output quality. You'll see the gap—and close it.",[3978,6025,6027,6030],{"className":6026,"dataFootnotes":3595},[3981],[3633,6028,3986],{"className":6029,"id":3611},[3985],[3988,6031,6032,6053,6108,6128,6143],{},[3773,6033,6034,4001,6040,4001,6043,4001,6048],{"id":3992},[3607,6035,6039],{"href":6036,"rel":6037},"https:\u002F\u002Fmiraflow.ai\u002Fblog\u002Fharness-engineering-why-88-percent-ai-agents-fail",[6038],"nofollow","Miraflow AI: Harness Engineering: Why 88% of AI Agents Fail",[3607,6041,4000],{"href":3996,"ariaLabel":3997,"className":6042,"dataFootnoteBackref":3595},[3999],[3607,6044,4000,6046],{"href":4004,"ariaLabel":4005,"className":6045,"dataFootnoteBackref":3595},[3999],[3604,6047,3621],{},[3607,6049,4000,6051],{"href":4011,"ariaLabel":4012,"className":6050,"dataFootnoteBackref":3595},[3999],[3604,6052,3666],{},[3773,6054,6055,4001,6060,4001,6063,4001,6068,4001,6073,4001,6078,4001,6083,4001,6088,4001,6093,4001,6098,4001,6103],{"id":4047},[3607,6056,6059],{"href":6057,"rel":6058},"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fapurvkhare_apurv-khare-harness-engineering-long-activity-7446406273853562880-khax",[6038],"Apurv Khare on LinkedIn: Harness Engineering",[3607,6061,4000],{"href":4051,"ariaLabel":4052,"className":6062,"dataFootnoteBackref":3595},[3999],[3607,6064,4000,6066],{"href":4056,"ariaLabel":4057,"className":6065,"dataFootnoteBackref":3595},[3999],[3604,6067,3621],{},[3607,6069,4000,6071],{"href":4063,"ariaLabel":4064,"className":6070,"dataFootnoteBackref":3595},[3999],[3604,6072,3666],{},[3607,6074,4000,6076],{"href":4070,"ariaLabel":4071,"className":6075,"dataFootnoteBackref":3595},[3999],[3604,6077,3695],{},[3607,6079,4000,6081],{"href":4077,"ariaLabel":4078,"className":6080,"dataFootnoteBackref":3595},[3999],[3604,6082,3733],{},[3607,6084,4000,6086],{"href":4084,"ariaLabel":4085,"className":6085,"dataFootnoteBackref":3595},[3999],[3604,6087,3930],{},[3607,6089,4000,6091],{"href":5254,"ariaLabel":5255,"className":6090,"dataFootnoteBackref":3595},[3999],[3604,6092,4044],{},[3607,6094,4000,6096],{"href":5261,"ariaLabel":5262,"className":6095,"dataFootnoteBackref":3595},[3999],[3604,6097,5220],{},[3607,6099,4000,6101],{"href":5268,"ariaLabel":5269,"className":6100,"dataFootnoteBackref":3595},[3999],[3604,6102,5273],{},[3607,6104,4000,6106],{"href":5276,"ariaLabel":5277,"className":6105,"dataFootnoteBackref":3595},[3999],[3604,6107,5281],{},[3773,6109,6110,4001,6115,4001,6118,4001,6123],{"id":4091},[3607,6111,6114],{"href":6112,"rel":6113},"https:\u002F\u002Ftianpan.co\u002Fblog\u002F2026-02-17-harness-engineering-agent-first-software-development",[6038],"Tian Pan: Harness Engineering",[3607,6116,4000],{"href":4095,"ariaLabel":4096,"className":6117,"dataFootnoteBackref":3595},[3999],[3607,6119,4000,6121],{"href":4100,"ariaLabel":4101,"className":6120,"dataFootnoteBackref":3595},[3999],[3604,6122,3621],{},[3607,6124,4000,6126],{"href":4107,"ariaLabel":4108,"className":6125,"dataFootnoteBackref":3595},[3999],[3604,6127,3666],{},[3773,6129,6130,4001,6135,4001,6138],{"id":4121},[3607,6131,6134],{"href":6132,"rel":6133},"https:\u002F\u002Fwww.mindstudio.ai\u002Fblog\u002Fwhat-is-harness-engineering-ai-coding",[6038],"MindStudio: What Is Harness Engineering?",[3607,6136,4000],{"href":4125,"ariaLabel":4126,"className":6137,"dataFootnoteBackref":3595},[3999],[3607,6139,4000,6141],{"href":4130,"ariaLabel":4131,"className":6140,"dataFootnoteBackref":3595},[3999],[3604,6142,3621],{},[3773,6144,6145,4001,6150,4001,6153,4001,6158],{"id":4137},[3607,6146,6149],{"href":6147,"rel":6148},"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fnurunnubi_harness-design-for-long-running-application-activity-7447849188882632704--iEm",[6038],"Nurunnubi Talukder on LinkedIn",[3607,6151,4000],{"href":4141,"ariaLabel":4142,"className":6152,"dataFootnoteBackref":3595},[3999],[3607,6154,4000,6156],{"href":4146,"ariaLabel":4147,"className":6155,"dataFootnoteBackref":3595},[3999],[3604,6157,3621],{},[3607,6159,4000,6163],{"href":6160,"ariaLabel":6161,"className":6162,"dataFootnoteBackref":3595},"#user-content-fnref-5-3","Back to reference 5-3",[3999],[3604,6164,3666],{},[4175,6166,6167],{},"html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":3595,"searchDepth":3874,"depth":3874,"links":6169},[6170,6171,6172,6173,6174,6175,6176,6177,6178,6179],{"id":5415,"depth":3874,"text":5416},{"id":5475,"depth":3874,"text":5476},{"id":5520,"depth":3874,"text":5521},{"id":5581,"depth":3874,"text":5582},{"id":5662,"depth":3874,"text":5663},{"id":5750,"depth":3874,"text":5751},{"id":5861,"depth":3874,"text":5862},{"id":5915,"depth":3874,"text":5916},{"id":5993,"depth":3874,"text":5994},{"id":3611,"depth":3874,"text":3986},"Production AI agents fail at an 88% rate despite LLM advances because they rely on solo models without proper scaffolding.1 Harness engineering fixes this: build a 3-core system with a Planner for specs, Generator for code, and independent Evaluator for critique. This outperforms single agents by countering generosity bias and self-evaluation flaws (42 words).",[4194,6182,6183,5369,6184,6185,6186,6187],"AI agents","production AI","AI agent failure","LLM harness","agent architecture","reliable AI systems",{},"Discover harness engineering: Build reliable AI agents with Planner, Generator, and Evaluator to overcome 88% production failure rates. Proven in Anthropic's game engine benchmarks for coding tasks.","Harness Engineering for Production AI Agents","\u002Farticles\u002Fthe-3-core-agent-harness-why-production-agent-systems-need-planner-generator-evaluator-not-frameworks-ca-203-baseline-round2-article",[],{"intro":5380,"what-is-harness-engineering":5416,"why-single-ai-agents-fail-in-production":5476,"the-3-core-agent-harness-planner-generator-evaluator":5521,"how-the-planner-turns-goals-into-actionable-specs":5582,"generator-and-evaluator-the-iteration-loop-that-delivers-quality":5663,"harness-components-guides-sensors-and-orchestration":5751,"real-results-why-the-harness-beats-solo-agents":5862,"trade-offs-and-how-to-implement-harness-engineering-today":5916},{"title":5388,"description":6180},{"loc":6191},"harness-engineering-3-core-system-reliable-production-ai-agents","articles\u002Fthe-3-core-agent-harness-why-production-agent-systems-need-planner-generator-evaluator-not-frameworks-ca-203-baseline-round2-article","9F3Tc1PUu6u5THLqevKsmyTtniK0N-jFEnyxvezgOFU"]