Investment Committee Prep

Pre-IC packet assembly for each IC cycle. Assembles the docket, pulls each deal's memo and cross-references, tracks IC conditions from prior decisions through to completion, consumes the sensitivity / stress-test output, surfaces comp evidence with freshness flags, and runs an LP capital availability check. The pack is the IC committee's input; the committee owns the decision. The workflow refuses to publish a deal's packet if blocking Dealpath DQ rules are open (`dp_completeness_ic_record`) or if required sensitivity tests are missing. Outputs include the IC packet, the condition-tracking rollup (from prior cycles), and the post-IC condition-log draft ready for minute-keeping.

6 stars

Best use case

Investment Committee Prep is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Pre-IC packet assembly for each IC cycle. Assembles the docket, pulls each deal's memo and cross-references, tracks IC conditions from prior decisions through to completion, consumes the sensitivity / stress-test output, surfaces comp evidence with freshness flags, and runs an LP capital availability check. The pack is the IC committee's input; the committee owns the decision. The workflow refuses to publish a deal's packet if blocking Dealpath DQ rules are open (`dp_completeness_ic_record`) or if required sensitivity tests are missing. Outputs include the IC packet, the condition-tracking rollup (from prior cycles), and the post-IC condition-log draft ready for minute-keeping.

Teams using Investment Committee Prep should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/investment_committee_prep/SKILL.md --create-dirs "https://raw.githubusercontent.com/mariourquia/cre-skills-plugin/main/src/skills/residential_multifamily/workflows/investment_committee_prep/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/investment_committee_prep/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How Investment Committee Prep Compares

Feature / AgentInvestment Committee PrepStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Pre-IC packet assembly for each IC cycle. Assembles the docket, pulls each deal's memo and cross-references, tracks IC conditions from prior decisions through to completion, consumes the sensitivity / stress-test output, surfaces comp evidence with freshness flags, and runs an LP capital availability check. The pack is the IC committee's input; the committee owns the decision. The workflow refuses to publish a deal's packet if blocking Dealpath DQ rules are open (`dp_completeness_ic_record`) or if required sensitivity tests are missing. Outputs include the IC packet, the condition-tracking rollup (from prior cycles), and the post-IC condition-log draft ready for minute-keeping.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Investment Committee Prep

## Workflow purpose

Deliver a clean, auditable IC packet that lets the committee make the decision. Compose the docket, cross-reference each deal memo, track conditions from prior decisions to closure, verify the sensitivity / stress-test battery ran and published, surface comp evidence with freshness flags, and confirm LP capital availability against the capital call required for approvals on this docket. The workflow does not make the IC decision; it assembles the input and records the minute-ready artifact.

## Trigger conditions

- **Explicit:** "prep the IC packet", "IC agenda for next cycle", "draft the IC memo cross-references", "condition-tracking rollup", "sensitivity posture for tomorrow's IC".
- **Implicit:** an IC meeting is within overlay-defined prep window (typically 5-10 business days); any deal enters `ic_review` in Dealpath; `workflows/pipeline_review` flags an IC-load approaching capacity band; an IC condition deadline approaches within overlay band; a sensitivity test is requested by the investments_lead.
- **Recurring:** bi-weekly per the overlay IC cadence, or event-driven per IC meeting. Condition-tracking sweep runs daily.

## Inputs (required / optional)

| Input | Type | Required | Notes |
|---|---|---|---|
| Dealpath normalized `deal` records | table | required | scope: deals at `ic_review`, `ic_approved`, or `under_dd` for pre-IC advisory |
| Dealpath normalized `deal_milestone` records | table | required | covers prior IC decisions and condition history |
| Dealpath normalized `investment_committee_review` records | table | required | per-cycle IC review state |
| Canonical `asset` records | table | required | resolved via `master_data/asset_crosswalk.yaml` |
| Dealpath dq outcomes | table | required | `dq_rules.yaml` evaluation; `dp_completeness_ic_record` blocks any IC-approved roll-up |
| IC calendar + docket policy overlay | overlay | required | cadence, capacity band, prep window |
| IC memo templates (per deal_type / segment) | overlay | required | section set, required exhibits, governance sections |
| Sensitivity / stress-test outputs | records | required | from `skills/sensitivity_stress_test` — if absent, the deal is blocked from the docket |
| Rent-comp evidence | reference | required | `rent_comp_evidence__{market}_mf.csv`; freshness checked against overlay policy |
| Sale-comp evidence | reference | optional | `sale_comp_evidence__{market}_mf.csv`; optional for recap / refi |
| LP capital availability snapshot | record | required | for docket capital-call coverage; feeds `lp_capital_coverage_ratio` |
| Debt term sheet state | record | optional | from `workflows/pipeline_review` debt variance scan |
| Prior-cycle IC conditions (open) | table | required | carries forward open conditions from prior decisions |
| IC-member roster | overlay | required | voting-member list per overlay; used for quorum and distribution |

## Outputs

| Output | Type | Shape |
|---|---|---|
| IC packet (per deal on docket) | `memo` | full memo with cross-references, exhibits pointer, sensitivity results, comp evidence |
| Docket summary | `dashboard` | deals on docket, capacity band, required reads, quorum check |
| Condition-tracking rollup | `checklist` | open conditions from prior IC cycles with responsible party, evidence required, deadline, status |
| Sensitivity test posture | `kpi_review` | per-deal pass/fail on overlay-defined sensitivity battery |
| Comp evidence scorecard | `kpi_review` | per-deal rent-comp set freshness + adequacy score |
| LP capital coverage | `kpi_review` | docket capital call vs. LP-available capital; `lp_capital_coverage_ratio` |
| Approval packet (for ApprovalRequest row per matrix) | bundle | routed via `workflows/owner_approval_routing` |
| Minute-ready condition-log draft | `checklist` | post-decision template for the IC secretary |
| Confidence banner | banner | adapter `as_of_date`, DQ outcomes, overlay `status` tags, comp freshness |

## Output contract

Final-marked output MUST follow `_core/executive_output_contract.md`:
verdict-first block (recommendation, 3-bullet rationale, confidence,
materiality, next action), source-class labels on every numeric cell
(`[operator]` / `[derived]` / `[benchmark]` / `[overlay]` /
`[placeholder]`), and refusal-artifact shape when a required reference
input is absent. Any `[placeholder]`-tagged cell blocks IC packet
assembly (the workflow refuses per `reference_manifest.yaml#reads`
`fallback_behavior: refuse` on `rent_comp_evidence`).

## Required context

`asset_class=residential_multifamily`. Scope: one IC cycle, either by declared `ic_meeting_date` or by `next_ic` per overlay. Per-deal grain requires `deal_id` (or all deals at `ic_review` within prep window). `org_id` required for IC-member roster and approval-threshold bands. `market` is deal-level; the pack handles multi-market dockets. `fund_id` required if LP-capital check is scoped by fund (most cycles).

## Process

1. **Freshness + DQ gate.** Evaluate Dealpath `dq_rules.yaml`. `dp_freshness_deals` blocker halts the run for affected deals. `dp_completeness_ic_record` blocker refuses to publish any IC-approved roll-up until every `ic_approved` deal carries an `ic_decision_date`. `dp_conformance_stage_enum` blocker halts stage-based filters.
2. **Scope.** Resolve the IC cycle: named `ic_meeting_date`, or `next_ic` per overlay. Pull all deals at `ic_review`; optionally include `under_dd` deals flagged for pre-IC advisory per overlay policy.
3. **Docket composition.** Compose the docket with each deal's canonical identity (via `asset_crosswalk`), deal_type, market, target capital, strategy tag. Compare `ic_docket_load_count` to overlay capacity band.
4. **Memo cross-reference.** For each deal, pull the memo artifact from Dealpath (or memo location per overlay). Validate against the IC memo template overlay (per `deal_type`, `segment`): every required section present, every required exhibit pointer resolvable. Missing sections surface as `packet_incomplete` — deal held back from publication until resolved.
5. **Prior-cycle IC condition tracking.** For every deal carrying `ic_approved_with_conditions` status in `investment_committee_review`, pull open conditions and their `resolution_deadline`. Compute `ic_condition_aging_days` and `ic_condition_completion_rate`. Any condition past deadline escalates per approval matrix; the workflow opens an `ApprovalRequest` for extension or waiver if requested.
6. **Sensitivity / stress-test confirmation.** For each deal on docket, verify the sensitivity output from `skills/sensitivity_stress_test` exists and covers the overlay-defined battery (cap-rate shift, rent-growth haircut, expense-inflation bump, vacancy stress, interest-rate shift, exit-cap sensitivity). Compute `sensitivity_test_pass_rate` and publish per-deal pass/fail. Missing tests hold the deal back.
7. **Comp evidence scan.** For each deal, read `rent_comp_evidence__{market}_mf.csv` (and `sale_comp_evidence` for acquisitions / recaps) and compute freshness vs. overlay policy. `comp_evidence_freshness_days` flag fires if any comp is older than overlay band. Stale comp evidence surfaces but does not block unless overlay marks it blocking for the deal type.
8. **Debt term sheet cross-link.** Consume debt variance state from `workflows/pipeline_review` for any deal at `under_financing`. Surface indicated-vs-UW coupon and advance-rate variance in the packet.
9. **LP capital availability.** Read LP capital snapshot for each fund in scope. Compute `lp_capital_coverage_ratio` = LP-available capital / docket-weighted required capital. Flag if coverage < overlay threshold; escalate to cfo_finance_leader.
10. **Quorum + distribution check.** Verify IC-member roster and quorum threshold met; prepare distribution list per overlay (encrypted at rest, share policy per overlay).
11. **Compose IC packet.** Per deal: memo + sensitivity + comp evidence + debt variance (if any) + conditions-brought-forward + capital-call coverage. Top-of-packet summary: docket + condition rollup + LP coverage + DQ outcomes.
12. **Draft post-IC condition log.** Minute-ready template for the IC secretary: decision field (approved / approved_with_conditions / deferred / declined / withdrawn), condition text, responsible party, `resolution_deadline`, approval_request pointer.
13. **Route through approval.** The IC packet itself is not an approval artifact; the IC decision is. However, the workflow does route the packet through `workflows/owner_approval_routing` for committee-visibility logging and audit, citing `decision_severity=action_requires_approval` (the IC decision is the gated action).
14. **Confidence banner.** Adapter `as_of_date`, DQ outcomes, overlay `status`, comp freshness, any fallback behavior invoked.

## Metrics used

See frontmatter `metrics_used`. All metric slugs for this workflow are proposed (`proposed: true`) — no IC-preparation metric has landed in `_core/metrics.md` yet. Every output carries the `proposed` flag on each metric.

## Reference files used

- `reference/connectors/adapters/dealpath_deal_pipeline/normalized_contract.yaml`
- `reference/connectors/adapters/dealpath_deal_pipeline/dq_rules.yaml`
- `reference/connectors/deal_pipeline/schema.yaml`
- `reference/connectors/master_data/asset_crosswalk.yaml`
- `reference/connectors/master_data/market_crosswalk.yaml`
- `reference/derived/role_kpi_targets.csv`
- `reference/normalized/approval_threshold_defaults.csv`
- `reference/normalized/market_rents__{market}_mf.csv`
- `reference/normalized/rent_comp_evidence__{market}_mf.csv`
- `reference/normalized/sale_comp_evidence__{market}_mf.csv`

## Escalation points

- IC condition past deadline: deal_team_lead -> investments_lead -> asset_management_director -> `approval_request` per matrix row.
- Sensitivity test material failure (any deal fails overlay-defined critical test): investments_lead -> executive.
- Comp evidence stale beyond policy (rent-comp set fresher than required for the deal type): investments_lead -> data_platform_team.
- LP capital shortfall on the docket: investments_lead -> cfo_finance_leader -> executive.
- DQ blocker from Dealpath (`dp_completeness_ic_record`, `dp_conformance_stage_enum`): data_platform_team -> investments_lead; affected deals paused from the docket.

## Required approvals

- `ic_committee_approval` is the committee's decision on each deal. The workflow is the input; the approval is the output of the IC meeting itself. Condition extensions and waivers open their own `ApprovalRequest` via `workflows/owner_approval_routing`.
- The packet itself carries `decision_severity=action_requires_approval` for audit purposes (the IC decision is the gated action); no action is taken by the workflow itself.

## Failure modes

1. Publishing a deal packet without its sensitivity / stress-test output. Fix: sensitivity confirmation is step 6; missing test holds the deal back.
2. Forgetting prior-cycle conditions when the deal returns to IC. Fix: condition tracking runs on every sweep; resurrected deals carry prior conditions forward explicitly.
3. Citing stale comp evidence without surfacing freshness. Fix: `comp_evidence_freshness_days` flag and banner required.
4. Over-committing capital on the docket beyond LP availability. Fix: `lp_capital_coverage_ratio` < overlay threshold escalates before publish.
5. Confusing `ic_approved` with `ic_approved_with_conditions` — not tracking conditions as still-open. Fix: separate status tracking in `investment_committee_review`; approved_with_conditions never treated as closed until conditions resolved.
6. Missing quorum flag. Fix: IC-member roster check is step 10; quorum failure surfaces before packet finalized.
7. Auto-routing IC packet outside approved distribution list. Fix: distribution list per overlay; workflow default is `draft_for_review`.
8. Publishing a memo where a required exhibit pointer doesn't resolve. Fix: template validation is step 4; unresolved exhibits block the deal's entry.
9. Treating DQ `dp_completeness_ic_record` blocker as a warning. Fix: blocker halts the affected IC-approved deal's appearance in any roll-up.

## Edge cases

- **Stalled deal resurfacing at IC after previous deferral:** prior-decision pointer (`deal_milestone.milestone_type=ic_deferred`) carried forward; conditions or questions from prior cycle surface at top of the packet.
- **Retrade in progress:** deal on docket has an open retrade flag from `workflows/pipeline_review` — packet includes the retrade summary and evidence pointer; IC may defer pending resolution.
- **Declined-then-resurrected deal:** prior IC decline (`milestone_type=ic_declined`) fetched and prominently cited; deal's re-presentation requires a "what changed" section per overlay policy.
- **Deal renamed after IC:** name change logged via `dp_renamed_after_approval`; packet uses canonical `deal_id` and surfaces prior-name alias.
- **Multi-asset deal / portfolio acquisition:** one `deal_id` to multiple canonical assets — memo cross-references each asset; sensitivity ran per asset; comp evidence per asset; capital-call coverage at deal level.
- **Cross-fund allocation:** deal split across funds — LP capital check per fund; capital call allocated per fund per overlay; approval decision tracked per fund where overlay requires.
- **Debt market shift mid-docket:** indicated coupon moved since memo draft — packet surfaces the latest indication vs. memo assumption; IC may defer for re-underwriting.
- **Partial closing path (equity closes before debt):** pre-IC if applicable — packet surfaces the capital-sequence plan and contingency.
- **Condition unresolved at resolution_deadline:** condition past deadline triggers approval request for extension or waiver; deal re-surfaces at next IC for condition review.
- **Late legal entity setup on prior-approved deal that has not yet closed:** surfaced under prior-condition tracking; escalated to asset_management_director.
- **Committee member on vacation / unavailable:** alternate per overlay; quorum re-checked; packet distribution list updated.
- **Conditional approval pending LP consent:** packet records `approved_with_conditions`; LP consent tracked as a prior-cycle condition on subsequent runs.
- **IC cancelled / rescheduled last-minute:** condition-tracking sweep still runs; packet regenerated on new date; prior-draft artifacts retained for audit.
- **Sensitivity battery changes mid-cycle:** deals on docket ran against prior battery — workflow flags, investments_lead decides whether to re-run before meeting.

## Example invocations

1. "Prep the IC packet for next Wednesday's meeting. Five deals expected; flag any condition past deadline."
2. "What IC conditions are open across the current book of approved-with-conditions deals? Group by deal_team_lead."
3. "Build the pre-read for tomorrow's IC. Sensitivity posture on every deal; LP capital coverage by fund."
4. "Draft the post-IC minute-ready condition log template for DP_DEAL_024. Approved with three conditions."
5. "Show the IC docket outlook for the next two cycles — what's coming through, capacity check, capital-need."

## Example outputs

See `examples/example_investment_committee_prep_output.md` for the full artifact shape.

### Output — IC packet summary (abridged)

**Cycle.** IC meeting 2026-04-22; prep window day -7.

**Docket.** 4 deals on docket + 1 pre-IC advisory. `ic_docket_load_count` = 4 (within overlay capacity band of 5).

**Memos.** 4 of 4 memos validated against the template (middle_market acquisition + luxury development variants).

**Conditions carried forward.** 3 open conditions across the current book.
- DP_DEAL_022: LP consent on side-letter — responsible asset_management_director, deadline 2026-04-20.
- DP_DEAL_019: Roof-scope bid confirmation — responsible asset_management_director, deadline 2026-04-20 (also tracked by `pre_close_deal_tracking`).
- DP_DEAL_031: Insurance program confirmation (prior-cycle condition) — responsible reporting_finance_ops_lead, deadline 2026-04-25.

**Sensitivity posture.** 4 of 4 deals pass the overlay battery. `sensitivity_test_pass_rate` = 1.00.

**Comp evidence.** Fresh within band on 4 of 4 deals; one comp set (Charlotte luxury) is within 2 days of overlay stale threshold.

**LP capital coverage.** `lp_capital_coverage_ratio` = 1.28 (within band). No shortfall.

**Debt term sheet.** 1 deal (DP_DEAL_009) carries the variance flag from `workflows/pipeline_review` — packet includes latest-indication line.

**DQ outcomes.** All blockers pass. 1 warn (`dp_handoff_lag` on recently closed deal, not on docket). No deal paused.

**Minute-ready condition-log template.** Drafted for IC secretary.

**Confidence banner.** `dealpath_deal_pipeline@2026-04-15 (sample)`; `asset_crosswalk@2026-04-15 (sample)`; `market_crosswalk@2026-04-15 (sample)`; `rent_comp_evidence@2026-03-31 (starter)`; `role_kpi_targets@2026-03-31 (starter)`.

Related Skills

transfer-document-preparer

6
from mariourquia/cre-skills-plugin

Prepare entity transfer documents, closing document packages, and assignment agreements for CRE acquisitions. Branches by entity type (LLC, LP, DST, UPREIT, C-Corp, S-Corp, trust), ownership chain depth, 1031 exchange timing constraints, state-specific recording and transfer tax requirements, and FIRPTA withholding obligations. Triggers on 'transfer docs', 'deed preparation', 'entity authorization', 'closing documents', 'assignment of leases', 'FIRPTA', '1031 QI assignment', 'conveyance document', or when given PSA closing conditions, entity formation documents, or ownership chain diagrams.

Construction Meeting Prep and Action Tracking

6
from mariourquia/cre-skills-plugin

Prepares weekly or biweekly construction-meeting packets (agenda, data summary, RFI and submittal log, COs, schedule status, safety) and tracks action items with owners and due dates. Closes the loop by updating status and surfacing stale items.

disposition-prep-kit

6
from mariourquia/cre-skills-plugin

Produces a complete disposition preparation package: T-12 normalization, rent roll scrub, data room index, buyer Q&A, retrade defense, broker selection, marketing timeline, value story, and buyer targeting. Covers decision-to-sell through close.

workout-playbook

6
from mariourquia/cre-skills-plugin

Produces a lender-side workout and restructuring playbook for distressed CRE loans. Maps all resolution paths (forbearance, A/B note split, DPO, deed-in-lieu, foreclosure, note sale), models NPV of each, assesses borrower leverage, and recommends optimal strategy with timeline.

Work Order Triage

6
from mariourquia/cre-skills-plugin

Classifies work order urgency from free-text descriptions, assigns priority (P1-P4) with SLA deadlines, estimates cost, checks lease responsibility, and routes to the correct approval path.

warehouse-to-exhibit-mapper

6
from mariourquia/cre-skills-plugin

Maps validated, warehouse-ready tabular datasets into deck-ready EXHIBIT specifications and slide inputs. Selects table vs. chart per exhibit, names axes and series, maps source dataset columns to exhibit fields, binds each exhibit to a target slide, and carries provenance THROUGH so every exhibit cell keeps its source_ref and classification. Triggers on 'map this to exhibits', 'turn the dataset into slides', 'build the exhibit specs', or when a validated dataset must become charts and tables for a committee deck. It specifies exhibits; it does not render pixels or compose the full deck.

vendor-invoice-validator

6
from mariourquia/cre-skills-plugin

Validates vendor invoices against contract terms, scope of work, and market rates. Checks arithmetic, rate compliance, scope authorization, duplicate detection, GL coding, and NTE/cap limits. Assigns APPROVED, APPROVED WITH FLAGS, or HOLD FOR REVIEW verdict.

variance-narrative-generator

6
from mariourquia/cre-skills-plugin

Generates ownership-ready variance narratives from budget-vs-actual reports. Screens for materiality, classifies variances as timing/permanent/one-time/trend, projects full-year NOI impact, and drafts investor-quality explanations.

title-commitment-reviewer

6
from mariourquia/cre-skills-plugin

Analyze ALTA title commitments, surveys, and Schedule B exceptions for CRE acquisitions. Identifies title defects, chain breaks, lien conflicts, and cure requirements. Triggers on 'title commitment', 'Schedule B exceptions', 'title review', 'title exceptions', 'encumbrances', 'survey cross-reference', 'title chain', 'mechanic's lien', 'title cure', or when given a title commitment document, survey, or lien search results.

term-sheet-builder

6
from mariourquia/cre-skills-plugin

Draft and negotiate CRE financing term sheets from lender quotes. Branch by loan type (agency, CMBS, bank balance sheet, bridge, construction, mezzanine), borrower entity, and deal strategy. Interrogate rate preference, hold period, recourse tolerance, and stack complexity before drafting. Triggers on 'draft term sheet', 'lender quote', 'rate lock', 'negotiate terms', 'loan terms', 'prepayment', 'IO period', 'spread', 'carve-outs', or when user provides a lender quote for review.

tenant-retention-engine

6
from mariourquia/cre-skills-plugin

Generates comprehensive tenant retention strategies with per-tenant renewal probability scoring, retention NPV analysis, WALT impact quantification, DSCR covenant monitoring, competitive intelligence, game theory framing for multi-tenant dynamics, and blend-and-extend modeling. Includes backfill mode (lease-up war room) when retention fails. Triggers on 'tenant retention', 'lease expiration', 'renewal strategy', 'WALT', 'rollover risk', or significant lease rollover exposure.

tenant-event-planner

6
from mariourquia/cre-skills-plugin

Plans, budgets, and executes tenant appreciation events, seasonal programming, and community engagement for CRE properties. Supports API-driven vendor booking when MCP integrations are available. Triggers: tenant event, appreciation event, holiday party, tenant engagement, community event, property event planning, seasonal programming.