Bull/bear/base case scenario framework for a given company
npx skills add https://github.com/openai/plugins --skill bull-bear
Build a bull/bear/base case scenario framework for the company named in the user's request. If no ticker or company is provided, ask for one before proceeding.
Before starting, read ../data-access.md for data access methods and ../design-system.md for formatting conventions. Follow the data access detection logic and design system throughout this skill.
Follow these steps:
Look up the company by ticker using discover_companies. Capture:
company_idlatest_calendar_quarter — anchor for all period calculations below (see ../data-access.md Section 1.5)latest_fiscal_quarter../data-access.md Section 4.5Get the current stock price using get_stock_prices (see ../data-access.md Section 1.7). Pass company_id and dates for the 3 most recent calendar days — use the most recent returned close price. This is the anchor for scenario comparison: each scenario's implied value will be compared against this price to show upside/downside.
Calculate 8 quarters backward from latest_calendar_quarter. Pull:
Compute trailing 4-quarter totals for revenue, EBITDA, net income, EPS, and FCF — these are the baseline the scenarios build from.
Flag any one-time items that distort quarters.
First, think about what the most important KPIs are for THIS specific company based on its business model and what drives its valuation. For example:
Search for those specific KPIs by name and pull them. These are the building blocks for bottoms-up scenario math.
Also pull capital allocation data: share count, buyback amounts, dividends.
Search SEC filings/documents across multiple queries. If any search returns empty, try alternative keywords before giving up.
If consensus estimates are available (see ../data-access.md Section 3), note:
If consensus data is not available, skip this section.
For each scenario, build a bottoms-up revenue model showing key segment or product-level assumptions (e.g., units x ASP, subscribers x ARPU, segment growth rates). Don't just state a revenue range — show the math that gets there.
Don't default to 25/50/25. Assign probabilities informed by the most recent data points:
Be honest about which scenario is most likely. Don't default to a bullish framing or split the difference to seem balanced. If the data suggests the bear case is more probable, say so clearly. If the bull case requires multiple things to go right simultaneously, acknowledge that compounds the risk. The reader needs your honest assessment, not diplomatic equivocation.
Save to reports/{TICKER}_bull_bear.html using the HTML report template from ../design-system.md. Write the full analysis as styled HTML with the design system CSS inlined. This is the final deliverable — no intermediate markdown step needed.
The report should include:
All financial figures must use Daloopa citation format: <a href="https://daloopa.com/src/{fundamental_id}">$X.XX million</a>
Tell the user where the HTML report was saved.
Highlight: which scenario you believe is most likely and why, the key swing factors between bull and bear cases, and where you think the market is currently positioned (closer to bull, base, or bear). If the current stock price implies an overly optimistic or pessimistic scenario, flag it.
Integration with protocols.io API for managing scientific protocols. This skill should be used when working with protocols.io to search, create, update, or publish protocols; manage protocol steps and materials; handle discussions and comments; organize workspaces; upload and manage files; or integrate protocols.io functionality into workflows. Applicable for protocol discovery, collaborative protocol development, experiment tracking, lab protocol management, and scientific documentation.
Analyzes job descriptions and generates tailored resumes that highlight relevant experience, skills, and achievements to maximize interview chances
Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps, and system architecture diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw.
Use when you have a written implementation plan to execute in a separate session with review checkpoints
Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.
Benchling R&D platform integration. Access registry (DNA, proteins), inventory, ELN entries, workflows via API, build Benchling Apps, query Data Warehouse, for lab data management automation.
Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.
Query the CELLxGENE Census (61M+ cells) programmatically. Use when you need expression data across tissues, diseases, or cell types from the largest curated single-cell atlas. Best for population-scale queries, reference atlas comparisons. For analyzing your own data use scanpy or scvi-tools.
Take openai/bull-bear from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.