Agent skill
daily-files
Unified Google Drive file operations skill with 4 sub-commands: list (list files inside any named folder), recent (recently modified files with activity insights), topic (search files by topic/keyword with executive briefing), and work-day (ensure SNMG18 Working Docs day-folder structure exists). Use whenever the user asks to list files in a folder, show recent Drive activity, search files by topic, browse a Drive folder, check what's in a directory, prepare work-day folders, or any Google Drive file browsing request. Triggers include "list files in [folder]", "recent files", "files about [topic]", "work day", "prepare folders", "what's in my Drive", "show folder contents", "files modified today", "Drive activity", or any similar Google Drive request.
Install this agent skill to your Project
npx add-skill https://github.com/christopheryeo/claude-skills/tree/main/daily-files
SKILL.md
Daily Files
You are a unified Google Drive file assistant that handles file operations through sub-commands. This skill uses a hybrid approach: the builtin Google Drive connector for folder lookups and searches (faster), and the Zapier Google Drive integration for listing file contents and creating folders (richer metadata).
Sub-Command Detection
| Trigger phrases | Sub-command |
|---|---|
| "list files in [folder]", "what's in [folder]", "show folder contents", "browse [folder]", "files in [folder]", "folder contents", "show me the files" | list |
| "recent files", "what's changed in my Drive", "files modified today", "Drive activity", "files from the last [X] hours/days", "what changed recently" | recent |
| "files about [topic]", "find docs on [subject]", "Drive files related to [project]", "pull files on [topic]", "gather files about [initiative]" | topic |
| "work day", "prepare folders", "set up folders for [date]", "prepare work day", "work day folders", "set up today" | work-day |
If the intent is ambiguous, ask which operation is intended. If the user mentions a folder name without specifying an operation, default to list. If the user says something generic like "check my Drive", default to recent.
Shared: Google Drive Tools (Hybrid Approach)
This skill uses two different integrations, each for what it does best:
Builtin Google Drive connector
- google_drive_search (
mcp__c1fc4002-*) โ Fast folder/file lookup by name, metadata queries - Query patterns:
- Folder by name:
name = '{folder_name}' and mimeType = 'application/vnd.google-apps.folder' - Folder within parent:
name = '{folder_name}' and mimeType = 'application/vnd.google-apps.folder' and '{parent_id}' in parents - Recent files:
modifiedTime > '{iso_timestamp}' - Full-text search:
fullText contains '{topic}'
- Folder by name:
Zapier Google Drive integration
- google_drive_find_a_file (
mcp__e7bb8097-*) โ List files within a folder by ID, returns rich metadata (name, MIME type, modified date, links, owners) - google_drive_retrieve_file_or_folder_by_id (
mcp__e7bb8097-*) โ Fetch details for a specific file - google_drive_create_folder (
mcp__e7bb8097-*) โ Create new folders (used by work-day sub-command)
The folder ID returned by the builtin connector is passed directly to the Zapier tools. Both return the same Google Drive folder IDs, so they interoperate seamlessly.
Shared: File Type Labels
Convert raw MIME types into friendly labels for display:
| MIME type | Label |
|---|---|
application/vnd.google-apps.document |
๐ Doc |
application/vnd.google-apps.spreadsheet |
๐ Sheet |
application/vnd.google-apps.presentation |
๐ Slides |
application/vnd.google-apps.folder |
๐ Folder |
application/vnd.google-apps.form |
๐ Form |
application/pdf |
๐ PDF |
audio/mpeg, audio/* |
๐ต Audio |
video/mp4, video/* |
๐ฌ Video |
image/png, image/jpeg, image/* |
๐ผ๏ธ Image |
text/plain, text/csv |
๐ Text |
application/zip, application/x-zip* |
๐ฆ Archive |
| All others | ๐ File |
Shared: Timestamp Formatting
- Default timezone: Singapore / GMT+8
- Format:
DD MMM YYYY, HH:MM SGT(e.g.,12 Mar 2026, 08:44 SGT) - User can override timezone if specified
Sub-Command: LIST
Purpose: List all files inside a named Google Drive folder with metadata, friendly type labels, summaries, and direct links in an executive table.
Accepts: Any folder name. Does not require a specific folder hierarchy.
Steps
-
Identify the folder (builtin connector):
- Use
google_drive_searchwith query:name = '{folder_name}' and mimeType = 'application/vnd.google-apps.folder' - Extract the folder ID (the
urifield) from the result - If multiple folders match, present options and ask user to choose
- If no folder found, inform user and suggest checking the name
- Use
-
List folder contents (Zapier integration):
- Use
google_drive_find_a_filewith the folder ID from step 1 - Set
folderto the folder ID - Pass
output_hint: "file name, file type, last modified date, web view link, and owner for each file" - Request all files (do not filter by type)
- Use
-
Enrich each file:
- Map MIME type โ friendly label using the shared type table
- Convert timestamps to Singapore timezone
- Generate a โค25-word summary from the file name and type
-
Sort and number:
- Sort by last modified (newest first)
- Number sequentially starting from 1
-
Output using the executive table format below
Output Format
# ๐ FOLDER CONTENTS
**Folder:** {folder name} | **Files:** {count} | **Retrieved:** {current date, SGT}
| # | File | Type | Last Modified | Summary |
|---|------|------|---------------|---------|
| 1 | [Filename](web_view_link) | ๐ Doc | 12 Mar 2026, 08:44 SGT | โค25-word description. |
| 2 | [Filename](web_view_link) | ๐ต Audio | 12 Mar 2026, 08:37 SGT | โค25-word description. |
Link Format
Always embed the Drive link in the filename: [Filename](web_view_link).
Additional Sections (include only when data supports)
After the table, add relevant sections from:
- Notable Items โ files that stand out (very recent edits, large files, shared items)
- File Type Breakdown โ count of files by type if folder has 5+ files
- Subfolders โ list any subfolders found, with links, as a separate short table
Sub-Command: RECENT
Purpose: Discover and list recently modified or created files across Google Drive with metadata, insights, and activity narrative.
Default timeframe: Last 24 hours (unless user specifies otherwise).
Steps
-
Determine timeframe:
- Default: last 24 hours
- User can specify: "last 3 hours", "last 7 days", "last 2 weeks", etc.
- Calculate the ISO timestamp for the start of the window
-
Search for recent files (builtin connector):
- Use
google_drive_searchwith query:modifiedTime > '{iso_timestamp}' - Set
order_by: "modifiedTime desc" - Exclude trashed files
- Cap at 20 files (note total if more exist)
- Use
-
Enrich results (Zapier integration where needed):
- For each file, map MIME type โ friendly label
- Convert timestamps to SGT
- Generate โค30-word summary from filename, type, and context
- Use
google_drive_retrieve_file_or_folder_by_idfor additional metadata if needed
-
Sort by most recent first and number sequentially
Output Format
# ๐ DRIVE RECENT FILES
**{Current date, SGT} | Last {X} Hours/Days**
## Summary
- **Total files found**: {count}
- **Timeframe**: Last {X} hours/days/weeks
- **Most recent**: {filename} ({time ago})
- **Oldest in list**: {filename} ({time ago})
| # | File | Type | Last Modified | Summary | Owner |
|---|------|------|---------------|---------|-------|
| 1 | [Filename](link) | ๐ Doc | 12 Mar, 08:44 SGT | โค30-word summary. | Owner Name |
Key Observations
After the table, include bullet points with bold headers:
- High activity period: Peak times and file creation/modification patterns
- Project focus areas: Main themes across the files
- Documentation types: Categories of documents (strategic, client comms, etc.)
- Notable pattern: Any interesting patterns in file creation
- Client activity: Client-specific work or account-related activities
- My Activity: Chronological narrative of the user's work based on timestamps
Large Result Sets
If 100+ files found, display top 20 and note: "{X} additional files not displayed. Refine timeframe for more detail."
Sub-Command: TOPIC
Purpose: Search Google Drive for files related to a topic/keyword and deliver a curated executive briefing with grouped file lists, highlights, and recommended follow-ups.
Inputs
topic(required): Keywords, quoted phrases, acronyms, or project namestime_range(optional): Relative ("last quarter") or absolute datesfile_types(optional): Restrict to Docs, Sheets, Slides, PDFs, etc.exclusions(optional): Words or file IDs to omit
If topic is ambiguous, ask for clarification before searching.
Steps
-
Confirm scope:
- Restate topic and any filters for confirmation
- Identify synonyms or alternate spellings
-
Construct search queries (builtin connector):
- Primary:
fullText contains '{topic}'(setorder_by: "relevance desc") - Add file type filters if specified: e.g.,
mimeType = 'application/vnd.google-apps.presentation' - Add time filters if specified:
modifiedTime > '{iso_timestamp}' - Layer exclusions with NOT operator
- Cap at 20 files (default)
- Primary:
-
Run search:
- Use
google_drive_searchwith the constructed query - If results < 5, run fallback broader query
- Capture metadata: title, type, owners, modified date, link
- Use
-
Enrich with Zapier (if needed):
- Use
google_drive_retrieve_file_or_folder_by_idfor additional details on top results - Generate โค60-word summaries focusing on topic relevance
- Use
-
Group and prioritise:
- Group by file type (Docs, Sheets, Slides, PDFs, Other)
- Prioritise by relevance: keyword frequency, recent activity
- De-duplicate shortcuts or copies
Output Format
# ๐ TOPIC FILES โ {Topic}
**Query:** `{primary query}` | **Files found:** {count} | **Timeframe:** {range or "All available"}
## Overview
- **Scope:** {topic & filters}
- **Coverage:** {oldest} โ {newest}
## File Highlights
1. **{File Title}** โ {Type} ยท {Owner} ยท {Modified Date SGT}
- {โค40-word insight}
- [๐ Open in Drive]({link})
| # | File | Type | Last Modified | Summary |
|---|------|------|---------------|---------|
| 1 | [Filename](link) | ๐ Doc | 12 Mar, 08:44 SGT | โค60-word summary. |
## Next Steps
- {Actionable follow-up based on findings}
Empty Results
"No Drive files matched {topic} with the current filters. Try alternative keywords, broaden the timeframe, or remove exclusions."
Sub-Command: WORK-DAY
Purpose: Ensure the SNMG18 Working Docs directory structure exists for a given date โ verify and create month folders (YYYY-MM Work) and day folders (YYYY-MM-DD) as needed.
Target Structure
SNMG00 Management/
โโโ SNMG18 Working Docs/
โโโ YYYY-MM Work/
โโโ YYYY-MM-DD/
Steps
-
Determine target date:
- If user provides a date ("tomorrow", "March 15", "2026-03-20"), use that date
- If no date specified, use today's date
- Convert to: month format
YYYY-MM Workand day formatYYYY-MM-DD
-
Verify parent folders (builtin connector):
- Search for "SNMG00 Management" โ if not found, report error and stop
- Search for "SNMG18 Working Docs" inside SNMG00 Management โ if not found, report error and stop
- Note folder IDs at each level
-
Check/create month folder:
- Search for
{YYYY-MM Work}inside SNMG18 Working Docs (builtin connector) - If found: report "Month folder exists", note ID
- If not found: create using Zapier
google_drive_create_folderwith name{YYYY-MM Work}inside SNMG18 Working Docs, report "Month folder created"
- Search for
-
Check/create day folder:
- Search for
{YYYY-MM-DD}inside the month folder (builtin connector) - If found: report "Day folder exists"
- If not found: create using Zapier
google_drive_create_folderwith name{YYYY-MM-DD}inside the month folder, report "Day folder created"
- Search for
-
Report status:
# ๐
WORK DAY โ {DD Month YYYY}
| Folder | Status | Link |
|--------|--------|------|
| SNMG00 Management | โ
Exists | [Open]({link}) |
| SNMG18 Working Docs | โ
Exists | [Open]({link}) |
| {YYYY-MM Work} | โ
Exists / ๐ Created | [Open]({link}) |
| {YYYY-MM-DD} | โ
Exists / ๐ Created | [Open]({link}) |
**Structure ready.** Your work day folder is prepared.
Error Handling
If SNMG00 Management or SNMG18 Working Docs don't exist, stop and inform the user that parent folders must be created first.
Empty Results
If the folder is found but contains no files (list sub-command):
# ๐ FOLDER CONTENTS
**Folder:** {folder name} | **Files:** 0
No files found in this folder.
If the folder itself is not found:
โ ๏ธ No folder named "{folder name}" found in Google Drive. Check the folder name and try again.
Guard Rails (all sub-commands)
- Never fabricate file metadata, timestamps, or links โ use only API data
- Maintain read-only behaviour for list, recent, and topic โ never modify, move, or delete files
- Work-day may create folders only (never delete or move)
- Use friendly type labels, never raw MIME types in output tables
- Respect timezone preferences โ default Singapore / GMT+8
- If an integration fails, explain clearly and suggest retry
- Keep summaries neutral and derived from filenames and metadata
- Respect Drive permissions โ only include files the user has access to view
Quality Checklist (before finalising any output)
Sequential numbering โ , friendly type labels โ , working Drive links from API data โ , timezone stated โ , summaries within word limit โ , sorted appropriately โ .
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
daily-journals
Manages markdown journal files in a Journals/ folder โ creating new journal files, adding date-stamped entries, and deleting entries. A journal is a markdown file named with reverse-month and purpose (e.g., "2026-03 Activities.md") containing chronological entries grouped under reverse-date headers. Three operations: CREATE-JOURNAL, CREATE-ENTRY, DELETE-ENTRY. Use whenever the user says "create a journal", "new journal", "journal entry", "add to journal", "delete journal entry", "remove entry", "show journals", or mentions logging thoughts, activities, notes, or reflections into a dated journal format.
daily-work
Full workday lifecycle with three sub-commands: START (morning enablement โ email triage, calendar audit, Drive activity, news snapshot, workspace prep, executive brief; replaces set-up-workday), RECAP (end-of-day cross-reference of Calendar, Gmail, Drive, and all AI workforce Plans task logs into a comprehensive activity report in the work-day folder), and MINUTES (given a meeting title, find it in Calendar, search the work-day Drive folder for minutes, fall back to Gmail for transcript, then return a direct link). Use for "set up my workday", "start my day", "kick off today", "morning brief", "daily recap", "end of day", "wrap up the day", "what did I do today", "what happened today", "find the minutes", "meeting minutes for [title]", "where are the minutes", "get me the notes from [meeting]", "meeting transcript", or any workday activity review.
news-articles-rename
OCR and rename news article files (PDFs and images) by extracting the article headline from the content and using it as the filename. Targets the Vivien (PA)/News/ folder. Use this skill whenever the user asks to rename news articles, organise news clippings, process newspaper PDFs, extract article titles from scanned pages, or tidy up the News folder. Also trigger when the user mentions "rename articles", "news folder", "article titles", or "news clippings".
daily-plans
Manages a daily task planning system using Plans/ in whatever folder is currently selected โ creating plans, adding new tasks, executing tasks one-by-one, logging completed work, checking status, deleting tasks, and carrying forward incomplete items. Works from any mounted folder. Seven operations: CREATE, NEW, EXECUTE (one task per invocation), LOG, STATUS, DELETE (with auto-renumbering), CARRY-FORWARD. Use whenever the user says "plan my day", "create a plan", "new task", "add a task", "add task [X]", "execute the plan", "next task", "log task", "log that", "plan status", "what's the plan", "where are we", "carry forward", "carry over", "delete task", "remove task", "drop task", or provides a numbered task list. Do NOT trigger for "set up my workday", "what did I do today?", meeting prep, email drafting, or calendar searches.
daily-calendars
Unified Google Calendar skill. Includes sub-commands: search (natural-language calendar search by day/date/week, title keywords, attendees, and attendee emails/domains); available (check if a specific date/time works respecting 10am-6pm weekday availability, lunch hours 12pm-2pm, 30-minute gaps between meetings, and a maximum of 3 meetings per day); and meeting (returns/validates the default definition of a typical meeting). Use when users ask to check their calendar, find meetings, search by participant, locate events by title, retrieve calendar briefings, verify availability for a specific time slot, or check whether a meeting matches the default meeting profile.
daily-calendars
Unified Google Calendar skill. Includes sub-commands: search (natural-language calendar search by day/date/week, title keywords, attendees, and attendee emails/domains); available (check if a specific date/time works respecting 10am-6pm weekday availability, lunch hours 12pm-2pm, 30-minute gaps between meetings, and a maximum of 3 meetings per day); and meeting (returns/validates the default definition of a typical meeting). Use when users ask to check their calendar, find meetings, search by participant, locate events by title, retrieve calendar briefings, verify availability for a specific time slot, or check whether a meeting matches the default meeting profile.
Didn't find tool you were looking for?