corpus.json 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427
  1. {
  2. "_comment": "Test corpus for /agent-eval. Add entries freely. size: Small (<~150 files), Medium (~150-1500), Large (>~1500). 'question' is a representative architectural question that exercises cross-file understanding.",
  3. "TypeScript": [
  4. {
  5. "name": "ky",
  6. "repo": "https://github.com/sindresorhus/ky",
  7. "size": "Small",
  8. "files": "~25",
  9. "question": "How does ky implement request retries and timeouts?"
  10. },
  11. {
  12. "name": "excalidraw",
  13. "repo": "https://github.com/excalidraw/excalidraw",
  14. "size": "Medium",
  15. "files": "~600",
  16. "question": "How does Excalidraw render and update canvas elements?"
  17. },
  18. {
  19. "name": "vscode",
  20. "repo": "https://github.com/microsoft/vscode",
  21. "size": "Large",
  22. "files": "~10000",
  23. "question": "How does the extension host communicate with the main process?"
  24. }
  25. ],
  26. "JavaScript": [
  27. {
  28. "name": "express",
  29. "repo": "https://github.com/expressjs/express",
  30. "size": "Small",
  31. "files": "~50",
  32. "question": "How does Express route a request through its middleware stack?"
  33. }
  34. ],
  35. "Go": [
  36. {
  37. "name": "cobra",
  38. "repo": "https://github.com/spf13/cobra",
  39. "size": "Small",
  40. "files": "~50",
  41. "question": "How does cobra parse commands and flags?"
  42. },
  43. {
  44. "name": "gin",
  45. "repo": "https://github.com/gin-gonic/gin",
  46. "size": "Medium",
  47. "files": "~150",
  48. "question": "How does gin route requests through its middleware chain?"
  49. },
  50. {
  51. "name": "terraform",
  52. "repo": "https://github.com/hashicorp/terraform",
  53. "size": "Large",
  54. "files": "~4000",
  55. "question": "How does Terraform build and walk the resource dependency graph?"
  56. },
  57. {
  58. "name": "cosmos-sdk",
  59. "repo": "https://github.com/cosmos/cosmos-sdk",
  60. "size": "Large",
  61. "files": "~5000",
  62. "question": "How does a bank module MsgSend message reach the account balance update? Trace the cross-module call path from the bank keeper's Send handler through to the account/balance store update."
  63. }
  64. ],
  65. "Python": [
  66. {
  67. "name": "click",
  68. "repo": "https://github.com/pallets/click",
  69. "size": "Small",
  70. "files": "~60",
  71. "question": "How does click parse command-line arguments into commands?"
  72. },
  73. {
  74. "name": "flask",
  75. "repo": "https://github.com/pallets/flask",
  76. "size": "Medium",
  77. "files": "~90",
  78. "question": "How does Flask dispatch a request to a view function?"
  79. },
  80. {
  81. "name": "django",
  82. "repo": "https://github.com/django/django",
  83. "size": "Large",
  84. "files": "~2700",
  85. "question": "How does Django's ORM build and execute a query from a QuerySet?"
  86. }
  87. ],
  88. "Rust": [
  89. {
  90. "name": "clap",
  91. "repo": "https://github.com/clap-rs/clap",
  92. "size": "Medium",
  93. "files": "~200",
  94. "question": "How does clap parse arguments against a derived command definition?"
  95. },
  96. {
  97. "name": "tokio",
  98. "repo": "https://github.com/tokio-rs/tokio",
  99. "size": "Large",
  100. "files": "~700",
  101. "question": "How does tokio schedule and run async tasks on its runtime?"
  102. },
  103. {
  104. "name": "deno",
  105. "repo": "https://github.com/denoland/deno",
  106. "size": "Large",
  107. "files": "~1500",
  108. "question": "How does Deno load and execute a TypeScript module?"
  109. }
  110. ],
  111. "Java": [
  112. {
  113. "name": "gson",
  114. "repo": "https://github.com/google/gson",
  115. "size": "Medium",
  116. "files": "~200",
  117. "question": "How does Gson serialize an object to JSON?"
  118. },
  119. {
  120. "name": "okhttp",
  121. "repo": "https://github.com/square/okhttp",
  122. "size": "Medium",
  123. "files": "~640",
  124. "question": "How does OkHttp process a request through its interceptor chain?"
  125. },
  126. {
  127. "name": "guava",
  128. "repo": "https://github.com/google/guava",
  129. "size": "Large",
  130. "files": "~3000",
  131. "question": "How does Guava's CacheBuilder build and configure a cache?"
  132. }
  133. ],
  134. "Kotlin": [
  135. {
  136. "name": "koin",
  137. "repo": "https://github.com/InsertKoinIO/koin",
  138. "size": "Medium",
  139. "files": "~300",
  140. "question": "How does Koin resolve and inject dependencies?"
  141. },
  142. {
  143. "name": "leakcanary",
  144. "repo": "https://github.com/square/leakcanary",
  145. "size": "Medium",
  146. "files": "~250",
  147. "question": "How does LeakCanary detect and analyze a memory leak?"
  148. }
  149. ],
  150. "Swift": [
  151. {
  152. "name": "alamofire",
  153. "repo": "https://github.com/Alamofire/Alamofire",
  154. "size": "Small",
  155. "files": "~100",
  156. "question": "How does Alamofire build, send, and validate a request?"
  157. }
  158. ],
  159. "C#": [
  160. {
  161. "name": "serilog",
  162. "repo": "https://github.com/serilog/serilog",
  163. "size": "Medium",
  164. "files": "~250",
  165. "question": "How does Serilog route a log event to its sinks?"
  166. },
  167. {
  168. "name": "jellyfin",
  169. "repo": "https://github.com/jellyfin/jellyfin",
  170. "size": "Large",
  171. "files": "~2500",
  172. "question": "How does Jellyfin scan and identify items in a media library?"
  173. }
  174. ],
  175. "Ruby": [
  176. {
  177. "name": "sinatra",
  178. "repo": "https://github.com/sinatra/sinatra",
  179. "size": "Small",
  180. "files": "~60",
  181. "question": "How does Sinatra match a request to a route handler?"
  182. },
  183. {
  184. "name": "discourse",
  185. "repo": "https://github.com/discourse/discourse",
  186. "size": "Large",
  187. "files": "~3000",
  188. "question": "How does Discourse create and render a new post?"
  189. }
  190. ],
  191. "PHP": [
  192. {
  193. "name": "slim",
  194. "repo": "https://github.com/slimphp/Slim",
  195. "size": "Small",
  196. "files": "~80",
  197. "question": "How does Slim handle a request through its middleware?"
  198. },
  199. {
  200. "name": "laravel",
  201. "repo": "https://github.com/laravel/framework",
  202. "size": "Large",
  203. "files": "~3000",
  204. "question": "How does Laravel resolve and dispatch a route to a controller?"
  205. }
  206. ],
  207. "C": [
  208. {
  209. "name": "redis",
  210. "repo": "https://github.com/redis/redis",
  211. "size": "Large",
  212. "files": "~600",
  213. "question": "How does Redis parse and dispatch a client command?"
  214. }
  215. ],
  216. "C++": [
  217. {
  218. "name": "json",
  219. "repo": "https://github.com/nlohmann/json",
  220. "size": "Small",
  221. "files": "~100",
  222. "question": "How does nlohmann::json parse a JSON string into a value?"
  223. },
  224. {
  225. "name": "grpc",
  226. "repo": "https://github.com/grpc/grpc",
  227. "size": "Large",
  228. "files": "~3000",
  229. "question": "How does gRPC dispatch an incoming RPC to its handler?"
  230. }
  231. ],
  232. "Dart": [
  233. {
  234. "name": "flutter",
  235. "repo": "https://github.com/flutter/flutter",
  236. "size": "Large",
  237. "files": "~6000",
  238. "question": "How does Flutter build and lay out a widget tree?"
  239. }
  240. ],
  241. "Svelte": [
  242. {
  243. "name": "shadcn-svelte",
  244. "repo": "https://github.com/huntabyte/shadcn-svelte",
  245. "size": "Medium",
  246. "files": "~600",
  247. "question": "How do shadcn-svelte components compose and apply their styling?"
  248. }
  249. ],
  250. "Lua": [
  251. {
  252. "name": "lualine.nvim",
  253. "repo": "https://github.com/nvim-lualine/lualine.nvim",
  254. "size": "Small",
  255. "files": "~120",
  256. "question": "How does lualine assemble and render its statusline sections and components?"
  257. },
  258. {
  259. "name": "telescope.nvim",
  260. "repo": "https://github.com/nvim-telescope/telescope.nvim",
  261. "size": "Medium",
  262. "files": "~80",
  263. "question": "How does Telescope wire a picker to its finder, sorter, and previewer?"
  264. },
  265. {
  266. "name": "kong",
  267. "repo": "https://github.com/Kong/kong",
  268. "size": "Large",
  269. "files": "~1330",
  270. "question": "How does Kong execute plugins across a request's lifecycle phases?"
  271. }
  272. ],
  273. "Luau": [
  274. {
  275. "name": "Knit",
  276. "repo": "https://github.com/Sleitnick/Knit",
  277. "size": "Small",
  278. "files": "~10",
  279. "question": "How does Knit register services and expose them to clients?"
  280. },
  281. {
  282. "name": "vide",
  283. "repo": "https://github.com/centau/vide",
  284. "size": "Small",
  285. "files": "~40",
  286. "question": "How does vide track reactive sources and re-run effects when state changes?"
  287. },
  288. {
  289. "name": "Fusion",
  290. "repo": "https://github.com/dphfox/Fusion",
  291. "size": "Medium",
  292. "files": "~115",
  293. "question": "How does Fusion build and update its reactive UI graph from state objects?"
  294. }
  295. ],
  296. "Objective-C": [
  297. {
  298. "name": "Masonry",
  299. "repo": "https://github.com/SnapKit/Masonry",
  300. "size": "Small",
  301. "files": "~50",
  302. "question": "How does Masonry build and activate Auto Layout constraints from its block DSL?"
  303. },
  304. {
  305. "name": "FMDB",
  306. "repo": "https://github.com/ccgus/fmdb",
  307. "size": "Medium",
  308. "files": "~80",
  309. "question": "How does FMDB execute a prepared SQL statement and bind parameters?"
  310. },
  311. {
  312. "name": "SDWebImage",
  313. "repo": "https://github.com/SDWebImage/SDWebImage",
  314. "size": "Large",
  315. "files": "~400",
  316. "question": "How does SDWebImage download, cache, and decode an image for a UIImageView?"
  317. }
  318. ],
  319. "Mixed iOS (Swift+ObjC)": [
  320. {
  321. "name": "Charts",
  322. "repo": "https://github.com/danielgindi/Charts",
  323. "size": "Small",
  324. "files": "~270",
  325. "question": "How does the ChartsDemo ObjC demo controller drive the Swift Charts library to animate and notify a data update?"
  326. },
  327. {
  328. "name": "realm-swift",
  329. "repo": "https://github.com/realm/realm-swift",
  330. "size": "Medium",
  331. "files": "~370",
  332. "question": "How does a Swift `Realm.write { realm.add(obj) }` reach the Objective-C persistence layer?"
  333. },
  334. {
  335. "name": "wikipedia-ios",
  336. "repo": "https://github.com/wikimedia/wikipedia-ios",
  337. "size": "Large",
  338. "files": "~1700",
  339. "question": "How does tapping a search result reach the article-fetch network call across the Swift / ObjC boundary?"
  340. }
  341. ],
  342. "React Native (legacy bridge + TurboModule)": [
  343. {
  344. "name": "@react-native-async-storage",
  345. "repo": "https://github.com/react-native-async-storage/async-storage",
  346. "size": "Small",
  347. "files": "~60",
  348. "question": "How does `setItem` in JS reach the native `legacy_multiSet` implementation?"
  349. },
  350. {
  351. "name": "react-native-svg",
  352. "repo": "https://github.com/software-mansion/react-native-svg",
  353. "size": "Medium",
  354. "files": "~700",
  355. "question": "How does a JS `Svg.getTotalLength(...)` reach the iOS / Android native implementation via TurboModule?"
  356. },
  357. {
  358. "name": "react-native-firebase",
  359. "repo": "https://github.com/invertase/react-native-firebase",
  360. "size": "Large",
  361. "files": "~1100",
  362. "question": "How does a native iOS push notification reach the JS `messaging().onMessage(...)` listener?"
  363. }
  364. ],
  365. "Expo Modules": [
  366. {
  367. "name": "expo-haptics",
  368. "repo": "https://github.com/expo/expo/tree/main/packages/expo-haptics",
  369. "size": "Small",
  370. "files": "~15",
  371. "question": "How does `Haptics.notificationAsync(...)` in JS reach `UINotificationFeedbackGenerator` in the Swift Module?"
  372. },
  373. {
  374. "name": "expo-camera",
  375. "repo": "https://github.com/expo/expo/tree/main/packages/expo-camera",
  376. "size": "Medium",
  377. "files": "~70",
  378. "question": "How does a JS `CameraView.takePictureAsync(options)` reach the native AVCaptureSession / CameraDevice call?"
  379. }
  380. ],
  381. "React Native Fabric (view components)": [
  382. {
  383. "name": "react-native-segmented-control",
  384. "repo": "https://github.com/react-native-segmented-control/segmented-control",
  385. "size": "Small",
  386. "files": "~25",
  387. "question": "How does JSX `<SegmentedControl onChange={cb}/>` reach the native onChange handler on iOS/Android?"
  388. },
  389. {
  390. "name": "react-native-screens",
  391. "repo": "https://github.com/software-mansion/react-native-screens",
  392. "size": "Medium",
  393. "files": "~1200",
  394. "question": "How does JSX `<ScreenStack>` reach the native RNSScreenStackView component?"
  395. },
  396. {
  397. "name": "react-native-skia",
  398. "repo": "https://github.com/Shopify/react-native-skia",
  399. "size": "Large",
  400. "files": "~1000",
  401. "question": "How does a `<SkiaPictureView/>` JSX usage reach the iOS / Android native renderer?"
  402. }
  403. ],
  404. "R": [
  405. {
  406. "name": "AnomalyDetection",
  407. "repo": "https://github.com/twitter/AnomalyDetection",
  408. "size": "Small",
  409. "files": "~24",
  410. "question": "How does AnomalyDetectionTs go from the exported entry function to the underlying S-H-ESD statistical test? Name the functions on the path in order."
  411. },
  412. {
  413. "name": "dplyr",
  414. "repo": "https://github.com/tidyverse/dplyr",
  415. "size": "Medium",
  416. "files": "~450",
  417. "question": "When mutate() is called on a grouped data frame, which functions handle the grouping and expression evaluation, in order, from mutate() down?"
  418. },
  419. {
  420. "name": "ggplot2",
  421. "repo": "https://github.com/tidyverse/ggplot2",
  422. "size": "Large",
  423. "files": "~1150",
  424. "question": "When a ggplot object is printed, how does the plot actually get built and drawn \u2014 trace the path from print/plot to where geoms render. Name the key functions in order."
  425. }
  426. ]
  427. }