Hermex Output Review

← all cases

scan-human-all-sections

unchanged

Asserts — Every human section rendered at once, including details and patterns, which the default config leaves off.

Ran hermex scan --config configs/all-sections.config.ts in fixtures/ → exit 0, as asserted

Config fixtures/configs/all-sections.config.ts · Fixture fixtures (overview) · Case scan-human-all-sections (dossier)

Reproduce locally: pnpm run test:output -- --filter scan-human-all-sections

Config

fixtures/configs/all-sections.config.ts — resolved, as the loader sees it

{
  "excludes": [
    "**/node_modules/**",
    "**/dist/**",
    "**/build/**",
    "cases.ts",
    "configs/**",
    "registry/**",
    "repos/**"
  ],
  "versus": [
    {
      "name": "Design System Migration",
      "packages": [
        "@design-system/foundation",
        "@new-system/arc"
      ]
    },
    {
      "name": "Utility Library Migration",
      "packages": [
        "lodash",
        "es-toolkit"
      ]
    }
  ],
  "rules": {
    "no-files": [
      {
        "severity": "error",
        "patterns": [
          "jest.config.*",
          ".babelrc"
        ],
        "message": "Use vitest + Vite"
      }
    ],
    "no-packages": [
      {
        "severity": "error",
        "patterns": [
          "moment"
        ],
        "message": "Use date-fns or dayjs"
      }
    ],
    "require-files": [
      {
        "severity": "error",
        "patterns": [
          ".nvmrc"
        ]
      },
      {
        "severity": "warn",
        "patterns": [
          ".editorconfig"
        ]
      }
    ],
    "require-packages": [
      {
        "severity": "error",
        "patterns": [
          "typescript"
        ],
        "message": "TypeScript is required"
      }
    ],
    "require-scripts": [
      {
        "severity": "error",
        "patterns": [
          "build",
          "test"
        ],
        "message": "Required npm scripts"
      }
    ],
    "require-package-fields": [
      {
        "severity": "warn",
        "patterns": [
          "engines",
          "license"
        ]
      }
    ],
    "require-engine-version": {
      "severity": "warn",
      "range": ">=20",
      "message": "Minimum Node 20 required"
    }
  },
  "output": {
    "summary": "log",
    "packages": "table",
    "components": "table",
    "patterns": "table",
    "details": true,
    "versus": true,
    "rules": true
  }
}

Full output

stdout.txt
hermex v<version>
- Parsing lockfile...
✔ Found pnpm lockfile (supports: v5, v6, v9) - 7 packages
✔ Found 22 files
✔ Analysis complete! Analyzed 21/22 files

⚠ 1 file(s) failed to parse:
  broken/unparseable.tsx
      x Expression expected
   ,----
 1 | export const Broken = ( : : :;
   :                         ^
   `----


Caused by:
    Syntax Error


📦 Packages

┌───────────────────────────┬─────────┬──────────────┐
│ Package                   │ Version │ Flags        │
├───────────────────────────┼─────────┼──────────────┤
│ @design-system/foundation │ 2.5.3   │              │
├───────────────────────────┼─────────┼──────────────┤
│ react                     │ 18.3.1  │              │
├───────────────────────────┼─────────┼──────────────┤
│ react-dom                 │ 18.3.1  │              │
├───────────────────────────┼─────────┼──────────────┤
│ lodash                    │ 4.17.21 │              │
├───────────────────────────┼─────────┼──────────────┤
│ es-toolkit                │ 1.39.10 │              │
├───────────────────────────┼─────────┼──────────────┤
│ eslint                    │ N/A     │              │
├───────────────────────────┼─────────┼──────────────┤
│ moment                    │ 2.29.4  │ 🔴 forbidden │
└───────────────────────────┴─────────┴──────────────┘

⚖️ Versus

  Design System Migration
  ──────────────────────────────────────────────────
  @design-system/foundation  ██████████████████████████████ 100.0% (8 files, 33 renders)
  @new-system/arc            ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 0.0% (not found in this repo)

  Utility Library Migration
  ──────────────────────────────────────────────────
  lodash      ███████████████████████░░░░░░░ 75.0% (3 files)
  es-toolkit  ████████░░░░░░░░░░░░░░░░░░░░░░ 25.0% (1 file)


🔍 Rules

┌──────────────────┬──────────────────────────────────────────────────────┐
│ Rule             │ Description                                          │
├──────────────────┼──────────────────────────────────────────────────────┤
│ no-packages      │ 🔴 moment is forbidden — Use date-fns or dayjs       │
├──────────────────┼──────────────────────────────────────────────────────┤
│ require-packages │ 🔴 typescript not installed — TypeScript is required │
├──────────────────┼──────────────────────────────────────────────────────┤
│ require-files    │ 🔴 .nvmrc not found                                  │
├──────────────────┼──────────────────────────────────────────────────────┤
│ require-files    │ 🟡 .editorconfig not found                           │
└──────────────────┴──────────────────────────────────────────────────────┘

3 errors, 1 warning

📋 Details

  Total usage patterns: 291
  JSX Usage: 64
  Props Analyzed: 64
  Named Imports: 42
  Default Imports: 40
  Dynamic Imports: 20
  Object Mappings: 19
  Variable Assignments: 9
  Conditional Usage: 7
  Named Imports (aliased): 6
  Lazy Loading: 6
  Higher-Order Components: 5
  Namespace Imports: 4
  Destructuring: 2
  Array Mappings: 2
  Portal Usage: 1

⚛️ Components

┌─────────────────────┬───────────────────────────┬───────┐
│ Component           │ Package                   │ Count │
├─────────────────────┼───────────────────────────┼───────┤
│ Button              │ @design-system/foundation │ 6     │
├─────────────────────┼───────────────────────────┼───────┤
│ Input               │ @design-system/foundation │ 5     │
├─────────────────────┼───────────────────────────┼───────┤
│ Card                │ @design-system/foundation │ 4     │
├─────────────────────┼───────────────────────────┼───────┤
│ Typography          │ @design-system/foundation │ 4     │
├─────────────────────┼───────────────────────────┼───────┤
│ Suspense            │ react                     │ 3     │
├─────────────────────┼───────────────────────────┼───────┤
│ Icon                │ @design-system/foundation │ 1     │
├─────────────────────┼───────────────────────────┼───────┤
│ Modal               │ @design-system/foundation │ 1     │
├─────────────────────┼───────────────────────────┼───────┤
│ CaseChild           │ @design-system/foundation │ 1     │
├─────────────────────┼───────────────────────────┼───────┤
│ CaseCond            │ @design-system/foundation │ 1     │
├─────────────────────┼───────────────────────────┼───────┤
│ CaseMap             │ @design-system/foundation │ 1     │
├─────────────────────┼───────────────────────────┼───────┤
│ CaseVar             │ @design-system/foundation │ 1     │
├─────────────────────┼───────────────────────────┼───────┤
│ CaseReturn          │ @design-system/foundation │ 1     │
├─────────────────────┼───────────────────────────┼───────┤
│ Child               │ @design-system/foundation │ 1     │
├─────────────────────┼───────────────────────────┼───────┤
│ CaseAttr            │ @design-system/foundation │ 1     │
├─────────────────────┼───────────────────────────┼───────┤
│ CaseAttrSelfClosing │ @design-system/foundation │ 1     │
├─────────────────────┼───────────────────────────┼───────┤
│ CaseAttrCond        │ @design-system/foundation │ 1     │
├─────────────────────┼───────────────────────────┼───────┤
│ CaseAttrHost        │ @design-system/foundation │ 1     │
├─────────────────────┼───────────────────────────┼───────┤
│ CaseAttrFragment    │ @design-system/foundation │ 1     │
├─────────────────────┼───────────────────────────┼───────┤
│ CaseBoth            │ @design-system/foundation │ 1     │
└─────────────────────┴───────────────────────────┴───────┘

🧩 Code Patterns

┌─────────────────────────┬───────┐
│ Pattern                 │ Count │
├─────────────────────────┼───────┤
│ JSX Usage               │ 64    │
├─────────────────────────┼───────┤
│ Props Analyzed          │ 64    │
├─────────────────────────┼───────┤
│ Named Imports           │ 42    │
├─────────────────────────┼───────┤
│ Default Imports         │ 40    │
├─────────────────────────┼───────┤
│ Dynamic Imports         │ 20    │
├─────────────────────────┼───────┤
│ Object Mappings         │ 19    │
├─────────────────────────┼───────┤
│ Variable Assignments    │ 9     │
├─────────────────────────┼───────┤
│ Conditional Usage       │ 7     │
├─────────────────────────┼───────┤
│ Named Imports (aliased) │ 6     │
├─────────────────────────┼───────┤
│ Lazy Loading            │ 6     │
├─────────────────────────┼───────┤
│ Higher-Order Components │ 5     │
├─────────────────────────┼───────┤
│ Namespace Imports       │ 4     │
├─────────────────────────┼───────┤
│ Destructuring           │ 2     │
├─────────────────────────┼───────┤
│ Array Mappings          │ 2     │
├─────────────────────────┼───────┤
│ Portal Usage            │ 1     │
└─────────────────────────┴───────┘

Total: 291 patterns detected

📊 Summary

┌─────────────────────┬───────┐
│ Metric              │ Count │
├─────────────────────┼───────┤
│ Files Analyzed      │ 21    │
├─────────────────────┼───────┤
│ Packages            │ 7     │
├─────────────────────┼───────┤
│ External Components │ 19    │
├─────────────────────┼───────┤
│ Total Usages        │ 36    │
└─────────────────────┴───────┘
stderr.txt