← スキル一覧に戻る
watcher-management
maneeshanif / AI-Employee-Hackathon-spec-driven
⭐ 0🍴 0📅 2026年1月10日
Manages watcher processes that monitor Gmail, WhatsApp, filesystem, and other external sources. Use when starting, stopping, or monitoring watcher scripts, configuring process management, or troubleshooting watcher issues.
read, write, edit, bash, glob, grep
SKILL.md
---
name: watcher-management
description: Manages watcher processes that monitor Gmail, WhatsApp, filesystem, and other external sources. Use when starting, stopping, or monitoring watcher scripts, configuring process management, or troubleshooting watcher issues.
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
---
# Watcher Management Skill
This skill manages the perception layer of the Personal AI Employee - the watcher processes that monitor external sources and feed data into the Obsidian vault.
## Watcher Types
| Watcher | Source | Check Interval | Output Folder |
|---------|--------|----------------|---------------|
| Gmail Watcher | Gmail API | 2 minutes | /Needs_Action/ |
| WhatsApp Watcher | WhatsApp Web | 30 seconds | /Needs_Action/ |
| Filesystem Watcher | Drop folder | Realtime | /Needs_Action/ |
| Finance Watcher | Bank API | 1 hour | /Needs_Action/ |
## Base Watcher Pattern
```python
class BaseWatcher(ABC):
def __init__(self, vault_path: str, check_interval: int = 60):
self.vault_path = Path(vault_path)
self.needs_action = self.vault_path / 'Needs_Action'
self.check_interval = check_interval
@abstractmethod
def check_for_updates(self) -> list:
pass
@abstractmethod
def create_action_file(self, item) -> Path:
pass
def run(self):
while True:
items = self.check_for_updates()
for item in items:
self.create_action_file(item)
time.sleep(self.check_interval)
```
## Process Management
Use PM2 or supervisord to keep watchers running:
```bash
# Start with PM2
pm2 start gmail_watcher.py --interpreter python3
# Save and set to auto-start
pm2 save
pm2 startup
```
## Reference
For detailed implementation, see [reference.md](reference.md)
For watcher examples, see [examples.md](examples.md)