From carta-cap-table
Surface time-based BD triggers across the portfolio. Use when asked about client outreach, which clients closed a round recently, stale cap tables, pending grants, tombstones, weekly deals, or BD triggers.
npx claudepluginhub carta/plugins --plugin carta-cap-tableThis skill uses the workspace's default tool permissions.
Scan the portfolio for actionable outreach triggers: recent round closes, expiring 409As, and companies with pending grants but no current valuation.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Scan the portfolio for actionable outreach triggers: recent round closes, expiring 409As, and companies with pending grants but no current valuation.
No inputs required — this skill loops the full portfolio automatically. Cap at 20 companies.
list_accounts — get all portfolio companiesfetch("cap_table:get:financing_history", {"corporation_id": corporation_id}) — financing history per companyfetch("cap_table:get:409a_valuations", {"corporation_id": corporation_id}) — 409A status (optional)From financing history:
issue_date: date of issuanceround_name: name of the round (e.g. "Series A")is_grant: true if this is a grant issuance (not a priced round)From 409A FMVs:
expiration_date: when the valuation expiresprice: FMV per shareSee Step 4 below. Group by trigger type. Omit sections with no results.
Call list_accounts. Filter to accounts where id starts with corporation_pk:. Extract the numeric corporation IDs (up to 20).
For each company, fetch in sequence:
Financing history:
fetch("cap_table:get:financing_history", {"corporation_id": corporation_id})issue_date, round_name, is_grantround_name, find max issue_date per round → "last round date"409A status (optional, only if checking valuation triggers):
fetch("cap_table:get:409a_valuations", {"corporation_id": corporation_id})expiration_date, price (FMV per share)effective_date desc)Companies whose last round closed within N days (default 90, or user-specified):
last_round_date ≥ today - N daysCompanies with an expired or near-expiry 409A (within 60 days):
expiration_date ≤ today + 60 days or no 409A on fileCompanies that issued grants recently (within 90 days) but have no valid 409A:
is_grant=true entry + no active 409AGroup output by trigger type. Example:
Recent Closes (last 90 days)
| Company | Round | Close Date | Days Ago |
|---|---|---|---|
| Acme Inc | Series B | 2026-01-15 | 63 days |
Stale or Expiring 409As
| Company | Last 409A | Expiration | Status |
|---|---|---|---|
| Beta Corp | $2.50 | 2026-04-01 | Expiring soon |
| Gamma LLC | — | — | No 409A on file |
Grants Issued Without Current 409A
| Company | Last Grant Date | 409A Status |
|---|---|---|
| Delta Co | 2026-02-20 | Expired |
If no triggers found in a category, omit that section.
If the user specifies a time window (e.g., "last 60 days", "last 6 months"), use that instead of the default 90 days.