Cog architecture and cross-cutting review guidelines
Cog packages ML models into production-ready containers. Use this skill for changes that cross language boundaries or touch core architecture.
cmd/cog/ and pkg/ -- builds, runs, and deploys modelspython/cog/ -- predictor interface, types, HTTP/queue servercrates/ -- prediction server inside containers (HTTP, worker management, IPC)Wheel resolution: The CLI discovers SDK and coglet wheels from dist/ at
Docker build time. Wheels are NOT embedded in the binary. Changes to build
artifacts need to account for this.
Dockerfile generation: pkg/dockerfile/ generates Dockerfiles from cog.yaml
config. Template injection and escaping matter here.
: parses . Schema is at . Changes must keep schema and Go code in sync.
pkg/config/config.gocog.yamlpkg/config/data/config_schema_v1.0.jsonTwo-process coglet: Parent process (HTTP server + orchestrator) and child worker process (Python predictor execution) communicate via IPC. Changes to the IPC protocol affect both Rust and Python code.
Compatibility matrix: CUDA/PyTorch/TensorFlow compatibility is managed in
tools/compatgen/. Framework version changes have wide blast radius.
Cargo.toml must match.python/cog/base_predictor.py affect all downstream model authors.docs/ require running mise run docs:llm to regenerate docs/llms.txt.cmd/ or pkg/cli/ require mise run docs:cli.integration-tests/ use Go's testscript and need a built cog binary.