ln-831-oss-replacer

SKILL.md

Paths: File paths (shared/, references/, ../ln-*) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root.

ln-831-oss-replacer

Type: L3 Worker Category: 8XX Optimization Parent: ln-830-code-modernization-coordinator

Executes OSS replacement plans from ln-645-open-source-replacer auditor. For each custom module with an OSS alternative: install package, rewrite imports, run tests, keep or discard atomically.


Overview

Aspect Details
Input Migration plan from docs/project/codebase_audit.md (ln-645 section) OR target module
Output Replaced modules, migration report
Companion ln-645-open-source-replacer (finds candidates) → ln-831 (executes replacement)

Workflow

Phases: Pre-flight → Load Plan → Prioritize → Replace Loop → Report


Phase 0: Pre-flight Checks

Check Required Action if Missing
Migration plan OR target module Yes Block replacement
Test infrastructure Yes Block (need tests for verification)
Package manager available Yes Block (need to install OSS packages)
Git clean state Yes Block (need clean baseline for revert)

MANDATORY READ: Load shared/references/ci_tool_detection.md — use Test Frameworks section for test detection.

Worktree & Branch Isolation

MANDATORY READ: Load shared/references/git_worktree_fallback.md — use ln-831 row.


Phase 1: Load Migration Plan

From Audit Report

Read docs/project/codebase_audit.md, extract ln-645 findings:

Field Description
custom_module Path to custom implementation
loc Lines of code in custom module
oss_package Recommended OSS replacement
confidence How well OSS covers functionality (HIGH/MEDIUM/LOW)
api_mapping Custom function → OSS equivalent

From Target Module

If no audit report: analyze target module, search Context7/Ref for OSS alternatives.

MANDATORY READ: Load shared/references/research_tool_fallback.md for MCP tool chain.


Phase 2: Prioritize Replacements

Priority Criteria
1 (highest) HIGH confidence + >200 LOC (max code reduction)
2 HIGH confidence + 100-200 LOC
3 MEDIUM confidence + >200 LOC
4 MEDIUM confidence + 100-200 LOC
Skip LOW confidence (too risky for automated replacement)

Phase 3: Replace Loop (Keep/Discard)

Per-Module Cycle

FOR each replacement candidate (R1..RN):
  1. INSTALL: Add OSS package
     npm install {package} / dotnet add package / pip install
  2. REWRITE: Update imports + call sites using api_mapping
  3. VERIFY: Run tests
     IF tests FAIL → DISCARD (revert ALL: uninstall package, restore files) → next
  4. TESTS PASS → KEEP
  5. DELETE: Remove old custom module (only after keep)
  6. LOG: Record replacement for report

Atomic Revert on Discard

Step Revert Action
Package installed Uninstall: npm uninstall / dotnet remove package / pip uninstall
Files modified git checkout -- {modified_files}
Lock file changed git checkout -- {lock_file}

Safety Rules

Rule Description
One module at a time Never replace multiple modules simultaneously
No API signature changes Public API of replaced module must stay compatible
Tests required Skip module if no tests cover it (too risky)
Confidence gate Skip LOW confidence replacements

Phase 4: Report Results

Report Schema

Field Description
source Audit report path or target module
candidates_total Total replacement candidates
replacements_applied Successfully replaced modules
replacements_discarded Failed replacements with reasons
replacements_skipped LOW confidence / no test coverage
loc_removed Total lines of custom code removed
packages_added New OSS packages installed
details[] Per-replacement: module, package, LOC removed

Configuration

Options:
  # Source
  audit_report: "docs/project/codebase_audit.md"
  target_module: ""

  # Confidence
  min_confidence: "MEDIUM"      # MEDIUM | HIGH

  # Verification
  run_tests: true

  # Safety
  require_test_coverage: true   # Skip modules with no tests
  delete_old_module: true       # Delete custom module after successful replacement

Error Handling

Error Cause Solution
Package not found OSS package name changed Search Context7/Ref for current name
API mismatch OSS API differs from mapping Query docs for correct API, attempt fix
Circular dependency New package conflicts Skip replacement, log as manual
No test coverage Custom module untested Skip (too risky for automated replacement)

References

  • ../ln-645-open-source-replacer/SKILL.md (companion: finds candidates)
  • shared/references/ci_tool_detection.md (test detection)
  • shared/references/research_tool_fallback.md (MCP tool chain)

Definition of Done

  • Migration plan loaded from audit report or target module analyzed
  • Candidates prioritized by confidence + LOC
  • Each replacement applied atomically: install → rewrite → test → keep/discard
  • Discarded replacements fully reverted (package + files + lock)
  • Kept replacements: old custom module deleted
  • Report returned with candidates total, applied, discarded, LOC removed

Version: 1.0.0 Last Updated: 2026-03-08

Weekly Installs
28
GitHub Stars
197
First Seen
5 days ago
Installed on
gemini-cli28
github-copilot28
codex28
kimi-cli28
amp28
cline28