CLAUDE.md covers architecture, data flow, code style conventions,
provider specifics, and all commands needed for development.
README.md covers installation, quick start, full config format
reference, CLI usage, incremental builds, and environment variables.
- build: executes all or specific target with dependency resolution
- clean: removes generated artifacts and state file, preserves inputs
- graph: prints dependency graph with build stages
- Config discovery: finds single *.bulkgen.yaml in working directory
- Uses native async API (chat.complete_async)
- Appends text input file contents to prompt with headers
- Notes image inputs as attached references
- Writes raw LLM response directly to output file
- build_graph() creates a DAG from project config with validation
- get_build_order() wraps topological_generations() for parallel batches
- get_subgraph_for_target() extracts transitive deps for single-target builds
- Validates missing dependencies and cycle detection
- TargetType enum with IMAGE/TEXT variants
- Defaults, TargetConfig, ProjectConfig pydantic models
- infer_target_type() for extension-based type dispatch
- resolve_model() for default/override model resolution
- load_config() using yaml.safe_load + model_validate
- Create bulkgen/ package with __init__.py
- Create bulkgen/providers/ subpackage with __init__.py
- Add mistralai>=1.0.0 to dependencies
- Add [project.scripts] entry point and [build-system] with hatchling
- Add .bulkgen.state.yaml to .gitignore