Back to skills
SkillHub ClubShip Full StackFull Stack

audit-investigation

Use when investigating config file discrepancies during audit. Spawns config agents in waves to compare template standards against actual files. READ-ONLY analysis - agents report findings but make no changes.

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
0
Hot score
74
Updated
March 20, 2026
Overall rating
C2.7
Composite score
2.7
Best-practice grade
A88.4

Install command

npx @skill-hub/cli install metasaver-metasaver-marketplace-audit-investigation

Repository

metasaver/metasaver-marketplace

Skill path: plugins/metasaver-core/skills/workflow-steps/audit-investigation

Use when investigating config file discrepancies during audit. Spawns config agents in waves to compare template standards against actual files. READ-ONLY analysis - agents report findings but make no changes.

Open repository

Best for

Primary workflow: Ship Full Stack.

Technical facets: Full Stack.

Target audience: everyone.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: metasaver.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install audit-investigation into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/metasaver/metasaver-marketplace before adding audit-investigation to shared team environments
  • Use audit-investigation for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: audit-investigation
description: Use when investigating config file discrepancies during audit. Spawns config agents in waves to compare template standards against actual files. READ-ONLY analysis - agents report findings but make no changes.
---

# Audit Investigation Skill

> **ROOT AGENT ONLY** - Called by /audit command during investigation phase.

**Purpose:** Investigate configuration discrepancies by comparing templates to actual files

**Trigger:** After execution plan approved, before user resolution decisions

**Input:**

- `execution_plan` - waves of (agent, file) pairs from planning phase
- `repoType` - repository type for context
- `repos[]` - list of repositories in scope

**Output:**

- `discrepancies[]` - all findings with severity, location, expected vs actual
- `summary` - aggregate stats by severity and file count

---

## Workflow Steps

**1. Parse Execution Plan**

- Extract waves from execution plan
- Each wave contains max 10 (agent, file) pairs
- Waves execute sequentially, agents within wave execute in parallel

**2. Execute Investigation in Waves**

For each wave:

| Step                             | Action                                  |
| -------------------------------- | --------------------------------------- |
| a. Spawn config agents           | Parallel invocation (max 10)            |
| b. Agent reads template          | From agent's skill templates/ directory |
| c. Agent reads actual file       | From repository using Read tool         |
| d. Agent compares field-by-field | Template rules vs actual config         |
| e. Agent reports discrepancies   | Line numbers, expected/actual, severity |

**3. Aggregate Results from All Waves**

```
For each agent result:
  a. Extract discrepancy findings
  b. Normalize format:
     {
       file: "path/to/file",
       line: 42,
       field: "extends",
       expected: "@metasaver/eslint-config",
       actual: "eslint:recommended",
       severity: "critical" | "warning" | "info",
       agent: "eslint-agent",
       message: "Config extends incorrect base"
     }
  c. Add to master discrepancies array
```

**4. Sort by Severity**

```
Priority order:
  1. critical - Blocks compliance, must fix
  2. warning - Recommended fix, impacts quality
  3. info - Optional improvement, style preference

Within same severity: alphabetical by file path
```

**5. Generate Summary**

```json
{
  "total_files": 12,
  "total_discrepancies": 47,
  "by_severity": {
    "critical": 8,
    "warning": 24,
    "info": 15
  },
  "by_agent": {
    "eslint-agent": 12,
    "prettier-agent": 8,
    "typescript-agent": 15,
    "vite-agent": 12
  }
}
```

**6. Return Structured Output**

- Complete list of discrepancies for resolution phase
- Summary for user presentation
- NO CHANGES MADE - all read-only investigation

---

## Agent Invocation Pattern

**Parallel Wave Execution:**

```
Wave 1 (10 agents):
  Task 1: subagent_type="core-claude-plugin:config:eslint-agent"
    Prompt: "Audit .eslintrc.js in /path/to/repo against your template. Report discrepancies."

  Task 2: subagent_type="core-claude-plugin:config:prettier-agent"
    Prompt: "Audit .prettierrc in /path/to/repo against your template. Report discrepancies."

  ... (up to 10 parallel)

Wait for all Task 1-10 to complete, collect results

Wave 2 (remaining agents):
  ... repeat pattern
```

**Agent Instructions:**

Each config agent receives:

1. Target file path to audit
2. Repository context (type, location)
3. Instruction: "READ-ONLY audit - compare template to actual, report discrepancies"
4. Expected output format (JSON with discrepancies array)

---

## Severity Classification

| Severity | Criteria                               | Examples                                                                |
| -------- | -------------------------------------- | ----------------------------------------------------------------------- |
| critical | Breaks standards, blocks functionality | Missing required plugin, incorrect parser, wrong extends chain          |
| warning  | Impacts quality, recommended fix       | Suboptimal rule config, missing recommended plugin, style inconsistency |
| info     | Optional improvement                   | Comment formatting, property order, alternative valid config            |

**Agent Responsibility:** Each config agent determines severity based on template rules.

---

## Output Format

**Discrepancies Array:**

```json
[
  {
    "file": "packages/web/.eslintrc.js",
    "line": 3,
    "field": "extends",
    "expected": ["@metasaver/eslint-config"],
    "actual": ["eslint:recommended"],
    "severity": "critical",
    "agent": "eslint-agent",
    "message": "Config must extend @metasaver/eslint-config for standards compliance"
  },
  {
    "file": "packages/api/prettier.config.js",
    "line": 5,
    "field": "semi",
    "expected": false,
    "actual": true,
    "severity": "warning",
    "agent": "prettier-agent",
    "message": "Semicolons should be disabled per house style"
  }
]
```

**Summary Object:**

```json
{
  "total_files": 12,
  "total_discrepancies": 47,
  "by_severity": {
    "critical": 8,
    "warning": 24,
    "info": 15
  },
  "by_agent": {
    "eslint-agent": 12,
    "prettier-agent": 8,
    "typescript-agent": 15,
    "vite-agent": 12
  },
  "files_with_issues": [
    "packages/web/.eslintrc.js",
    "packages/api/prettier.config.js",
    "packages/web/tsconfig.json"
  ]
}
```

---

## Error Handling

| Scenario         | Action                                                          |
| ---------------- | --------------------------------------------------------------- |
| File not found   | Report as critical: "Missing required config file"              |
| Agent crashes    | Log error, continue with remaining agents, flag for user review |
| Template missing | Report as critical: "Agent template unavailable - cannot audit" |
| Parse error      | Report as critical: "Config file syntax invalid"                |
| No discrepancies | Return empty array for that file (success)                      |

**Graceful Degradation:** If some agents fail, continue with successful agents and report partial results.

---

## READ-ONLY Guarantee

**Critical Rules:**

1. NO Write tool calls - investigation only uses Read tool
2. NO Edit tool calls - no modifications to any files
3. NO file creation - only analyze existing files
4. NO template updates - templates are read-only reference
5. Agents report findings in memory only (JSON output)

**Verification:** Command should validate no file system changes occurred during investigation.

---

## Wave Management

**Why Waves?**

- Control parallelism (max 10 agents per wave prevents resource exhaustion)
- Sequential wave execution ensures results collected before next wave
- Enables progress tracking (wave 1/3 complete)

**Wave Size Optimization:**

| Total Agents | Waves | Agents per Wave   |
| ------------ | ----- | ----------------- |
| 1-10         | 1     | 1-10              |
| 11-20        | 2     | 10, remaining     |
| 21-30        | 3     | 10, 10, remaining |

**Example:**

```
Execution plan: 27 (agent, file) pairs

Wave 1: agents 1-10 (parallel)
Wave 2: agents 11-20 (parallel)
Wave 3: agents 21-27 (parallel)

Total execution time ≈ max(wave_durations)
```

---

## Integration with Other Skills

**Before This Skill:**

- `/skill requirements-phase` - gathers requirements
- `/skill planning-phase` - creates execution plan with waves
- `/skill hitl-approval` - user approves plan

**This Skill:**

- Executes investigation per approved plan
- Spawns config agents in waves
- Collects all discrepancies
- Sorts and aggregates results

**After This Skill:**

- `/skill audit-resolution` - presents findings to user for decisions
- User chooses: apply template, update template, ignore, or custom action

---

## Agent Routing Matrix

| Config Type         | Agent                | Template Location                                           |
| ------------------- | -------------------- | ----------------------------------------------------------- |
| .eslintrc.js        | eslint-agent         | skills/config/code-quality/eslint-config/templates/         |
| .prettierrc         | prettier-agent       | skills/config/code-quality/prettier-config/templates/       |
| tsconfig.json       | typescript-agent     | skills/config/workspace/typescript-configuration/templates/ |
| vitest.config.ts    | vitest-agent         | skills/config/build-tools/vitest-config/templates/          |
| tailwind.config.js  | tailwind-agent       | skills/config/workspace/tailwind-config/templates/          |
| pnpm-workspace.yaml | pnpm-workspace-agent | skills/config/build-tools/pnpm-workspace-config/templates/  |
| .editorconfig       | editorconfig-agent   | skills/config/code-quality/editorconfig-config/templates/   |

**Agent Discovery:** Planning phase maps files to agents using `/skill agent-check`.

---

## Example Execution

**Input:**

```json
{
  "execution_plan": {
    "waves": [
      [
        { "agent": "eslint-agent", "file": "packages/web/.eslintrc.js" },
        { "agent": "prettier-agent", "file": "packages/web/.prettierrc" },
        { "agent": "typescript-agent", "file": "packages/web/tsconfig.json" }
      ],
      [
        { "agent": "eslint-agent", "file": "packages/api/.eslintrc.js" },
        { "agent": "vitest-agent", "file": "packages/api/vitest.config.ts" }
      ]
    ]
  },
  "repoType": "consumer",
  "repos": ["/home/user/code/my-project"]
}
```

**Execution:**

```
Wave 1 (3 agents in parallel):
  → eslint-agent audits packages/web/.eslintrc.js
    Found 4 discrepancies (2 critical, 2 warning)

  → prettier-agent audits packages/web/.prettierrc
    Found 1 discrepancy (1 info)

  → typescript-agent audits packages/web/tsconfig.json
    Found 0 discrepancies

Wave 2 (2 agents in parallel):
  → eslint-agent audits packages/api/.eslintrc.js
    Found 3 discrepancies (1 critical, 2 warning)

  → vitest-agent audits packages/api/vitest.config.ts
    Found 2 discrepancies (2 warning)

Aggregate results: 10 total discrepancies
Sort by severity: 3 critical → 6 warning → 1 info
```

**Output:**

```json
{
  "discrepancies": [
    {
      "file": "packages/web/.eslintrc.js",
      "line": 3,
      "field": "extends",
      "expected": ["@metasaver/eslint-config"],
      "actual": ["eslint:recommended"],
      "severity": "critical",
      "agent": "eslint-agent",
      "message": "Config must extend @metasaver/eslint-config"
    }
    // ... 9 more discrepancies sorted by severity
  ],
  "summary": {
    "total_files": 5,
    "total_discrepancies": 10,
    "by_severity": {
      "critical": 3,
      "warning": 6,
      "info": 1
    },
    "by_agent": {
      "eslint-agent": 7,
      "prettier-agent": 1,
      "vitest-agent": 2
    }
  }
}
```

---

## Configuration

| Setting             | Value               | Rationale                                   |
| ------------------- | ------------------- | ------------------------------------------- |
| Max agents per wave | 10                  | Prevent resource exhaustion                 |
| Wave execution      | Sequential          | Ensure results collected before next wave   |
| Agents within wave  | Parallel            | Maximize throughput                         |
| File access         | Read-only           | Investigation phase - no changes            |
| Error handling      | Continue on failure | Collect partial results if some agents fail |

---

## Used By

- `/audit` command (Phase 5: Investigation)
- Called after planning-phase and hitl-approval
- Feeds results into audit-resolution for user decisions
audit-investigation | SkillHub