esa-daily-report
关于
This Claude Skill automatically creates daily reports in esa.io by fetching Google Calendar events and structuring them into predefined templates. It triggers on keywords like "日報" and "daily report" to streamline team communication workflows. Developers can customize this project-specific automation for their team's reporting needs.
技能文档
esa Daily Report Creator
Overview
This skill enables automatic creation of daily reports (日報) in esa.io by integrating with Google Calendar and following a structured template format.
Purpose
To streamline the daily reporting process by:
- Automatically fetching calendar events for the day
- Structuring information according to a predefined template
- Creating WIP posts in esa with proper categorization
- Providing a consistent format for team communication
When to Use This Skill
- User requests daily report creation (e.g., "今日の日報を作成", "日報作って")
- User mentions creating or posting a daily report
- User asks to summarize today's activities for esa
Configuration
Default Settings
- esa Team:
gaji - screen_name: Auto-detected from current user (using
esa_get_team_members) - Template Post Number:
#126 - Category:
report/daily-report/ - Post Status: WIP (Work In Progress)
Customization
These settings can be overridden by user preferences:
- User can specify different screen_name
- User can request different category path
- User can specify date other than today
Required Tools
- esa_get_team_members - Get current user's screen_name
- list_gcal_events - Fetch calendar events
- esa_create_post - Create post in esa
- view - Read template file (if needed)
Execution Flow
Step 0: Get Current User's screen_name
Use esa_get_team_members with:
- teamName: 'gaji' (or user-specified)
- Find member with "myself": true
- Extract screen_name from that member
This ensures the daily report is automatically created with the correct user's screen_name.
Step 1: Fetch Calendar Events
Use list_gcal_events with:
- calendar_id: 'primary'
- time_min: Start of target day (00:00:00)
- time_max: End of target day (23:59:59)
- time_zone: User's timezone (default: Asia/Tokyo)
Event Filtering Rules:
- Exclude work style events (e.g., "自宅勤務", "Home office")
- Exclude "チーム朝会" from MTG振り返り section (but keep in 今日やったこと)
- Include all other calendar events
Step 2: Gather User Input
Read the template file first to understand what sections need to be filled.
Use view /mnt/skills/user/esa-daily-report/assets/default.md to:
- Identify all sections that require user input (those with placeholder
-or empty content) - Dynamically determine which information to collect based on the template
Interaction Strategy:
- Option A (Recommended): Skip asking questions entirely and create the report with calendar events only. User can edit the WIP post in esa to fill in other sections.
- Option B: If the user seems engaged, briefly ask: "他に記載したい情報はありますか?(学んだこと、リードとしての動き、MTG振り返りなど)" and collect only what they provide.
Guidelines:
- Show calendar events first, so user knows what happened today
- Do NOT ask for each section individually - this is time-consuming
- Empty sections are completely acceptable and expected
- User can always edit the WIP post in esa afterward
- Be conversational and supportive, not robotic
Default behavior: Create the report with calendar events and empty sections for other content. This respects the user's time while providing a structured starting point they can fill in later.
Step 3: Structure the Report
CRITICAL: Always read the template from /mnt/skills/user/esa-daily-report/assets/default.md before structuring the report.
Use the view tool to read the template file:
view /mnt/skills/user/esa-daily-report/assets/default.md
The template defines the exact structure and sections for the daily report. Follow this template structure when building the report content, replacing placeholder text with:
- Calendar events in the "今日やったこと" section
- User input in each respective section
- Meeting names for "MTG 振り返り" subsections
Template Processing Rules:
- Ignore h1 headings (
# xxxformat) from the template - do not include them in the final report - Include h2 and below headings (
## xxx,### xxx, etc.) as they define the report structure - This ensures the report doesn't have duplicate top-level titles
Do not hardcode the template structure - always reference the template file to ensure consistency and allow for easy template updates.
Step 4: Create esa Post
Use esa_create_post with:
- teamName: 'gaji' (or user-specified)
- name: 'Daily 振り返り YYYY.MM.DD : [screen_name] #reflection'
Example: 'Daily 振り返り 2025.10.22 : screen_name #reflection'
- bodyMd: [Structured content from Step 3]
- category: 'report/daily-report/'
- wip: true
- tags: [] (no tags by default, user can specify)
Step 5: Confirm and Share
- Inform user that the report has been created
- Share the esa post URL
- Offer to make adjustments if needed
Example Usage
User: "今日の日報を作成して"
Assistant Flow (Default - No Questions):
- Get current user's screen_name from esa_get_team_members
- Fetch today's calendar events
- Read template structure from
/mnt/skills/user/esa-daily-report/assets/default.md - Present events to user: "今日はこれらの予定がありましたね: [list events]"
- Create post in esa with calendar events and empty sections for other content
- Reply: "日報を作成しました![URL] カレンダーの予定を記載しています。他の内容は後からesaで編集できます。"
Alternative Flow (If User Provides Info Upfront): If user says: "今日の日報を作成して。今日はReactのuseEffectについて学んだよ。"
- Get screen_name
- Fetch calendar events
- Read template
- Recognize user provided "今日学んだこと" content
- Create post with both calendar events AND the provided information
- Reply: "日報を作成しました![URL]"
Date Handling
Current Date Detection:
- Always get the current date/time from system
- Default to today unless user specifies otherwise
- Support phrases like "昨日の日報", "yesterday's report"
Time Zone:
- Default: Asia/Tokyo (JST)
- Format times as RFC3339 with timezone offset
- Example: 2025-10-22T00:00:00+09:00
Error Handling
Common Issues
-
No calendar events found
- Still create report with user input only
- Note: "カレンダーには予定がありませんでした"
-
esa API errors
- Inform user clearly
- Offer to retry or adjust parameters
-
Missing user input
- This is the normal and expected case
- Create post with calendar events and empty sections
- User will fill in details later in esa
Validation
- Check team name exists using
esa_get_teams - Verify date format is valid
- Ensure category path follows esa conventions (no leading slash)
Tips for Best Results
For Claude
- ALWAYS read the template file first: Use
view /mnt/skills/user/esa-daily-report/assets/default.mdat the start of Step 3 - Never hardcode the template structure - always reference the actual template file
- Be conversational - don't just collect data mechanically
- Adapt to user's communication style
- If user provides all info upfront, skip incremental questions
- Remember that WIP posts can be edited later
- The template file is the single source of truth for report structure
For Users
- You can provide information in any order or skip it entirely
- The skill creates a WIP post with calendar events - you can fill in other sections later in esa
- If you want to include specific info immediately, just mention it: "今日の日報を作成。Reactを学んだよ。"
- Empty sections are expected and normal - edit the post later at your convenience
- You can edit the WIP post in esa after creation
- Specify if you want a different date or category
Template Reference
Location: /mnt/skills/user/esa-daily-report/assets/default.md
Usage: This template file is the single source of truth for daily report structure.
Claude MUST read this file using the view tool during Step 3 before structuring any report.
Benefits of template file approach:
- Easy to update template without changing SKILL.md
- Team can customize template for their needs
- Ensures consistency across all reports
- No hardcoded structure in the skill logic
To customize: Edit /mnt/skills/user/esa-daily-report/assets/default.md directly.
Maintenance Notes
- Template format can be customized per team needs
- Default settings can be updated in this SKILL.md
- Consider adding support for weekly/monthly reports in future iterations
快速安装
/plugin add https://github.com/thkt/claude-config/tree/main/esa-daily-report在 Claude Code 中复制并粘贴此命令以安装该技能
GitHub 仓库
相关推荐技能
llamaguard
其他LlamaGuard是Meta推出的7-8B参数内容审核模型,专门用于过滤LLM的输入和输出内容。它能检测六大安全风险类别(暴力/仇恨、性内容、武器、违禁品、自残、犯罪计划),准确率达94-95%。开发者可通过HuggingFace、vLLM或Sagemaker快速部署,并能与NeMo Guardrails集成实现自动化安全防护。
sglang
元SGLang是一个专为LLM设计的高性能推理框架,特别适用于需要结构化输出的场景。它通过RadixAttention前缀缓存技术,在处理JSON、正则表达式、工具调用等具有重复前缀的复杂工作流时,能实现极速生成。如果你正在构建智能体或多轮对话系统,并追求远超vLLM的推理性能,SGLang是理想选择。
evaluating-llms-harness
测试该Skill通过60+个学术基准测试(如MMLU、GSM8K等)评估大语言模型质量,适用于模型对比、学术研究及训练进度追踪。它支持HuggingFace、vLLM和API接口,被EleutherAI等行业领先机构广泛采用。开发者可通过简单命令行快速对模型进行多任务批量评估。
langchain
元LangChain是一个用于构建LLM应用程序的框架,支持智能体、链和RAG应用开发。它提供多模型提供商支持、500+工具集成、记忆管理和向量检索等核心功能。开发者可用它快速构建聊天机器人、问答系统和自主代理,适用于从原型验证到生产部署的全流程。
