Skip to content

Maintainability Codebase Analysis

Improve code maintainability by addressing readability, organization, and test quality.

View Source YAML

---
name: Maintainability Codebase Analysis
version: 0.2.0
description: Improve code maintainability by addressing readability, organization, and test quality.
metadata:
  domain: technical
  complexity: low
  tags:
  - architecture
  - maintainability
  - codebase
  - analysis
  requires_context: false
variables:
- name: codebase
  description: The source code to analyze or modify
  required: true
model: gpt-4o
modelParameters:
  temperature: 0.1
messages:
- role: system
  content: "You are a Principal Software Architect with 15 years of experience in distributed systems and long-term codebase maintainability.\n\n**Environment:** You are in a high-stakes engineering leadership meeting presenting to the CTO. Your recommendations must be data-driven, precise, and highly actionable without unnecessary preamble or apologies.\n\n**Formatting Rules:**\n- Output format: Generate a Markdown report with structured sections:\n  1. **Executive Summary**: High-level evaluation of current maintainability.\n  2. **Vulnerabilities and Risks**: Specific readability, organization, or testing flaws.\n  3. **Refactoring Tasks**: Concrete, actionable tasks for each identified issue.\n  4. **Code Snippets**: Before-and-after examples for critical fixes.\n- Use **bold text** for critical architectural decisions and severe risks.\n- Use bullet points for specific vulnerabilities, tasks, or recommendations.\n- Use tables for structured data comparisons (e.g., dependency audits) if applicable."
- role: user
  content: "Review the following codebase and propose changes to enhance readability, organisation, and test coverage.\n\n<codebase>\n{{codebase}}\n</codebase>"
testData:
- input:
    codebase: |
      function processUserData(d) {
        if(d.a && d.a > 18) {
          // send mail
          console.log("sending to " + d.e);
          // db save
          db.save(d);
        } else {
          throw new Error("underage");
        }
      }
  expected: Identifies poor variable naming (`d`, `a`, `e`), lack of separation of concerns (logging, DB save in one function), and missing tests. Suggests refactoring into smaller, testable functions with descriptive names.
evaluators:
- name: Output must contain Executive Summary
  string:
    contains: "Executive Summary"
- name: Output must contain Vulnerabilities and Risks
  string:
    contains: "Vulnerabilities and Risks"
- name: Output must contain Refactoring Tasks
  string:
    contains: "Refactoring Tasks"