-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Labels
cliCLI commands, CLI tools, or command-line interface functionalityCLI commands, CLI tools, or command-line interface functionalityenhancementNew feature or requestNew feature or request
Description
Summary
Add -s / --select flag to colin run to compile only the subgraph needed for specific files. The flag name allows future expansion to support glob patterns, tags, or subproject selectors.
Agent Context
Must read:
- Implement storage architecture: separate cache from published outputs #62 and ADR 018:
docs/decisions/018-storage-architecture.md(storage separation enables this) - Compile engine:
src/colin/compiler/engine.py - Dependency graph implementation
Blocked by: #62 (storage architecture must be implemented first)
Behavior
# Compile only file.md's subgraph, publish file.md + public deps
colin run -s file.md
# Multiple selections
colin run -s file1.md -s file2.md
# Don't clean output/ first (additive)
colin run -s file.md --no-cleanDefault colin run (no -s)
- Compile all files
- Clean
output/ - Publish all public files
With -s file.md
- Compute minimum subgraph to produce selected file
- Compile subgraph (cache hits where possible)
- Clean
output/ - Publish selected file + its public refs
Implementation
- Add
-s/--selectflag (repeatable) - Add
--no-cleanflag - Subgraph traversal: walk refs from selected file(s)
- Manifest: merge updates (don't touch entries outside subgraph)
- Cache in
.colin/compiled/preserved for files not in subgraph
Future expansion
The --select flag can grow to support richer selectors:
--select "models/*.md"- glob patterns--select "tag:public"- tag filters--select "project:auth"- subproject filters
Use cases
- Large project, only need one output
- Faster iteration during development
- Minimize LLM calls when only one file changed
Related
- Implement storage architecture: separate cache from published outputs #62 - Storage architecture (enables this via .colin/ separation)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
cliCLI commands, CLI tools, or command-line interface functionalityCLI commands, CLI tools, or command-line interface functionalityenhancementNew feature or requestNew feature or request