Install
openclaw skills install @clementgu/alphagbm-investment-thesisRecord and track the "why I bought" and "when I sell" for each position. Each thesis is attached to a company profile: buy reasons in prose, sell conditions as structured triggers (price drop, PE spike, thesis breach). The system monitors conditions automatically and flips the thesis to "triggered" when one fires. Use when: writing buy logic, setting exit triggers, reviewing active theses, seeing which triggered. Triggers on: "write a thesis for NVDA", "why did I buy AAPL", "set a stop loss logic on TSLA", "which theses are triggered", "update my thesis", "投资论据", "卖出条件", "买入理由", "论据被打破".
openclaw skills install @clementgu/alphagbm-investment-thesisTurn "I bought this because…" into a tracked, monitored record. Each thesis pairs a prose buy-reason with structured sell conditions so the system can auto-detect when the reasoning no longer holds.
ALPHAGBM_API_KEY (format agbm_xxxx…).https://alphagbm.zeabur.app. Override via ALPHAGBM_BASE_URL.POST /api/research/profiles first (see alphagbm-company-profile).All endpoints require Authorization: Bearer $ALPHAGBM_API_KEY.
GET /api/research/theses?status=active
| Query | Values | Description |
|---|---|---|
status | active / triggered / closed | Optional filter |
Response:
{
"success": true,
"theses": [
{ "id": 12, "ticker": "NVDA", "buy_thesis": "...", "status": "active", ... }
]
}
GET /api/research/theses/<TICKER>
Returns the active thesis for a ticker. 404 if none exists.
POST /api/research/theses
Content-Type: application/json
{
"ticker": "NVDA",
"buy_thesis": "AI capex cycle; data-center GPU moat; FCF > $60B.",
"sell_conditions": [
{ "type": "price_drop_pct", "value": 20 },
{ "type": "pe_above", "value": 60 },
{ "type": "growth_below", "value": 15 },
{ "type": "thesis_breach", "value": "cloud capex guidance cut > 20%" }
]
}
| Parameter | Type | Required | Description |
|---|---|---|---|
ticker | string | yes | Must match an existing profile |
buy_thesis | string | yes | Free-form prose, recommend 2-4 sentences |
sell_conditions | array | no | Structured triggers (see types below) |
Common sell_conditions types:
price_drop_pct — drop from purchase/peak %pe_above / pb_above — valuation ceilinggrowth_below — revenue/earnings growth thresholdthesis_breach — free-text qualitative trigger (monitored manually)PUT /api/research/theses/<THESIS_ID>
Content-Type: application/json
{"buy_thesis": "updated prose", "sell_conditions": [...], "status": "closed"}
Partial updates allowed. Note: uses thesis_id (int), not ticker — read the id from a prior list or get.
DELETE /api/research/theses/<THESIS_ID>
Hard-delete. Also uses numeric id.
{
id, ticker,
buy_thesis, // prose
sell_conditions, // [{type, value}]
status, // "active" | "triggered" | "closed"
thesis_score, // AI confidence 0-100 (if scored)
ai_feedback, // AI critique of the thesis (markdown)
triggered_at, trigger_detail, // populated when status flips
created_at, updated_at
}
active ──(sell condition fires)──▶ triggered
│ │
└────────(user closes)──▶ closed ◀──┘
When status = "triggered", trigger_detail shows which condition fired. Surface this to the user — it's the whole point of the system.
1. User: "I'm buying NVDA because AI capex is still accelerating"
→ (ensure profile exists — see alphagbm-company-profile)
→ POST /api/research/theses with buy_thesis + sell_conditions
→ Confirm: "Saved. Monitoring: price drop > 20%, PE > 60, growth < 15%."
2. User: "What are my active theses?"
→ GET /api/research/theses?status=active
→ Table: ticker · one-line thesis · conditions · score
3. User: "Any theses triggered?"
→ GET /api/research/theses?status=triggered
→ Alert list with trigger_detail explaining why
4. User: "Update my NVDA thesis — exit if PE > 70 instead of 60"
→ GET /api/research/theses/NVDA to find id
→ PUT /api/research/theses/<id> with revised sell_conditions
When presenting a thesis to the user, highlight:
Powered by AlphaGBM — Real-data options & research intelligence for traders and AI agents. 10K+ users.