Metric sets

JAM Lite / Full

jam-lite는 JAM 단독 측정, jam-full은 test-cli와 security-cli를 호출해 프로덕션 게이트용 합성 점수를 만듭니다.

경계

jam-lite

이 저장소의 jam 바이너리만 사용합니다. 구조, 크기, 복잡도, 중복, 명백한 보안 패턴, 리소스, 위생 지표를 오프라인 정적 스캔으로 계산합니다.

jam-full

test-clisecurity-cli의 표준 JSON을 읽어 test/security 점수를 합성합니다. 외부 도구가 없거나 리포트가 깨지면 infrastructure failure로 분류합니다.

실행

commandslite/full
jam lite . --json --sarif --strict --out reports/jam
jam full . --out reports/jam-full
jam full . --component security --out reports/jam-security
jam full . --component test --out reports/jam-test
jam full . --skip-test --security-profile release --out reports/release

도구 탐색 순서

  1. 명령행 플래그: --test-cli, --security-cli
  2. PATHtest-cli, security-cli
  3. 개발 fallback: ~/git/test-cli, ~/git/security-cli, ~/git/cli/security-cli

합성 점수

실행effective weight용도
기본 fulllite 0.50, test 0.25, security 0.25프로덕션 준비도 종합 판단
--component securitylite 0.667, security 0.333테스트 증적 없이 보안만 추가
--component testlite 0.667, test 0.333보안 도구 없이 테스트만 추가

하위 지표

jam-full은 외부 CLI의 원본 JSON을 다시 복사하지 않고, 합성 점수에 사용한 해석 결과를 components[].metrics로 기록합니다. 제공되지 않은 신호는 not_assessed로 표시하고 내부 가중치에서 제외합니다.

컴포넌트지표목적가중치
testTEST-PASS실행 테스트 통과율0.25
testTEST-LINE-COV라인 커버리지0.20
testTEST-BRANCH-COV분기 커버리지0.12
testTEST-EVIDENCEsuite/file 증거 강도0.10
testTEST-COV-TAIL저커버리지 파일 tail0.08
testTEST-DENSITYcoverable KLOC 대비 테스트 수0.12
testTEST-SOURCE-COVcoverage 대상의 소스 파일 비율0.10
testTEST-SKIP-RISKskipped test 비율0.02
testTEST-DURATION-TAIL느린 테스트 p950.01
securitySEC-SEVERITYcritical/high/medium 부담0.25
securitySEC-POLICYCI policy 실패/경고0.18
securitySEC-CATEGORYsecret/SCA/IaC 등 카테고리 위험0.12
securitySEC-FIXABILITY취약 패키지 fixed version 비율0.10
securitySEC-SUPPRESSIONsuppression 남용 신호0.05
securitySEC-TOOLCHAIN스캐너/DB 상태0.12
securitySEC-CVSS최대 CVSS 점수0.10
securitySEC-CWE고위험 CWE 태그0.08

실패 분류

status=failed는 품질 게이트 실패라 exit 1입니다. status=error는 측정 인프라 실패라 exit 4입니다. reason은 자동 분류와 대시보드 집계를 위해 JSON에 기록됩니다.

reason의미status
no_test_evidence테스트/커버리지 증적이 없음failed
quality_gate테스트 실패 또는 에러failed
security_policysecurity-cli 정책 실패failed
tool_unavailable외부 CLI를 찾을 수 없음error
remote_rate_limitSCA 원격 저장소 rate limiterror
report_invalid리포트 JSON 파싱 실패error

상세 문서