feat: improved init-greyhaven

This commit is contained in:
Nik L
2026-02-19 17:55:22 -05:00
parent 03cc8c797a
commit 8c4b32df08

View File

@@ -1,6 +1,6 @@
---
name: init-greyhaven
description: Build comprehensive Greyhaven business documentation by analyzing meetings and Zulip threads via DataIndex API, using parallel subagents to extract business context, positioning, product details, and open items from authoritative sources (Corey Gallon, Max, Jordan).
description: Build comprehensive Greyhaven business documentation by analyzing Reflector meeting transcripts and Zulip threads from the last 4 months via DataIndex API, using parallel subagents to extract business context, positioning, product details, and open items from authoritative sources (Corey Gallon, Max, Jordan). Only Zulip threads and Reflector transcripts are used.
user-invocable: true
---
@@ -8,7 +8,7 @@ user-invocable: true
## What I do
- Query DataIndex for all-hands meetings and Greyhaven-related Zulip threads from the last 3 months
- Query DataIndex for all-hands meetings and Greyhaven-related Zulip threads from the last 4 months (only Zulip threads and Reflector transcripts)
- Launch parallel subagents to analyze transcripts and threads for Greyhaven/data-sovereignty content
- Synthesize findings into a structured business document covering vision, positioning, product, marketing, and open items
- Prioritize statements from **Corey Gallon**, **Max**, and **Jordan (jordan@monadical.com)**
@@ -23,22 +23,48 @@ Use this when you need to create or update comprehensive company documentation f
- ContactDB for resolving participant names
- Subagent capability for parallel analysis
## Data Sources (Explicit Connector Requirements)
This skill ONLY uses these two connectors - do not query any others:
| Connector | Entity Type | Use For |
|-----------|-------------|---------|
| `reflector` | `meeting` | Meeting recordings with transcripts |
| `zulip` | `threaded_conversation` | Zulip topic threads |
**⚠️ NEVER use:** `ics_calendar`, `mbsync_email`, `hedgedoc`, `babelfish`, `browser_history`, or other connectors.
## Workflow
### Step 1: Query all-hands meetings
Query DataIndex for all-hands meetings from the last 3 months.
### Step 1: Query Reflector all-hands meetings
**REQUIRED QUERY PATTERN:**
```
GET /dataindex/api/v1/query
?entity_types=meeting
&connector_ids=reflector
&date_from={3_months_ago}
&room_name=allhands
&date_from={4_months_ago}
&date_to={today}
&limit=100
```
Filter for meetings where `room_name="allhands"`.
**Entity type:** `meeting`
**Connector:** `reflector` (MUST be specified)
**Room filter:** `room_name=allhands` (MUST be specified - only all-hands meetings)
**Date range:** Last 4 months (120 days)
**Key fields to extract:**
- `transcript` - Full meeting transcript text
- `summary` - AI-generated summary
- `room_name` - Should be "allhands" (verified by filter)
- `participants` - List of attendees
- `start_time`, `end_time` - Meeting timestamps
**⚠️ CRITICAL:**
- Only use `connector_ids=reflector`
- MUST filter by `room_name=allhands` - this ensures we only get company all-hands meetings
- Never use other meeting sources or other room types
### Step 2: Fetch full meeting transcripts
@@ -73,22 +99,36 @@ Return JSON:
Launch all subagents simultaneously.
### Step 4: Query Zulip threads
### Step 4: Query Zulip threaded conversations
**REQUIRED QUERY PATTERN:**
```
GET /dataindex/api/v1/query
?entity_types=threaded_conversation
&connector_ids=zulip
&date_from={3_months_ago}
&date_from={4_months_ago}
&date_to={today}
&limit=100
```
Target streams:
**Entity type:** `threaded_conversation` (NOT `conversation` or `conversation_message`)
**Connector:** `zulip` (MUST be specified)
**Date range:** Last 4 months (120 days)
**Why `threaded_conversation`:**
- Represents a **Zulip topic thread** (grouped messages under a topic)
- Contains `recent_messages` with full thread content
- Better for analysis than individual `conversation_message` entities
**High-priority streams to search:**
- `[greyhaven] marketing` (stream 212)
- `[greyhaven] branding` (stream 206)
- `[greyhaven] leads` (stream 208)
- `InternalAI` (stream 193)
- `engineering` - selfhostyour.tech topic
- `bizdev + marketing`
**⚠️ CRITICAL:** Only use `connector_ids=zulip` and `entity_types=threaded_conversation`. Never use other chat connectors like `babelfish`.
### Step 5: Filter threads by relevance
@@ -158,6 +198,49 @@ Remove any temporary JSON or transcript files created during analysis.
- **Empty thread:** Mark as low relevance, skip
- **API failures:** Retry with backoff, continue with available data
## Query Patterns Summary
**EXACT API CALLS TO MAKE:**
### For Reflector all-hands meetings:
```python
dataindex_query_entities(
entity_types="meeting",
connector_ids="reflector",
room_name="allhands", # MUST filter for all-hands only
date_from="2024-10-19T00:00:00Z", # 4 months ago
date_to="2025-02-19T23:59:59Z", # today
limit=100
)
```
Then for each meeting ID:
```python
dataindex_get_entity_by_id(
entity_id="reflector:{meeting_id}",
max_content_length=null # Get full transcript
)
```
### For Zulip threads:
```python
dataindex_query_entities(
entity_types="threaded_conversation", # MUST be threaded_conversation
connector_ids="zulip", # MUST be zulip
date_from="2024-10-19T00:00:00Z", # 4 months ago
date_to="2025-02-19T23:59:59Z", # today
limit=100
)
```
Then for each thread ID:
```python
dataindex_get_entity_by_id(
entity_id="zulip:{thread_id}",
max_content_length=null # Get full thread content
)
```
## Dependencies
- [dataindex](../dataindex/SKILL.md) — entity querying