Skip to content

[2.7] Add Job Recipe API spec and design doc [skilp ci]#4195

Open
chesterxgchen wants to merge 5 commits intoNVIDIA:2.7from
chesterxgchen:2.7_job_recipe_requirements
Open

[2.7] Add Job Recipe API spec and design doc [skilp ci]#4195
chesterxgchen wants to merge 5 commits intoNVIDIA:2.7from
chesterxgchen:2.7_job_recipe_requirements

Conversation

@chesterxgchen
Copy link
Collaborator

Summary

  • Add docs/design/job_recipe_spec.md — the Recipe API interface design document covering:
    • User guide: constructor, export/execute, filters, config (add_server_config/add_client_config), decomposers, per-site config, model/checkpoint
    • Execution environments (SimEnv, PocEnv, ProdEnv)
    • Memory management (server_memory_gc_rounds with per-recipe defaults from codebase)
    • 14 API enhancement requirements (deploy map, multi-script/launcher, k8s, algorithm config, optional integrations, resource/GPU, client tracking, job scope, client memory)
    • Proposed API changes with recommendations (including recipe.add_resource_spec(), recipe.add_client_scripts() on base Recipe class, and noting existing add_server_config/add_client_config for algorithm overrides)
    • Real-world usage examples from BioNeMo (filters, config, decomposers)
  • Add docs/design/README.md index file

Test plan

  • Documentation only — no code changes
  • Review rendered markdown for correctness and formatting

Made with Cursor

Add docs/design/job_recipe_spec.md covering the Recipe API interface design:
- User guide (constructor, export/execute, filters, config, decomposers, per-site config, model/checkpoint)
- Execution environments (SimEnv, PocEnv, ProdEnv)
- Memory management (server_memory_gc_rounds with per-recipe defaults)
- 14 API enhancement requirements (deploy map, multi-script/launcher, k8s, algorithm config, optional integrations, resource/GPU, client tracking, job scope, client memory)
- Proposed API changes for each requirement with recommendations
@chesterxgchen chesterxgchen force-pushed the 2.7_job_recipe_requirements branch from c590b5f to 49f2443 Compare February 13, 2026 20:49
@chesterxgchen chesterxgchen changed the title [2.7] Add Job Recipe API spec and design doc [2.7] Add Job Recipe API spec and design doc [skilp ci] Feb 13, 2026
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Feb 13, 2026

Greptile Overview

Greptile Summary

Added comprehensive Recipe API design document (job_recipe_spec.md) covering user guide, interface design, and 14 enhancement requirements for release 2.7.2 and 2.8.0.

Major sections include:

  • User guide with constructor patterns, export/execute workflows, filters, config methods, decomposers, per-site config, and checkpoint usage
  • Three execution environments (SimEnv, PocEnv, ProdEnv) with environment-agnostic recipe design
  • Memory management guidance (server-side server_memory_gc_rounds with defaults per recipe)
  • 14 API enhancement requirements grouped by release (2.7.2 vs 2.8.0) covering deploy map, multi-script/launcher support, k8s, algorithm config, optional integrations, resource spec, client tracking, job scope, and client memory management
  • Proposed API changes for each requirement with option comparisons and ease-of-use recommendations

The spec is a design document (not implementation) and correctly notes where proposed methods like set_resource_spec() and add_client_scripts() don't yet exist in the current Recipe base class.

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk
  • Documentation-only PR adding a design spec for the Recipe API. No code changes that could introduce bugs or break existing functionality. The spec correctly distinguishes between current API and proposed future enhancements, and already-identified inconsistencies between spec and implementation have been documented in previous review threads.
  • No files require special attention

Important Files Changed

Filename Overview
docs/design/README.md Simple index file with correct content and no issues
docs/design/job_recipe_spec.md Comprehensive Recipe API spec with clear design proposals; minor consistency issues with proposed vs current API already noted in previous review threads

Last reviewed commit: 5e919e0

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

…evel config

- Section 10.7: Merge overlapping Options A+C into Option A (base Recipe
  method add_client_scripts); keep launcher type as separate Option B
- Section 10.9: Distinguish job-level config (SwarmServerConfig/ClientConfig
  constructor args) from top-level config (add_server_config/add_client_config);
  add set_server_job_config/set_client_job_config proposal with conflict
  resolution policy (ValueError on overlap)
- Section 10.11: Consolidate set_resource_spec/add_resource_spec into single
  Option B on base Recipe class
Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 files reviewed, 3 comments

Edit Code Review Agent Settings | Greptile

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

- Strengthen migration note for deprecated BioNeMo decomposer pattern
  (recipe.job.to_server -> recipe.add_decomposers)
- Add implementation note: add_client_scripts() is proposed; current
  impl has add_client_file() (single file)
- Add implementation note: set_resource_spec() is a design proposal,
  not current API
- Group Section 9 enhancements by target release (2.7.2 / 2.8.0)
  instead of flat numbered list
Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 files reviewed, 2 comments

Edit Code Review Agent Settings | Greptile

- Line 52: "(last section)" -> "(Section 9)" for API Enhancements ref
- Line 328 was already corrected: "(Section 3.5)" -> "(Sections 3.5 and 3.6)"
Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants