Generate a professional mid-year progress report covering achievements, growth, and future direction. Intended for performance reviews, skip-manager 1:1s, and personal tracking.
Follow the phases below in order. Do not skip any phase.
Read ~/.config/reporting/settings.yaml.
If the file does not exist, tell the user: "Settings not found at ~/.config/reporting/settings.yaml. Please run bash install.sh from the reporting repo and edit settings.yaml." Then stop.
Parse from the settings file:
author.emails: list of git author emails. If empty or absent, detect viagit config --global user.email.repo_paths: list of root paths or specific repo paths to search.output.reports_dir: base directory for saving reports.
Determine the report period. Default: January 1 to June 30 of the current year. If the user specified a period when invoking (e.g. "for H1 2026"), use that.
Confirm with the user:
"Mid-year report for: [start_date] to [end_date]. Correct? (Y/n)"
Step A — Discover all repos:
Recursively walk each path in repo_paths. For each directory:
- If it contains a
.git/subdirectory → it is a git repo, add it to the list. - If it does not → continue recursing into its subdirectories.
Present the complete list in a numbered table. Ask user to exclude irrelevant repos.
Step B — Filter by author and date:
For each included repo, run:
git -C <repo_path> log --author="<email>" --since="<start_date>" --until="<end_date>" --onelineRepeat per email; combine. Repos with no commits → ask if user wants to include anyway.
Present candidate sections. User confirms which to include. Default: all selected.
Select sections to include in this mid-year report:
[1] High-Level Project Achievements ← default ON
[2] Impacts — Group/Organization Level ← default ON
[3] Impacts — Science/Research Community ← default ON
[4] Technical Capability Growth ← default ON
[5] Responsibility & Leadership Growth ← default ON
[6] Potential Future Responsibilities ← default ON
[7] Goals from Last Mid-Year Report: Addressed / Not Addressed ← default ON if prior report found
[8] Interests, Goals & Vision for H2 ← default ON
[9] Questions for Skip Manager ← default ON
Enter indices to REMOVE (comma-separated), or type "ok" to keep all defaults:
Prior mid-year report: Scan <reports_dir>/midyear/ for a file from approximately one year ago. If found, offer to include it for goal tracking.
Prior sub-period reports (supplemental): Scan <reports_dir>/quarterly/ and <reports_dir>/monthly/ for files whose dates fall within the current period.
If supplemental reports are found, ask:
"Found [N] quarterly/monthly report(s) for this period: [filenames]. Include them as supplemental context? (Y/n)"
Supplemental reports enrich sections [2], [3], [4], [5] — they capture synthesized impacts and growth observations that may not be directly visible in git.
If no prior mid-year report is found and section [7] is selected, ask the user to provide a path or skip.
For each active repo, run:
git -C <repo_path> log --author="<email>" --since="<start_date>" --until="<end_date>" --patch --no-mergesAnalysis focus for mid-year reports — project and capability level:
At this scope, the analysis is about arcs of work and their outcomes, not individual features or commits.
- Identify the major projects or initiatives you contributed to across the six-month period.
- For each project: what problem does it solve? What did you build, decide, or deliver? What is its current state and significance?
- Look for evidence of technical growth: new systems, languages, frameworks, or domains you worked in that you hadn't before; increased scale or complexity of problems tackled.
- Look for evidence of expanded responsibility: leading a project, driving a design, collaborating across teams, mentoring, or producing external artifacts (papers, talks, open-source work).
- For significant architectural decisions: capture the decision and its rationale as "[What was decided] to [why / what it enables or avoids]."
- Synthesize into 3–6 initiative-level achievements — not a commit history.
Ask about information git cannot provide:
- Major conferences, workshops, or invited talks attended or given
- Collaborations with external groups or industry partners and their outcomes
- Papers published, submitted, or under review; citations or recognition received
- Proposal reviews, committee memberships, or other community service
- Mentoring relationships (postdocs, students, peers)
- Key technical challenges faced and how they were resolved at a high level
- Any significant scope expansion or new responsibilities taken on this half-year
- Personal reflections: areas of notable growth, skills developed, confidence gained
- Interests and what you want to do more of in the second half of the year
- Concerns, gaps, or open questions to discuss with skip manager
Always append:
"Is there anything else significant from this half-year not captured in the repositories above?"
Compose the report using selected sections, git analysis, supplemental reports (if included), user answers, and prior mid-year report (if provided).
Goal Tracking section (if prior mid-year report included and section [7] selected):
For each goal, commitment, or vision from the prior mid-year report:
- ✅ Addressed: [goal] → [concrete achievement with evidence]
⚠️ Partially addressed: [goal] → [progress made, what remains]- ❌ Not yet addressed: [goal] → [honest reason + revised plan for H2]
High-Level Project Achievements:
3–5 paragraphs or bullets, each covering one major initiative. For each: the problem addressed, the approach taken, the outcome delivered, and the current state. Emphasize what was shipped or decided, not what was attempted.
Impacts — Group/Organization Level:
Concrete outcomes for your immediate team and broader organization: systems deployed and used, processes improved, capabilities your work enabled for others, cross-team collaborations that unblocked work.
Impacts — Science/Research Community:
Papers, talks, open-source releases, standards contributions, external collaborations, or other outputs that extend beyond your organization into the research community.
Technical Capability Growth:
3–4 sentences describing new technical domains, tools, or systems you became proficient in this period. Frame in terms of what problems you can now solve that you couldn't before.
Responsibility & Leadership Growth:
3–4 sentences on expanded ownership, decision-making authority, team influence, cross-team coordination, or mentoring you took on. Be specific about what you led or drove.
Potential Future Responsibilities:
2–3 areas where your growth this period positions you to take on more ownership or leadership in H2 or beyond. Frame as capability + opportunity.
Interests, Goals & Vision for H2:
3–5 specific goals for the second half of the year. At least one should be technical, one should be impact-oriented, and one should be personal/professional growth. Make them concrete enough to evaluate at year-end.
Questions for Manager/Skip Manager:
3–6 discussion points: strategic direction questions, career development topics, resource or support needs, or areas where you want explicit alignment.
Writing style:
- Keep sentences short and direct. One idea per sentence.
- Keep paragraphs short — 2 to 3 sentences maximum, then break.
- Prefer active voice and concrete verbs ("deployed", "resolved", "redesigned") over abstract or passive constructions.
- Use bullet points for lists of 3 or more items rather than embedding them in prose.
- Use bold or sub-headings to separate distinct topics within a section, so the reader can scan.
- Avoid filler phrases ("In order to", "It is worth noting that", "We were able to"). Cut them.
- When in doubt, cut the sentence in half.
Format:
Print the full report to the terminal.
Then ask:
"Save to
<reports_dir>/midyear/<YYYY>-midyear.md? (Y/n) Or enter a different path:"
If confirmed, save the file. Create the midyear/ subdirectory if it does not exist.