← 목록
기타 2026-04-14 4KB 읽기 4분

CrownyForge 품질 지표 + 의존성 + 릴리즈 + 트렌드

개요

CrownyForge(fab.crowny.org, 포트 8200)에 코드 품질 지표, 의존성 그래프, 릴리즈 관리, 트렌드 스냅샷을 추가하고 대시보드를 전면 리라이트했다. 모든 신규 셀이 core(7731)로 흘러들어간다 — fab 510셀 / core 679셀.

무엇을 했는지

1. DB 스키마 확장 (forge/db.py)

  • releases — 리포별 태그/제목/작성자/시각
  • dependencies — source→target 엣지 + 타입 + 컨텍스트
  • trend_snapshots — 메트릭별 시계열 (repo_id, metric, value, created_at)

2. 신규 메소드

  • code_quality() — 리뷰 커버리지 35% + CI 안정성 25% + 엄격도 20% + 해결시간 20% 가중 점수
  • trend_deltas(metric) — 현재 vs 1일전 비교, up/down/flat
  • dependency_graph() — 노드+엣지 반환
  • save_release() / list_releases()
  • add_dependency() / list_dependencies()
  • save_trend() / get_trends() / take_trend_snapshot()

3. API 엔드포인트

  • GET/POST /api/deps — 의존성 그래프 + 추가
  • GET/POST /api/repos/{id}/releases — 릴리즈 CRUD
  • GET /api/trends — 시계열 조회
  • POST /api/trends/snapshot — 스냅샷 생성
  • GET /api/trends/deltas — 델타 계산
  • GET /api/stats/quality — 품질 지표

4. Cross-ref 자동 감지

이슈/PR 생성 시 _detect_cross_refs()가 본문에서 다른 리포 이름을 스캔해 의존성 엣지 자동 생성. 예: "crownyc로 컴파일" → source→crownyc reference 엣지.

5. 시드 데이터

  • 7개 릴리즈 (crownycell-factory v0.3.0, crownyc v10.0.0 등)
  • 5개 의존성 엣지 (factory→crownyc imports, factory→gateway deploys 등)
  • 첫 트렌드 스냅샷

6. 대시보드 리라이트 (forge/web/index.html)

  • 사이드바 네비게이션 (Dashboard/Repos/Reviews/Activity/Webhooks)
  • KPI 4장 (Repos/Issues/PRs/Core Sync)
  • Repo Health 게이지 (SVG 링, 점수별 색)
  • Review Pipeline (승인율·턴어라운드·리뷰어별 배지)
  • Contributors 리더보드
  • Activity Feed (상대시간)
  • Code Quality 카드 (리포별 막대 + 메트릭)
  • Dependency Graph 카드 (source→target 엣지 + 타입 배지)
  • Health Trend 스파크라인 (SVG polyline, 상승/하락 색)
  • Recent Releases 카드
  • sparkline() 헬퍼 함수

7. user/cells 확장

신규 셀 타입: release (7), dependency (5), dependency-graph (1), code-quality (5), trend-delta (누적 후).

8. 한선씨 동반 파일 (forge/server.한선)

316줄 → 470줄. 3함수 추가:
  • 코드품질() — py 메소드 1:1 매핑
  • 트렌드델타() — 방향 계산
  • 교차참조검출() — cross-ref 감지
컴파일 OK (238KB toau, 8394 큐브). 학습DB "코드품질" 패턴 등록.

관련 파일

  • /Users/ef/Downloads/crownycell-factory/forge/db.py — 스키마 + 메소드
  • /Users/ef/Downloads/crownycell-factory/forge/server.py — 엔드포인트 + 시드 + cross-ref + user/cells
  • /Users/ef/Downloads/crownycell-factory/forge/server.한선 — 동반 파일
  • /Users/ef/Downloads/crownycell-factory/forge/web/index.html — 대시보드 (21KB→26KB)

잔여 이슈

  • 트렌드 델타: 스냅샷이 1일 이상 누적돼야 델타가 생성됨. 크론으로 매일 POST /api/trends/snapshot 호출 필요.
  • 의존성 자동 감지: 현재 단순 substring 매칭. 더 정확한 검출을 위해 <org>/<repo> 패턴만 매칭하도록 개선 여지.
  • 품질 점수 튜닝: 가중치 35/25/20/20이 임의값. 실사용 데이터로 조정 필요.
  • 스파크라인 데이터: 2개 이상 스냅샷 필요. 현재 10개 누적됨(health 메트릭).
  • 릴리즈 UI: CRUD 인풋 폼 없음. 현재는 API로만 생성 가능.