Skip to content

Commit a569449

Browse files
tae2089claude
andcommitted
Remove the four quality analyzers and their MCP surface
The project's purpose is annotation + graph + search for preserving code context, not code-quality metrics. The large-function, dead-code, coupling, and coverage analyzers were off-purpose, so drop them end to end: - delete internal/analysis/{largefunc,deadcode,coupling,coverage} - remove find_large_functions and find_dead_code MCP tools (28 -> 26) - drop the architecture_map prompt (community + coupling) and the coverage/dead-code/large-function sections from review_changes, onboard_developer, and pre_merge_check - remove the 4 analyzer Deps fields, DI wiring, and interface assertions - prune dead request DTOs and decoders in handler_analysis_io.go - update tests and guide/skill docs to match the reduced tool set Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 2e7c90e commit a569449

37 files changed

Lines changed: 33 additions & 2944 deletions

.claude/skills/ccg-analyze/SKILL.md

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,7 @@ Graph-based analysis for **change impact, call flow, dead code, module structure
1515
| "Trace call flow from this function" | `trace_flow` | If broken at interfaces, see workaround below |
1616
| "Who calls this function?" | `query_graph` (callers_of) | |
1717
| "What does this function call?" | `query_graph` (callees_of) | |
18-
| "Unused code" | `find_dead_code` | Interface methods may give false positives |
19-
| "Large functions" | `find_large_functions` | Refactoring candidates |
2018
| "Risk of this change" | `detect_changes` + `get_affected_flows` | git diff-based |
21-
| "Module structure" | `list_communities` + `get_architecture_overview` | First time on a codebase |
22-
| "Test coverage gaps" | `get_community` (with coverage) | |
2319

2420
## trace_flow Limitations & Workaround
2521

@@ -67,14 +63,9 @@ If results are huge, the change scope is likely too wide. Reconsider the change
6763
| --------------------------- | ---------------------------- |
6864
| `get_impact_radius` | BFS blast radius |
6965
| `trace_flow` | Call chain trace |
70-
| `find_large_functions` | Above line threshold |
71-
| `find_dead_code` | No callers |
7266
| `detect_changes` | Git diff risk score |
7367
| `get_affected_flows` | Flows affected by change |
7468
| `list_flows` | Stored flow list |
75-
| `list_communities` | Louvain module clusters |
76-
| `get_community` | Community details + coverage |
77-
| `get_architecture_overview` | Coupling summary |
7869

7970
For detailed parameters, see MCP schema.
8071

CLAUDE.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,16 @@ Follow the global prompt rules first. This file adds project-specific skill rout
66

77
## MCP 서버
88

9-
`.mcp.json`에 등록된 ccg MCP 서버가 29개 도구를 제공합니다:
9+
`.mcp.json`에 등록된 ccg MCP 서버가 26개 도구를 제공합니다:
1010

1111
- `parse_project`, `build_or_update_graph`, `run_postprocess`
12+
- `get_postprocess_policy`, `reset_postprocess_policy`
1213
- `get_node`, `search`, `query_graph`, `list_graph_stats`, `get_minimal_context`
13-
- `get_impact_radius`, `trace_flow`
14-
- `find_large_functions`, `find_dead_code`
14+
- `get_impact_radius`, `trace_flow`, `find_suspect_fallback_edges`
1515
- `detect_changes`, `get_affected_flows`, `list_flows`
16-
- `list_communities`, `get_community`, `get_architecture_overview`
1716
- `get_annotation`
18-
- `build_rag_index`, `get_rag_tree`, `get_doc_content`, `search_docs`
19-
- `upload_file`, `upload_files`, `list_workspaces`, `list_files`, `delete_file`, `delete_workspace`
17+
- `get_doc_content`, `search_docs`, `retrieve_docs`
18+
- `upload_file`, `upload_files`, `list_files`, `delete_file`, `list_namespaces`, `delete_namespace`
2019

2120
HTTP 모드 (`--transport streamable-http`)에서는 `/health``/webhook` 엔드포인트도 제공합니다.
2221
Webhook은 `--allow-repo` 플래그로 허용 리포지토리를 설정하면 활성화됩니다.
@@ -50,7 +49,7 @@ Graceful shutdown: SIGINT/SIGTERM 시 진행 중인 clone/build에 context cance
5049
상세 문서는 `guide/` 디렉토리를 참조하세요:
5150

5251
- [CLI Reference](guide/cli-reference.md) — 전체 명령어, 플래그, 설정 파일
53-
- [MCP Tools](guide/mcp-tools.md)29개 MCP 도구, Skills, AI-Driven Annotation
52+
- [MCP Tools](guide/mcp-tools.md)26개 MCP 도구, Skills, AI-Driven Annotation
5453
- [Annotations](guide/annotations.md) — 어노테이션 태그, 예시, 검색
5554
- [Webhook](guide/webhook.md) — Webhook sync, 브랜치 필터링, HMAC, graceful shutdown
5655
- [Docker](guide/docker.md) — Docker 빌드, MCP 서버, PostgreSQL 배포

guide/architecture.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,6 @@ queries.
5454
|--------|-------------|
5555
| `impact` | BFS blast-radius analysis |
5656
| `flows` | Call-chain flow tracing |
57-
| `deadcode` | Unused code detection |
58-
| `community` | Directory-based module communities |
59-
| `coupling` | Inter-module coupling analysis |
60-
| `coverage` | Test coverage analysis |
61-
| `largefunc` | Large function detection |
6257
| `changes` | Git diff risk scoring |
6358
| `query` | Graph queries (callers, callees, imports) |
6459
| `incremental` | Incremental update |

guide/cli-reference.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ CCG has two search surfaces with different jobs:
7474
|----------|----------------------|
7575
| Natural-language code understanding, module exploration, architecture questions | `ccg docs`, then MCP `retrieve_docs`, `get_rag_tree`, `get_doc_content` |
7676
| Exact symbol lookup, callers/callees, imports, bounded graph traversal | MCP `get_node`, `query_graph`, `get_minimal_context` |
77-
| Impact analysis, flow tracing, dead code, large functions | MCP analysis tools such as `get_impact_radius`, `trace_flow`, `find_dead_code`, `find_large_functions` |
77+
| Impact analysis, flow tracing | MCP analysis tools such as `get_impact_radius`, `trace_flow` |
7878
| Focused annotation/keyword candidate search | `ccg search` or MCP `search` |
7979

8080
For coding agents, the recommended natural-language path is:

guide/ko/architecture.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,6 @@ GORM ORM 기반 저장소입니다. SQLite 및 PostgreSQL과 호환됩니다.
5151
|--------|-------------|
5252
| `impact` | BFS 영향 범위 분석 |
5353
| `flows` | 호출 체인 흐름 추적 |
54-
| `deadcode` | 사용되지 않는 코드 감지 |
55-
| `community` | 디렉토리 기반 모듈 커뮤니티 분석 |
56-
| `coupling` | 모듈 간 결합도 분석 |
57-
| `coverage` | 테스트 커버리지 분석 |
58-
| `largefunc` | 대규모 함수 감지 |
5954
| `changes` | Git diff 리스크 점수 계산 |
6055
| `query` | 그래프 쿼리 (callers, callees, imports) |
6156
| `incremental` | 증분 업데이트 |

guide/ko/cli-reference.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ CCG에는 역할이 다른 두 검색 표면이 있습니다.
7676
|----------|-------------|
7777
| 자연어 기반 코드 이해, 모듈 탐색, 아키텍처 질문 | `ccg docs`, 이후 MCP `retrieve_docs`, `get_rag_tree`, `get_doc_content` |
7878
| 정확한 심볼 조회, caller/callee, import, bounded graph traversal | MCP `get_node`, `query_graph`, `get_minimal_context` |
79-
| 영향 분석, flow 추적, dead code, large function | `get_impact_radius`, `trace_flow`, `find_dead_code`, `find_large_functions` 같은 MCP 분석 도구 |
79+
| 영향 분석, flow 추적 | `get_impact_radius`, `trace_flow` 같은 MCP 분석 도구 |
8080
| 어노테이션/키워드 기반 후보 검색 | `ccg search` 또는 MCP `search` |
8181

8282
코딩 에이전트의 자연어 탐색에는 다음 흐름을 권장합니다.

guide/ko/mcp-tools.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,6 @@ CCG는 아직 Prometheus `/metrics` 엔드포인트를 제공하지 않습니다
6262
|------|-------------|
6363
| `get_impact_radius` | BFS 영향 범위(blast-radius) 분석 |
6464
| `trace_flow` | 호출 체인 흐름 추적 |
65-
| `find_large_functions` | 라인 제한을 초과하는 함수 찾기; `limit` 지원 |
66-
| `find_dead_code` | 사용되지 않는 코드 감지 |
6765
| `find_suspect_fallback_edges` | 의심스러운 fallback 호출 엣지 품질 리포트, 페이지네이션 지원 |
6866
| `detect_changes` | Git diff 리스크 점수 계산 |
6967
| `get_affected_flows` | 변경 사항의 영향을 받는 흐름 확인 |
@@ -93,9 +91,8 @@ CCG는 아직 Prometheus `/metrics` 엔드포인트를 제공하지 않습니다
9391
| `get_architecture_overview` | `community_limit`, `community_offset`, `coupling_limit`, `coupling_offset` | 커뮤니티와 결합도에 별도 페이지네이션 객체 포함 |
9492

9593
일부 분석 도구는 아직 내부적으로 전체 결과를 조회합니다. 큰 네임스페이스에서는
96-
`find_dead_code`, `find_suspect_fallback_edges`, 또는 광범위한 MCP prompt를
97-
호출하기 전에 입력 범위를 좁히십시오. `find_large_functions``limit`
98-
받지만 현재는 라인 기준 쿼리를 수행한 뒤 응답을 자릅니다.
94+
`find_suspect_fallback_edges` 또는 광범위한 MCP prompt를 호출하기 전에 입력
95+
범위를 좁히십시오.
9996

10097
### 어노테이션 및 문서화 (Annotation & Documentation)
10198

guide/ko/operations.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,8 @@
6868

6969
사용 전에 범위를 좁혀야 하는 고용량 표면:
7070

71-
- `find_dead_code`는 네임스페이스의 모든 미참조 노드를 반환할 수 있습니다.
7271
- `find_suspect_fallback_edges`는 모든 의심 fallback edge를 반환할 수 있습니다.
73-
- `find_large_functions``limit`을 받지만 현재 구현은 모든 매칭 함수를 찾은 뒤 응답을 자릅니다.
74-
- architecture/onboarding 같은 MCP prompt는 넓은 프로젝트 상태를 요약하므로 네임스페이스로 그래프를 좁힌 뒤 사용하는 것이 좋습니다.
72+
- onboarding 같은 MCP prompt는 넓은 프로젝트 상태를 요약하므로 네임스페이스로 그래프를 좁힌 뒤 사용하는 것이 좋습니다.
7573

7674
공유 서비스에서는 광범위한 분석 요청보다 경로 필터, 네임스페이스 분리,
7775
페이지네이션 도구를 우선하십시오. 예상보다 큰 도구 응답은 네임스페이스가 너무

guide/mcp-tools.md

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,6 @@ current machine-readable operational surfaces.
6969
|------|-------------|
7070
| `get_impact_radius` | BFS blast-radius analysis |
7171
| `trace_flow` | Call-chain flow tracing |
72-
| `find_large_functions` | Functions exceeding line threshold; supports `limit` |
73-
| `find_dead_code` | Unused code detection |
7472
| `find_suspect_fallback_edges` | Suspect fallback call-edge quality report with pagination |
7573
| `detect_changes` | Git diff risk scoring |
7674
| `get_affected_flows` | Flows affected by changes |
@@ -99,10 +97,8 @@ communities, members, or coupling pairs. Paginated responses include
9997
| `get_architecture_overview` | `community_limit`, `community_offset`, `coupling_limit`, `coupling_offset` | Response includes separate community and coupling pagination objects |
10098

10199
Some analysis tools still return full result sets internally. On large
102-
namespaces, prefer scoped inputs before calling `find_dead_code`,
103-
`find_suspect_fallback_edges`, or broad MCP prompts. `find_large_functions`
104-
accepts `limit`, but it currently performs the line-threshold query before
105-
truncating the response.
100+
namespaces, prefer scoped inputs before calling `find_suspect_fallback_edges`
101+
or broad MCP prompts.
106102

107103
### Annotation & Documentation
108104

guide/operations.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,8 @@ responses inspectable and reduces context pollution.
8080

8181
Known high-volume surfaces that should be scoped before use:
8282

83-
- `find_dead_code` can return every unreferenced node in a namespace.
8483
- `find_suspect_fallback_edges` can return every suspect fallback edge.
85-
- `find_large_functions` accepts `limit`, but the current implementation still
86-
finds all matching functions before truncating the response.
87-
- MCP prompts such as architecture and onboarding prompts summarize broad
84+
- MCP prompts such as onboarding prompts summarize broad
8885
project state and are best used after the graph has been scoped by namespace.
8986

9087
For shared services, prefer path filters, namespace splitting, and paginated

0 commit comments

Comments
 (0)