{"id":"84671767-b4ba-4655-9232-fe068828c380","shortId":"z6jeX3","kind":"skill","title":"define-variables","tagline":"Literature-grounded variable operationalization for observational research. Turns a data dictionary + research question into a citation-backed table of exposure/outcome/covariate definitions, cutoffs, and DB variable mappings. Prevents ad-hoc phenotype definitions that invite rev","description":"# Define-Variables Skill\n\n## Purpose\n\nEvery observational study operationalizes abstract constructs (MASLD, CKD, emphysema, obesity, incidentaloma) into concrete rules against the available data dictionary. When that operationalization is invented ad-hoc from the dictionary alone, reviewers reject on construct validity regardless of downstream statistics.\n\nThis skill forces a **literature-first** pass: each variable is mapped to a canonical guideline/consensus definition, cross-checked against prior operationalizations in comparable cohorts, then mapped to available DB variables. Ad-hoc deviations are flagged explicitly and justified, not hidden.\n\nUse it when:\n- a study question is known and variables are being selected\n- inclusion/exclusion criteria or phenotype definitions need citation backing\n- a data dictionary has ambiguous or derived variables (eGFR formula, BMI class, liver steatosis criteria, etc.)\n- a reviewer asked \"why this cutoff?\"\n- a retrospective audit reveals drifted definitions across projects in the same cohort\n\nCall after `/design-study`, before `/write-protocol`.\n\n## Communication Rules\n\n- Communicate in the user's preferred language.\n- All variable names, guideline names, cutoffs in English.\n- Produce one artifact: `variable_operationalization.md` in the project root (or path the user specifies).\n\n## Inputs\n\n1. **Research question** (one sentence)\n2. **Candidate variables** — exposure, outcome, key covariates, eligibility filters\n3. **Data dictionary path** (xlsx / csv / markdown) OR explicit list of available DB columns\n4. **Cohort type** (e.g., health-screening, NHANES-like, claims, registry) — informs which prior-art cohort to compare against\n\nMissing inputs → ask once, then proceed.\n\n## 4-Tier Pipeline (DB codebook + token-efficient literature)\n\n### Tier 0 — DB codebook lookup (mandatory for DB-backed observational studies)\n\n**Trigger**: project has a `project.yaml::db.dictionary_path` field pointing to a machine-readable codebook (xlsx/csv/markdown), OR user supplied a dictionary path in inputs. If neither, skip to Tier 1.\n\nFor every candidate DB variable — **before** touching literature — open the dictionary and record, verbatim, the sheet name, row number, and code→meaning mapping. This prevents the single most common observational-study error: assuming a column code (`status == 0`, `grade == 4`) means what it intuitively reads like, when the codebook says otherwise.\n\nConcrete procedure per variable:\n\n1. Locate the variable in the dictionary by exact column name.\n2. Copy verbatim: the sheet title, row number, and full code→meaning mapping (or unit/range statement for continuous vars).\n3. Paste into the `Dict. sheet & row` + `Dict. verbatim` columns of the operationalization table.\n4. If the variable is not found, OR the codebook is silent on a specific code value, file a question to the DB owner / data steward. Do NOT infer from cross-tabs, do NOT guess, do NOT proceed with that variable until a verbatim answer exists.\n\nEmpirical checks (value distributions, cross-tabs with related columns) are useful for sanity testing **after** the verbatim codebook meaning is recorded — never as a substitute for it.\n\nProject-level binding (recommended): commit a `DICTIONARY_FIRST_POLICY.md` at the project root (or shared-config path) capturing the canonical dictionary path + escalation contact. Cross-project rule template: `~/.claude/rules/dictionary-first.md`.\n\n**Exit gate**: `check_dictionary_citations.py` (or equivalent) PASS on the operationalization table before running Tier 1.\n\n### Tier 1 — Canonical index lookup (no API calls)\n\nCheck `references/common_definitions.md` (shipped with skill) for the variable. Covers high-frequency constructs:\n\n- Liver: MASLD (AASLD 2023), MetALD (AASLD 2023), MAFLD (2020), NAFLD (legacy), ALD, viral hepatitis (AASLD 2022/2024 HBV, AASLD-IDSA HCV)\n- Metabolic: T2DM (ADA 2024), prediabetes (ADA 2024), metabolic syndrome (IDF 2009 / NCEP ATP III / K-NCEP), obesity/BMI (WHO Asian 2004 + WHO global), HTN (ACC/AHA 2017 + JNC-8), dyslipidemia (NCEP ATP III, 2023 AHA/ACC)\n- Renal: CKD (KDIGO 2024), eGFR formulas (CKD-EPI 2021 race-free, MDRD legacy), incidental renal mass (ACR 2018 white paper, Bosniak 2019)\n- Pulmonary: COPD (GOLD 2024), emphysema imaging (Fleischner 2015)\n- CV: CAC scoring (Agatston 1990, MESA percentiles), CAD risk (2018 ACC/AHA cholesterol, PREVENT 2023)\n- Cancer: gastric cancer H. pylori (Maastricht VI 2022), thyroid nodule (ACR TI-RADS 2017), gallbladder polyp (European 2022 joint guideline)\n- Imaging incidentalomas: adrenal (ACR 2023), pancreas (ACR 2017), renal (ACR 2018), thyroid (ACR 2017)\n\nIf the variable hits Tier 1, record: guideline, year, canonical cutoff, BibTeX key. Done — no `/search-lit` call.\n\n### Tier 2 — Targeted `/search-lit` (focused queries only)\n\nFor variables NOT in Tier 1, OR when subgroup justification is needed (Asian-specific cutoff, pediatric, young-adult, pregnancy, etc.), call `/search-lit` with **one query per variable** — not a general sweep. Query pattern:\n\n```\n\"{construct} definition {cohort type} {subgroup qualifier}\"\ne.g., \"obstructive sleep apnea prevalence Korean health screening cohort\"\n```\n\nCap: 5 queries per session. Stop early if first 1-2 papers converge on the same definition.\n\n### Tier 3 — Verification\n\nBefore finalizing, run `/verify-refs` on the accumulated BibTeX to confirm every citation exists in PubMed/CrossRef. Ad-hoc choices (no canonical source found) must be flagged `Ad-hoc: yes` and justified with 1-2 sentences — never hidden.\n\n## Output Template\n\nWrite to `{project_root}/variable_operationalization.md` using `templates/variable_operationalization.md`. Required structure:\n\n1. **Header**: research question, cohort type, date, author\n2. **Operationalization table** — one row per variable:\n\n   | Variable | Role | Dict. sheet & row | Dict. verbatim | Canonical source | Definition | Cutoff | DB vars | Implementation | Ad-hoc? |\n\n   - `Role`: exposure / outcome / covariate / eligibility\n   - `Dict. sheet & row`: e.g. `5-1.복부초음파 r12` — mandatory if a DB dictionary exists\n   - `Dict. verbatim`: full code→meaning string copied from the dictionary — mandatory same condition\n   - `Canonical source`: BibTeX key (e.g., `@rinella2023_aasld_masld`)\n   - `Definition`: one line, verbatim from guideline where possible\n   - `Cutoff`: numeric + units\n   - `DB vars`: exact dictionary column names used\n   - `Implementation`: SQL/pandas-style pseudocode (e.g., `bmi>=25 & (b_tg>=150 | b_hdl<40)`)\n   - `Ad-hoc?`: yes/no. If yes, justification below table\n\n3. **Ad-hoc justifications** — for each yes row\n4. **Mapping gaps** — variables in the protocol with no DB equivalent; list proxy / omit / request decisions\n5. **References** — BibTeX block\n\n## Non-Goals\n\n- Statistical analysis → `/analyze-stats`\n- Manuscript drafting → `/write-paper`\n- Data cleaning / missingness → `/clean-data`\n- Sample size → `/calc-sample-size`\n\n## Pipeline Position\n\n```\nintake-project → design-study → search-lit → define-variables → write-protocol → analyze-stats → write-paper\n                                              ^^^^^^^^^^^^^^^\n```\n\n`/orchestrate` should insert this skill between `/search-lit` and `/write-protocol` for any observational cohort or registry study.\n\n## Anti-Hallucination\n\nEvery variable definition, cutoff, and era anchor must be grounded in a verified source — a clinical guideline, a peer-reviewed paper with DOI, or an established registry data dictionary. Never invent a phenotype threshold from the model's prior; if the source is unknown, mark the row `Ad-hoc: yes` and require user confirmation before it propagates into `/write-protocol` or `/analyze-stats`. When citing papers to justify a cutoff, verify the citation via `/search-lit` or `/verify-refs` — do not carry references from memory alone. The output table must carry explicit `source`, `year`, and `guideline_version` columns so downstream skills can re-verify.\n\n## Failure Modes to Avoid\n\n0. **Ad-hoc DB code interpretation** (the single most costly observational-study error). Interpreting a column value (`status == 0`, `grade == 4`) by its surface reading without consulting the codebook. Tier 0 exists specifically to prevent this. Distinguish from Failure #1: Tier 0 says \"once you've picked the DB column, quote the codebook verbatim before using its values.\" Failure #1 says \"don't pick DB columns before picking definitions from literature.\" Both rules co-exist.\n1. **Dictionary-first framing** — starting from what columns exist, then picking a definition that matches. Always flip: definition first, then map.\n2. **Cutoff drift** — using a different cutoff than the cited guideline without justification (e.g., BMI≥23 cited as WHO Asian while text says ≥25).\n3. **Mixing eras** — 2020 MAFLD criteria with 2023 MASLD criteria in the same analysis. Pick one and note why.\n4. **Silent ad-hoc** — introducing a novel cutoff without the `Ad-hoc: yes` flag.\n5. **Sweep-style /search-lit** — running a generic lit search instead of one focused query per gap variable. Wastes tokens and buries the signal.","tags":["define","variables","medsci","skills","aperivue","agent-skills","biostatistics","claude-code","claude-skills","clinical-research","diagnostic-accuracy","irb-protocol"],"capabilities":["skill","source-aperivue","skill-define-variables","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/define-variables","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 (9,107 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:29.175Z","embedding":null,"createdAt":"2026-05-13T12:57:44.291Z","updatedAt":"2026-05-18T18:56:29.175Z","lastSeenAt":"2026-05-18T18:56:29.175Z","tsv":"'-1':887 '-2':786,830 '-8':614 '/.claude/rules/dictionary-first.md':530 '/analyze-stats':990,1105 '/calc-sample-size':1000 '/clean-data':997 '/design-study':186 '/orchestrate':1024 '/search-lit':717,722,749,1030,1117,1313 '/variable_operationalization.md':840 '/verify-refs':799,1119 '/write-paper':993 '/write-protocol':188,1032,1103 '0':285,364,1150,1170,1182,1193 '1':220,325,382,544,546,707,731,785,829,845,1191,1211,1228 '150':943 '1990':657 '2':225,393,720,853,1250 '2004':607 '2009':597 '2015':652 '2017':612,681,695,701 '2018':640,662,698 '2019':644 '2020':574,1277 '2021':630 '2022':674,685 '2022/2024':581 '2023':569,572,619,666,692,1281 '2024':590,593,624,648 '23':1265 '25':940,1273 '3':234,412,794,956,1274 '4':248,275,366,426,965,1172,1293 '40':946 '5':777,886,981,1309 'aasld':568,571,580,584,915 'aasld-idsa':583 'abstract':50 'acc/aha':611,663 'accumul':802 'acr':639,677,691,694,697,700 'across':178 'ad':34,71,119,812,823,875,948,958,1092,1152,1296,1305 'ad-hoc':33,70,118,811,822,874,947,957,1091,1151,1295,1304 'ada':589,592 'adren':690 'adult':745 'agatston':656 'aha/acc':620 'ald':577 'alon':76,1126 'alway':1244 'ambigu':154 'analysi':989,1287 'analyz':1019 'analyze-stat':1018 'anchor':1049 'answer':471 'anti':1041 'anti-hallucin':1040 'api':551 'apnea':770 'art':264 'artifact':208 'asian':606,739,1269 'asian-specif':738 'ask':168,271 'assum':359 'atp':599,617 'audit':174 'author':852 'avail':62,115,245 'avoid':1149 'b':941,944 'back':22,149,293 'bibtex':713,803,911,983 'bind':504 'block':984 'bmi':160,939,1264 'bosniak':643 'buri':1330 'cac':654 'cad':660 'call':184,552,718,748 'cancer':667,669 'candid':226,328 'canon':100,520,547,711,816,867,909 'cap':776 'captur':518 'carri':1122,1131 'check':105,474,553 'check_dictionary_citations.py':533 'choic':814 'cholesterol':664 'citat':21,148,807,1115 'citation-back':20 'cite':1107,1259,1266 'ckd':53,622,628 'ckd-epi':627 'claim':258 'class':161 'clean':995 'clinic':1058 'co':1226 'co-exist':1225 'code':346,362,403,441,899,1155 'codebook':279,287,310,375,435,491,1180,1204 'cohort':111,183,249,265,763,775,849,1036 'column':247,361,391,421,482,932,1138,1167,1201,1217,1236 'commit':506 'common':354 'communic':189,191 'compar':110,267 'concret':58,378 'condit':908 'config':516 'confirm':805,1098 'construct':51,80,565,761 'consult':1178 'contact':524 'continu':410 'converg':788 'copd':646 'copi':394,902 'cost':1160 'covari':231,880 'cover':561 'criteria':143,164,1279,1283 'cross':104,457,478,526 'cross-check':103 'cross-project':525 'cross-tab':456,477 'csv':239 'cutoff':27,171,203,712,741,870,925,1046,1112,1251,1256,1301 'cv':653 'data':14,63,151,235,450,994,1071 'date':851 'db':29,116,246,278,286,292,329,448,871,893,928,974,1154,1200,1216 'db-back':291 'db.dictionary':301 'decis':980 'defin':2,42,1013 'define-vari':1,41,1012 'definit':26,37,102,146,177,762,792,869,917,1045,1220,1241,1246 'deriv':156 'design':1007 'design-studi':1006 'deviat':121 'dict':416,419,862,865,882,896 'dictionari':15,64,75,152,236,316,336,388,521,894,905,931,1072,1230 'dictionary-first':1229 'dictionary_first_policy.md':508 'differ':1255 'distinguish':1188 'distribut':476 'doi':1066 'done':715 'downstream':84,1140 'draft':992 'drift':176,1252 'dyslipidemia':615 'e.g':251,767,885,913,938,1263 'earli':782 'effici':282 'egfr':158,625 'elig':232,881 'emphysema':54,649 'empir':473 'english':205 'epi':629 'equival':535,975 'era':1048,1276 'error':358,1164 'escal':523 'establish':1069 'etc':165,747 'european':684 'everi':46,327,806,1043 'exact':390,930 'exist':472,808,895,1183,1227,1237 'exit':531 'explicit':124,242,1132 'exposur':228,878 'exposure/outcome/covariate':25 'failur':1146,1190,1210 'field':303 'file':443 'filter':233 'final':797 'first':92,784,1231,1247 'flag':123,821,1308 'fleischner':651 'flip':1245 'focus':723,1322 'forc':88 'formula':159,626 'found':432,818 'frame':1232 'free':633 'frequenc':564 'full':402,898 'gallbladd':682 'gap':967,1325 'gastric':668 'gate':532 'general':757 'generic':1316 'global':609 'goal':987 'gold':647 'grade':365,1171 'ground':6,1052 'guess':461 'guidelin':201,687,709,922,1059,1136,1260 'guideline/consensus':101 'h':670 'hallucin':1042 'hbv':582 'hcv':586 'hdl':945 'header':846 'health':253,773 'health-screen':252 'hepat':579 'hidden':128,833 'high':563 'high-frequ':562 'hit':705 'hoc':35,72,120,813,824,876,949,959,1093,1153,1297,1306 'htn':610 'idf':596 'idsa':585 'iii':600,618 'imag':650,688 'implement':873,935 'incident':636 'incidentaloma':56,689 'inclusion/exclusion':142 'index':548 'infer':454 'inform':260 'input':219,270,319 'insert':1026 'instead':1319 'intak':1004 'intake-project':1003 'interpret':1156,1165 'introduc':1298 'intuit':370 'invent':69,1074 'invit':39 'jnc':613 'joint':686 'justif':735,953,960,1262 'justifi':126,827,1110 'k':602 'k-ncep':601 'kdigo':623 'key':230,714,912 'known':136 'korean':772 'languag':197 'legaci':576,635 'level':503 'like':257,372 'line':919 'list':243,976 'lit':1011,1317 'literatur':5,91,283,333,1222 'literature-first':90 'literature-ground':4 'liver':162,566 'locat':383 'lookup':288,549 'maastricht':672 'machin':308 'machine-read':307 'mafld':573,1278 'mandatori':289,890,906 'manuscript':991 'map':31,97,113,348,405,966,1249 'mark':1088 'markdown':240 'masld':52,567,916,1282 'mass':638 'match':1243 'mdrd':634 'mean':347,367,404,492,900 'memori':1125 'mesa':658 'metabol':587,594 'metald':570 'miss':269 'missing':996 'mix':1275 'mode':1147 'model':1080 'must':819,1050,1130 'nafld':575 'name':200,202,342,392,933 'ncep':598,603,616 'need':147,737 'neither':321 'never':495,832,1073 'nhane':256 'nhanes-lik':255 'nodul':676 'non':986 'non-goal':985 'note':1291 'novel':1300 'number':344,400 'numer':926 'obes':55 'obesity/bmi':604 'observ':10,47,294,356,1035,1162 'observational-studi':355,1161 'obstruct':768 'omit':978 'one':207,223,751,856,918,1289,1321 'open':334 'operation':8,49,67,108,424,539,854 'otherwis':377 'outcom':229,879 'output':834,1128 'owner':449 'pancrea':693 'paper':642,787,1023,1064,1108 'pass':93,536 'past':413 'path':215,237,302,317,517,522 'pattern':760 'pediatr':742 'peer':1062 'peer-review':1061 'per':380,753,779,858,1324 'percentil':659 'phenotyp':36,145,1076 'pick':1198,1215,1219,1239,1288 'pipelin':277,1001 'point':304 'polyp':683 'posit':1002 'possibl':924 'prediabet':591 'prefer':196 'pregnanc':746 'preval':771 'prevent':32,350,665,1186 'prior':107,263,1082 'prior-art':262 'procedur':379 'proceed':274,464 'produc':206 'project':179,212,297,502,511,527,838,1005 'project-level':501 'project.yaml':300 'propag':1101 'protocol':971,1017 'proxi':977 'pseudocod':937 'pubmed/crossref':810 'pulmonari':645 'purpos':45 'pylori':671 'qualifi':766 'queri':724,752,759,778,1323 'question':17,134,222,445,848 'quot':1202 'r12':889 'race':632 'race-fre':631 'rad':680 're':1144 're-verifi':1143 'read':371,1176 'readabl':309 'recommend':505 'record':338,494,708 'refer':982,1123 'references/common_definitions.md':554 'regardless':82 'registri':259,1038,1070 'reject':78 'relat':481 'renal':621,637,696 'request':979 'requir':843,1096 'research':11,16,221,847 'retrospect':173 'rev':40 'reveal':175 'review':77,167,1063 'rinella2023':914 'risk':661 'role':861,877 'root':213,512,839 'row':343,399,418,857,864,884,964,1090 'rule':59,190,528,1224 'run':542,798,1314 'sampl':998 'saniti':486 'say':376,1194,1212,1272 'score':655 'screen':254,774 'search':1010,1318 'search-lit':1009 'select':141 'sentenc':224,831 'session':780 'share':515 'shared-config':514 'sheet':341,397,417,863,883 'ship':555 'signal':1332 'silent':437,1294 'singl':352,1158 'size':999 'skill':44,87,557,1028,1141 'skill-define-variables' 'skip':322 'sleep':769 'sourc':817,868,910,1056,1085,1133 'source-aperivue' 'specif':440,740,1184 'specifi':218 'sql/pandas-style':936 'start':1233 'stat':1020 'statement':408 'statist':85,988 'status':363,1169 'steatosi':163 'steward':451 'stop':781 'string':901 'structur':844 'studi':48,133,295,357,1008,1039,1163 'style':1312 'subgroup':734,765 'substitut':498 'suppli':314 'surfac':1175 'sweep':758,1311 'sweep-styl':1310 'syndrom':595 't2dm':588 'tab':458,479 'tabl':23,425,540,855,955,1129 'target':721 'templat':529,835 'templates/variable_operationalization.md':842 'test':487 'text':1271 'tg':942 'threshold':1077 'thyroid':675,699 'ti':679 'ti-rad':678 'tier':276,284,324,543,545,706,719,730,793,1181,1192 'titl':398 'token':281,1328 'token-effici':280 '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' 'touch':332 'trigger':296 'turn':12 'type':250,764,850 'unit':927 'unit/range':407 'unknown':1087 'use':129,484,841,934,1207,1253 'user':194,217,313,1097 'valid':81 'valu':442,475,1168,1209 'var':411,872,929 'variabl':3,7,30,43,95,117,138,157,199,227,330,381,385,429,467,560,704,727,754,859,860,968,1014,1044,1326 'variable_operationalization.md':209 've':1197 'verbatim':339,395,420,470,490,866,897,920,1205 'verif':795 'verifi':1055,1113,1145 'version':1137 'vi':673 'via':1116 'viral':578 'wast':1327 'white':641 'without':1177,1261,1302 'write':836,1016,1022 'write-pap':1021 'write-protocol':1015 'xlsx':238 'xlsx/csv/markdown':311 'year':710,1134 'yes':825,952,963,1094,1307 'yes/no':950 'young':744 'young-adult':743 '복부초음파':888","prices":[{"id":"c293abf6-a294-4176-b437-06708a82f0a4","listingId":"84671767-b4ba-4655-9232-fe068828c380","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:44.291Z"}],"sources":[{"listingId":"84671767-b4ba-4655-9232-fe068828c380","source":"github","sourceId":"Aperivue/medsci-skills/define-variables","sourceUrl":"https://github.com/Aperivue/medsci-skills/tree/main/skills/define-variables","isPrimary":false,"firstSeenAt":"2026-05-13T12:57:44.291Z","lastSeenAt":"2026-05-18T18:56:29.175Z"}],"details":{"listingId":"84671767-b4ba-4655-9232-fe068828c380","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"Aperivue","slug":"define-variables","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":"77ee024fbfffdef6d06c5b4ae70bf80a7a541431","skill_md_path":"skills/define-variables/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/Aperivue/medsci-skills/tree/main/skills/define-variables"},"layout":"multi","source":"github","category":"medsci-skills","frontmatter":{"name":"define-variables","description":"Literature-grounded variable operationalization for observational research. Turns a data dictionary + research question into a citation-backed table of exposure/outcome/covariate definitions, cutoffs, and DB variable mappings. Prevents ad-hoc phenotype definitions that invite reviewer rejection. Bridges /search-lit output into /write-protocol Methods."},"skills_sh_url":"https://skills.sh/Aperivue/medsci-skills/define-variables"},"updatedAt":"2026-05-18T18:56:29.175Z"}}