Skip to content

Commit bfaa5ea

Browse files
author
Corellis
committed
Add P1 #2: proactive-task-engine skill — self-driving task discovery
1 parent 4c22cd2 commit bfaa5ea

1 file changed

Lines changed: 172 additions & 0 deletions

File tree

  • templates/skills/proactive-task-engine
Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
---
2+
name: proactive-task-engine
3+
slug: proactive-task-engine
4+
description: "Proactive task discovery engine. Periodically scans task boards (OKR, GitHub Issues, Notion, Linear) for items the lobster can pick up, generates structured approval requests with confidence scoring. Turns lobsters from reactive responders into self-driving agents."
5+
---
6+
7+
# Proactive Task Engine — Self-Driving Lobster
8+
9+
> Scan → Discover → Score → Propose → Execute (on approval)
10+
>
11+
> Instead of waiting for assignments, lobsters proactively find work they can do.
12+
13+
## When to Trigger
14+
15+
- **Cron nudge**: Controller sends a daily `[proactive-scan]` message via `proactive-cron.sh`
16+
- **Heartbeat idle**: During heartbeat, if no active tasks and idle for >2 hours
17+
- **Manual**: Owner says "scan for tasks" / "find something to do"
18+
19+
## Core Loop
20+
21+
```
22+
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
23+
│ Scan Boards │ ──▶ │ Filter/Score │ ──▶ │ Propose │
24+
└──────────────┘ └──────────────┘ └──────────────┘
25+
26+
Owner approves?
27+
│ │
28+
yes no
29+
│ │
30+
┌─────▼──┐ ┌───▼───┐
31+
│Execute │ │ Skip │
32+
└────────┘ └───────┘
33+
```
34+
35+
## Phase 1: Scan
36+
37+
Connect to configured task boards and pull open/unassigned items.
38+
39+
### Supported Backends
40+
41+
| Backend | How to Query | Configuration |
42+
|---------|-------------|---------------|
43+
| Notion | Notion API — filter by Status = "Open", Assignee = empty | `config.notion.databaseId` |
44+
| GitHub Issues | GitHub API — filter by `is:open no:assignee` | `config.github.repo` |
45+
| Linear | Linear API — filter by unassigned, open state | `config.linear.teamId` |
46+
| Local file | Read `tasks.json` or `TODO.md` in workspace | `config.local.path` |
47+
48+
### Scan Query
49+
50+
```
51+
Fetch all items where:
52+
- Status: Open / Backlog / To Do
53+
- Assignee: unassigned OR assigned to me
54+
- Priority: any (scoring handles prioritization)
55+
- Updated: within last 30 days (skip stale items)
56+
```
57+
58+
## Phase 2: Filter & Score
59+
60+
For each discovered item, compute a **fit score** (0-10):
61+
62+
### Scoring Criteria
63+
64+
| Factor | Weight | Description |
65+
|--------|--------|-------------|
66+
| Capability match | 40% | Does the task fall within my skill domain? |
67+
| Priority | 25% | P0/P1 score higher than P3 |
68+
| Effort estimate | 20% | Can I complete this within 1 work session? |
69+
| Dependencies | 15% | Are all prerequisites met? |
70+
71+
### Capability Matching
72+
73+
Read your own `MEMORY.md` or capability profile to determine your domains:
74+
- Code: languages, frameworks, modules you've worked on
75+
- Research: topics you've investigated before
76+
- Ops: infrastructure, deployment, monitoring
77+
- Design: UI/UX, product specs
78+
79+
### Score Thresholds
80+
81+
| Score | Action |
82+
|-------|--------|
83+
| 8-10 | High confidence — include in proposal |
84+
| 5-7 | Medium — include with caveats |
85+
| 0-4 | Low — skip unless nothing else available |
86+
87+
## Phase 3: Propose
88+
89+
Generate a structured approval request for your owner (via DM or thread):
90+
91+
```markdown
92+
🔍 **Proactive Task Proposal**
93+
94+
I scanned [Board Name] and found items I can help with:
95+
96+
**High Confidence (8+):**
97+
1. 🟢 [Task Title] (Score: 9/10)
98+
- Why: Matches my [domain] expertise, no dependencies, ~2h effort
99+
- Plan: [1-2 sentence approach]
100+
101+
2. 🟢 [Task Title] (Score: 8/10)
102+
- Why: [reasoning]
103+
- Plan: [approach]
104+
105+
**Medium Confidence (5-7):**
106+
3. 🟡 [Task Title] (Score: 6/10)
107+
- Why: Related to my domain but involves [unfamiliar area]
108+
- Plan: [approach with caveats]
109+
110+
Shall I proceed with any of these? Reply with numbers (e.g., "do 1 and 2")
111+
or "skip" to pass.
112+
```
113+
114+
### Proposal Rules
115+
116+
- Maximum 5 items per proposal (don't overwhelm)
117+
- Always include your reasoning (why you think you can do it)
118+
- Always include effort estimate
119+
- If nothing scores above 5: report "scanned, nothing actionable" — don't force it
120+
121+
## Phase 4: Execute
122+
123+
On owner approval:
124+
125+
1. Update task board: assign to self, set status to "In Progress"
126+
2. Execute the task using your skills and tools
127+
3. Report progress in the relevant thread/channel
128+
4. On completion: update board status to "Done", notify owner
129+
130+
## Configuration
131+
132+
Store in your workspace as `proactive-config.json`:
133+
134+
```json
135+
{
136+
"enabled": true,
137+
"scanInterval": "daily",
138+
"backends": [
139+
{
140+
"type": "notion",
141+
"databaseId": "YOUR_DATABASE_ID",
142+
"filter": {
143+
"status": ["Open", "Backlog"],
144+
"assignee": ["unassigned", "self"]
145+
}
146+
}
147+
],
148+
"capabilities": ["backend", "api-design", "data-analysis"],
149+
"maxProposals": 5,
150+
"autoExecuteThreshold": null
151+
}
152+
```
153+
154+
### Auto-Execute Mode (optional)
155+
156+
If owner sets `autoExecuteThreshold` (e.g., 9), tasks scoring at or above that
157+
threshold are executed without waiting for approval. Use with caution.
158+
159+
## File Structure
160+
161+
```
162+
skills/proactive-task-engine/
163+
├── SKILL.md # This file
164+
└── references/
165+
└── scoring-guide.md # Detailed scoring rubric and examples
166+
```
167+
168+
## Dependencies
169+
170+
- Task board API access (Notion token, GitHub token, etc.)
171+
- Read access to own capability profile / MEMORY.md
172+
- Message tool for sending proposals to owner

0 commit comments

Comments
 (0)