| name | create-daily-report |
| description | Generate a Japanese daily or periodic diff report for the configured GitHub repositories, GitHub Changelog RSS, and Azure release-announcement RSS, comparing changes since the checkpoint in timestamp.md. Use this skill whenever the user asks for a daily check, daily-check report, 差分レポート, 前回からの差分, デイリーチェック, or an update summary across the configured repositories and feeds, even if they do not mention the skill name. Run .github/skills/create-daily-report/scripts/Invoke-DailyCheckReport.ps1 as a mechanical file-by-file loop (-Next), write reports under reports/{yyyy}/{MM}/{dd}/ using JST, and update timestamp.md only during finalization. Skill instructions are in English; report content must be Japanese. |
Daily Check Report Skill
This skill automates the core workflow of this repository (runceel/daily-check): generating a diff report from the previous checkpoint across selected GitHub repositories, GitHub Changelog RSS, and Azure release-announcement RSS.
Data collection and scaffolding are deterministic in Invoke-DailyCheckReport.ps1. The writer (human or model) should follow a strict one-file-at-a-time loop via -Next.
Language policy
- Skill definition and operational guidance: English
- Report output content (
reports/.../*.md): Japanese
When replacing <!-- TODO ... --> markers in report files, always write natural Japanese explanations.
Prerequisites
- PowerShell 7 (
pwsh)
- GitHub CLI (
gh) authenticated for public repository search (gh auth status)
- Network access to GitHub, GitHub Changelog RSS, and Azure release-announcement RSS
- Repository write access for report generation; Git credentials and a configured remote only when
-Commit / -Push are explicitly requested
When to use
Use this skill when the user asks for daily-check updates or incremental diffs, for example:
- "daily check report"
- "差分レポート"
- "前回からの差分"
- "デイリーチェック"
- Any request to summarize updates across the configured repos + Azure/GitHub feeds
Deliverables
- Generate/fill these 11 files under
reports/{yyyy}/{MM}/{dd}/:
index.md, azure.md, github-changelog.md, agent-framework.md, aspnetcore.md,
azure-functions-dotnet-worker.md, extensions.md, reactiveproperty.md, aspire.md,
mxc.md, copilot-sdk.md
- Update repository-root
timestamp.md with generation timestamp (UTC, yyyy-MM-dd HH:mm:ss) only in -Finalize
- Optionally commit/push report + timestamp only when
-Commit / -Push are explicitly supplied
Workflow (3 phases)
- Scaffold generation (default run, non-destructive)
- File-by-file completion loop (
-Next)
- Finalization (
-Finalize)
Default generation does not update timestamp.md and does not commit.
Delegation policy
This skill may use cheaper sub-agents for localized drafting, but the parent agent must retain ownership of the report workflow.
- Parent agent responsibilities:
- Run scaffold generation,
-Next, -Status, -ValidateOnly, and -Finalize.
- Decide the next work item from
-Next and apply edits to report files.
- Ensure important changes are not missed, especially when GitHub collection is truncated.
- Write or review
index.md, because it requires cross-file synthesis and previous memo carry-over.
- Perform final validation and timestamp/commit/push decisions.
- Sub-agent responsibilities:
- Draft localized Japanese prose for one bounded unit: a feed item, one summary repo section, or one detailed PR block.
- Use only the context provided by the parent agent (
-Next JSON, relevant file excerpt, and acceptance criteria).
- Return draft text and rationale; do not run
-Next, -Finalize, commit, push, or edit files directly unless the parent explicitly delegates that exact file in the same session.
- New project sessions may be used only for research or drafting. Avoid multiple sessions editing the same report files; if a separate session is used, the parent session applies the final text to prevent conflicts.
- Cheap models are appropriate for local item summaries. Use a stronger model or parent review for
index.md, important-change triage, conflict resolution, and validation failures.
Commands
1. Generate scaffold (default, non-destructive)
pwsh ./.github/skills/create-daily-report/scripts/Invoke-DailyCheckReport.ps1
2. Fill one file at a time (-Next)
pwsh ./.github/skills/create-daily-report/scripts/Invoke-DailyCheckReport.ps1 -Next
-Next is read-only and returns the next pending unit with acceptance criteria.
Rules:
- Follow phase order: fact files first (
azure, github-changelog, repo files), then index.md last.
- Replace all
<!-- TODO ... --> markers and required empty bullets in the target file.
- Write report prose in Japanese.
- Important changes (breaking/security/deprecation/GA) are never subject to the detailed-PR count cap. In detailed repos, all important merged PRs must be expanded and filled; regular merged PRs only fill the remaining detail slots.
- Repeat
-Next until it returns "no remaining work" (exit code 0).
- Use
-Next -Json for machine-readable output.
3. Optional checks
pwsh ./.github/skills/create-daily-report/scripts/Invoke-DailyCheckReport.ps1 -Status
pwsh ./.github/skills/create-daily-report/scripts/Invoke-DailyCheckReport.ps1 -ValidateOnly
4. Finalize (validate + timestamp)
pwsh ./.github/skills/create-daily-report/scripts/Invoke-DailyCheckReport.ps1 -Finalize
-Finalize does not regenerate files. It validates unresolved markers/content quality checks and advances timestamp.md using index.md meta. Git operations are opt-in:
# Timestamp + commit
pwsh ./.github/skills/create-daily-report/scripts/Invoke-DailyCheckReport.ps1 -Finalize -Commit
# Timestamp + commit + push
pwsh ./.github/skills/create-daily-report/scripts/Invoke-DailyCheckReport.ps1 -Finalize -Commit -Push
Loop safety
- Detect no-progress loops with
fingerprint from -Next:
same file + same fingerprint after edits means no progress.
- Practical loop cap: around
number_of_files + 3 iterations (about 14 max).
- If
-Next returns missing-file, rerun default generation (without -Force).
Authoring guardrails
- Do not guess completion; trust
-Next/-Status.
- Do not write
index.md summary before fact files are complete.
- Do not fabricate trends on quiet days.
- Do not casually use
-Force (it can overwrite completed content).
- Do not modify/remove
<!-- daily-check-meta: ... --> in index.md.
- If finalize fails, fix the reported sections and rerun.
Collection modes
| owner/repo | mode | output file |
|---|
microsoft/agent-framework | detailed | agent-framework.md |
microsoft/aspire | detailed | aspire.md |
dotnet/aspnetcore | summary | aspnetcore.md |
Azure/azure-functions-dotnet-worker | summary | azure-functions-dotnet-worker.md |
dotnet/extensions | summary | extensions.md |
runceel/ReactiveProperty | summary | reactiveproperty.md |
microsoft/mxc | summary | mxc.md |
github/copilot-sdk | detailed | copilot-sdk.md |
Script options
- default (no option): scaffold generation (non-destructive)
-Next: next pending unit (read-only), exit 0/1/2
-Json: JSON output for -Next
-Status: status summary (read-only), exit 0/1/2
-ValidateOnly: validate markers/content checks only
-Finalize: validate + timestamp update; no git operation by default
-Commit: with -Finalize, commit report + timestamp
-Push: with -Finalize -Commit, push the created commit
-Force: force scaffold regeneration ignoring completed-file protection
-DryRun: no file updates, no commit/push
-SkipCommit: compatibility suppression switch; normally unnecessary because commit is opt-in
-SkipPush: compatibility suppression switch; normally unnecessary because push is opt-in
-SkipGitHub: skip gh calls (offline/rate-limit mode)
-GeneratedAtUtc "yyyy-MM-dd HH:mm:ss": override generation timestamp (UTC);
report folder/title date is based on JST conversion of this UTC value
-Next, -Status, -ValidateOnly, and -Finalize are mutually exclusive.
Error handling
| Failure | Action |
|---|
gh authentication/search failure | Run gh auth status / gh auth login, then regenerate without -Force; completed files remain protected. |
| RSS/network failure | Retry after connectivity is restored. Do not advance timestamp.md from a partial scaffold. |
| GitHub Search reaches 1,000 items in one day | Treat the repository warning as incomplete data and manually inspect important merged PRs/issues before writing index.md. |
missing-file from -Next | Rerun scaffold generation without -Force; the script recreates only missing/incomplete files. |
-ValidateOnly / -Finalize failure | Fix every reported missing file, marker, empty bullet, or placeholder and rerun validation. |
| Commit/push failure | timestamp.md may already be updated; inspect git status and complete the requested git operation manually without regenerating. |
Maintenance tests
Invoke-Pester ./.github/skills/create-daily-report/tests/Invoke-DailyCheckReport.Tests.ps1
The tests enforce repository/file/index consistency, important-change heuristics, search-window splitting, and opt-in git behavior.
Post-run reflection
After finalization, note any manually discovered important change, collection gap, false-positive classifier result, or source-list drift. Update the classifier/source-of-truth tests before the next run when the same failure could recur.
References