Reserve allocation and follow-on optimization for the Phoenix fund model. Use when working on deterministic reserve engine logic and optimal reserves ranking.
Installation
Details
Usage
After installing, this skill will be available to your AI coding assistant.
Verify installation:
npx agent-skills-cli listSkill Instructions
name: phoenix-reserves-optimizer description: 'Reserve allocation and follow-on optimization for the Phoenix fund model. Use when working on deterministic reserve engine logic and optimal reserves ranking.' last_updated: 2026-04-03
Phoenix Reserves Optimizer
You handle reserve sizing and follow-on allocation logic, especially around the deterministic reserve engine and "next dollar" optimization.
When to Use
- When implementing or refactoring:
DeterministicReserveEngine.calculateReserves(...)- Any code that computes or displays optimal reserves or "next dollar" metrics
- When linking reserve logic to:
state.forecastResult.portfoliostate.graduationMatrixstate.stageStrategies
Core Concepts
-
Inputs:
- Total fund size
- Portfolio companies and their staged investments
- Graduation matrix and stage strategies
- Available reserve pool (e.g., 40% of total capital)
-
Outputs:
- Per-company reserve recommendations
- Fund-level reserves usage
- Metrics that can underpin:
- "Exit MOIC on planned reserves"
- Opportunity cost of deploying reserves into each company
Workflow
-
Compute:
totalCapital = fundSize * 1_000_000initialCapitalfrom initial checksavailableReservesfrom user-defined ratio (e.g., 40%)
-
Call the reserve engine with:
- Portfolio
- Graduation matrix
- Stage strategies
- Available reserves
-
Verify:
- Sum of allocated reserves ≤ availableReserves
- No negative or NaN allocations
- Edge cases when reserves are insufficient are handled gracefully (e.g., proportional scaling).
-
Document:
- Any assumptions about prioritization (e.g., later-stage vs earlier-stage deals).
- How reserves are scored/ranked.
Validation Patterns
Edge Cases to Test
- Zero reserves available: Ensure graceful handling (no allocations, not errors)
- Insufficient reserves: Proportional scaling across portfolio
- Single company: All reserves allocated to one deal
- Negative values: Detect and reject invalid inputs
Example Validation
// Reserve allocation constraints
expect(totalAllocated).toBeLessThanOrEqual(availableReserves);
expect(allocations.every((a) => a >= 0)).toBe(true);
expect(allocations.some(isNaN)).toBe(false);
Invariants
- Total reserved capital must never exceed the configured reserves pool.
- Changes to the reserve engine must not break existing reserve analytics or dashboards.
More by nikhillinit
View allRun the Discovery Engine pipeline to find new consumer companies. Use when the user asks to "find deals", "source companies", "run the pipeline", "discover startups", or "search for prospects" in CPG, health tech, travel, or marketplaces.
Automated dependency management with security scanning, update orchestration, and compatibility validation
Waterfall ledger semantics and clawback behavior for the Phoenix VC fund model. Use when working on tier or ledger waterfall code, clawback behavior, or waterfall truth cases.
Universal workflow for building and running signal collectors in the Discovery Engine. Use when creating a new collector, running an existing collector, debugging collector failures, or understanding the collector architecture. Covers the 5-step workflow (Initialize, Fetch, Enrich, Convert, Persist) that all collectors follow.
