Smart Git History Temporal Analysis

VerifiedSafe

Analyzes git commit history to identify hotspots (frequently changed files), temporal coupling (files that change together), and recent contributor activity. Helps uncover complexity indicators, hidden dependencies, and knowledge distribution to assess risk areas for prioritization. Supports path filtering and caches results with an optional --force flag to refresh.

Sby Skills Guide Bot
DevelopmentIntermediate
6/2/2026
Claude Code
#git-history#code-analysis#hotspots#temporal-coupling#bus-factor

Recommended for

Automated summary

Analyzes git history to identify hotspots (frequently changed files), temporal couplings (files that change together), and recent contributors to assess code complexity, hidden dependencies, and bus factor.

Strengths

  • Identifies refactoring priorities via complexity scores
  • Reveals hidden dependencies that may need architectural review
  • Maps knowledge distribution to mitigate bus factor risks
  • Provides aggregate risk assessment for resource allocation

Limitations

  • Requires code-maat and Java installation
  • Analysis limited to last 12 months by default
  • Coupling analysis may produce false positives for automatically generated files
When to use it

When you need to understand codebase complexity, identify risky areas, or assess knowledge distribution for onboarding or team planning.

When not to use it

When the repository has very little git history or when you need real-time, non-git-based complexity analysis.

Security analysis

Safe
Quality score92/100

Skill uses standard git and code-maat (open-source) for local analysis. No external calls, no destructive commands, no exfiltration. Installation script is requested with user permission.

No concerns found

How this analysis is made

Examples

Hotspot analysis in a directory
Analyze git history in the src/ directory for hotspots and coupling.
Full repository bus factor assessment
Run temporal analysis on the entire repository (last 12 months) to assess bus factor.

name: history description: Smart temporal analysis using git history - Hotspots, Coupling, and Recent Contributors model: sonnet allowed-tools: Bash, Glob, Grep, Read, Write, AskUserQuestion argument-hint: (optional) [path or scope, e.g., "src/", "frontend", "last 6 months"] [--force]

SourceAtlas: Smart Temporal Analysis (Git History)

Constitution: ANALYSIS_CONSTITUTION.md v1.0

Context

Analysis Scope: $ARGUMENTS (default: entire repository) Goal: Extract actionable insights from git history Time Limit: 5-10 minutes Prerequisite: code-maat (will ask permission to install if missing)

Quick Start

  1. Check cache (skip if --force flag present)
  2. Check code-maat installation (install if needed with permission)
  3. Generate git log (last 12 months, code-maat compatible)
  4. Run analyses: Hotspots, Coupling, Contributors
  5. Risk assessment combining all dimensions
  6. Generate report following output-template.md
  7. Verify output using verification-guide.md
  8. Auto-save to .sourceatlas/history.md

Your Task

You are analyzing git commit history to understand:

  1. Hotspots - Files changed most frequently (likely complex/risky)
  2. Temporal Coupling - Files that change together (hidden dependencies)
  3. Recent Contributors - Who has knowledge of which areas (bus factor)
  4. Risk Areas - Aggregate assessment for prioritization

What You'll Discover

| Analysis Type | Insight | Business Value | |---------------|---------|----------------| | Hotspots | Complexity indicators | Refactoring priorities, technical debt | | Coupling | Hidden dependencies | Architecture review targets | | Contributors | Knowledge distribution | Bus factor risks, training needs | | Risk | Aggregate assessment | Resource allocation decisions |


Core Workflow

Execute these steps in order. See workflow.md for complete details.

Step 0: Check Prerequisites (30 seconds)

Purpose: Ensure code-maat is installed and Java is available.

Check code-maat:

if [ -f "$HOME/.sourceatlas/bin/code-maat-1.0.4-standalone.jar" ]; then
  export CODEMAAT_JAR="$HOME/.sourceatlas/bin/code-maat-1.0.4-standalone.jar"
fi

If not found, use AskUserQuestion:

  • "code-maat required for analysis. Install now? (requires Java 8+)"
  • If yes → run ./scripts/install-codemaat.sh
  • If no → show manual installation steps

→ See workflow.md#step-0

Step 1: Generate Git Log (1 minute)

Purpose: Create code-maat compatible git log file.

Default: Last 12 months

git log --all --numstat --date=short \
    --pretty=format:'--%h--%ad--%aN' \
    --after="$(date -v-12m +%Y-%m-%d)" \
    > /tmp/git-history.log

If scope specified: Filter to directory (e.g., "src/")

→ See workflow.md#step-1

Step 2: Hotspot Analysis (2 minutes)

Purpose: Identify frequently changed files.

Run code-maat revisions:

java -jar "$CODEMAAT_JAR" -l /tmp/git-history.log -c git2 -a revisions

Calculate complexity scores: LOC × Revisions

Identify top 10 hotspots sorted by complexity

→ See workflow.md#step-2

Step 3: Temporal Coupling Analysis (2 minutes)

Purpose: Find files that change together.

Run code-maat coupling:

java -jar "$CODEMAAT_JAR" -l /tmp/git-history.log -c git2 -a coupling

Filter significant couplings: degree ≥ 0.5

Categorize: Expected vs Suspicious

→ See workflow.md#step-3

Step 4: Recent Contributors Analysis (2 minutes)

Purpose: Map knowledge distribution across modules.

Run code-maat entity-ownership:

java -jar "$CODEMAAT_JAR" -l /tmp/git-history.log -c git2 -a entity-ownership

Generate knowledge map by area (src/api/, src/core/, etc.)

Identify bus factor risks: Single-contributor modules

→ See workflow.md#step-4

Step 5: Risk Assessment (1 minute)

Purpose: Combine all dimensions into actionable priorities.

Calculate composite risk: (Revisions × Coupling_Count) / Contributor_Count

Risk categories:

  • Bus Factor Risk
  • Complexity Risk
  • Coupling Risk
  • Testing Gap Risk

→ See workflow.md#step-5


Output Format

Your analysis should follow this Markdown structure:

🗺️ SourceAtlas: History
───────────────────────────────
📜 [repo name] │ [N] months

**Analysis Period**: [start] → [end]
**Commits Analyzed**: [count]
**Files Analyzed**: [count]

## 1. Hotspots (Top 10)
[Table with Rank, File, Changes, LOC, Complexity Score]
[Insights paragraph]

## 2. Temporal Coupling (Significant Pairs)
[Table with File A, File B, Coupling, Co-changes]
[Expected vs Suspicious coupling analysis]

## 3. Recent Contributors (Knowledge Map)
[Per-area tables with Contributor, Commits, Last Active]
[Bus Factor Risks section]

## 4. Risk Summary
[Risk aggregation table]
[Priority Actions numbered list]

## 5. Recommendations
[Refactoring candidates, knowledge sharing, architecture review]

## Recommended Next
[Dynamic suggestions based on findings]

→ See output-template.md for complete specification and examples


Critical Rules

1. Privacy Aware

  • Use "Recent Contributors" not "Ownership %"
  • Focus on knowledge distribution, not blame
  • Frame findings as opportunities, not criticisms

2. Actionable Insights

  • Every finding must have recommended action
  • Reference specific commit counts and file paths
  • Provide concrete next steps (not vague suggestions)

3. Evidence-Based

  • All hotspot files must exist (verify)
  • Commit counts must match git history (±20% tolerance)
  • Contributor names must be in git log

4. Time-Bounded

  • Default: 12 months (good balance)
  • Minimum: 3 months (for meaningful patterns)
  • Maximum: 24 months (avoid ancient history)

5. Verification Required

  • Execute verification-guide.md after analysis
  • Verify file paths, commit counts, contributors
  • Correct discrepancies before output

6. Constitutional Compliance

Follow ANALYSIS_CONSTITUTION.md:

  • Article I: Evidence-based (all claims from git/code-maat)
  • Article III: Verification (run V1-V4 checks)
  • Article IV: Evidence format (file:line references)
  • Article V: Transparency (show analysis period, cache age)
  • Article VII: User Empowerment (actionable recommendations)

Self-Verification

After generating your analysis, execute verification steps:

Step V1: Extract Verifiable Claims

Parse output for all quantifiable claims:

  • File paths (hotspots, coupled files)
  • Commit counts (total, per file, per contributor)
  • Contributor names
  • Coupling pairs
  • Date ranges

Step V2: Parallel Verification

  • Verify hotspot files exist (sample 3-5)
  • Verify commit counts (±20% tolerance)
  • Verify contributors in git history
  • Verify coupling pairs (both files exist)
  • Verify date ranges within repository history

Step V3: Handle Results

  • ✅ All checks pass → Proceed to output
  • ⚠️ Minor issues (1-2 checks) → Correct and note
  • ❌ Major issues (3+ checks) → Re-execute analysis

Step V4: Add Verification Summary

verification_summary:
  checks_performed: [...]
  confidence_level: "high"  # high|medium|low
  notes: [...]

→ See verification-guide.md for complete checklist


Advanced

Cache Behavior

  • Default: Use cache if exists
  • Force flag: Skip cache with --force
  • Cache location: .sourceatlas/history.md (fixed path)
  • Cache age warning: If >30 days old

→ See reference.md#cache-behavior

Auto-Save Mechanism

Complete Markdown report auto-saves after verification:

💾 Saved to .sourceatlas/history.md

→ See reference.md#auto-save-behavior

Handoffs to Next Commands

Based on findings, suggest:

  • High-risk hotspot → /sourceatlas:impact "[hotspot]"
  • Suspicious coupling → /sourceatlas:flow "[entry point]"
  • Refactoring needed → /sourceatlas:pattern "[pattern]"

→ See reference.md#handoffs

code-maat Installation

  • Default location: ~/.sourceatlas/bin/code-maat-1.0.4-standalone.jar
  • Auto-install via: ./scripts/install-codemaat.sh
  • Requires: Java 8+

→ See reference.md#code-maat-installation

Interpretation Guidelines

  • Hotspots: Not always bad (core logic changes often)
  • Coupling: Expected (same domain) vs Suspicious (cross-module)
  • Contributors: Healthy = 2-3 per module, Risk = single contributor

→ See reference.md#interpretation-guidelines


Support Files

Detailed documentation available in:


Output Header

Start your output with:

🗺️ SourceAtlas: History
───────────────────────────────
📜 [repo name] │ [N] months

Then follow complete structure in output-template.md.

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/smart-git-history-temporal-analysis-mm8o520f/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/smart-git-history-temporal-analysis-mm8o520f' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/smart-git-history-temporal-analysis-mm8o520f/download' --output '.skill-downloads/smart-git-history-temporal-analysis-mm8o520f/SKILL.md.part' && mv '.skill-downloads/smart-git-history-temporal-analysis-mm8o520f/SKILL.md.part' '.skill-downloads/smart-git-history-temporal-analysis-mm8o520f/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

Tools declared by the author (check availability in your agent): Bash, Glob, Grep, Read, Write, AskUserQuestion

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/smart-git-history-temporal-analysis-mm8o520f/SKILL.md' && test -s '.skill-downloads/smart-git-history-temporal-analysis-mm8o520f/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/history' && cp -R '.skill-downloads/smart-git-history-temporal-analysis-mm8o520f' '.claude/skills/history'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/smart-git-history-temporal-analysis-mm8o520f'

openskills read 'smart-git-history-temporal-analysis-mm8o520f'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/smart-git-history-temporal-analysis-mm8o520f/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills