jeffallan/claude-skills

legacy-modernizer

Designs incremental migration strategies, identifies service boundaries, produces dependency maps and migration roadmaps, and generates API facade designs for aging codebases.

소스 보기

사용 방법

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

시작 전 확인

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

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

Legacy Modernizer

Core Workflow

  1. Assess system — Analyze codebase, dependencies, risks, and business constraints. Produce a dependency map and risk register before proceeding.
  • Validation checkpoint: Confirm all external integrations and data contracts are documented before moving to step 2.
  1. Plan migration — Design an incremental roadmap with explicit rollback strategies per phase. Reference references/system-assessment.md for code analysis templates.
  • Validation checkpoint: Confirm each phase has a defined rollback trigger and owner.
  1. Build safety net — Create characterization tests and monitoring before touching production code. Target 80%+ coverage of existing behavior.
  • Validation checkpoint: Run the characterization test suite and confirm it passes green on the unmodified legacy system before proceeding.
  1. Migrate incrementally — Apply strangler fig pattern with feature flags. Route traffic via a facade; shift load gradually.
  • Validation checkpoint: Verify error rates and latency metrics remain within baseline thresholds after each traffic increment (e.g., 5% → 25% → 50% → 100%).
  1. Validate & iterate — Run full test suite, review monitoring dashboards, and confirm business behavior is preserved before retiring legacy code.
  • Validation checkpoint: New code must be proven stable at 100% traffic for at least one release cycle before legacy path is removed.

Reference Guide

Load detailed guidance based on context:

TopicReferenceLoad When
Strangler Figreferences/strangler-fig-pattern.mdIncremental replacement, facade layer, routing
Refactoringreferences/refactoring-patterns.mdExtract service, branch by abstraction, adapters
Migrationreferences/migration-strategies.mdDatabase, UI, API, framework migrations
Testingreferences/legacy-testing.mdCharacterization tests, golden master, approval
Assessmentreferences/system-assessment.mdCode analysis, dependency mapping, risk evaluation

Code Examples

Strangler Fig Facade (Python)

python
# facade.py — routes requests to legacy or new service based on a feature flag
import os
from legacy_service import LegacyOrderService
from new_service import NewOrderService

class OrderServiceFacade:
    def __init__(self):
        self._legacy = LegacyOrderService()
        self._new = NewOrderService()

    def get_order(self, order_id: str):
        if os.getenv("USE_NEW_ORDER_SERVICE", "false").lower() == "true":
            return self._new.fetch(order_id)
        return self._legacy.get(order_id)

Feature Flag Wrapper

python
# feature_flags.py — thin wrapper around an environment or config-based flag store
import os

def flag_enabled(flag_name: str, default: bool = False) -> bool:
    """Check whether a migration feature flag is active."""
    return os.getenv(flag_name, str(default)).lower() == "true"

# Usage
if flag_enabled("USE_NEW_PAYMENT_GATEWAY"):
    result = new_gateway.charge(order)
else:
    result = legacy_gateway.charge(order)

Characterization Test Template (pytest)

python
# test_characterization_orders.py
# Captures existing legacy behavior as a golden-master safety net.
import pytest
from legacy_service import LegacyOrderService

service = LegacyOrderService()

@pytest.mark.parametrize("order_id,expected_status", [
    ("ORD-001", "SHIPPED"),
    ("ORD-002", "PENDING"),
    ("ORD-003", "CANCELLED"),
])
def test_order_status_golden_master(order_id, expected_status):
    """Fail loudly if legacy behavior changes unexpectedly."""
    result = service.get(order_id)
    assert result["status"] == expected_status, (
        f"Characterization broken for {order_id}: "
        f"expected {expected_status}, got {result['status']}"
    )

Constraints

MUST DO

  • Maintain zero production disruption during all migrations
  • Create comprehensive test coverage before refactoring (target 80%+)
  • Use feature flags for all incremental rollouts
  • Implement monitoring and rollback procedures
  • Document all migration decisions and rationale
  • Preserve existing business logic and behavior
  • Communicate progress and risks transparently

MUST NOT DO

  • Big bang rewrites or replacements
  • Skip testing legacy behavior before changes
  • Deploy without rollback capability
  • Break existing integrations or APIs
  • Ignore technical debt in new code
  • Rush migrations without proper validation
  • Remove legacy code before new code is proven

Output Templates

When implementing modernization, provide:

  1. Assessment summary (risks, dependencies, approach)
  2. Migration plan (phases, rollback strategy, metrics)
  3. Implementation code (facades, adapters, new services)
  4. Test coverage (characterization, integration, e2e)
  5. Monitoring setup (metrics, alerts, dashboards)

Knowledge Reference

Strangler fig pattern, branch by abstraction, characterization testing, incremental migration, feature flags, canary deployments, API versioning, database refactoring, microservices extraction, technical debt reduction, zero-downtime deployment

Maintained by @jeffallan, Principal Consultant at Synergetic Solutions

Documentation

관련 작업

같은 저장소의 Skills

더 많은 Skills

모든 Skills
jeffallan
커뮤니티

fastapi-expert

Use when building high-performance async Python APIs with FastAPI and Pydantic V2. Invoke to create REST endpoints, define Pydantic models, implement authentication flows, set up async SQLAlchemy database operations, add JWT authentication, build WebSocket endpoints, or generate OpenAPI documentation. Trigger terms: FastAPI, Pydantic, async Python, Python API, REST API Python, SQLAlchemy async, JWT authentication, OpenAPI, Swagger Python.

설치 수
2
GitHub Stars
1.2만
업데이트
10월 24일
jeffallan
커뮤니티

fine-tuning-expert

Use when fine-tuning LLMs, training custom models, or adapting foundation models for specific tasks. Invoke for configuring LoRA/QLoRA adapters, preparing JSONL training datasets, setting hyperparameters for fine-tuning runs, adapter training, transfer learning, finetuning with Hugging Face PEFT, OpenAI fine-tuning, instruction tuning, RLHF, DPO, or quantizing and deploying fine-tuned models. Trigger terms include: LoRA, QLoRA, PEFT, finetuning, fine-tuning, adapter tuning, LLM training, model t

설치 수
2
GitHub Stars
1.2만
업데이트
10월 24일
jeffallan
커뮤니티

rag-architect

Designs and implements production-grade RAG systems by chunking documents, generating embeddings, configuring vector stores, building hybrid search pipelines, applying reranking, and evaluating retrieval quality. Use when building RAG systems, vector databases, or knowledge-grounded AI applications requiring semantic search, document retrieval, context augmentation, similarity search, or embedding-based indexing.

설치 수
2
GitHub Stars
1.2만
업데이트
10월 24일
jeffallan
커뮤니티

wordpress-pro

Develops custom WordPress themes and plugins, creates and registers Gutenberg blocks and block patterns, configures WooCommerce stores, implements WordPress REST API endpoints, applies security hardening (nonces, sanitization, escaping, capability checks), and optimizes performance through caching and query tuning. Use when building WordPress themes, writing plugins, customizing Gutenberg blocks, extending WooCommerce, working with ACF, using the WordPress REST API, applying hooks and filters, o

설치 수
2
GitHub Stars
1.2만
업데이트
10월 24일