Agent Branch Patterns
LumenFlow maintains a central registry of AI agent branch patterns that can bypass worktree requirements. This enables cloud-hosted agents and automation tools to work in the main checkout while still enforcing worktree discipline for human developers.
How It Works
Section titled “How It Works”- Fetch from Registry - The
isAgentBranch()function fetches patterns fromlumenflow.dev/registry/agent-patterns.json - Cache Locally - Patterns are cached for 7 days in
~/.lumenflow/cache/ - Merge with Config - Registry patterns are merged with any custom patterns from config
- Check Branch Name - Branch names are matched against glob patterns using
micromatch
Default Patterns
Section titled “Default Patterns”The registry includes patterns for popular AI agents:
In TypeScript
Section titled “In TypeScript”In CLI (Git Hooks)
Section titled “In CLI (Git Hooks)”Synchronous Version (Deprecated)
Section titled “Synchronous Version (Deprecated)”For backwards compatibility, a sync version is available:
Configuration
Section titled “Configuration”Configure agent patterns in .lumenflow.config.yaml. There are three modes:
Custom patterns are merged with registry patterns:
Result: Your patterns + registry patterns (deduplicated)
Replace registry patterns entirely:
Result: Only your override patterns (no registry fetch)
Disable network fetch for isolated environments:
Result: Only your config patterns (or defaults if none specified)
Configuration Options
Section titled “Configuration Options”| Option | Type | Default | Description |
|---|---|---|---|
agentBranchPatterns | string[] | [] | Patterns to merge with registry |
agentBranchPatternsOverride | string[] | undefined | Patterns that replace registry |
disableAgentPatternRegistry | boolean | false | Skip network fetch (airgapped mode) |
Behavior Matrix
Section titled “Behavior Matrix”| Registry Disabled | Override Set | Config Patterns | Result | Source |
|---|---|---|---|---|
| false | no | none | Registry patterns | registry |
| false | no | ['custom/*'] | Config + Registry | merged |
| false | yes | any | Override only | override |
| true | no | none | Defaults (['agent/*']) | defaults |
| true | no | ['custom/*'] | Config only | config |
| true | yes | any | Override only | override |
Protected Branches
Section titled “Protected Branches”Some branches are never bypassed, regardless of patterns:
- Main branch (from
git.mainBranchconfig) - master (legacy protected)
- Lane branches (matching
lane/*)
Cache Behavior
Section titled “Cache Behavior”| Scenario | Behavior |
|---|---|
| Fresh cache (<7d) | Use cached patterns, no network request |
| Stale cache (>=7d) | Attempt fetch, use fresh if successful |
| Fetch fails | Use stale cache if available, else use defaults |
| No cache, no network | Use defaults (['agent/*']) |
Cache Location
Section titled “Cache Location”Patterns are cached in:
Or if LUMENFLOW_HOME is set:
Clearing the Cache
Section titled “Clearing the Cache”To clear disk cache, delete the cache file:
Advanced: Programmatic Resolution
Section titled “Advanced: Programmatic Resolution”Use resolveAgentPatterns() for testing or custom resolution:
Injectable Fetcher
Section titled “Injectable Fetcher”For testing, inject a custom fetcher:
Registry API
Section titled “Registry API”The registry is served as static JSON:
URL: https://lumenflow.dev/registry/agent-patterns.json
Response Schema:
Adding New Patterns
Section titled “Adding New Patterns”To request a new agent pattern be added:
- Open an issue on hellmai/os
- Include the agent name and typical branch pattern
- Patterns are added to the registry after review
Headless Mode
Section titled “Headless Mode”For CI/CD environments that don’t use agent branches, enable guarded headless mode:
This bypasses all worktree checks. See AI Agent Integration for details.
Fail-Closed Design
Section titled “Fail-Closed Design”The system is fail-closed:
- Unknown branches are protected (require worktrees)
- Detached HEAD is protected
- Null/empty branches are protected
- Network errors fall back to cache/defaults (not bypass)
This ensures accidental work in the wrong location is prevented.