[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-rest-core-grpc-proxy":3,"mdc-64y133-key":34,"related-repo-nvidia-rest-core-grpc-proxy":462,"related-org-nvidia-rest-core-grpc-proxy":472},{"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":29,"sourceUrl":32,"mdContent":33},"rest-core-grpc-proxy","migrate REST API endpoints to gRPC","Build or migrate infra-controller REST API endpoints that call on-site NICo Core through the generic Core gRPC proxy. Use when working on REST-to-Core operations, ExecuteCoreGRPC, coreproxy, forge.Forge methods, creating new proxied REST endpoints, or migrating bespoke workflows to the gRPC proxy.",{"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},"REST API","rest-api","tag",{"name":9,"slug":8,"type":15},{"name":18,"slug":19,"type":15},"Engineering","engineering",{"name":21,"slug":22,"type":15},"API Development","api-development",226,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Finfra-controller","2026-07-14T05:32:52.235912",null,150,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"NVIDIA Infra Controller - Hardware Lifecycle Management and multitenant networking","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Finfra-controller\u002Ftree\u002FHEAD\u002Frest-api\u002Fskills\u002Frest-core-grpc-proxy","---\nname: rest-core-grpc-proxy\ndescription: Build or migrate infra-controller REST API endpoints that call on-site NICo Core through the generic Core gRPC proxy. Use when working on REST-to-Core operations, ExecuteCoreGRPC, coreproxy, forge.Forge methods, creating new proxied REST endpoints, or migrating bespoke workflows to the gRPC proxy.\n---\n\n# REST Core gRPC Proxy Skill\n\nUse this guidance when building or converting `infra-controller` REST API endpoints that need to call on-site NICo Core through the generic Core gRPC proxy.\n\n## Current Proxy Contract\n\n- Cloud helper: `rest-api\u002Fapi\u002Fpkg\u002Fapi\u002Fhandler\u002Futil\u002Fcommon\u002Fcoreproxy.go`, `ExecuteCoreGRPC`.\n- Shared contract: `rest-api\u002Fcommon\u002Fpkg\u002Fcoreproxy\u002Fcoreproxy.go`, with `coreproxy.Request` and `coreproxy.Response`.\n- Site workflow\u002Factivity: `InvokeCoreGRPC` and `InvokeCoreGRPCOnSite`.\n- Site Core invocation: `CoreGrpcClient.InvokeJSON`.\n- Temporal transport payload: protojson, so non-secret request fields and responses remain readable in Temporal UI.\n- Secret transport payload: selected top-level protojson fields are redacted from `RequestJSON` and carried separately in `EncryptedSecrets`.\n- Final site-to-Core call: normal binary gRPC. The JSON step is only the generic Temporal payload representation.\n\n## Before Coding\n\nConfirm these details before editing:\n\n- REST operation path, method, auth role, org\u002Fsite scoping, request model, response model, and expected status code.\n- Target Core method, usually `\u002Fforge.Forge\u002F\u003CMethod>`, and whether it is unary. The proxy does not support streaming methods.\n- Typed protobuf request and optional typed protobuf response.\n- Secret fields that must not appear in Temporal history. These must be top-level protojson field names such as `password`.\n- Whether the REST operation maps to one Core call or must compose multiple\n  calls to `ExecuteCoreGRPC`. A single REST handler may invoke the proxy helper\n  more than once when the API operation requires multiple Core gRPC calls.\n- Whether each Core operation is non-idempotent. The shared proxy workflow\n  intentionally runs each activity once with no automatic retry.\n\n## Implementation Workflow\n\n1. Inspect the nearest existing REST handler and model patterns before editing.\n2. Add or update the API model with validation, REST-to-proto mapping, and response shaping. Keep API compatibility and OpenAPI required\u002Fnullable semantics aligned with server validation.\n3. Keep auth, tenant\u002Forg membership, site lookup, role checks, request validation, and REST semantics in the REST handler. The proxy is only the cloud-to-site transport.\n4. Build the typed protobuf request before calling the proxy. Prefer generated protobuf types over maps or ad hoc JSON.\n5. Call `common.ExecuteCoreGRPC(ctx, siteTemporalClient, fullMethod, reqProto, respProtoOrNil, siteIDSecretKey, secretFields...)`.\n6. Pass the site ID string as the secret key when redacting fields for a site-scoped call; the site-agent decrypts with the same site key.\n7. Never log full request bodies when they can contain secrets. Log method, kind, site ID, or other non-secret metadata only.\n8. Return a curated REST response. Do not expose Core protobufs or secret fields directly unless the API contract already does.\n9. For a new public REST endpoint, register the route, update\n   `rest-api\u002Fopenapi\u002Fspec.yaml`, and regenerate SDK files if the repo workflow\n   requires it. For an existing REST endpoint being migrated from a bespoke\n   workflow to the generic proxy, keep the REST contract unchanged and do not\n   touch OpenAPI or generated SDK files unless the public API actually changes.\n\n## Tests To Add\n\n- Model validation for required fields, enums, conditional requirements, and REST-to-proto mapping.\n- Handler tests for auth\u002Fsite validation, request normalization, `ExecuteCoreGRPC` invocation arguments, secret field names, status code, and password-free response.\n- Route registration tests.\n- OpenAPI\u002Fschema checks and generated SDK checks only for new endpoints or\n  public API changes. Pure migrations from bespoke workflows to the generic\n  proxy should not change the REST contract, OpenAPI, or generated SDK files.\n- Proxy package tests only if changing shared proxy behavior, not for each new endpoint.\n\n## Binary Protobuf Question\n\nIf someone asks why the proxy uses protojson instead of protobuf bytes:\n\n- A binary payload is possible because the cloud handler already has a typed proto request and the site side resolves the method descriptor.\n- The merged design chose protojson for the Temporal payload so non-secret fields remain readable during debugging, while selected secret fields are encrypted separately.\n- Switching to bytes would reduce encode\u002Fdecode overhead and lean harder on protobuf wire compatibility, but it would make Temporal history opaque and require a different redaction strategy for secret fields.\n- Treat binary transport as a follow-up design change to the shared proxy, not as part of adding a normal REST endpoint through the existing proxy.\n\n## Known Example\n\nUse the BMC credential endpoint from PR 2477 as the reference pattern:\n\n- Handler: `rest-api\u002Fapi\u002Fpkg\u002Fapi\u002Fhandler\u002Fbmccredential.go`.\n- Model: `rest-api\u002Fapi\u002Fpkg\u002Fapi\u002Fmodel\u002Fbmccredential.go`.\n- Core method: `\u002Fforge.Forge\u002FCreateCredential`.\n- Secret redaction: `password`.\n- Response omits password and returns only accepted metadata.\n",{"data":35,"body":36},{"name":4,"description":6},{"type":37,"children":38},"root",[39,48,63,70,185,191,196,251,257,321,327,362,368,373,396,402,407],{"type":40,"tag":41,"props":42,"children":44},"element","h1",{"id":43},"rest-core-grpc-proxy-skill",[45],{"type":46,"value":47},"text","REST Core gRPC Proxy Skill",{"type":40,"tag":49,"props":50,"children":51},"p",{},[52,54,61],{"type":46,"value":53},"Use this guidance when building or converting ",{"type":40,"tag":55,"props":56,"children":58},"code",{"className":57},[],[59],{"type":46,"value":60},"infra-controller",{"type":46,"value":62}," REST API endpoints that need to call on-site NICo Core through the generic Core gRPC proxy.",{"type":40,"tag":64,"props":65,"children":67},"h2",{"id":66},"current-proxy-contract",[68],{"type":46,"value":69},"Current Proxy Contract",{"type":40,"tag":71,"props":72,"children":73},"ul",{},[74,96,124,143,155,160,180],{"type":40,"tag":75,"props":76,"children":77},"li",{},[78,80,86,88,94],{"type":46,"value":79},"Cloud helper: ",{"type":40,"tag":55,"props":81,"children":83},{"className":82},[],[84],{"type":46,"value":85},"rest-api\u002Fapi\u002Fpkg\u002Fapi\u002Fhandler\u002Futil\u002Fcommon\u002Fcoreproxy.go",{"type":46,"value":87},", ",{"type":40,"tag":55,"props":89,"children":91},{"className":90},[],[92],{"type":46,"value":93},"ExecuteCoreGRPC",{"type":46,"value":95},".",{"type":40,"tag":75,"props":97,"children":98},{},[99,101,107,109,115,117,123],{"type":46,"value":100},"Shared contract: ",{"type":40,"tag":55,"props":102,"children":104},{"className":103},[],[105],{"type":46,"value":106},"rest-api\u002Fcommon\u002Fpkg\u002Fcoreproxy\u002Fcoreproxy.go",{"type":46,"value":108},", with ",{"type":40,"tag":55,"props":110,"children":112},{"className":111},[],[113],{"type":46,"value":114},"coreproxy.Request",{"type":46,"value":116}," and ",{"type":40,"tag":55,"props":118,"children":120},{"className":119},[],[121],{"type":46,"value":122},"coreproxy.Response",{"type":46,"value":95},{"type":40,"tag":75,"props":125,"children":126},{},[127,129,135,136,142],{"type":46,"value":128},"Site workflow\u002Factivity: ",{"type":40,"tag":55,"props":130,"children":132},{"className":131},[],[133],{"type":46,"value":134},"InvokeCoreGRPC",{"type":46,"value":116},{"type":40,"tag":55,"props":137,"children":139},{"className":138},[],[140],{"type":46,"value":141},"InvokeCoreGRPCOnSite",{"type":46,"value":95},{"type":40,"tag":75,"props":144,"children":145},{},[146,148,154],{"type":46,"value":147},"Site Core invocation: ",{"type":40,"tag":55,"props":149,"children":151},{"className":150},[],[152],{"type":46,"value":153},"CoreGrpcClient.InvokeJSON",{"type":46,"value":95},{"type":40,"tag":75,"props":156,"children":157},{},[158],{"type":46,"value":159},"Temporal transport payload: protojson, so non-secret request fields and responses remain readable in Temporal UI.",{"type":40,"tag":75,"props":161,"children":162},{},[163,165,171,173,179],{"type":46,"value":164},"Secret transport payload: selected top-level protojson fields are redacted from ",{"type":40,"tag":55,"props":166,"children":168},{"className":167},[],[169],{"type":46,"value":170},"RequestJSON",{"type":46,"value":172}," and carried separately in ",{"type":40,"tag":55,"props":174,"children":176},{"className":175},[],[177],{"type":46,"value":178},"EncryptedSecrets",{"type":46,"value":95},{"type":40,"tag":75,"props":181,"children":182},{},[183],{"type":46,"value":184},"Final site-to-Core call: normal binary gRPC. The JSON step is only the generic Temporal payload representation.",{"type":40,"tag":64,"props":186,"children":188},{"id":187},"before-coding",[189],{"type":46,"value":190},"Before Coding",{"type":40,"tag":49,"props":192,"children":193},{},[194],{"type":46,"value":195},"Confirm these details before editing:",{"type":40,"tag":71,"props":197,"children":198},{},[199,204,217,222,234,246],{"type":40,"tag":75,"props":200,"children":201},{},[202],{"type":46,"value":203},"REST operation path, method, auth role, org\u002Fsite scoping, request model, response model, and expected status code.",{"type":40,"tag":75,"props":205,"children":206},{},[207,209,215],{"type":46,"value":208},"Target Core method, usually ",{"type":40,"tag":55,"props":210,"children":212},{"className":211},[],[213],{"type":46,"value":214},"\u002Fforge.Forge\u002F\u003CMethod>",{"type":46,"value":216},", and whether it is unary. The proxy does not support streaming methods.",{"type":40,"tag":75,"props":218,"children":219},{},[220],{"type":46,"value":221},"Typed protobuf request and optional typed protobuf response.",{"type":40,"tag":75,"props":223,"children":224},{},[225,227,233],{"type":46,"value":226},"Secret fields that must not appear in Temporal history. These must be top-level protojson field names such as ",{"type":40,"tag":55,"props":228,"children":230},{"className":229},[],[231],{"type":46,"value":232},"password",{"type":46,"value":95},{"type":40,"tag":75,"props":235,"children":236},{},[237,239,244],{"type":46,"value":238},"Whether the REST operation maps to one Core call or must compose multiple\ncalls to ",{"type":40,"tag":55,"props":240,"children":242},{"className":241},[],[243],{"type":46,"value":93},{"type":46,"value":245},". A single REST handler may invoke the proxy helper\nmore than once when the API operation requires multiple Core gRPC calls.",{"type":40,"tag":75,"props":247,"children":248},{},[249],{"type":46,"value":250},"Whether each Core operation is non-idempotent. The shared proxy workflow\nintentionally runs each activity once with no automatic retry.",{"type":40,"tag":64,"props":252,"children":254},{"id":253},"implementation-workflow",[255],{"type":46,"value":256},"Implementation Workflow",{"type":40,"tag":258,"props":259,"children":260},"ol",{},[261,266,271,276,281,293,298,303,308],{"type":40,"tag":75,"props":262,"children":263},{},[264],{"type":46,"value":265},"Inspect the nearest existing REST handler and model patterns before editing.",{"type":40,"tag":75,"props":267,"children":268},{},[269],{"type":46,"value":270},"Add or update the API model with validation, REST-to-proto mapping, and response shaping. Keep API compatibility and OpenAPI required\u002Fnullable semantics aligned with server validation.",{"type":40,"tag":75,"props":272,"children":273},{},[274],{"type":46,"value":275},"Keep auth, tenant\u002Forg membership, site lookup, role checks, request validation, and REST semantics in the REST handler. The proxy is only the cloud-to-site transport.",{"type":40,"tag":75,"props":277,"children":278},{},[279],{"type":46,"value":280},"Build the typed protobuf request before calling the proxy. Prefer generated protobuf types over maps or ad hoc JSON.",{"type":40,"tag":75,"props":282,"children":283},{},[284,286,292],{"type":46,"value":285},"Call ",{"type":40,"tag":55,"props":287,"children":289},{"className":288},[],[290],{"type":46,"value":291},"common.ExecuteCoreGRPC(ctx, siteTemporalClient, fullMethod, reqProto, respProtoOrNil, siteIDSecretKey, secretFields...)",{"type":46,"value":95},{"type":40,"tag":75,"props":294,"children":295},{},[296],{"type":46,"value":297},"Pass the site ID string as the secret key when redacting fields for a site-scoped call; the site-agent decrypts with the same site key.",{"type":40,"tag":75,"props":299,"children":300},{},[301],{"type":46,"value":302},"Never log full request bodies when they can contain secrets. Log method, kind, site ID, or other non-secret metadata only.",{"type":40,"tag":75,"props":304,"children":305},{},[306],{"type":46,"value":307},"Return a curated REST response. Do not expose Core protobufs or secret fields directly unless the API contract already does.",{"type":40,"tag":75,"props":309,"children":310},{},[311,313,319],{"type":46,"value":312},"For a new public REST endpoint, register the route, update\n",{"type":40,"tag":55,"props":314,"children":316},{"className":315},[],[317],{"type":46,"value":318},"rest-api\u002Fopenapi\u002Fspec.yaml",{"type":46,"value":320},", and regenerate SDK files if the repo workflow\nrequires it. For an existing REST endpoint being migrated from a bespoke\nworkflow to the generic proxy, keep the REST contract unchanged and do not\ntouch OpenAPI or generated SDK files unless the public API actually changes.",{"type":40,"tag":64,"props":322,"children":324},{"id":323},"tests-to-add",[325],{"type":46,"value":326},"Tests To Add",{"type":40,"tag":71,"props":328,"children":329},{},[330,335,347,352,357],{"type":40,"tag":75,"props":331,"children":332},{},[333],{"type":46,"value":334},"Model validation for required fields, enums, conditional requirements, and REST-to-proto mapping.",{"type":40,"tag":75,"props":336,"children":337},{},[338,340,345],{"type":46,"value":339},"Handler tests for auth\u002Fsite validation, request normalization, ",{"type":40,"tag":55,"props":341,"children":343},{"className":342},[],[344],{"type":46,"value":93},{"type":46,"value":346}," invocation arguments, secret field names, status code, and password-free response.",{"type":40,"tag":75,"props":348,"children":349},{},[350],{"type":46,"value":351},"Route registration tests.",{"type":40,"tag":75,"props":353,"children":354},{},[355],{"type":46,"value":356},"OpenAPI\u002Fschema checks and generated SDK checks only for new endpoints or\npublic API changes. Pure migrations from bespoke workflows to the generic\nproxy should not change the REST contract, OpenAPI, or generated SDK files.",{"type":40,"tag":75,"props":358,"children":359},{},[360],{"type":46,"value":361},"Proxy package tests only if changing shared proxy behavior, not for each new endpoint.",{"type":40,"tag":64,"props":363,"children":365},{"id":364},"binary-protobuf-question",[366],{"type":46,"value":367},"Binary Protobuf Question",{"type":40,"tag":49,"props":369,"children":370},{},[371],{"type":46,"value":372},"If someone asks why the proxy uses protojson instead of protobuf bytes:",{"type":40,"tag":71,"props":374,"children":375},{},[376,381,386,391],{"type":40,"tag":75,"props":377,"children":378},{},[379],{"type":46,"value":380},"A binary payload is possible because the cloud handler already has a typed proto request and the site side resolves the method descriptor.",{"type":40,"tag":75,"props":382,"children":383},{},[384],{"type":46,"value":385},"The merged design chose protojson for the Temporal payload so non-secret fields remain readable during debugging, while selected secret fields are encrypted separately.",{"type":40,"tag":75,"props":387,"children":388},{},[389],{"type":46,"value":390},"Switching to bytes would reduce encode\u002Fdecode overhead and lean harder on protobuf wire compatibility, but it would make Temporal history opaque and require a different redaction strategy for secret fields.",{"type":40,"tag":75,"props":392,"children":393},{},[394],{"type":46,"value":395},"Treat binary transport as a follow-up design change to the shared proxy, not as part of adding a normal REST endpoint through the existing proxy.",{"type":40,"tag":64,"props":397,"children":399},{"id":398},"known-example",[400],{"type":46,"value":401},"Known Example",{"type":40,"tag":49,"props":403,"children":404},{},[405],{"type":46,"value":406},"Use the BMC credential endpoint from PR 2477 as the reference pattern:",{"type":40,"tag":71,"props":408,"children":409},{},[410,422,434,446,457],{"type":40,"tag":75,"props":411,"children":412},{},[413,415,421],{"type":46,"value":414},"Handler: ",{"type":40,"tag":55,"props":416,"children":418},{"className":417},[],[419],{"type":46,"value":420},"rest-api\u002Fapi\u002Fpkg\u002Fapi\u002Fhandler\u002Fbmccredential.go",{"type":46,"value":95},{"type":40,"tag":75,"props":423,"children":424},{},[425,427,433],{"type":46,"value":426},"Model: ",{"type":40,"tag":55,"props":428,"children":430},{"className":429},[],[431],{"type":46,"value":432},"rest-api\u002Fapi\u002Fpkg\u002Fapi\u002Fmodel\u002Fbmccredential.go",{"type":46,"value":95},{"type":40,"tag":75,"props":435,"children":436},{},[437,439,445],{"type":46,"value":438},"Core method: ",{"type":40,"tag":55,"props":440,"children":442},{"className":441},[],[443],{"type":46,"value":444},"\u002Fforge.Forge\u002FCreateCredential",{"type":46,"value":95},{"type":40,"tag":75,"props":447,"children":448},{},[449,451,456],{"type":46,"value":450},"Secret redaction: ",{"type":40,"tag":55,"props":452,"children":454},{"className":453},[],[455],{"type":46,"value":232},{"type":46,"value":95},{"type":40,"tag":75,"props":458,"children":459},{},[460],{"type":46,"value":461},"Response omits password and returns only accepted metadata.",{"items":463,"total":471},[464],{"slug":4,"name":4,"fn":5,"description":6,"org":465,"tags":466,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[467,468,469,470],{"name":21,"slug":22,"type":15},{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},1,{"items":473,"total":632},[474,492,510,521,533,547,560,574,587,598,612,621],{"slug":475,"name":475,"fn":476,"description":477,"org":478,"tags":479,"stars":489,"repoUrl":490,"updatedAt":491},"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},[480,483,486],{"name":481,"slug":482,"type":15},"Documentation","documentation",{"name":484,"slug":485,"type":15},"MCP","mcp",{"name":487,"slug":488,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":493,"name":493,"fn":494,"description":495,"org":496,"tags":497,"stars":507,"repoUrl":508,"updatedAt":509},"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},[498,501,504],{"name":499,"slug":500,"type":15},"Containers","containers",{"name":502,"slug":503,"type":15},"Deployment","deployment",{"name":505,"slug":506,"type":15},"Python","python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":511,"name":511,"fn":512,"description":513,"org":514,"tags":515,"stars":507,"repoUrl":508,"updatedAt":520},"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},[516,519],{"name":517,"slug":518,"type":15},"CI\u002FCD","ci-cd",{"name":502,"slug":503,"type":15},"2026-07-14T05:25:59.97109",{"slug":522,"name":522,"fn":523,"description":524,"org":525,"tags":526,"stars":507,"repoUrl":508,"updatedAt":532},"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},[527,528,529],{"name":517,"slug":518,"type":15},{"name":502,"slug":503,"type":15},{"name":530,"slug":531,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":534,"name":534,"fn":535,"description":536,"org":537,"tags":538,"stars":507,"repoUrl":508,"updatedAt":546},"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},[539,542,543],{"name":540,"slug":541,"type":15},"Debugging","debugging",{"name":530,"slug":531,"type":15},{"name":544,"slug":545,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":548,"name":548,"fn":549,"description":550,"org":551,"tags":552,"stars":507,"repoUrl":508,"updatedAt":559},"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},[553,556],{"name":554,"slug":555,"type":15},"Best Practices","best-practices",{"name":557,"slug":558,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":561,"name":561,"fn":562,"description":563,"org":564,"tags":565,"stars":507,"repoUrl":508,"updatedAt":573},"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},[566,569,572],{"name":567,"slug":568,"type":15},"Machine Learning","machine-learning",{"name":570,"slug":571,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":575,"name":575,"fn":576,"description":577,"org":578,"tags":579,"stars":507,"repoUrl":508,"updatedAt":586},"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},[580,583],{"name":581,"slug":582,"type":15},"QA","qa",{"name":584,"slug":585,"type":15},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":588,"name":588,"fn":589,"description":590,"org":591,"tags":592,"stars":507,"repoUrl":508,"updatedAt":597},"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},[593,594],{"name":502,"slug":503,"type":15},{"name":595,"slug":596,"type":15},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":599,"name":599,"fn":600,"description":601,"org":602,"tags":603,"stars":507,"repoUrl":508,"updatedAt":611},"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},[604,607,608],{"name":605,"slug":606,"type":15},"Code Review","code-review",{"name":530,"slug":531,"type":15},{"name":609,"slug":610,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":613,"name":613,"fn":614,"description":615,"org":616,"tags":617,"stars":507,"repoUrl":508,"updatedAt":620},"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},[618,619],{"name":581,"slug":582,"type":15},{"name":584,"slug":585,"type":15},"2026-07-14T05:25:54.928983",{"slug":622,"name":622,"fn":623,"description":624,"org":625,"tags":626,"stars":507,"repoUrl":508,"updatedAt":631},"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},[627,630],{"name":628,"slug":629,"type":15},"Automation","automation",{"name":517,"slug":518,"type":15},"2026-07-30T05:29:03.275638",496]