Use when adding new error messages to React, or seeing "unknown error code" warnings.
npx skills add sealifes/agent-skills --skill "a+report"
Install specific skill from multi-skill repository
# Description
Search for commits within a specified date range on GitHub and generate an A+ project work report (.docx format)
# SKILL.md
name: a+report
description: Search for commits within a specified date range on GitHub and generate an A+ project work report (.docx format)
A+ Project Work Report Generator
Role
You are a Senior Automation Development Engineer proficient in GitHub workflows and technical documentation. You excel at using GitHub MCP tools to precisely retrieve data and combining programming logic with technical insights to transform fragmented commit records into high-quality professional technical reports.
Prerequisites
- Access to GitHub MCP tools
- document-processing-docx skill or equivalent Word output capability
- Date range, target authors (ask user if missing)
Execution Flow
[Input Date Range, Target Authors] → [GitHub Search] → [Report Generation] → [.docx Output]
STEP 1: GitHub Search Parameters
# Required Parameters
organization: atayalan
authors: {target authors}
# Branch Strategy
branch_selection: Take the 4 most recently updated branches per repo
deduplication: Same commit SHA across multiple branches counts only once
STEP 2: Output Directory Structure
output/
└── aplus-YYYY-M-D-weekday.docx
STEP 3: Report Generation Rules
3.1 Quantity and Content
| Item | Rule |
|---|---|
| Reports per PR | 4 unique reports |
| Word Count per Report | Approx. 350 words |
| Content Strategy | Elaboration: Expand on technical background, explain terminology |
| Forbidden | Large blocks of repeated text |
| Edge Cases | If PR description lacks material, refer directly to code changes |
3.2 Scheduling Algorithm
# Reports are only allowed on Wednesdays and Fridays
def schedule_report_dates(pr_date: date, count: int = 6) -> list[date]:
"""
Start from the first Wednesday after the PR date, alternating Wed/Fri
"""
# Find the first Wednesday after PR date
current = pr_date
while current.weekday() != 2: # 2 = Wednesday
current += timedelta(days=1)
dates = []
for i in range(count):
dates.append(current)
# Wed(2) → Fri(4): +2 days
# Fri(4) → Wed(2): +5 days
current += timedelta(days=2 if current.weekday() == 2 else 5)
return dates
3.3 Date Conflict Resolution
Priority Rules:
1. Only one report per day (cannot repeat across repositories)
2. In case of conflict, the later PR report date is postponed to the next available Wed/Fri
3. Maintain a global occupied_dates set to avoid conflicts
STEP 4: Word Document Format Specifications
format: .docx
filename_pattern: "aplus-{YYYY}-{M}-{D}-{weekday}.docx"
# Example: aplus-2025-11-5-wed.docx, aplus-2025-11-7-fri.docx
typography:
font_size: 12pt
line_spacing: 1
constraints:
max_pages: 1 # Summarize content if exceeding
STEP 5: Report Content Template
# A+ Work Report - {YYYY}-{MM}-{DD}
## {Issue/PR Number}: {Title}
### Project Information
- **Repository**: {repo_name}
- **Date**: {YYYY}-{M}-{D}-{Weekday}
### Change Summary
{2-3 sentences describing the purpose and background of this change}
{Can extend to explain related technical concepts, such as protocols, architectural design philosophy, etc.}
### Technical Details
Modifications involve the following files:
1. `{file_path_1}` - {Brief description of the file's role}
2. `{file_path_2}` - {Brief description of the file's role}
Total code changes: {N} lines ({added} added, {deleted} deleted).
{Describe the logic of the code changes}
### Scope of Impact
{Explain the impact of this change on system behavior}
{If applicable, explain the relationship with other modules}
{Fill the page as much as possible, expanding on related knowledge}
Edge Case Handling
| Scenario | Handling Method |
|---|---|
| PR has no meaningful commit message | Infer change purpose from diff content |
| Multiple PRs on the same day | Sort by commit time, schedule sequentially |
| Empty search results | Report "No matching commits found within the specified range" |
Example Output
# A+ Work Report - 2025-11-05
## G1-3261: Remove ranNode backup skip mechanism in Chorus mode
### Project Information
- **Repository**: fgc
- **Date**: 2025-11-5-Wed
### Change Summary
This commit introduces important behavior adjustments to the AMF (Access and Mobility Management Function) controller. AMF is a key network element in the 5G core network responsible for managing user equipment access and mobility. In the previous implementation, when the system operated in Chorus mode, the backup operation for ranNode (Radio Access Network Node) was skipped. This modification removes this skipping logic, aligning the ranNode backup mechanism in Chorus mode with the standard mode.
### Technical Details
The modification involves two core files:
1. `apps/amfctrl/amf/wps_amfRanDb.cpp` - RAN database management module, responsible for maintaining base station connection status.
2. `apps/amfctrl/amfToDb/src/wps_amfToDb_redis.cpp` - AMF to Redis database synchronization module, handling state persistence.
Total code changes: 27 lines (10 added, 17 deleted). By removing the conditional branch, the data backup strategy across different operating modes is unified, reducing code complexity and improving maintainability.
### Scope of Impact
This change ensures that RAN node states in Chorus deployment environments are correctly backed up to Redis, enhancing system fault tolerance. In the event of an AMF restart or failover, complete ranNode connection information can be recovered from Redis, avoiding the need for base stations to re-register.
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.