Skip to content
Back to skills

Tachi Risk Scoring

ASecurity

Domain knowledge for quantitative risk scoring — four-dimensional scoring model (CVSS 3.1, exploitability, scalability, reachability), CVSS base vector mappings, composite score formulas, severity band thresholds, and governance field derivation rules. Consumed by the risk-scorer agent during scoring pipeline execution.

  • 4 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 12, 2026
securityrustgo

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 12, 2026

npx -y skills add aibot88/sec_skill_store --skill tachi-risk-scoring --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Tachi Risk Scoring?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Tachi Risk Scoring
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aibot88-tachi-risk-scoring/badge)](https://www.skillsdirectory.com/skills/aibot88-tachi-risk-scoring)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: tachi-risk-scoring
description: "Domain knowledge for quantitative risk scoring — four-dimensional scoring model (CVSS 3.1, exploitability, scalability, reachability), CVSS base vector mappings, composite score formulas, severity band thresholds, and governance field derivation rules. Consumed by the risk-scorer agent during scoring pipeline execution."
---

# tachi-risk-scoring

Quantitative risk scoring domain knowledge extracted from the tachi risk-scorer agent. This skill provides the reference tables, formulas, and assessment criteria that the risk-scorer uses to transform qualitative threat findings into data-backed risk scores.

## Domain Overview

The risk scoring model assesses each threat finding on four dimensions:

1. **CVSS 3.1 Base Score** (weight: 0.35) -- Inherent vulnerability severity using standard CVSS 3.1 vector analysis, with AI-specific refinements for agentic and LLM threat categories
2. **Exploitability** (weight: 0.30) -- Practical attack feasibility across four sub-dimensions: known techniques, attack complexity, tooling availability, and skill level
3. **Scalability** (weight: 0.15) -- Blast radius and operational economics across four sub-dimensions: scriptability, target scope, resource requirements, and detection difficulty
4. **Reachability** (weight: 0.20) -- Architecture-aware attack surface exposure derived from trust zone position, zone name analysis, and architecture barrier adjustments

Dimensional scores combine into a weighted composite score (0.0-10.0), which maps to a severity band (Critical/High/Medium/Low) that drives governance fields (SLA, disposition, review date).

## AIVSS Relationship

Tachi's four-dimensional composite scoring model **diverges** from OWASP AIVSS at the present time. AIVSS v0.8 (the latest published version, with its public review period opening 2026-04-16) builds on CVSS v4.0 and uses an amplification model in which 10 Agentic AI Risk Factors uplift the CVSS baseline up to a 10.0 ceiling, then a mitigation factor scales the result. Tachi uses CVSS 3.1 and a weighted-sum composite across four operational dimensions (CVSS, Exploitability, Reachability, Scalability). The two formulas produce measurably different scores on the same finding — see [ADR-024](../../../docs/architecture/02_ADRs/ADR-024-owasp-aivss-evaluation.md) for the three-surface comparison (dimensions, formula, severity bands), the worked examples that quantify the divergence, and the re-evaluation trigger tied to AIVSS reaching stable v1.0 with at least one external adopter case study. Severity bands are aligned (Surface C overlap), so downstream consumers (governance, SLA, color coding) behave identically across the two frameworks' outputs.

## Baseline-Aware Scoring Rules

### Score Inheritance

When a finding has `delta_status: UNCHANGED`, all scoring fields are inherited verbatim from the baseline run:

| Field | Treatment | Rationale |
|-------|-----------|-----------|
| `cvss_base` | Copy verbatim | Zero drift guarantee |
| `cvss_vector` | Copy verbatim | Audit consistency |
| `exploitability` | Copy verbatim | Assessment unchanged |
| `scalability` | Copy verbatim | Assessment unchanged |
| `reachability` | Copy verbatim | Architecture unchanged |
| `composite_score` | Copy verbatim | Derived from unchanged inputs |
| `severity_band` | Copy verbatim | Derived from unchanged composite |

**When to inherit**: Only when `delta_status` is `UNCHANGED`. The finding's component, threat, likelihood, and impact must all match the baseline exactly.

**When NOT to inherit**: `UPDATED` findings are re-scored fresh using the full 4-dimensional model. `NEW` findings are scored fresh. `RESOLVED` findings retain last-known scores but are not actively scored.

### Score Source Field

Every scored finding includes `score_source` (per `schemas/risk-scoring.yaml` v1.1):

- `"inherited"` — Scores copied from baseline (UNCHANGED, RESOLVED)
- `"fresh"` — Scores computed this run (NEW, UPDATED)

### Bounded Scoring for NEW Findings

When scoring `NEW` findings from Phase 2 isolated discovery, the CVSS base score is constrained within ±1.0 of the category default. This prevents score drift from LLM non-determinism while still allowing meaningful differentiation between findings in the same category.

**Formula**: `clamped_score = clamp(assessed_score, category_default - 1.0, category_default + 1.0)`, where `clamp(v, min, max)` returns `min` if `v < min`, `max` if `v > max`, and `v` otherwise. The outer bounds are always [0.0, 10.0].

**Applicability**:

| Delta Status | Bounding Applied? | Rationale |
|-------------|-------------------|-----------|
| `NEW` | Yes | No established context — bound to category default to prevent outlier scores |
| `UPDATED` | No | Re-scored fresh with full context — established finding with history |
| `UNCHANGED` | No | Scores inherited verbatim — no scoring occurs |
| `RESOLVED` | No | Scores retained from baseline — no scoring occurs |

**Edge cases at CVSS extremes**:
- Category default 9.5 → bounded range 8.5–10.0 (CVSS ceiling caps upper bound)
- Category default 1.0 → bounded range 0.0–2.0 (CVSS floor caps lower bound)
- Category default 0.5 → bounded range 0.0–1.5 (floor applies)

**When no baseline is present**: Bounding does not apply. All findings are scored without constraints using the standard 4-dimensional model.

### First Run Behavior

When no baseline is present, all findings receive `score_source: "fresh"` and are scored using the standard 4-dimensional model. No behavioral change from pre-baseline pipeline.

### Governance Field Persistence

When scoring findings with `delta_status` from a baseline-aware run, governance fields follow carry-forward rules to preserve human-assigned values across pipeline runs.

**Core principle**: `risk_owner` is a human-assigned field and is **never** auto-overwritten by the scoring pipeline. SLA and disposition are only recalculated when the severity band changes.

**Carry-forward by delta status**:

| Delta Status | risk_owner | remediation_sla | risk_disposition | review_date |
|-------------|-----------|-----------------|-----------------|-------------|
| `UNCHANGED` | Preserve from baseline | Preserve from baseline | Preserve from baseline | Preserve from baseline |
| `UPDATED` (same band) | Preserve from baseline | Preserve from baseline | Preserve from baseline | Preserve from baseline |
| `UPDATED` (band changed) | Preserve from baseline | Recalculate per new band | Recalculate per new band | Today + new SLA |
| `NEW` | `"Unassigned"` | Per severity mapping | Per severity mapping | Today + SLA |
| `RESOLVED` | Preserve from baseline | Preserve from baseline | Preserve from baseline | Preserve from baseline |

**SLA recalculation trigger**: Compare the baseline severity band to the current severity band. If different, recalculate `remediation_sla` and `review_date` using the new band's mappings. The `risk_disposition` threshold is: Critical/High → `"Mitigate"`, Medium/Low → `"Review"`.

**Baseline governance detection**: Parse the baseline `risk-scores.md` governance fields by matching on finding ID. If baseline `risk-scores.md` is unavailable, assign fresh governance fields for all findings (graceful degradation).

## Loading Table

Reference files are loaded on-demand by the risk-scorer agent at specific workflow phases using the Read tool (per ADR-002).

| Reference | File | Load When |
|-----------|------|-----------|
| Scoring Dimensions | `references/scoring-dimensions.md` | Entering exploitability or scalability assessment phases (Sections 4-5) |
| CVSS Vectors | `references/cvss-vectors.md` | Entering CVSS 3.1 base scoring phase (Section 3) |
| Severity Bands | `references/severity-bands.md` | Entering composite calculation or governance field generation phases (Sections 7-8) |
| Trust Zones | `references/trust-zones.md` | Entering trust zone extraction phase (Section 2) |
| Reachability Analysis | `references/reachability-analysis.md` | Entering reachability assessment phase (Section 6) |
| Output Formatting | `references/output-formatting.md` | Entering markdown output generation phase (Section 9) |

Files in this skill

  • SKILL.md8 KB
  • source.json845 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.