lgbarn/devops-skills

historical-pattern-analysis

Use when analyzing git history and past changes to identify patterns, recurring issues, and lessons learned from infrastructure changes.

소스 보기

사용 방법

  1. 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
  2. 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
  3. 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
npx skills add https://github.com/lgbarn/devops-skills --skill historical-pattern-analysis

시작 전 확인

  • 설치에는 모델 구독, API 한도, 파일 접근 권한이 포함되지 않습니다.
  • 별점 수와 설치 수는 활동 지표이며 독립적인 품질·보안 검증이 아닙니다.
원본 Skill 문서

원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.

Historical Pattern Analysis

Overview

Analyze git history and memory to learn from past infrastructure changes. Identify patterns, recurring issues, and apply lessons learned to current work.

Announce at start: "I'm using the historical-pattern-analysis skill to learn from past changes."

When to Use

  • Before making changes similar to past changes
  • When investigating recurring issues
  • To understand why infrastructure is configured a certain way
  • To identify change patterns and team practices

Process

Step 1: Define Search Scope

Determine what history to analyze:

  • Specific resources being changed
  • Time period (last month, quarter, year)
  • Specific team members or patterns

Step 2: Git Archaeology

Find Related Commits

bash
# Commits touching specific files
git log --oneline -20 -- "path/to/module/*.tf"

# Commits mentioning resource types
git log --oneline -20 --grep="aws_security_group"

# Commits by pattern in message
git log --oneline -20 --grep="fix\|rollback\|revert"

# Commits in date range
git log --oneline --since="2024-01-01" --until="2024-06-01" -- "*.tf"

Analyze Commit Patterns

bash
# Most frequently changed files
git log --pretty=format: --name-only -- "*.tf" | sort | uniq -c | sort -rn | head -20

# Authors and their focus areas
git shortlog -sn -- "environments/prod/"

# Change frequency by day/time
git log --format="%ad" --date=format:"%A %H:00" -- "*.tf" | sort | uniq -c

Find Reverts and Fixes

bash
# Revert commits
git log --oneline --grep="revert\|Revert"

# Fix commits following changes
git log --oneline --grep="fix\|hotfix\|Fix"

# Commits with "URGENT" or "EMERGENCY"
git log --oneline --grep="urgent\|emergency" -i

Step 3: Analyze Change Patterns

Coupling Analysis

Which files change together?

bash
# For a specific file, what else changes with it?
git log --pretty=format:"%H" -- "modules/vpc/main.tf" | \
  xargs -I {} git show --name-only --pretty=format: {} | \
  sort | uniq -c | sort -rn | head -20

Change Sequences

Common sequences of changes:

  1. VPC changes → followed by security group changes
  2. IAM role changes → followed by policy attachments
  3. RDS changes → followed by parameter group changes

Time Patterns

  • Are prod changes clustered on certain days?
  • Are there "risky" times based on past incidents?
  • How long between staging and prod deployments?

Step 4: Query Memory

Check stored patterns:

memory/projects/<hash>/patterns.json
memory/projects/<hash>/incidents.json

Look for:

  • Similar past changes and outcomes
  • Known issues with these resources
  • User preferences for this type of change

Step 5: Identify Lessons

From Incidents

For each past incident:

  • What was the trigger?
  • How was it detected?
  • What was the fix?
  • What could have prevented it?

From Patterns

  • What changes tend to cause problems?
  • What practices lead to success?
  • What review processes work well?

Step 6: Generate Report

markdown
## Historical Pattern Analysis

### Search Scope
- Resources: [resources being analyzed]
- Time period: [date range]
- Related commits found: [count]

### Change Frequency

| Resource/File | Changes (90d) | Last Changed | Primary Authors |
|--------------|---------------|--------------|-----------------|
| modules/vpc/main.tf | 12 | 2024-01-10 | alice, bob |
| environments/prod/main.tf | 8 | 2024-01-08 | alice |

### Change Coupling

These resources typically change together:
1. `aws_security_group.web` ↔ `aws_instance.web` (85% correlation)
2. `aws_iam_role.app` ↔ `aws_iam_policy.app` (100% correlation)

### Past Incidents Related to These Resources

#### Incident: [Date] - [Title]
- **Trigger:** [What caused it]
- **Impact:** [What happened]
- **Resolution:** [How it was fixed]
- **Lesson:** [What we learned]
- **Relevance:** [How this applies to current change]

### Patterns Identified

#### Pattern: [Pattern Name]
- **Observation:** [What we see in history]
- **Frequency:** [How often]
- **Implication:** [What this means for current change]

### Risk Indicators

Based on historical data:
| Indicator | Current Change | Historical Issues |
|-----------|---------------|-------------------|
| Similar to past incident | [Yes/No] | [Details] |
| Frequently problematic resource | [Yes/No] | [Details] |
| Changed by unfamiliar author | [Yes/No] | [Details] |

### Recommendations

Based on historical patterns:
1. [Recommendation 1]
2. [Recommendation 2]

### Questions Raised

[Questions that history suggests we should answer]

Step 7: Update Memory

Store new patterns discovered:

json
{
  "patterns": [
    {
      "name": "vpc-sg-coupling",
      "description": "VPC changes often require SG updates",
      "confidence": 0.85,
      "last_seen": "2024-01-15"
    }
  ]
}

Common Patterns to Look For

Positive Patterns

  • Consistent naming conventions
  • Regular, small changes vs. big-bang updates
  • Changes preceded by plan review
  • Post-change validation

Warning Patterns

  • Frequent reverts
  • Emergency fixes following changes
  • Clustered failures in specific areas
  • "Temporary" changes that persist

Anti-Patterns

  • Direct prod changes without staging
  • Large changes without incremental steps
  • Missing documentation on complex changes
  • Recurring manual interventions

Integration with Other Skills

This skill feeds into:

  • terraform-plan-review: Provides historical context for risk assessment
  • terraform-drift-detection: Identifies if drift matches past patterns
  • provider-upgrade-analysis: Shows past upgrade experiences

관련 작업

같은 저장소의 Skills

더 많은 Skills

모든 Skills