# Score Report Format

The skill emits a markdown report with the four dimensions side-by-side. There is **no overall / aggregate score** — each dimension stands on its own.

## Top-level

```markdown
# erp-kit Evaluation

> Evaluated on YYYY-MM-DD against erp-kit <LATEST_VERSION>. Installed: <INSTALLED_VERSION>.

## Summary

| Dimension | Result | Findings |
| --------- | ------ | -------- |
| Template sync | 72/100 | 1 error, 2 warnings |
| Repo structure | violations | 3 (1 error, 2 warnings) |
| Implementation thinness | 81/100 | 4 warnings |
| Version alignment | violations | 2 (1 error, 1 warning) |
```

The `Result` column shows:

- **Template sync / Implementation thinness**: `<score>/100` (continuous)
- **Repo structure / Version alignment**: `ok` or `violations` (binary)

## Per-dimension sections

### Continuous dimensions (templates / thinness)

```markdown
## Template sync — 72/100

<one-line summary>

<findings, ordered by severity: error → warning → info>
- ❌ <error finding>
- ⚠ <warning finding>
- · <info finding>
```

### Binary dimensions (structure / versions)

```markdown
## Repo structure — violations (3)

<one-line summary>

- ❌ <error finding>
- ⚠ <warning finding>
```

When `ok`:

```markdown
## Repo structure — ok

All filesystem conventions satisfied. No violations.
```

## Per-finding format

Each finding is one line, formatted as:

```
<glyph> <subject path or item>: <one-sentence explanation>
```

The glyph maps to severity:

| Severity | Glyph |
| -------- | ----- |
| error | ❌ |
| warning | ⚠ |
| info | · |

Examples:

```
❌ .github/workflows/erp-kit-check.yml: 12 行 drift, looks like an update was missed
⚠ modules/sales/helpers.ts: fails ls-lint pattern for module root
· apps/x/backend/src/resolver/createOrder.ts: 145 LoC — within ideal range
```

## Final closing line

After all sections, end with a one-line summary of what was evaluated. Examples:

- `erp-kit evaluation complete: 4 dimensions evaluated.`
- `erp-kit evaluation complete: 3 dimensions evaluated, 1 unavailable (tool missing).`

There is no aggregate score in the closing line either.

## JSON sidecar (optional)

If the user passes a `--json` flag (or the skill is invoked programmatically), also emit the raw structure:

```json
{
  "dimensions": {
    "templates": {
      "score": 72,
      "findings": [
        { "severity": "warning", "message": "..." }
      ]
    },
    "structure": {
      "status": "violations",
      "violationCount": 3,
      "findings": [
        { "severity": "error", "message": "..." }
      ]
    },
    "thinness": {
      "score": 81,
      "findings": [
        { "severity": "warning", "message": "..." }
      ]
    },
    "versions": {
      "status": "violations",
      "violationCount": 2,
      "findings": [
        { "severity": "error", "message": "..." }
      ]
    }
  }
}
```

This lets the result feed into other tools (CI dashboards, follow-up skills) without re-parsing markdown. Note: there is no `overall` key and no `weights` key — the dimensions are read independently.
