[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-autofl-nvflare":3,"mdc--caka3-key":41,"related-repo-nvidia-autofl-nvflare":1018,"related-org-nvidia-autofl-nvflare":1109},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":36,"sourceUrl":39,"mdContent":40},"autofl-nvflare","develop NVFlare Auto-FL experiments","Help coding agents work on an NVFlare-based Auto-FL harness that follows an autoresearch-style loop. Use when the user wants to create, edit, debug, or extend program.md, task folders such as tasks\u002Fcifar10\u002F and tasks\u002Fvlm_med\u002F, task-local job.py, client.py, model.py, shared custom_aggregators.py, mutation policies, results.tsv logging, or coding-agent prompts for a bounded federated-learning research loop. This skill is specifically for NVFlare harness work where the Client API loop, DIFF upload contract, and NUM_STEPS_CURRENT_ROUND metadata must stay intact unless the user explicitly asks for a protocol upgrade.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"nvidia","NVIDIA","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnvidia.png",[12,16,17,20],{"name":13,"slug":14,"type":15},"Automation","automation","tag",{"name":9,"slug":8,"type":15},{"name":18,"slug":19,"type":15},"Agents","agents",{"name":21,"slug":22,"type":15},"Engineering","engineering",947,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNVFlare","2026-07-14T05:36:01.532575",null,266,[29,30,31,32,33,34,35],"decentralized","federated-analytics","federated-computing","federated-learning","pet","privacy-protection","python",{"repoUrl":24,"stars":23,"forks":27,"topics":37,"description":38},[29,30,31,32,33,34,35],"NVIDIA Federated Learning Application Runtime Environment","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNVFlare\u002Ftree\u002FHEAD\u002Fresearch\u002Fauto-fl-research\u002Fskills\u002Fautofl-nvflare","---\nname: autofl-nvflare\ndescription: Help coding agents work on an NVFlare-based Auto-FL harness that follows an autoresearch-style loop. Use when the user wants to create, edit, debug, or extend program.md, task folders such as tasks\u002Fcifar10\u002F and tasks\u002Fvlm_med\u002F, task-local job.py, client.py, model.py, shared custom_aggregators.py, mutation policies, results.tsv logging, or coding-agent prompts for a bounded federated-learning research loop. This skill is specifically for NVFlare harness work where the Client API loop, DIFF upload contract, and NUM_STEPS_CURRENT_ROUND metadata must stay intact unless the user explicitly asks for a protocol upgrade.\n---\n\n# autofl-nvflare\n\nUse this skill to keep edits to the Auto-FL NVFlare starter coherent, safe, and aligned with an **autoresearch-style** operating model.\n\n## Entry point\n\nWhen the target repo includes `program.md`, read it first and treat it as the general control plane. Then read the active task profile; use `tasks\u002Fcifar10\u002Fprofile.md` when the human does not specify another profile.\n\nUse the active task's `mutation_schema.yaml` for bounded mutation details only when `program.md` or the active task profile points you there, or when choosing a mutation axis. Use `AGENTS.md` \u002F `CLAUDE.md` only as thin local guardrails.\n\n## Core rules\n\nPreserve these invariants unless the user explicitly asks for a protocol change:\n- `flare.init()`\n- `while flare.is_running():`\n- `input_model = flare.receive()`\n- `flare.send(output_model)`\n- `model.load_state_dict(input_model.params, strict=True)`\n- `compute_model_diff(model, global_model)`\n- `output_model.params_type == ParamsType.DIFF`\n- `output_model.meta[\"NUM_STEPS_CURRENT_ROUND\"]`\n- the optional `flare.is_evaluate()` branch\n- the same selected `model_arch` on server and clients for a run\n- the active `max_model_params` cap for architecture campaigns\n\n## Preferred mutation order\n\n1. Client-local changes in the active task's `client.py`\n   - optimizer family\n   - scheduler settings\n   - local epochs, fixed local training steps, batch size, workers\n   - weight decay\n   - gradient clipping\n   - label smoothing\n   - FedProx local loss\n   - extra scalar metrics\n2. Aggregation changes in shared `tasks\u002Fshared\u002Fcustom_aggregators.py`\n   - weighted aggregation refinements\n   - FedAvg\u002FFedOpt-style DIFF aggregation that stays inside the existing FLModel contract\n   - explicit SCAFFOLD control-variate metadata when the user has opted into that protocol mode\n   - clipping \u002F robust aggregation\n   - median or trimmed-mean style logic\n3. Recipe changes in the active task's `job.py`\n   - rounds\n   - clients\n   - `cross_site_eval`\n   - `launch_external_process`\n   - `client_memory_gc_rounds`\n4. Registered architecture changes in the active task's `model.py`\n   - named `model_arch` variants\n   - parameter-count checks through `max_model_params`\n   - no new dependencies\n\nDo not change model architecture outside registered `model_arch` variants or the active `max_model_params` budget. Do not add server-coupled protocol fields outside an explicitly requested protocol mode.\nFedProx is compatible as a client-local loss term. FedOpt is compatible only when it is implemented inside the custom aggregator over already-received DIFFs. SCAFFOLD is available only as an explicit opt-in mode that uses `FLModel.meta` for `scaffold_c_diff` and `scaffold_c_global`.\n\n## Required workflow\n\nAfter making edits:\n1. use the interpreter and dependency rules from the active task profile. For the default CIFAR-10 profile, set and use `PYTHON=.venv\u002Fbin\u002Fpython` by default, unless the human explicitly provides a different `PYTHON` value; treat the selected value as authoritative, verify it with `test -x \"$PYTHON\"` and `\"$PYTHON\" -c \"import sys; assert sys.version_info[:2] == (3, 12), sys.version; print(sys.executable)\"`, and do not search for alternate interpreters with glob or discovery commands such as `ls \u002Fusr\u002Fbin\u002Fpython*`, `ls \u002Fworkspace\u002F.venv*\u002Fbin\u002Fpython*`, or `which python`\n2. do not create virtual environments or install dependencies unless the user explicitly asks; if the active profile's interpreter is missing or invalid and no override was provided, tell the user to rerun that profile's preflight instead of guessing\n3. when initializing a campaign, use a descriptive branch tag with the pattern `\u003Cnode>-\u003Ccampaign-topic>-YYYYMMDD`, such as `h100-fedavgm-20260430` or `h100-archsearch-20260430`; run `bash scripts\u002Finit_run.sh \u003Ctag>` before validation, baseline, or candidates; verify `git branch --show-current` starts with `autoresearch\u002F`; never run experiments on `main`, `upstream\u002Fmain`, the starter branch, or a shared feature branch; never use date-only branch names\n4. run the active task profile's static checks and syntax validation, with `TASK_DIR` set to the active task\n5. run the client contract validator against the active task's `client.py`, not a stale root-level path\n6. run the active task profile's smoke command if the prepared environment has `nvflare`; for non-CIFAR tasks, pass the task-specific `SMOKE_ARGS` or use `scripts\u002Frun_iteration.sh` with the active task budget\n7. follow the active task profile's local hardware and candidate-width rules. For the default CIFAR-10\u002FH100 profile, launch up to `PARALLEL_CANDIDATES=4` same-budget candidates concurrently on one local H100 when memory allows, and reduce the width if candidates hit CUDA OOM or host contention\n8. use the active task profile's default candidate budget unless told otherwise. For the default CIFAR-10\u002FH100 profile, that budget is 8 clients, 20 communication rounds, 4 local epochs, `local_train_steps=0`, training batch size 64, eval batch size 1024, alpha 0.5, seed 0, `model_arch=moderate_cnn`, `max_model_params=5000000`, weighted aggregation, deterministic client training, final global evaluation on site-1, and a 1200-second timeout; local epochs or `local_train_steps` may be swept under that runtime cap, but do not vary both in the same narrow sweep\n9. use unique `RUN_LOG` and job `--name` values for each candidate; if the active profile requires one local GPU, pin each run with `CUDA_VISIBLE_DEVICES=0` instead of spreading candidates across devices\n10. record the outcome in `results.tsv`; `run_iteration.sh` initializes the header before launching logged runs, and successful runs are appended as `candidate`, which means unreviewed, not kept\n11. after every completed batch, update reviewed `results.tsv` statuses before launching the next batch: promote the selected survivor to `keep`, mark reviewed non-survivors as `discard`, leave crashes as `crash`, and leave only unresolved active rows as `candidate`; prefer `scripts\u002Ffinalize_batch_status.py --last \"${PARALLEL_CANDIDATES:-4}\"`\n12. commit that ledger on the active `autoresearch\u002F` branch after baseline and completed runs\u002Fcheckpoints, and commit surviving code changes as soon as they are kept rather than carrying them uncommitted into the next batch\n13. if a candidate implements a paper-derived method, include a compact source ref in the `results.tsv` description field and fuller citation details in `templates\u002Fmutation_report.md`\n14. rank the completed batch against the ledger before deciding whether to keep, narrow, or revert; rank primarily by score, use runtime as a coarse secondary signal, and prefer the faster\u002Fsimpler candidate when scores are within noise\n15. after setup and baseline, continue launching same-budget candidate batches until manually interrupted; do not ask whether to keep going\n16. after every finalized batch, run `scripts\u002Fplateau_watchdog.py results.tsv`; if it prints `recommendation=literature`, stop local jitter sweeps and run the Camyla-inspired literature loop from `program.md`: time it with `scripts\u002Flog_literature_review.py --start` \u002F `--finish`, generate diverse queries, triage primary papers, extract challenge cards, score contract-safe proposals in `templates\u002Fliterature_loop.md`, record the `literature` event row in `results.tsv`, and launch the top compatible candidate batch next; if it prints `recommendation=continue`, do not log another literature row for a routine missed batch, and keep iterating locally unless repeated crashes share one root cause or no non-duplicate safe axis remains\n17. report the mutation hypothesis, changed files, commands run, observed outcome, literature basis, run analysis, and next mutation\n\n## References\n\nRead these when relevant:\n- `references\u002Fmutation-schema.md` for the allowed mutation surface\n- `references\u002Frunbook.md` for the recommended iteration loop and reporting format\n- `references\u002Fprovenance.md` for acknowledgement and attribution guidance\n",{"data":42,"body":43},{"name":4,"description":6},{"type":44,"children":45},"root",[46,53,67,74,96,132,138,143,259,265,454,497,503,508,971,977,982],{"type":47,"tag":48,"props":49,"children":50},"element","h1",{"id":4},[51],{"type":52,"value":4},"text",{"type":47,"tag":54,"props":55,"children":56},"p",{},[57,59,65],{"type":52,"value":58},"Use this skill to keep edits to the Auto-FL NVFlare starter coherent, safe, and aligned with an ",{"type":47,"tag":60,"props":61,"children":62},"strong",{},[63],{"type":52,"value":64},"autoresearch-style",{"type":52,"value":66}," operating model.",{"type":47,"tag":68,"props":69,"children":71},"h2",{"id":70},"entry-point",[72],{"type":52,"value":73},"Entry point",{"type":47,"tag":54,"props":75,"children":76},{},[77,79,86,88,94],{"type":52,"value":78},"When the target repo includes ",{"type":47,"tag":80,"props":81,"children":83},"code",{"className":82},[],[84],{"type":52,"value":85},"program.md",{"type":52,"value":87},", read it first and treat it as the general control plane. Then read the active task profile; use ",{"type":47,"tag":80,"props":89,"children":91},{"className":90},[],[92],{"type":52,"value":93},"tasks\u002Fcifar10\u002Fprofile.md",{"type":52,"value":95}," when the human does not specify another profile.",{"type":47,"tag":54,"props":97,"children":98},{},[99,101,107,109,114,116,122,124,130],{"type":52,"value":100},"Use the active task's ",{"type":47,"tag":80,"props":102,"children":104},{"className":103},[],[105],{"type":52,"value":106},"mutation_schema.yaml",{"type":52,"value":108}," for bounded mutation details only when ",{"type":47,"tag":80,"props":110,"children":112},{"className":111},[],[113],{"type":52,"value":85},{"type":52,"value":115}," or the active task profile points you there, or when choosing a mutation axis. Use ",{"type":47,"tag":80,"props":117,"children":119},{"className":118},[],[120],{"type":52,"value":121},"AGENTS.md",{"type":52,"value":123}," \u002F ",{"type":47,"tag":80,"props":125,"children":127},{"className":126},[],[128],{"type":52,"value":129},"CLAUDE.md",{"type":52,"value":131}," only as thin local guardrails.",{"type":47,"tag":68,"props":133,"children":135},{"id":134},"core-rules",[136],{"type":52,"value":137},"Core rules",{"type":47,"tag":54,"props":139,"children":140},{},[141],{"type":52,"value":142},"Preserve these invariants unless the user explicitly asks for a protocol change:",{"type":47,"tag":144,"props":145,"children":146},"ul",{},[147,157,166,175,184,193,202,211,220,233,246],{"type":47,"tag":148,"props":149,"children":150},"li",{},[151],{"type":47,"tag":80,"props":152,"children":154},{"className":153},[],[155],{"type":52,"value":156},"flare.init()",{"type":47,"tag":148,"props":158,"children":159},{},[160],{"type":47,"tag":80,"props":161,"children":163},{"className":162},[],[164],{"type":52,"value":165},"while flare.is_running():",{"type":47,"tag":148,"props":167,"children":168},{},[169],{"type":47,"tag":80,"props":170,"children":172},{"className":171},[],[173],{"type":52,"value":174},"input_model = flare.receive()",{"type":47,"tag":148,"props":176,"children":177},{},[178],{"type":47,"tag":80,"props":179,"children":181},{"className":180},[],[182],{"type":52,"value":183},"flare.send(output_model)",{"type":47,"tag":148,"props":185,"children":186},{},[187],{"type":47,"tag":80,"props":188,"children":190},{"className":189},[],[191],{"type":52,"value":192},"model.load_state_dict(input_model.params, strict=True)",{"type":47,"tag":148,"props":194,"children":195},{},[196],{"type":47,"tag":80,"props":197,"children":199},{"className":198},[],[200],{"type":52,"value":201},"compute_model_diff(model, global_model)",{"type":47,"tag":148,"props":203,"children":204},{},[205],{"type":47,"tag":80,"props":206,"children":208},{"className":207},[],[209],{"type":52,"value":210},"output_model.params_type == ParamsType.DIFF",{"type":47,"tag":148,"props":212,"children":213},{},[214],{"type":47,"tag":80,"props":215,"children":217},{"className":216},[],[218],{"type":52,"value":219},"output_model.meta[\"NUM_STEPS_CURRENT_ROUND\"]",{"type":47,"tag":148,"props":221,"children":222},{},[223,225,231],{"type":52,"value":224},"the optional ",{"type":47,"tag":80,"props":226,"children":228},{"className":227},[],[229],{"type":52,"value":230},"flare.is_evaluate()",{"type":52,"value":232}," branch",{"type":47,"tag":148,"props":234,"children":235},{},[236,238,244],{"type":52,"value":237},"the same selected ",{"type":47,"tag":80,"props":239,"children":241},{"className":240},[],[242],{"type":52,"value":243},"model_arch",{"type":52,"value":245}," on server and clients for a run",{"type":47,"tag":148,"props":247,"children":248},{},[249,251,257],{"type":52,"value":250},"the active ",{"type":47,"tag":80,"props":252,"children":254},{"className":253},[],[255],{"type":52,"value":256},"max_model_params",{"type":52,"value":258}," cap for architecture campaigns",{"type":47,"tag":68,"props":260,"children":262},{"id":261},"preferred-mutation-order",[263],{"type":52,"value":264},"Preferred mutation order",{"type":47,"tag":266,"props":267,"children":268},"ol",{},[269,323,362,413],{"type":47,"tag":148,"props":270,"children":271},{},[272,274,280],{"type":52,"value":273},"Client-local changes in the active task's ",{"type":47,"tag":80,"props":275,"children":277},{"className":276},[],[278],{"type":52,"value":279},"client.py",{"type":47,"tag":144,"props":281,"children":282},{},[283,288,293,298,303,308,313,318],{"type":47,"tag":148,"props":284,"children":285},{},[286],{"type":52,"value":287},"optimizer family",{"type":47,"tag":148,"props":289,"children":290},{},[291],{"type":52,"value":292},"scheduler settings",{"type":47,"tag":148,"props":294,"children":295},{},[296],{"type":52,"value":297},"local epochs, fixed local training steps, batch size, workers",{"type":47,"tag":148,"props":299,"children":300},{},[301],{"type":52,"value":302},"weight decay",{"type":47,"tag":148,"props":304,"children":305},{},[306],{"type":52,"value":307},"gradient clipping",{"type":47,"tag":148,"props":309,"children":310},{},[311],{"type":52,"value":312},"label smoothing",{"type":47,"tag":148,"props":314,"children":315},{},[316],{"type":52,"value":317},"FedProx local loss",{"type":47,"tag":148,"props":319,"children":320},{},[321],{"type":52,"value":322},"extra scalar metrics",{"type":47,"tag":148,"props":324,"children":325},{},[326,328,334],{"type":52,"value":327},"Aggregation changes in shared ",{"type":47,"tag":80,"props":329,"children":331},{"className":330},[],[332],{"type":52,"value":333},"tasks\u002Fshared\u002Fcustom_aggregators.py",{"type":47,"tag":144,"props":335,"children":336},{},[337,342,347,352,357],{"type":47,"tag":148,"props":338,"children":339},{},[340],{"type":52,"value":341},"weighted aggregation refinements",{"type":47,"tag":148,"props":343,"children":344},{},[345],{"type":52,"value":346},"FedAvg\u002FFedOpt-style DIFF aggregation that stays inside the existing FLModel contract",{"type":47,"tag":148,"props":348,"children":349},{},[350],{"type":52,"value":351},"explicit SCAFFOLD control-variate metadata when the user has opted into that protocol mode",{"type":47,"tag":148,"props":353,"children":354},{},[355],{"type":52,"value":356},"clipping \u002F robust aggregation",{"type":47,"tag":148,"props":358,"children":359},{},[360],{"type":52,"value":361},"median or trimmed-mean style logic",{"type":47,"tag":148,"props":363,"children":364},{},[365,367,373],{"type":52,"value":366},"Recipe changes in the active task's ",{"type":47,"tag":80,"props":368,"children":370},{"className":369},[],[371],{"type":52,"value":372},"job.py",{"type":47,"tag":144,"props":374,"children":375},{},[376,381,386,395,404],{"type":47,"tag":148,"props":377,"children":378},{},[379],{"type":52,"value":380},"rounds",{"type":47,"tag":148,"props":382,"children":383},{},[384],{"type":52,"value":385},"clients",{"type":47,"tag":148,"props":387,"children":388},{},[389],{"type":47,"tag":80,"props":390,"children":392},{"className":391},[],[393],{"type":52,"value":394},"cross_site_eval",{"type":47,"tag":148,"props":396,"children":397},{},[398],{"type":47,"tag":80,"props":399,"children":401},{"className":400},[],[402],{"type":52,"value":403},"launch_external_process",{"type":47,"tag":148,"props":405,"children":406},{},[407],{"type":47,"tag":80,"props":408,"children":410},{"className":409},[],[411],{"type":52,"value":412},"client_memory_gc_rounds",{"type":47,"tag":148,"props":414,"children":415},{},[416,418,424],{"type":52,"value":417},"Registered architecture changes in the active task's ",{"type":47,"tag":80,"props":419,"children":421},{"className":420},[],[422],{"type":52,"value":423},"model.py",{"type":47,"tag":144,"props":425,"children":426},{},[427,439,449],{"type":47,"tag":148,"props":428,"children":429},{},[430,432,437],{"type":52,"value":431},"named ",{"type":47,"tag":80,"props":433,"children":435},{"className":434},[],[436],{"type":52,"value":243},{"type":52,"value":438}," variants",{"type":47,"tag":148,"props":440,"children":441},{},[442,444],{"type":52,"value":443},"parameter-count checks through ",{"type":47,"tag":80,"props":445,"children":447},{"className":446},[],[448],{"type":52,"value":256},{"type":47,"tag":148,"props":450,"children":451},{},[452],{"type":52,"value":453},"no new dependencies",{"type":47,"tag":54,"props":455,"children":456},{},[457,459,464,466,471,473,479,481,487,489,495],{"type":52,"value":458},"Do not change model architecture outside registered ",{"type":47,"tag":80,"props":460,"children":462},{"className":461},[],[463],{"type":52,"value":243},{"type":52,"value":465}," variants or the active ",{"type":47,"tag":80,"props":467,"children":469},{"className":468},[],[470],{"type":52,"value":256},{"type":52,"value":472}," budget. Do not add server-coupled protocol fields outside an explicitly requested protocol mode.\nFedProx is compatible as a client-local loss term. FedOpt is compatible only when it is implemented inside the custom aggregator over already-received DIFFs. SCAFFOLD is available only as an explicit opt-in mode that uses ",{"type":47,"tag":80,"props":474,"children":476},{"className":475},[],[477],{"type":52,"value":478},"FLModel.meta",{"type":52,"value":480}," for ",{"type":47,"tag":80,"props":482,"children":484},{"className":483},[],[485],{"type":52,"value":486},"scaffold_c_diff",{"type":52,"value":488}," and ",{"type":47,"tag":80,"props":490,"children":492},{"className":491},[],[493],{"type":52,"value":494},"scaffold_c_global",{"type":52,"value":496},".",{"type":47,"tag":68,"props":498,"children":500},{"id":499},"required-workflow",[501],{"type":52,"value":502},"Required workflow",{"type":47,"tag":54,"props":504,"children":505},{},[506],{"type":52,"value":507},"After making edits:",{"type":47,"tag":266,"props":509,"children":510},{},[511,569,574,642,655,667,696,709,745,774,803,852,864,882,887,892,966],{"type":47,"tag":148,"props":512,"children":513},{},[514,516,522,524,530,532,538,539,545,547,553,555,561,563],{"type":52,"value":515},"use the interpreter and dependency rules from the active task profile. For the default CIFAR-10 profile, set and use ",{"type":47,"tag":80,"props":517,"children":519},{"className":518},[],[520],{"type":52,"value":521},"PYTHON=.venv\u002Fbin\u002Fpython",{"type":52,"value":523}," by default, unless the human explicitly provides a different ",{"type":47,"tag":80,"props":525,"children":527},{"className":526},[],[528],{"type":52,"value":529},"PYTHON",{"type":52,"value":531}," value; treat the selected value as authoritative, verify it with ",{"type":47,"tag":80,"props":533,"children":535},{"className":534},[],[536],{"type":52,"value":537},"test -x \"$PYTHON\"",{"type":52,"value":488},{"type":47,"tag":80,"props":540,"children":542},{"className":541},[],[543],{"type":52,"value":544},"\"$PYTHON\" -c \"import sys; assert sys.version_info[:2] == (3, 12), sys.version; print(sys.executable)\"",{"type":52,"value":546},", and do not search for alternate interpreters with glob or discovery commands such as ",{"type":47,"tag":80,"props":548,"children":550},{"className":549},[],[551],{"type":52,"value":552},"ls \u002Fusr\u002Fbin\u002Fpython*",{"type":52,"value":554},", ",{"type":47,"tag":80,"props":556,"children":558},{"className":557},[],[559],{"type":52,"value":560},"ls \u002Fworkspace\u002F.venv*\u002Fbin\u002Fpython*",{"type":52,"value":562},", or ",{"type":47,"tag":80,"props":564,"children":566},{"className":565},[],[567],{"type":52,"value":568},"which python",{"type":47,"tag":148,"props":570,"children":571},{},[572],{"type":52,"value":573},"do not create virtual environments or install dependencies unless the user explicitly asks; if the active profile's interpreter is missing or invalid and no override was provided, tell the user to rerun that profile's preflight instead of guessing",{"type":47,"tag":148,"props":575,"children":576},{},[577,579,585,587,593,595,601,603,609,611,617,619,625,627,633,634,640],{"type":52,"value":578},"when initializing a campaign, use a descriptive branch tag with the pattern ",{"type":47,"tag":80,"props":580,"children":582},{"className":581},[],[583],{"type":52,"value":584},"\u003Cnode>-\u003Ccampaign-topic>-YYYYMMDD",{"type":52,"value":586},", such as ",{"type":47,"tag":80,"props":588,"children":590},{"className":589},[],[591],{"type":52,"value":592},"h100-fedavgm-20260430",{"type":52,"value":594}," or ",{"type":47,"tag":80,"props":596,"children":598},{"className":597},[],[599],{"type":52,"value":600},"h100-archsearch-20260430",{"type":52,"value":602},"; run ",{"type":47,"tag":80,"props":604,"children":606},{"className":605},[],[607],{"type":52,"value":608},"bash scripts\u002Finit_run.sh \u003Ctag>",{"type":52,"value":610}," before validation, baseline, or candidates; verify ",{"type":47,"tag":80,"props":612,"children":614},{"className":613},[],[615],{"type":52,"value":616},"git branch --show-current",{"type":52,"value":618}," starts with ",{"type":47,"tag":80,"props":620,"children":622},{"className":621},[],[623],{"type":52,"value":624},"autoresearch\u002F",{"type":52,"value":626},"; never run experiments on ",{"type":47,"tag":80,"props":628,"children":630},{"className":629},[],[631],{"type":52,"value":632},"main",{"type":52,"value":554},{"type":47,"tag":80,"props":635,"children":637},{"className":636},[],[638],{"type":52,"value":639},"upstream\u002Fmain",{"type":52,"value":641},", the starter branch, or a shared feature branch; never use date-only branch names",{"type":47,"tag":148,"props":643,"children":644},{},[645,647,653],{"type":52,"value":646},"run the active task profile's static checks and syntax validation, with ",{"type":47,"tag":80,"props":648,"children":650},{"className":649},[],[651],{"type":52,"value":652},"TASK_DIR",{"type":52,"value":654}," set to the active task",{"type":47,"tag":148,"props":656,"children":657},{},[658,660,665],{"type":52,"value":659},"run the client contract validator against the active task's ",{"type":47,"tag":80,"props":661,"children":663},{"className":662},[],[664],{"type":52,"value":279},{"type":52,"value":666},", not a stale root-level path",{"type":47,"tag":148,"props":668,"children":669},{},[670,672,678,680,686,688,694],{"type":52,"value":671},"run the active task profile's smoke command if the prepared environment has ",{"type":47,"tag":80,"props":673,"children":675},{"className":674},[],[676],{"type":52,"value":677},"nvflare",{"type":52,"value":679},"; for non-CIFAR tasks, pass the task-specific ",{"type":47,"tag":80,"props":681,"children":683},{"className":682},[],[684],{"type":52,"value":685},"SMOKE_ARGS",{"type":52,"value":687}," or use ",{"type":47,"tag":80,"props":689,"children":691},{"className":690},[],[692],{"type":52,"value":693},"scripts\u002Frun_iteration.sh",{"type":52,"value":695}," with the active task budget",{"type":47,"tag":148,"props":697,"children":698},{},[699,701,707],{"type":52,"value":700},"follow the active task profile's local hardware and candidate-width rules. For the default CIFAR-10\u002FH100 profile, launch up to ",{"type":47,"tag":80,"props":702,"children":704},{"className":703},[],[705],{"type":52,"value":706},"PARALLEL_CANDIDATES=4",{"type":52,"value":708}," same-budget candidates concurrently on one local H100 when memory allows, and reduce the width if candidates hit CUDA OOM or host contention",{"type":47,"tag":148,"props":710,"children":711},{},[712,714,720,722,728,729,735,737,743],{"type":52,"value":713},"use the active task profile's default candidate budget unless told otherwise. For the default CIFAR-10\u002FH100 profile, that budget is 8 clients, 20 communication rounds, 4 local epochs, ",{"type":47,"tag":80,"props":715,"children":717},{"className":716},[],[718],{"type":52,"value":719},"local_train_steps=0",{"type":52,"value":721},", training batch size 64, eval batch size 1024, alpha 0.5, seed 0, ",{"type":47,"tag":80,"props":723,"children":725},{"className":724},[],[726],{"type":52,"value":727},"model_arch=moderate_cnn",{"type":52,"value":554},{"type":47,"tag":80,"props":730,"children":732},{"className":731},[],[733],{"type":52,"value":734},"max_model_params=5000000",{"type":52,"value":736},", weighted aggregation, deterministic client training, final global evaluation on site-1, and a 1200-second timeout; local epochs or ",{"type":47,"tag":80,"props":738,"children":740},{"className":739},[],[741],{"type":52,"value":742},"local_train_steps",{"type":52,"value":744}," may be swept under that runtime cap, but do not vary both in the same narrow sweep",{"type":47,"tag":148,"props":746,"children":747},{},[748,750,756,758,764,766,772],{"type":52,"value":749},"use unique ",{"type":47,"tag":80,"props":751,"children":753},{"className":752},[],[754],{"type":52,"value":755},"RUN_LOG",{"type":52,"value":757}," and job ",{"type":47,"tag":80,"props":759,"children":761},{"className":760},[],[762],{"type":52,"value":763},"--name",{"type":52,"value":765}," values for each candidate; if the active profile requires one local GPU, pin each run with ",{"type":47,"tag":80,"props":767,"children":769},{"className":768},[],[770],{"type":52,"value":771},"CUDA_VISIBLE_DEVICES=0",{"type":52,"value":773}," instead of spreading candidates across devices",{"type":47,"tag":148,"props":775,"children":776},{},[777,779,785,787,793,795,801],{"type":52,"value":778},"record the outcome in ",{"type":47,"tag":80,"props":780,"children":782},{"className":781},[],[783],{"type":52,"value":784},"results.tsv",{"type":52,"value":786},"; ",{"type":47,"tag":80,"props":788,"children":790},{"className":789},[],[791],{"type":52,"value":792},"run_iteration.sh",{"type":52,"value":794}," initializes the header before launching logged runs, and successful runs are appended as ",{"type":47,"tag":80,"props":796,"children":798},{"className":797},[],[799],{"type":52,"value":800},"candidate",{"type":52,"value":802},", which means unreviewed, not kept",{"type":47,"tag":148,"props":804,"children":805},{},[806,808,813,815,821,823,829,831,837,839,844,846],{"type":52,"value":807},"after every completed batch, update reviewed ",{"type":47,"tag":80,"props":809,"children":811},{"className":810},[],[812],{"type":52,"value":784},{"type":52,"value":814}," statuses before launching the next batch: promote the selected survivor to ",{"type":47,"tag":80,"props":816,"children":818},{"className":817},[],[819],{"type":52,"value":820},"keep",{"type":52,"value":822},", mark reviewed non-survivors as ",{"type":47,"tag":80,"props":824,"children":826},{"className":825},[],[827],{"type":52,"value":828},"discard",{"type":52,"value":830},", leave crashes as ",{"type":47,"tag":80,"props":832,"children":834},{"className":833},[],[835],{"type":52,"value":836},"crash",{"type":52,"value":838},", and leave only unresolved active rows as ",{"type":47,"tag":80,"props":840,"children":842},{"className":841},[],[843],{"type":52,"value":800},{"type":52,"value":845},"; prefer ",{"type":47,"tag":80,"props":847,"children":849},{"className":848},[],[850],{"type":52,"value":851},"scripts\u002Ffinalize_batch_status.py --last \"${PARALLEL_CANDIDATES:-4}\"",{"type":47,"tag":148,"props":853,"children":854},{},[855,857,862],{"type":52,"value":856},"commit that ledger on the active ",{"type":47,"tag":80,"props":858,"children":860},{"className":859},[],[861],{"type":52,"value":624},{"type":52,"value":863}," branch after baseline and completed runs\u002Fcheckpoints, and commit surviving code changes as soon as they are kept rather than carrying them uncommitted into the next batch",{"type":47,"tag":148,"props":865,"children":866},{},[867,869,874,876],{"type":52,"value":868},"if a candidate implements a paper-derived method, include a compact source ref in the ",{"type":47,"tag":80,"props":870,"children":872},{"className":871},[],[873],{"type":52,"value":784},{"type":52,"value":875}," description field and fuller citation details in ",{"type":47,"tag":80,"props":877,"children":879},{"className":878},[],[880],{"type":52,"value":881},"templates\u002Fmutation_report.md",{"type":47,"tag":148,"props":883,"children":884},{},[885],{"type":52,"value":886},"rank the completed batch against the ledger before deciding whether to keep, narrow, or revert; rank primarily by score, use runtime as a coarse secondary signal, and prefer the faster\u002Fsimpler candidate when scores are within noise",{"type":47,"tag":148,"props":888,"children":889},{},[890],{"type":52,"value":891},"after setup and baseline, continue launching same-budget candidate batches until manually interrupted; do not ask whether to keep going",{"type":47,"tag":148,"props":893,"children":894},{},[895,897,903,905,911,913,918,920,926,927,933,935,941,943,949,951,956,958,964],{"type":52,"value":896},"after every finalized batch, run ",{"type":47,"tag":80,"props":898,"children":900},{"className":899},[],[901],{"type":52,"value":902},"scripts\u002Fplateau_watchdog.py results.tsv",{"type":52,"value":904},"; if it prints ",{"type":47,"tag":80,"props":906,"children":908},{"className":907},[],[909],{"type":52,"value":910},"recommendation=literature",{"type":52,"value":912},", stop local jitter sweeps and run the Camyla-inspired literature loop from ",{"type":47,"tag":80,"props":914,"children":916},{"className":915},[],[917],{"type":52,"value":85},{"type":52,"value":919},": time it with ",{"type":47,"tag":80,"props":921,"children":923},{"className":922},[],[924],{"type":52,"value":925},"scripts\u002Flog_literature_review.py --start",{"type":52,"value":123},{"type":47,"tag":80,"props":928,"children":930},{"className":929},[],[931],{"type":52,"value":932},"--finish",{"type":52,"value":934},", generate diverse queries, triage primary papers, extract challenge cards, score contract-safe proposals in ",{"type":47,"tag":80,"props":936,"children":938},{"className":937},[],[939],{"type":52,"value":940},"templates\u002Fliterature_loop.md",{"type":52,"value":942},", record the ",{"type":47,"tag":80,"props":944,"children":946},{"className":945},[],[947],{"type":52,"value":948},"literature",{"type":52,"value":950}," event row in ",{"type":47,"tag":80,"props":952,"children":954},{"className":953},[],[955],{"type":52,"value":784},{"type":52,"value":957},", and launch the top compatible candidate batch next; if it prints ",{"type":47,"tag":80,"props":959,"children":961},{"className":960},[],[962],{"type":52,"value":963},"recommendation=continue",{"type":52,"value":965},", do not log another literature row for a routine missed batch, and keep iterating locally unless repeated crashes share one root cause or no non-duplicate safe axis remains",{"type":47,"tag":148,"props":967,"children":968},{},[969],{"type":52,"value":970},"report the mutation hypothesis, changed files, commands run, observed outcome, literature basis, run analysis, and next mutation",{"type":47,"tag":68,"props":972,"children":974},{"id":973},"references",[975],{"type":52,"value":976},"References",{"type":47,"tag":54,"props":978,"children":979},{},[980],{"type":52,"value":981},"Read these when relevant:",{"type":47,"tag":144,"props":983,"children":984},{},[985,996,1007],{"type":47,"tag":148,"props":986,"children":987},{},[988,994],{"type":47,"tag":80,"props":989,"children":991},{"className":990},[],[992],{"type":52,"value":993},"references\u002Fmutation-schema.md",{"type":52,"value":995}," for the allowed mutation surface",{"type":47,"tag":148,"props":997,"children":998},{},[999,1005],{"type":47,"tag":80,"props":1000,"children":1002},{"className":1001},[],[1003],{"type":52,"value":1004},"references\u002Frunbook.md",{"type":52,"value":1006}," for the recommended iteration loop and reporting format",{"type":47,"tag":148,"props":1008,"children":1009},{},[1010,1016],{"type":47,"tag":80,"props":1011,"children":1013},{"className":1012},[],[1014],{"type":52,"value":1015},"references\u002Fprovenance.md",{"type":52,"value":1017}," for acknowledgement and attribution guidance",{"items":1019,"total":1108},[1020,1027,1040,1054,1067,1082,1093],{"slug":4,"name":4,"fn":5,"description":6,"org":1021,"tags":1022,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1023,1024,1025,1026],{"name":18,"slug":19,"type":15},{"name":13,"slug":14,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"slug":1028,"name":1028,"fn":1029,"description":1030,"org":1031,"tags":1032,"stars":23,"repoUrl":24,"updatedAt":1039},"autofl-nvflare-report","generate NVFlare experiment reports","Generate and commit a markdown report after an Auto-FL NVFlare autoresearch experiment has been manually stopped. Use when the user asks to summarize a stopped campaign, report achieved improvements, explain implemented literature-derived ideas and sources, refresh progress plots, capture pasted agent model\u002Feffort\u002Fcost context when available, or commit the final report and progress plot to the current experiment branch.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1033,1034,1035,1036],{"name":13,"slug":14,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":1037,"slug":1038,"type":15},"Reporting","reporting","2026-07-14T05:36:00.281416",{"slug":1041,"name":1041,"fn":1042,"description":1043,"org":1044,"tags":1045,"stars":23,"repoUrl":24,"updatedAt":1053},"nvflare-autofl","optimize NVFLARE training jobs","Use for agent-assisted Auto-FL optimization of an existing NVFLARE job in simulation, POC, or production. Do not use for code conversion, diagnosis-only work, or deployment setup.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1046,1049,1050],{"name":1047,"slug":1048,"type":15},"Machine Learning","machine-learning",{"name":9,"slug":8,"type":15},{"name":1051,"slug":1052,"type":15},"Optimization","optimization","2026-07-30T05:26:21.697612",{"slug":1055,"name":1055,"fn":1056,"description":1057,"org":1058,"tags":1059,"stars":23,"repoUrl":24,"updatedAt":1066},"nvflare-autofl-report","generate NVFLARE Auto-FL campaign reports","Generate a reproducible final report, literature-outcome synthesis, JSON summary, and refreshed progress plot for a stopped or interrupted NVFLARE Auto-FL campaign.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1060,1061,1062,1063],{"name":1047,"slug":1048,"type":15},{"name":9,"slug":8,"type":15},{"name":1037,"slug":1038,"type":15},{"name":1064,"slug":1065,"type":15},"Simulation","simulation","2026-07-30T05:26:14.661827",{"slug":1068,"name":1068,"fn":1069,"description":1070,"org":1071,"tags":1072,"stars":23,"repoUrl":24,"updatedAt":1081},"nvflare-convert-lightning","convert PyTorch Lightning code to NVFLARE","Convert existing PyTorch Lightning training code into an NVFLARE federated job using the Lightning Client API patch, local validation, and job export; do not use for plain PyTorch, other frameworks, deployment, POC\u002Fproduction lifecycle, or experiment workflows.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1073,1076,1077,1078],{"name":1074,"slug":1075,"type":15},"Data Pipeline","data-pipeline",{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":1079,"slug":1080,"type":15},"PyTorch","pytorch","2026-07-30T05:26:15.761027",{"slug":1083,"name":1083,"fn":1084,"description":1085,"org":1086,"tags":1087,"stars":23,"repoUrl":24,"updatedAt":1092},"nvflare-convert-pytorch","convert PyTorch code to NVFLARE","Convert existing PyTorch training code into an NVFLARE federated job using Client API model exchange, local validation, and job export; do not use for other frameworks, deployment, POC\u002Fproduction lifecycle, or experiment workflows.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1088,1089,1090,1091],{"name":1074,"slug":1075,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":1079,"slug":1080,"type":15},"2026-07-30T05:26:20.645495",{"slug":1094,"name":1094,"fn":1095,"description":1096,"org":1097,"tags":1098,"stars":23,"repoUrl":24,"updatedAt":1107},"nvflare-diagnose-job","diagnose failed NVFLARE jobs","Use when the user asks why a reported NVFLARE job failure signal occurred: the job failed, stalled, timed out, lost clients, ended with EXECUTION_EXCEPTION, or produced suspicious errors. Diagnose in simulation, POC, or production by collecting bounded evidence and mapping failure patterns to recovery actions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1099,1102,1103,1104],{"name":1100,"slug":1101,"type":15},"Debugging","debugging",{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":1105,"slug":1106,"type":15},"Observability","observability","2026-07-30T05:26:17.665774",10,{"items":1110,"total":1262},[1111,1129,1146,1157,1169,1181,1194,1206,1219,1230,1244,1253],{"slug":1112,"name":1112,"fn":1113,"description":1114,"org":1115,"tags":1116,"stars":1126,"repoUrl":1127,"updatedAt":1128},"nemoclaw-user-guide","retrieve NemoClaw documentation and configuration","Guides human users' AI agents to the NemoClaw docs MCP server and canonical Fern documentation in Markdown form. Use when users ask how to install, configure, operate, troubleshoot, secure, or learn NemoClaw with an AI coding assistant. Trigger keywords - nemoclaw docs, use nemoclaw with ai agent, nemoclaw mcp docs, nemoclaw install help, nemoclaw quickstart, nemoclaw markdown docs, llms.txt, agent skills.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1117,1120,1123],{"name":1118,"slug":1119,"type":15},"Documentation","documentation",{"name":1121,"slug":1122,"type":15},"MCP","mcp",{"name":1124,"slug":1125,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":1130,"name":1130,"fn":1131,"description":1132,"org":1133,"tags":1134,"stars":1143,"repoUrl":1144,"updatedAt":1145},"mcore-build-and-dependency","manage Megatron-LM development environments","Container-based dev environment setup and dependency management for Megatron-LM. Covers acquiring and launching the CI container, uv package management, and updating uv.lock.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1135,1138,1141],{"name":1136,"slug":1137,"type":15},"Containers","containers",{"name":1139,"slug":1140,"type":15},"Deployment","deployment",{"name":1142,"slug":35,"type":15},"Python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":1147,"name":1147,"fn":1148,"description":1149,"org":1150,"tags":1151,"stars":1143,"repoUrl":1144,"updatedAt":1156},"mcore-bump-base-image","update NVIDIA PyTorch base images","Bump the NVIDIA PyTorch base image (`nvcr.io\u002Fnvidia\u002Fpytorch:YY.MM-py3`) used by Megatron-LM CI. Covers the two pin sites (GitHub CI in `docker\u002F.ngc_version.dev` and GitLab CI in `.gitlab\u002Fstages\u002F01.build.yml`), the post-bump CI loop (re-run functional tests, refresh golden values, mark broken tests), and the gotchas that bit PRs",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1152,1155],{"name":1153,"slug":1154,"type":15},"CI\u002FCD","ci-cd",{"name":1139,"slug":1140,"type":15},"2026-07-14T05:25:59.97109",{"slug":1158,"name":1158,"fn":1159,"description":1160,"org":1161,"tags":1162,"stars":1143,"repoUrl":1144,"updatedAt":1168},"mcore-cicd","manage CI\u002FCD pipelines for Megatron-LM","CI\u002FCD reference for Megatron-LM. Covers CI pipeline structure, PR scope labels, triggering internal GitLab CI (which force-pushes the current branch to a pull-request\u002FBRANCH ref — always dry-run and verify the destination first; never run against shared or protected branches), and CI failure investigation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1163,1164,1165],{"name":1153,"slug":1154,"type":15},{"name":1139,"slug":1140,"type":15},{"name":1166,"slug":1167,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":1170,"name":1170,"fn":1171,"description":1172,"org":1173,"tags":1174,"stars":1143,"repoUrl":1144,"updatedAt":1180},"mcore-create-issue","investigate CI failures and create issues","Investigate a failing GitHub Actions run or job and create a GitHub issue for the failure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1175,1176,1177],{"name":1100,"slug":1101,"type":15},{"name":1166,"slug":1167,"type":15},{"name":1178,"slug":1179,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":1182,"name":1182,"fn":1183,"description":1184,"org":1185,"tags":1186,"stars":1143,"repoUrl":1144,"updatedAt":1193},"mcore-linting-and-formatting","lint and format Megatron-LM code","Linting and formatting for Megatron-LM. Covers running autoformat.sh, tools (ruff, black, isort, pylint, mypy), and code style rules.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1187,1190],{"name":1188,"slug":1189,"type":15},"Best Practices","best-practices",{"name":1191,"slug":1192,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":1195,"name":1195,"fn":1196,"description":1197,"org":1198,"tags":1199,"stars":1143,"repoUrl":1144,"updatedAt":1205},"mcore-migrate-gpt-to-hybrid","migrate Megatron-LM models to HybridModel","Migration guide for moving Megatron Core GPTModel checkpoints, model providers, training commands, and layer mappings to HybridModel.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1200,1201,1204],{"name":1047,"slug":1048,"type":15},{"name":1202,"slug":1203,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":1207,"name":1207,"fn":1208,"description":1209,"org":1210,"tags":1211,"stars":1143,"repoUrl":1144,"updatedAt":1218},"mcore-onboard-gb200-1node-tests","onboard functional tests for GB200","Onboard 1-node GitHub MR functional tests for GB200 from existing mr-scoped 2-node tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1212,1215],{"name":1213,"slug":1214,"type":15},"QA","qa",{"name":1216,"slug":1217,"type":15},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":1220,"name":1220,"fn":1221,"description":1222,"org":1223,"tags":1224,"stars":1143,"repoUrl":1144,"updatedAt":1229},"mcore-run-on-slurm","launch distributed training jobs on SLURM","How to launch distributed Megatron-LM training jobs on a SLURM cluster. Covers a minimal sbatch skeleton, environment-variable setup for torch.distributed.run, CUDA_DEVICE_MAX_CONNECTIONS rules across hardware and parallelism modes, container conventions, monitoring, and per-rank failure diagnosis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1225,1226],{"name":1139,"slug":1140,"type":15},{"name":1227,"slug":1228,"type":15},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":1231,"name":1231,"fn":1232,"description":1233,"org":1234,"tags":1235,"stars":1143,"repoUrl":1144,"updatedAt":1243},"mcore-split-pr","split pull requests to reduce review load","Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1236,1239,1240],{"name":1237,"slug":1238,"type":15},"Code Review","code-review",{"name":1166,"slug":1167,"type":15},{"name":1241,"slug":1242,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":1245,"name":1245,"fn":1246,"description":1247,"org":1248,"tags":1249,"stars":1143,"repoUrl":1144,"updatedAt":1252},"mcore-testing","run and manage Megatron-LM tests","Test system for Megatron-LM. Covers test layout, recipe YAML structure, adding and running unit and functional tests, golden values, marker filters, and CI parity.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1250,1251],{"name":1213,"slug":1214,"type":15},{"name":1216,"slug":1217,"type":15},"2026-07-14T05:25:54.928983",{"slug":1254,"name":1254,"fn":1255,"description":1256,"org":1257,"tags":1258,"stars":1143,"repoUrl":1144,"updatedAt":1261},"nightly-sync","manage nightly main-to-dev sync workflows","Domain knowledge for the nightly main-to-dev sync workflow. Covers merge strategy, CI architecture, failure investigation, and known issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1259,1260],{"name":13,"slug":14,"type":15},{"name":1153,"slug":1154,"type":15},"2026-07-30T05:29:03.275638",496]