All skills
asyrafhussin avatar

/technical-debt

@4df703d

Technical debt inventory, prioritization, and audit for PHP/Laravel (MySQL) and Node/TypeScript/React projects. Use when assessing code health, identifying refactoring candidates, planning debt paydown, or auditing a codebase for accumulated debt. Triggers on "audit technical debt", "find tech debt", "debt inventory", "what should we refactor first", or tasks involving code health, security debt, performance debt, data debt, observability debt, debt prioritization, or remediation planning.

Use this Skill: https://skilld.dev/gh/asyrafhussin/agent-skills/technical-debt

This session only. Nothing lands on disk.

rulesinfra-runtime-versions.md

≈758 tokens on demand. Your agent reads this file only when SKILL.md points to it.

End-of-Life Runtime Versions

Impact: CRITICAL (EOL runtimes stop receiving security patches)

Once a language runtime hits EOL, no more CVE fixes ship — the next disclosed vulnerability is unpatched and forever yours. EOL deadlines are public, hard, and immovable; treating them as "we'll deal with it later" is treating a deadline as optional.

How to Detect

# Check installed versions
node --version
php --version

# Check declared versions
cat .nvmrc .node-version 2>/dev/null
grep -E '"engines"|"node":' package.json
grep -E '"php"' composer.json

# Server-side check (Forge / Vapor / shared hosting)
ssh user@server 'php -v && node -v'

# Check against EOL dates
# - https://endoflife.date/nodejs
# - https://endoflife.date/php
# - https://www.php.net/supported-versions.php
Runtime EOL Pattern
Node.js Every 6 months; LTS for 30 months
PHP 2 years active + 2 years security (since 2024)

Threshold: flag any version < 6 months from EOL as P1, EOL today as P0.

Incorrect

// ❌ package.json declares EOL Node
{
  "engines": { "node": "14.x" }
}
// ❌ composer.json requires EOL PHP
{
  "require": { "php": "^7.4" }     // PHP 7.4 EOL: 2022-11-28
}
// ❌ .nvmrc still pins to Node 14
14.21.3

Problems:

  • Any disclosed CVE in Node 14 / PHP 7.4 stays exploitable indefinitely
  • Modern dependencies start dropping support — package upgrades become impossible
  • Forge / Vapor / shared-hosting providers eventually remove EOL versions entirely → forced emergency migration

Correct

// ✅ package.json — Node 22 LTS
{
  "engines": { "node": ">=22 <23" }
}
// ✅ composer.json — PHP 8.3 (LTS, supported through 2027-12)
{
  "require": { "php": "^8.3" }
}
// ✅ .nvmrc
22.6.0

Automate the watch:

# CI step
- name: Check runtime EOL
  run: |
    NODE_MAJOR=$(node --version | sed 's/v\([0-9]*\).*/\1/')
    EOL_NODE=20    # update annually
    test $NODE_MAJOR -ge $EOL_NODE || { echo "Node $NODE_MAJOR is EOL"; exit 1; }

Benefits:

  • Security patches keep arriving for free
  • Modern dep ecosystem stays compatible
  • No emergency "runtime EOL was last week" migration

Remediation Strategy

  • Effort:
    • S — minor runtime bump within supported major
    • M — major bump (Node 18 → 22, PHP 8.1 → 8.3)
    • L — multiple majors at once (Node 14 → 22) — break into steps
  • When to pay down:
    • 6 months before EOL: start the upgrade
    • 3 months before EOL: be done
    • Schedule a calendar reminder when you upgrade — the next deadline is already on the clock

Reference: endoflife.date · Node Release Schedule · PHP Supported Versions

Source: SKILL.md on GitHub

No alerts16d3 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    The skill provides a comprehensive and safe framework for identifying, prioritizing, and auditing technical debt in PHP/Laravel and Node/TypeScript/React projects. No security risks or malicious behaviors were detected.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: LOW · No issues

Signed by skilld at 4df703d. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub last month.

Steadyupdated 5 months ago
metadata
{
  "author": "agent-skills",
  "version": "1.0.0"
}

README badge

README badge for asyrafhussin/agent-skills/technical-debt