| name | watchlist-tracker |
| description | Activate when Cowork is opened and watchlist monitoring cadence has elapsed. Activate when user says "check my watchlist", "what's new on my watchlist", "run watchlist", "any updates", "watchlist digest", or configures monitoring via /curiosity-stack:watchlist command. ALSO activate immediately โ opening the watchlist UI โ when user says any of: "add to watchlist", "add this to watchlist", "watch this", "monitor this", "put this on my watchlist", "track this", "add [topic] to watchlist". When triggered by an add request, open the UI with the topic pre-filled. Do NOT activate on every session โ check last_run date in local.md first.
|
Design system โ mandatory on all HTML artifacts
Every HTML artifact generated by this skill MUST follow this design system.
No exceptions. Never invent colours, never use dark backgrounds, never use
purple or blue as primary backgrounds.
Palette:
- Page background:
#fafaf8 (warm white)
- Card background:
white
- Primary text:
#2c2c2c (soft charcoal)
- Secondary text:
#6b6b6b
- Muted text:
#9a9690
- Accent / headers:
#1b5e52 (deep teal) โ the ONLY accent colour
- Border:
#e0ddd6
- Hover tint:
#f0f7f4
- Warning/amber:
#fff8f0 background, #f0d090 border, #5a3a00 text
Typography:
- Body:
'Georgia', serif, 14px minimum
- Monospace labels:
'Courier New', monospace
- Never below 11px anywhere
Component rules:
- All section headers:
background: #1b5e52; color: white
- Cards:
background: white; border: 1px solid #e0ddd6; border-radius: 8px
- Buttons:
background: #1b5e52; color: white for primary actions
- No gradients, no shadows, no dark backgrounds on outer containers
Pill colour system:
- Global company:
background:#e6f1fb; color:#0c447c; border:0.5px solid #85b7eb
- India listed:
background:#eaf3de; color:#27500a; border:0.5px solid #97c459
- India private:
background:#faeeda; color:#633806; border:0.5px solid #ef9f27
- Flagged:
background:#fcebeb; color:#791f1f; border:0.5px solid #f09595
- Neutral segment:
background:#f3f4f6; color:#374151; border:0.5px solid #d1d5db
- Seeded:
background:#eaf3de; color:#27500a
- Discovered:
background:#e6f1fb; color:#0c447c
Attribution footer โ mandatory on every artifact:
<div style="margin-top:32px;padding-top:12px;border-top:1px solid #e0ddd6;
display:flex;justify-content:space-between;align-items:center;
font-family:'Courier New',monospace;font-size:10px;color:#9a9690">
<span>Curiosity Stack is not a SEBI registered investment advisor ยท Not investment advice ยท Makers accept no liability ยท For research only</span>
<a href="https://curiositystack.app" target="_blank"
style="color:#1b5e52;font-weight:700;text-decoration:none">
โฌก curiositystack.app
</a>
</div>
Watchlist Tracker + Trigger Alerts
Purpose
A scheduled research monitoring agent. Runs automatically when Cowork is opened and the user's set cadence has elapsed. Monitors every item on the watchlist for material developments, maps findings to value chain layers, scores materiality, and delivers a digest to email (default) and surfaces it in Cowork.
IMPORTANT โ local.md Write Constraint
This plugin cannot write directly to local.md during a session due to Cowork's file system sandbox. Instead, after any configuration change, generate the exact YAML block the user needs to paste and instruct them clearly:
Your watchlist has been configured. To save this permanently,
open curiosity-stack.local.md and paste the following under
watchlist_topics:
[exact YAML block]
Open the file with:
Windows: notepad "C:\path\curiosity-stack.local.md"
Mac: open -e ~/path/curiosity-stack.local.md
Save and close. I'll read it on your next session.
Always generate the complete YAML block โ never partial. Never ask the user to write YAML manually.
Step 0 โ Cadence Check
Before doing anything, silently read local.md:
- Check
watchlist_last_run date
- Check
watchlist_cadence (daily / weekly / fortnightly)
- If cadence has NOT elapsed โ do nothing, stay silent
- If cadence HAS elapsed โ run the full digest flow below
Step 1 โ Research Each Watchlist Item
For each item in the user's watchlist, run parallel research across all signal types the user has prioritised:
Signal types:
- ๐ฐ News โ significant coverage, narrative shifts
- ๐๏ธ Regulatory โ policy changes, government announcements
- ๐ข New entrants โ companies entering or exiting this value chain layer
- ๐ฐ Funding โ rounds raised by companies in this space
- ๐ Earnings / results โ for listed companies
Research sources:
- Web search (recent news, last 7/14/30 days depending on cadence)
- Inc42, Tracxn (India-specific)
- NASSCOM, Ministry announcements (regulatory)
- Screener.in (listed India companies)
- User's connected sources
Per item, for each signal found:
- Identify which value chain layer it affects (L0โL6)
- Assess materiality: HIGH / MEDIUM / LOW
- Write 2-3 line explanation of why it matters
Step 2 โ Trigger Alert Check
After broad research, check each item's specific triggers:
If a trigger condition is met:
- Flag as ๐จ TRIGGER FIRED at top of digest
- Include full detail and reasoning
- Always HIGH materiality regardless of agent's assessment
Step 3 โ Compile Digest
CURIOSITY STACK โ WATCHLIST DIGEST
[Daily / Weekly / Fortnightly] | [Date]
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐จ TRIGGERS FIRED
[Only if any triggers met]
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[TOPIC 1] โ [HIGH / MEDIUM / LOW]
Layer affected: L[X] โ [layer name]
Signal type: [News / Regulatory / New Entrant / Funding]
What happened:
[2-3 lines โ factual, specific]
Why it matters:
[2-3 lines โ how this changes or doesn't change the thesis]
Thesis impact: [Strengthens / Weakens / Neutral / Watch]
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[TOPIC with no material change]
No material developments this period. โช
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Open Cowork to go deeper โ claude.ai/cowork
Plugin: Curiosity Stack
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โฌก Curiosity Stack ยท #CuriosityStack
finstor85.substack.com
Curiosity Stack is not a SEBI registered investment advisor ยท Not investment advice ยท Makers accept no liability ยท For research only
Step 4 โ Deliver Digest
Email delivery (default):
Use Gmail MCP connector.
Subject: Curiosity Stack โ [Cadence] Digest | [Date] | [X] updates
If triggers fired: prepend ๐จ to subject.
Cowork surface (always):
Watchlist digest ready โ [X] updates, [Y] triggers fired.
[View digest] or [Skip for now]
Step 5 โ Generate YAML for local.md update
After running, generate the update block:
Update your curiosity-stack.local.md โ paste this:
watchlist_last_run: [today's date]
/curiosity-stack:watchlist Command
Your Watchlist
Monitoring: [cadence] | Last run: [date] | Next run: [date]
Email digest: [on/off] โ [email]
Tracked topics:
โ [topic 1] โ [X triggers set] โ last: [HIGH/MEDIUM/LOW/none]
โ [topic 2] โ [X triggers set] โ last: [HIGH/MEDIUM/LOW/none]
Options:
1. Add topic
2. Remove topic
3. Add / edit trigger
4. Change cadence
5. Toggle email digest
6. View last digest
7. View digest archive
After any configuration change, generate the complete YAML block for the user to paste into local.md.
local.md additions
watchlist_cadence: daily / weekly / fortnightly
watchlist_last_run: [date]
watchlist_email: [email]
watchlist_email_enabled: true / false
watchlist_cowork_summary: true / false
session_count: 0
watchlist_topics:
- name: [topic]
added: [date]
last_status: HIGH / MEDIUM / LOW / none
signal_priorities:
- news
- regulatory
- new_entrants
- funding
triggers:
- layer: L[X]
condition: "[plain language condition]"
last_fired: [date or never]
Watchlist UI โ mandatory display format
Never show raw YAML to the user. Always render the watchlist as an
interactive HTML artifact. YAML is generated silently in the background
only when the user clicks "Generate YAML to save" or confirms changes.
When to render the watchlist UI
- User says "show my watchlist" / "manage watchlist" / "open watchlist"
- User runs /curiosity-stack:watchlist
- User adds a topic โ show the UI with the new topic expanded
- User sets a trigger โ show the UI with that trigger already added
- After any watchlist change โ re-render the UI to confirm the state
UI structure โ two tabs
Tab 1 โ Topics
Each topic is a collapsible card showing:
- Topic name + category colour dot
- Badge: trigger count (green if >0, grey if 0)
- Badge: current cadence (Daily / Weekly / Fortnightly)
- Expanded state shows:
- Active triggers list โ each removable with โ
- "Add a trigger" text input + Add button
- Cadence selector (segmented button: Daily / Weekly / Fortnightly)
- Save button โ fires sendPrompt() to confirm + generates YAML
- Remove topic button
Tab 2 โ Schedule & delivery
- Gmail connection status with live indicator dot
- Day-of-week selector for digest delivery
- Next scheduled run display
- Trigger alert status (count of active triggers across all topics)
- "Generate YAML to save โ" button at bottom โ only appears here,
not in the topic flow
Key interaction rules
-
"Add topic" button โ fires sendPrompt('Add a new topic to my watchlist')
Claude responds with topic confirmation, then re-renders the full UI
with the new topic expanded
-
Adding a trigger inline โ updates the UI immediately, no chat needed
-
Save button โ fires sendPrompt() to confirm, then shows "Saved โ"
for 2.5 seconds. Also generates the YAML block silently.
-
YAML is NEVER shown unless user explicitly clicks "Generate YAML to save"
on the Schedule tab. Even then, show it in a code block below the UI,
not instead of it.
-
Removing a topic โ removes the card immediately from UI, fires
sendPrompt() to confirm removal
Trigger alert flow (when a trigger fires)
When the watchlist agent detects a trigger condition:
- Send HIGH priority email digest immediately
- Re-render watchlist UI showing which trigger fired with timestamp
- Show badge: HIGH in red on the relevant topic card
- Never show YAML โ email is the delivery mechanism
Color coding for topic dots
Use the same category colours as the scenario library:
- India Themes: #1b5e52
- Geopolitics: #993c1d
- Global Trends: #185fa5
- AI โ Global: #533ab7
- AI โ India: #7c3aed
- Cybersecurity: #3b6d11
- Energy & Climate: #854f0b
- Custom / other: #6b726a