{"id":"3acbd6c1-b02f-4925-90a9-1dbe98c576ff","shortId":"95qYFD","kind":"skill","title":"batch-cohort","tagline":"Generate N analysis scripts from a single methodology template × multiple exposure/outcome combinations. The \"80-person team\" pattern — same validated method, swap variables only. Produces batch R/Python code + summary matrix.","description":"# Batch Cohort Analysis Skill\n\nYou are assisting a medical researcher in generating multiple analysis scripts from a single\nvalidated methodology template, each differing only in the exposure/outcome variable combination.\nThis replicates the \"80-person research team\" pattern: one PI designs the methodology, and\nmany researchers execute the same approach with different variable swaps.\n\n## When to Use\n\n- Researcher has a **validated analysis template** (e.g., from /replicate-study or /cross-national)\n- Wants to explore **multiple exposure → outcome combinations** on the same database\n- Goal: systematic variable-swap code generation + batch execution + result matrix\n\n## Inputs\n\n1. **Database path(s)**: CSV/SAS data files (KNHANES, NHANES, NHIS, or any cleaned cohort)\n2. **Methodology template**: One of:\n   - Path to a validated R/Python analysis script (from /replicate-study or /cross-national)\n   - A paper type template name: `nhis_cohort`, `cross_national`, `survey_weighted`\n   - A source paper to extract methodology from (falls back to /replicate-study Phase 1)\n3. **Combination spec**: A list of exposure/outcome pairs, provided as:\n   - Inline list: `exposures: [depression, obesity, smoking]; outcomes: [diabetes, hypertension, CVD]`\n   - CSV file with columns: `exposure`, `outcome`, (optional) `subgroup_vars`\n   - `\"all\"` keyword: generates all pairwise combinations from the lists\n\n### Optional Inputs\n\n- **Covariate set**: Fixed covariate list for all analyses (default: use template's set)\n- **Subgroup variables**: Variables to stratify by (default: sex, age group)\n- **Output format**: `code_only` (just scripts) | `execute` (run + collect results) | `full` (code + results + summary)\n- **Cross-national mode**: If TRUE, generates paired scripts for both countries per combination\n\n## Workflow\n\n### Phase 1: Template Validation\n\n1. Read the methodology template (R script or paper type reference).\n2. Identify the **slot variables** — parts that change per combination:\n   - `EXPOSURE_VAR`: raw variable name in the database\n   - `EXPOSURE_LABEL`: human-readable label for tables/figures\n   - `EXPOSURE_CODING`: how to derive binary/categorical exposure\n   - `OUTCOME_VAR`: raw variable name\n   - `OUTCOME_LABEL`: human-readable label\n   - `OUTCOME_CODING`: how to derive binary outcome\n3. Verify the template runs successfully on at least one combination before batch generation.\n4. Output: template summary with identified slots → user approval.\n\n### Phase 2: Variable Specification\n\nFor each exposure and outcome in the combination spec:\n\n1. **Look up** the variable in the database:\n   - KNHANES: check variable name exists in the CSV header\n   - NHANES: check which table contains the variable (use codebook.csv if available)\n   - NHIS: check claims code or variable name\n2. **Define coding**:\n   - Binary: threshold or category mapping (e.g., `HE_glu >= 126 → diabetes = 1`)\n   - Categorical: level definitions (e.g., `smoking: current/former/never`)\n3. **Check covariate overlap**: If the exposure IS one of the standard covariates, remove it from the adjustment set for that analysis (no self-adjustment).\n4. Output: **combination matrix** with all variable specifications.\n\n```\n| # | Exposure | Exposure Coding | Outcome | Outcome Coding | Covariates (adjusted) | Notes |\n|---|----------|-----------------|---------|----------------|----------------------|-------|\n| 1 | Depression (PHQ≥10) | BP_PHQ sum ≥10 | Diabetes | HE_glu≥126|HbA1c≥6.5|DE1_dg=1 | age,sex,edu,income,smoking,alcohol,obesity,CVD | — |\n| 2 | Obesity (BMI≥25) | HE_obe ≥4 | Diabetes | same | age,sex,edu,income,smoking,alcohol,depression,CVD | obesity removed from covariates |\n| ... | | | | | | |\n```\n\n### Phase 3: Batch Code Generation\n\nFor each combination in the matrix:\n\n1. **Clone** the template script.\n2. **Replace** slot variables with the combination-specific values.\n3. **Adjust covariates**: Remove exposure variable from covariate list if present.\n4. **Set output paths**: Each combination gets its own results subdirectory.\n5. **Generate a master runner script** (`run_all.R` or `run_all.sh`) that:\n   - Executes all N scripts sequentially (or in parallel via `future`/`parallel`)\n   - Captures errors per script without stopping the batch\n   - Logs execution time per analysis\n\n### Phase 4: Batch Execution (if `execute` or `full` mode)\n\n1. Run the master script.\n2. Collect results from each combination's output directory.\n3. Handle failures gracefully:\n   - Log which combinations failed and why\n   - Common failures: convergence issues, too few events, empty subgroups\n   - Suggest fixes for failed combinations\n\n### Phase 5: Summary Matrix\n\nAggregate all results into a single summary:\n\n**Main Results Matrix** (`summary_matrix.csv`):\n\n| Exposure | Outcome | N | Events | Model 1 OR (95% CI) | Model 2 OR (95% CI) | Model 3 OR (95% CI) | p-value | Significant |\n|----------|---------|---|--------|---------------------|---------------------|---------------------|---------|-------------|\n| Depression | Diabetes | 5,811 | 487 | 2.14 (1.52–3.01) | 1.89 (1.33–2.69) | 1.36 (0.91–2.05) | 0.137 | No |\n| Obesity | Diabetes | 5,811 | 487 | 3.45 (2.71–4.39) | 3.38 (2.65–4.32) | 3.12 (2.42–4.02) | <0.001 | Yes |\n| ... | | | | | | | | |\n\n**Subgroup Summary** (`subgroup_matrix.csv`): Same format, stratified by subgroup variables.\n\n**Heatmap** (optional): Visual matrix of effect sizes × significance, exposure on Y-axis, outcome on X-axis.\n\n## Output Files\n\n```\n{working_dir}/batch_{timestamp}/\n├── README.md                    — Batch run summary (N combinations, template used, date)\n├── combination_matrix.csv       — All exposure/outcome specs with coding\n├── template/\n│   └── base_template.R          — The validated template (frozen copy)\n├── scripts/\n│   ├── 01_depression_diabetes.R\n│   ├── 02_obesity_diabetes.R\n│   ├── ...\n│   └── run_all.R                — Master execution script\n├── results/\n│   ├── 01_depression_diabetes/\n│   │   ├── table1.csv\n│   │   ├── main_results.csv\n│   │   └── subgroup_results.csv\n│   ├── 02_obesity_diabetes/\n│   │   └── ...\n│   └── ...\n├── summary/\n│   ├── summary_matrix.csv       — Main results across all combinations\n│   ├── subgroup_matrix.csv      — Subgroup results across all combinations\n│   ├── failed_runs.csv          — Combinations that failed + error messages\n│   └── heatmap.png              — Optional effect size × significance visual\n└── logs/\n    └── batch_execution.log      — Timing + error log\n```\n\n## Critical Rules\n\n1. **Never modify the core methodology** across combinations — only swap exposure/outcome/covariates.\n2. **Remove self-adjustment**: If exposure = BMI, remove obesity from covariates. If exposure = education/income, remove the same variable from covariates. If outcome = MetS, consider removing obesity from covariates. Document all removals.\n3. **Weighted analysis mandatory** for KNHANES/NHANES/NHIS — inherited from template.\n4. **Event count check**: Before running, verify each outcome has ≥10 events per covariate (EPV rule). Flag underpowered combinations.\n5. **Multiple comparisons**: When generating >5 combinations, include a Bonferroni-corrected significance column in the summary matrix. Add a note about exploratory vs confirmatory framing.\n6. **Reproducibility**: Freeze the template version. Include a SHA256 hash of the data file in README.\n7. **No p-hacking framing**: The summary matrix is for **hypothesis generation**, not confirmation. State this explicitly in README and any manuscript output.\n8. **Outcome definitions MUST include physician diagnosis**: Diabetes = FPG≥126 OR HbA1c≥6.5 OR physician-diagnosed (KNHANES: DE1_dg=1, NHANES: DIQ010=\"Yes\"). Hypertension = SBP≥140 OR DBP≥90 OR physician-diagnosed (KNHANES: DI1_dg=1, NHANES: BPQ020=\"Yes\"). Lab-only definitions systematically overestimate exposure→outcome associations (validated: Joo 2026 replication showed US depression→DM wOR 1.92 without vs 1.54 with physician dx).\n9. **Full covariate set is default**: Always use 8 covariates (age, sex, education, income, smoking, alcohol, obesity, CVD) unless explicitly justified. Minimal models (age+sex+BMI only) overestimate effects due to residual confounding.\n\n## Cross-National Batch Mode\n\nWhen `cross_national: true`:\n- Generate paired scripts for each combination (Korea + US)\n- Summary matrix includes both countries side-by-side\n- Direction agreement column: ✓ if both countries show same direction of effect\n- Uses /cross-national skill's dual-survey-design approach\n\n## Integration with Upstream Skills\n\n| Need | Skill |\n|------|-------|\n| Variable coding lookup | `analyze-stats` survey_weighted guide |\n| Template creation from paper | `/replicate-study` Phase 1–3 |\n| Cross-national paired analysis | `/cross-national` |\n| ICD-10 claims algorithms | `analyze-stats` nhis_icd10_mapping guide |\n| Write manuscript from results | `/write-paper` (nhis_cohort or cross_national type) |\n| Figure generation | `/make-figures` (forest plot of all combinations) |\n\n## Example Invocations\n\n### Basic: Single DB, Multiple Exposures × Single Outcome\n\n```\n/batch-cohort\n\nDB: /path/to/knhanes/HN18.csv\nTemplate: /path/to/validated_analysis.R\nExposures: [depression, obesity, smoking, heavy_drinking, low_income, low_education]\nOutcome: diabetes\nMode: full\n```\n\n### Cross-National: Full Matrix\n\n```\n/batch-cohort\n\nDB Korea: /path/to/knhanes/HN18.csv\nDB US: /path/to/nhanes/\nTemplate: cross_national\nExposures: [depression, obesity, smoking]\nOutcomes: [diabetes, hypertension, metabolic_syndrome]\ncross_national: true\nMode: execute\n```\n\n### NHIS Cohort: Claims-Based Batch\n\n```\n/batch-cohort\n\nDB: /path/to/nhis_sample_cohort.csv\nTemplate: nhis_cohort\nExposures: [atrial_fibrillation, heart_failure, COPD, CKD]\nOutcomes: [all_cause_mortality, cardiovascular_death, stroke]\nMode: code_only\n```\n\n## Anti-Hallucination\n\n- **Never fabricate variable names, dataset column names, or variable codings.** If a variable mapping is uncertain, output `[VERIFY: variable_name]` and ask the user to confirm against the data dictionary.\n- **Never fabricate statistical results** — no invented p-values, effect sizes, confidence intervals, or sample sizes. All numbers must come from executed code output.\n- **Never generate references from memory.** Use `/search-lit` for all citations.\n- If a function, package, or API does not exist or you are unsure, say so explicitly rather than guessing.","tags":["batch","cohort","medsci","skills","aperivue","agent-skills","biostatistics","claude-code","claude-skills","clinical-research","diagnostic-accuracy","irb-protocol"],"capabilities":["skill","source-aperivue","skill-batch-cohort","topic-agent-skills","topic-biostatistics","topic-claude-code","topic-claude-skills","topic-clinical-research","topic-diagnostic-accuracy","topic-irb-protocol","topic-literature-review","topic-manuscript","topic-medical-ai","topic-medical-research","topic-meta-analysis"],"categories":["medsci-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/Aperivue/medsci-skills/batch-cohort","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add Aperivue/medsci-skills","source_repo":"https://github.com/Aperivue/medsci-skills","install_from":"skills.sh"}},"qualityScore":"0.499","qualityRationale":"deterministic score 0.50 from registry signals: · indexed on github topic:agent-skills · 98 github stars · SKILL.md body (10,409 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:56:28.716Z","embedding":null,"createdAt":"2026-05-13T12:57:43.857Z","updatedAt":"2026-05-18T18:56:28.716Z","lastSeenAt":"2026-05-18T18:56:28.716Z","tsv":"'-10':1137 '/batch-cohort':1175,1199,1229 '/batch_':746 '/cross-national':99,152,1099,1135 '/make-figures':1160 '/path/to/knhanes/hn18.csv':1177,1202 '/path/to/nhanes':1205 '/path/to/nhis_sample_cohort.csv':1231 '/path/to/validated_analysis.r':1179 '/replicate-study':97,150,174,1126 '/search-lit':1315 '/write-paper':1151 '0.001':713 '0.137':697 '0.91':695 '01':772,784 '02':775,790 '1':123,176,270,273,371,419,469,485,526,607,665,825,982,999,1128 '1.33':692 '1.36':694 '1.52':689 '1.54':1024 '1.89':691 '1.92':1021 '10':472,476,887 '126':417,480,971 '140':988 '2':137,284,359,406,494,531,612,670,836 '2.05':696 '2.14':688 '2.42':711 '2.65':708 '2.69':693 '2.71':705 '2026':1014 '25':497 '3':177,335,426,516,541,621,675,868,1129 '3.01':690 '3.12':710 '3.38':707 '3.45':704 '4':349,452,500,552,599,877 '4.02':712 '4.32':709 '4.39':706 '487':687,703 '5':563,646,685,701,896,901 '6':922 '6.5':482,974 '7':938 '8':962,1036 '80':17,65 '811':686,702 '9':1028 '90':991 '95':667,672,677 'across':797,803,831 'add':914 'adjust':443,451,467,542,840 'age':238,486,503,1038,1051 'aggreg':649 'agreement':1088 'alcohol':491,508,1043 'algorithm':1139 'all.r':570,779 'alway':1034 'analys':224 'analysi':6,35,46,93,147,447,597,870,1134 'analyz':1117,1141 'analyze-stat':1116,1140 'anti':1253 'anti-hallucin':1252 'api':1324 'approach':81,1106 'approv':357 'ask':1276 'assist':39 'associ':1011 'atrial':1236 'avail':398 'axi':736,741 'back':172 'base':764,1227 'basic':1168 'batch':2,28,33,118,347,517,592,600,749,1064,1228 'batch-cohort':1 'batch_execution.log':819 'binari':333,409 'binary/categorical':315 'bmi':496,843,1053 'bonferroni':906 'bonferroni-correct':905 'bp':473 'bpq020':1001 'captur':585 'cardiovascular':1246 'categor':420 'categori':412 'caus':1244 'chang':291 'check':380,389,400,427,880 'ci':668,673,678 'citat':1318 'ckd':1241 'claim':401,1138,1226 'claims-bas':1225 'clean':135 'clone':527 'code':30,116,242,251,311,329,402,408,462,465,518,762,1114,1250,1264,1307 'codebook.csv':396 'cohort':3,34,136,159,1153,1224,1234 'collect':248,613 'column':200,909,1089,1260 'combin':15,61,106,178,211,267,293,345,369,454,522,538,557,617,627,644,753,799,805,807,832,895,902,1075,1165 'combination-specif':537 'combination_matrix.csv':757 'come':1304 'common':631 'comparison':898 'confid':1296 'confirm':952,1280 'confirmatori':920 'confound':1060 'consid':860 'contain':392 'converg':633 'copd':1240 'copi':770 'core':829 'correct':907 'count':879 'countri':265,1082,1092 'covari':217,220,428,438,466,514,543,548,847,856,864,890,1030,1037 'creation':1123 'critic':823 'cross':160,255,1062,1067,1131,1155,1195,1207,1218 'cross-nat':254,1061,1130,1194 'csv':197,386 'csv/sas':127 'current/former/never':425 'cvd':196,493,510,1045 'data':128,934,1283 'databas':110,124,301,378 'dataset':1259 'date':756 'db':1170,1176,1200,1203,1230 'dbp':990 'de1':483,980 'death':1247 'default':225,236,1033 'defin':407 'definit':422,964,1006 'depress':190,470,509,683,773,785,1018,1181,1210 'deriv':314,332 'design':72,1105 'dg':484,981,998 'di1':997 'diabet':194,418,477,501,684,700,786,792,969,1191,1214 'diabetes.r':774,777 'diagnos':978,995 'diagnosi':968 'dictionari':1284 'differ':55,83 'diq010':984 'dir':745 'direct':1087,1095 'directori':620 'dm':1019 'document':865 'drink':1185 'dual':1103 'dual-survey-design':1102 'due':1057 'dx':1027 'e.g':95,414,423 'edu':488,505 'educ':1040,1189 'education/income':850 'effect':729,814,1056,1097,1294 'empti':638 'epv':891 'error':586,810,821 'event':637,663,878,888 'exampl':1166 'execut':78,119,246,574,594,601,603,781,1222,1306 'exist':383,1327 'explicit':955,1047,1334 'explor':102 'exploratori':918 'exposur':104,189,201,294,302,310,316,364,432,460,461,545,660,732,842,849,1009,1172,1180,1209,1235 'exposure/outcome':14,59,183,759 'exposure/outcome/covariates':835 'extract':168 'fabric':1256,1286 'fail':628,643,809 'failed_runs.csv':806 'failur':623,632,1239 'fall':171 'fibril':1237 'figur':1158 'file':129,198,743,935 'fix':219,641 'flag':893 'forest':1161 'format':241,719 'fpg':970 'frame':921,943 'freez':924 'frozen':769 'full':250,605,1029,1193,1197 'function':1321 'futur':583 'generat':4,44,117,208,260,348,519,564,900,950,1070,1159,1310 'get':558 'glu':416,479 'goal':111 'grace':624 'group':239 'guess':1337 'guid':1121,1146 'hack':942 'hallucin':1254 'handl':622 'hash':931 'hba1c':481,973 'header':387 'heart':1238 'heatmap':724 'heatmap.png':812 'heavi':1184 'human':305,325 'human-read':304,324 'hypertens':195,986,1215 'hypothesi':949 'icd':1136 'icd10':1144 'identifi':285,354 'includ':903,928,966,1080 'incom':489,506,1041,1187 'inherit':874 'inlin':187 'input':122,216 'integr':1107 'interv':1297 'invent':1290 'invoc':1167 'issu':634 'joo':1013 'justifi':1048 'keyword':207 'knhane':130,379,979,996 'knhanes/nhanes/nhis':873 'korea':1076,1201 'lab':1004 'lab-on':1003 'label':303,307,323,327 'least':343 'level':421 'list':181,188,214,221,549 'log':593,625,818,822 'look':372 'lookup':1115 'low':1186,1188 'main':656,795 'main_results.csv':788 'mandatori':871 'mani':76 'manuscript':960,1148 'map':413,1145,1268 'master':566,610,780 'matrix':32,121,455,525,648,658,727,913,946,1079,1198 'medic':41 'memori':1313 'messag':811 'met':859 'metabol':1216 'method':23 'methodolog':11,52,74,138,169,276,830 'minim':1049 'mode':257,606,1065,1192,1221,1249 'model':664,669,674,1050 'modifi':827 'mortal':1245 'multipl':13,45,103,897,1171 'must':965,1303 'n':5,576,662,752 'name':157,298,321,382,405,1258,1261,1274 'nation':161,256,1063,1068,1132,1156,1196,1208,1219 'need':1111 'never':826,1255,1285,1309 'nhane':131,388,983,1000 'nhis':132,158,399,1143,1152,1223,1233 'note':468,916 'number':1302 'obe':499 'obes':191,492,495,511,699,776,791,845,862,1044,1182,1211 'one':70,140,344,434 'option':203,215,725,813 'outcom':105,193,202,317,322,328,334,366,463,464,661,737,858,885,963,1010,1174,1190,1213,1242 'output':240,350,453,554,619,742,961,1271,1308 'overestim':1008,1055 'overlap':429 'p':680,941,1292 'p-hack':940 'p-valu':679,1291 'packag':1322 'pair':184,261,1071,1133 'pairwis':210 'paper':154,166,281,1125 'parallel':581,584 'part':289 'path':125,142,555 'pattern':20,69 'per':266,292,587,596,889 'person':18,66 'phase':175,269,358,515,598,645,1127 'phq':471,474 'physician':967,977,994,1026 'physician-diagnos':976,993 'pi':71 'plot':1162 'present':551 'produc':27 'provid':185 'r':278 'r/python':29,146 'rather':1335 'raw':296,319 'read':274 'readabl':306,326 'readm':937,957 'readme.md':748 'refer':283,1311 'remov':439,512,544,837,844,851,861,867 'replac':532 'replic':63,1015 'reproduc':923 'research':42,67,77,89 'residu':1059 'result':120,249,252,561,614,651,657,783,796,802,1150,1288 'rule':824,892 'run':247,339,569,608,750,778,882 'run_all.sh':572 'runner':567 'sampl':1299 'say':1332 'sbp':987 'script':7,47,148,245,262,279,530,568,577,588,611,771,782,1072 'self':450,839 'self-adjust':449,838 'sequenti':578 'set':218,229,444,553,1031 'sex':237,487,504,1039,1052 'sha256':930 'show':1016,1093 'side':1084,1086 'side-by-sid':1083 'signific':682,731,816,908 'singl':10,50,654,1169,1173 'size':730,815,1295,1300 'skill':36,1100,1110,1112 'skill-batch-cohort' 'slot':287,355,533 'smoke':192,424,490,507,1042,1183,1212 'sourc':165 'source-aperivue' 'spec':179,370,760 'specif':361,459,539 'standard':437 'stat':1118,1142 'state':953 'statist':1287 'stop':590 'stratifi':234,720 'stroke':1248 'subdirectori':562 'subgroup':204,230,639,715,722,801 'subgroup_matrix.csv':717,800 'subgroup_results.csv':789 'success':340 'suggest':640 'sum':475 'summari':31,253,352,647,655,716,751,793,912,945,1078 'summary_matrix.csv':659,794 'survey':162,1104,1119 'swap':24,85,115,834 'syndrom':1217 'systemat':112,1007 'tabl':391 'table1.csv':787 'tables/figures':309 'team':19,68 'templat':12,53,94,139,156,227,271,277,338,351,529,754,763,768,876,926,1122,1178,1206,1232 'template.r':765 'threshold':410 'time':595,820 'timestamp':747 'topic-agent-skills' 'topic-biostatistics' 'topic-claude-code' 'topic-claude-skills' 'topic-clinical-research' 'topic-diagnostic-accuracy' 'topic-irb-protocol' 'topic-literature-review' 'topic-manuscript' 'topic-medical-ai' 'topic-medical-research' 'topic-meta-analysis' 'true':259,1069,1220 'type':155,282,1157 'uncertain':1270 'underpow':894 'unless':1046 'unsur':1331 'upstream':1109 'us':1017,1077,1204 'use':88,226,395,755,1035,1098,1314 'user':356,1278 'valid':22,51,92,145,272,767,1012 'valu':540,681,1293 'var':205,295,318 'variabl':25,60,84,114,231,232,288,297,320,360,375,381,394,404,458,534,546,723,854,1113,1257,1263,1267,1273 'variable-swap':113 'verifi':336,883,1272 'version':927 'via':582 'visual':726,817 'vs':919,1023 'want':100 'weight':163,869,1120 'without':589,1022 'wor':1020 'work':744 'workflow':268 'write':1147 'x':740 'x-axi':739 'y':735 'y-axi':734 'yes':714,985,1002","prices":[{"id":"bec4777f-ca55-4159-829b-d96b310b941f","listingId":"3acbd6c1-b02f-4925-90a9-1dbe98c576ff","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"Aperivue","category":"medsci-skills","install_from":"skills.sh"},"createdAt":"2026-05-13T12:57:43.857Z"}],"sources":[{"listingId":"3acbd6c1-b02f-4925-90a9-1dbe98c576ff","source":"github","sourceId":"Aperivue/medsci-skills/batch-cohort","sourceUrl":"https://github.com/Aperivue/medsci-skills/tree/main/skills/batch-cohort","isPrimary":false,"firstSeenAt":"2026-05-13T12:57:43.857Z","lastSeenAt":"2026-05-18T18:56:28.716Z"}],"details":{"listingId":"3acbd6c1-b02f-4925-90a9-1dbe98c576ff","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"Aperivue","slug":"batch-cohort","github":{"repo":"Aperivue/medsci-skills","stars":98,"topics":["agent-skills","biostatistics","claude-code","claude-skills","clinical-research","diagnostic-accuracy","irb-protocol","literature-review","manuscript","medical-ai","medical-research","meta-analysis","physician-researcher","prisma","pubmed","radiology","reporting-guidelines","strobe","systematic-review","tripod-ai"],"license":"other","html_url":"https://github.com/Aperivue/medsci-skills","pushed_at":"2026-05-17T20:50:52Z","description":"Claude Code skills for medical research — literature search, reporting guidelines, statistical analysis, publication figures. Built by a physician-researcher, tested on real publications. MIT licensed.","skill_md_sha":"ac09d8c654ed46c8a168d1fd50a86aae46296b8d","skill_md_path":"skills/batch-cohort/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/Aperivue/medsci-skills/tree/main/skills/batch-cohort"},"layout":"multi","source":"github","category":"medsci-skills","frontmatter":{"name":"batch-cohort","description":"Generate N analysis scripts from a single methodology template × multiple exposure/outcome combinations. The \"80-person team\" pattern — same validated method, swap variables only. Produces batch R/Python code + summary matrix."},"skills_sh_url":"https://skills.sh/Aperivue/medsci-skills/batch-cohort"},"updatedAt":"2026-05-18T18:56:28.716Z"}}