本文へ移動
cccskills
無料GitHub で公開

personal-monitor-domain

Domain specification for a personal daily monitoring dashboard. Defines all target panels (email, Feishu, Office, social, news, Twitter, code status, schedule, stock market, daily finance), their data sources, APIs, and priority ordering for incremental development.

インストール方法を見る

含まれるファイル(2)

  • SKILL.md10.3 KB
  • .skill_id38 B

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Personal Monitor Domain Specification

This skill defines WHAT the my-daily-monitor dashboard should do — the panels, data sources, APIs, and features that make up a personal daily monitoring system. Use this as a reference when creating new panels or deciding what to build next.

When to Use

  • You are planning which panel to build next
  • You need API details for a specific data source
  • You are composing multiple panels into an integrated dashboard
  • You need to understand the priority ordering for incremental development

Target Panels Overview

#PanelData SourcePriorityStatus
1Schedule / CalendarGoogle Calendar APIP0 — CoreImplemented
2Email InboxGmail API (OAuth)P0 — CoreImplemented
3Feishu MessagesFeishu/Lark Open APIP0 — CoreImplemented
4Stock MarketFinnhub APIP0 — CoreImplemented
5News FeedGNews / HackerNewsP0 — CoreImplemented
6Code Status (CI/CD)GitHub Actions APIP1 — ImportantImplemented
7Office DocumentsMicrosoft Graph APIP1 — ImportantImplemented
8Social Feed (Twitter)Twitter API v2P1 — ImportantImplemented
9Daily FinanceManual / SpreadsheetP1 — ImportantImplemented
10WeatherOpenWeatherMap / wttr.inP1 — ImportantImplemented
11World ClockBuilt-in (no API)P2 — Nice to HaveImplemented
12MapMapLibre GLP2 — Nice to HaveImplemented
13AI InsightsLLM API (Groq/Ollama)P2 — Nice to HaveImplemented
14XiaohongshuWeb scraping / APIP2 — Nice to HavePartial
15DevOpsServer probesP2 — Nice to HaveImplemented
16Quick LinksStatic configP3 — ExtraImplemented
17Live NewsYouTube embedP3 — ExtraImplemented
18My MonitorsCustom keywordsP3 — ExtraImplemented

Panel Details

1. Schedule / Calendar

Purpose: Show today's meetings, upcoming events, and agenda

API: Google Calendar API v3

  • Auth: OAuth 2.0 (reuses Gmail credentials)
  • Endpoint: GET /api/calendar?calendarId=primary
  • Headers: X-Gmail-Client-Id, X-Gmail-Client-Secret, X-Gmail-Token

Data shape:

interface CalendarEvent {
  id: string;
  title: string;
  startTime: string;      // ISO 8601
  endTime: string;
  location?: string;
  isAllDay?: boolean;
  color?: string;
  meetingLink?: string;    // Zoom/Meet URL
}

Refresh interval: 5 minutes

2. Email Inbox

Purpose: Show unread emails, sender, subject, snippet

API: Gmail API v1

  • Auth: OAuth 2.0 (Client ID + Client Secret + Refresh Token)
  • Endpoint: GET /api/emails?maxResults=15&q=is:unread
  • Headers: X-Gmail-Client-Id, X-Gmail-Client-Secret, X-Gmail-Token
  • Server-side: Exchange refresh token for access token, call Gmail API

Data shape:

interface EmailMessage {
  id: string;
  from: string;
  subject: string;
  snippet: string;
  receivedAt: string;
  unread: boolean;
  labels?: string[];
}

Refresh interval: 2 minutes

3. Feishu Messages

Purpose: Show recent Feishu/Lark chat messages across all conversations

API: Feishu Open Platform API

  • Auth: App ID + App Secret → tenant access token
  • Endpoint: GET /api/feishu
  • Headers: X-Feishu-App-Id, X-Feishu-App-Secret
  • Server-side: Get tenant_access_token, fetch chat list, fetch recent messages

Data shape:

interface FeishuMessage {
  id: string;
  chatName: string;
  chatType: string;        // 'group' | 'p2p'
  avatar: string;
  senderName: string;
  content: string;
  imageUrl: string;
  timestamp: string;
  unread: boolean;
  chatId: string;
  recentMessages: FeishuRecentMsg[];
}

Refresh interval: 1 minute

4. Stock Market

Purpose: Track personal stock watchlist with prices, changes, sparklines

API: Finnhub Stock API

  • Auth: Query param token=API_KEY
  • Endpoint: GET /api/stocks?symbols=AAPL,MSFT,...
  • Free tier: 60 requests/minute
  • Server-side: Batch fetch quotes, return unified format

Data shape:

interface StockQuote {
  symbol: string;
  name: string;
  price: number | null;
  change: number | null;
  changePercent: number | null;
  high: number | null;
  low: number | null;
  sparkline?: number[];
}

Default watchlist: AAPL, MSFT, GOOGL, AMZN, TSLA, NVDA, META

Refresh interval: 1 minute

5. News Feed

Purpose: Aggregated headlines from multiple sources with threat classification

APIs:

  • GNews (primary): https://gnews.io/api/v4 — 100 req/day free
  • HackerNews (tech): https://hacker-news.firebaseio.com/v0/ — unlimited, no key
  • RSS feeds (fallback): Direct XML parsing

Data shape:

interface NewsArticle {
  title: string;
  description: string;
  url: string;
  source: string;
  publishedAt: string;
  image?: string;
  threatLevel?: 'critical' | 'high' | 'medium' | 'low';
}

Refresh interval: 5 minutes

6. Code Status (CI/CD)

Purpose: Show GitHub Actions workflow runs — passed, failed, in-progress

API: GitHub REST API v3

  • Auth: Personal Access Token (PAT) in GITHUB_TOKEN
  • Endpoint: GET /api/github?action=runs&owner=...&repo=...
  • Server-side: Fetch /repos/{owner}/{repo}/actions/runs

Data shape:

interface WorkflowRun {
  id: number;
  name: string;
  status: string;
  conclusion: string | null;   // 'success' | 'failure' | 'cancelled'
  branch: string;
  createdAt: string;
  url: string;
}

Refresh interval: 2 minutes

7. Office Documents

Purpose: Recent Office document activity (PPT, DOC, XLSX, PDF)

API: Microsoft Graph API

  • Auth: OAuth 2.0 (Azure AD app registration)
  • Endpoint: GET /api/office
  • Server-side: Call Graph API /me/drive/recent

Data shape:

interface OfficeDocument {
  id: string;
  name: string;
  type: 'doc' | 'xlsx' | 'ppt' | 'pdf';
  modifiedAt: string;
  modifiedBy: string;
  url?: string;
}

Refresh interval: 5 minutes

Note: Currently uses demo data. Full implementation requires Azure AD app registration with Files.Read permission.

8. Social Feed

Purpose: Twitter timeline + Xiaohongshu content

Twitter API v2:

  • Auth: Bearer Token
  • Endpoint: GET /api/social?action=search&q=... or action=list&listId=...
  • Server-side: Forward to Twitter search/list endpoint

Xiaohongshu:

  • No official API; requires web scraping or reverse-engineered endpoints
  • Potential approach: headless browser scraping via server-side proxy

Data shape:

interface SocialPost {
  id: string;
  platform: 'twitter' | 'xiaohongshu';
  author: string;
  username?: string;
  content: string;
  timestamp: string;
  likes?: number;
  retweets?: number;
  comments?: number;
  url?: string;
}

Refresh interval: 3 minutes

9. Daily Finance

Purpose: Track daily income and expenses, show balance

Data source options:

  • Google Sheets API (personal budget spreadsheet)
  • YNAB API (budgeting app)
  • Local JSON file / localStorage
  • Custom bookkeeping endpoint

Data shape:

interface DailySummary {
  totalIncome: number;
  totalExpense: number;
  balance: number;
  transactions: FinanceTransaction[];
}

interface FinanceTransaction {
  id: string;
  description: string;
  amount: number;
  type: 'income' | 'expense';
  category: string;
  date: string;
}

Refresh interval: 10 minutes

Composition: Today Focus Sidebar

The sidebar aggregates highlights from multiple panels into a single glanceable view:

interface TodayFocusData {
  nextEvent?: { title: string; startTime: string; minutesUntil: number };
  unreadEmails: number;
  unreadFeishu: number;
  stockAlerts: Array<{ symbol: string; changePercent: number }>;
  ciFailures: number;
  dailyBriefing?: string;   // AI-generated summary
}

Dependencies: schedule, email, feishu, stock-market, code-status, ai-summary

Composition: AI Daily Briefing

Uses an LLM to synthesize a morning briefing from all data sources:

Input: Unread emails, today's events, top news headlines, stock movers Output: 2-3 paragraph natural language summary API: Groq (free, fast) or local Ollama

API Key Configuration

All API keys are stored in browser localStorage via a Settings modal:

KeyRequired ForHow to Get
FINNHUB_API_KEYStock Markethttps://finnhub.io/ (free)
GNEWS_API_KEYNewshttps://gnews.io/ (free, 100/day)
GMAIL_CLIENT_IDEmail + CalendarGoogle Cloud Console OAuth
GMAIL_CLIENT_SECRETEmail + CalendarGoogle Cloud Console OAuth
GMAIL_REFRESH_TOKENEmail + CalendarOAuth flow
FEISHU_APP_IDFeishuFeishu Open Platform
FEISHU_APP_SECRETFeishuFeishu Open Platform
GITHUB_TOKENCode StatusGitHub → Settings → PAT
TWITTER_BEARER_TOKENSocial FeedTwitter Developer Portal
GROQ_API_KEYAI Insightshttps://console.groq.com/

Keys are passed to the server via request headers (never in query params), and the server-side proxy uses them to call external APIs.

Personal Data Sensitivity

This dashboard handles personal data. Key considerations:

  1. API keys — stored in localStorage, never sent to third parties
  2. Email content — proxied through your own server, not cached
  3. Calendar events — may contain sensitive meeting details
  4. Finance data — keep local, never expose to external APIs
  5. Social accounts — use read-only tokens, never write access
  6. No analytics — unlike WorldMonitor, no Sentry/Vercel Analytics needed
  7. Self-hosted — run on localhost or personal server, not public deployment

Development Priority

Phase 1 (MVP): Schedule + Email + Feishu + Stock + News — the daily essentials Phase 2 (Complete): Code Status + Office + Social + Finance + Weather Phase 3 (Enhanced): Map + AI Insights + World Clock + Xiaohongshu Phase 4 (Polish): DevOps + Live News + Quick Links + My Monitors + Command Palette

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Incremental audio production with duration mismatch handling, adaptive stem extension, and pre-mix alignment verification

日本語の概要は準備中です。原文の説明を表示しています。

HKUDS/OpenSpace7,7532026年8月13日 更新

Incremental audio production with duration alignment handling, per-stem verification, and adaptive extension strategies

日本語の概要は準備中です。原文の説明を表示しています。

HKUDS/OpenSpace7,7532026年8月13日 更新

Create serverless API proxy endpoints that hide API keys and provide a unified backend for the dashboard frontend. Designed for Vercel deployment.

日本語の概要は準備中です。原文の説明を表示しています。

HKUDS/OpenSpace7,7532026年8月13日 更新

End-to-end audio production workflow with stems, effects, archiving, and verification

日本語の概要は準備中です。原文の説明を表示しています。

HKUDS/OpenSpace7,7532026年8月13日 更新

Handle cascading data retrieval tool failures by falling back to embedded knowledge generation

日本語の概要は準備中です。原文の説明を表示しています。

HKUDS/OpenSpace7,7532026年8月13日 更新

Fallback pattern for executing Python code when execute_code_sandbox fails

日本語の概要は準備中です。原文の説明を表示しています。

HKUDS/OpenSpace7,7532026年8月13日 更新

HKUDS のスキルをすべて見る

このスキルの問題を報告する