File size: 5,853 Bytes
6a1cba7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# STEM-BIO-AI ์ด์ค‘ ๊ฒ€์ˆ˜ ๋ณด๊ณ ์„œ

**๋‚ ์งœ:** 2026-05-11 | **๋ฒ„์ „:** v1.6.8 โ†’ v1.7.0 ๊ธฐ๋ก ๊ธฐ์ค€ | **์ƒํƒœ:** ํŒจ์น˜ ๋กœ๋“œ๋งต ํ™•์ • (2026-05-12)

---

## ๊ฒ€์ˆ˜ ๊ฒฐ๊ณผ ์š”์•ฝ

| ๊ฒ€์ˆ˜ ๋„๊ตฌ | ํŒ์ • | ํ•ต์‹ฌ ์ง€ํ‘œ |
|---|---|---|
| AI-SLOP-Detector v3.7.3 | **clean** (exit 0) | ๊ฒฐํ•จ ํŒŒ์ผ 4๊ฐœ / 97๊ฐœ, weighted deficit 19.38 |
| SIDRCE SaaS 1.1.15 | **REVIEW** (Grade A) | Omega 0.7883 (inspect) / 0.9945 (pipeline-insight) |

---

## AI-SLOP-Detector โ€” ๊ฒฐํ•จ ํŒŒ์ผ 4๊ฐœ

| ์ˆœ์œ„ | ํŒŒ์ผ | Score | ๋“ฑ๊ธ‰ | ํ•ต์‹ฌ ํŒจํ„ด |
|---|---|---|---|---|
| 1 | `stem_ai/detector_bio.py` | 72.12 | `critical_deficit` | 11-ํ•จ์ˆ˜ ํด๋ก  ํด๋Ÿฌ์Šคํ„ฐ, nested_complexity x4 |
| 2 | `stem_ai/detector_contract.py` | 63.93 | `inflated_signal` | nested_complexity x3 (์‹ ๊ทœ ์ž‘์„ฑ ํŒŒ์ผ) |
| 3 | `stem_ai/cli.py` | 43.45 | `suspicious` | `main` cc=14, print ํ•จ์ˆ˜ 5๊ฐœ ํด๋ก  |
| 4 | `stem_ai/advisory_contract.py` | 39.52 | `suspicious` | 8-ํ•จ์ˆ˜ ํด๋ก  ํด๋Ÿฌ์Šคํ„ฐ |

### CRITICAL ๋ฐœ๊ฒฌ ์ƒ์„ธ

#### detector_bio.py (score 72.12)
- `function_clone_cluster`: `_looks_like_smiles`, `_is_obviously_not_smiles`, `_smiles_context_permits`, `_is_strong_smiles_variable`, `_smiles_issues`, `_stmt_sets_mock_behavior` ๋“ฑ 11๊ฐœ ํ•จ์ˆ˜ AST JSD < 0.05
- `nested_complexity` x4:
  - `_collect_silent_mock_findings` (L260, depth=4, cc=14)
  - `_smiles_context_permits` (L513, depth=4, cc=13)
  - `_stmt_sets_mock_behavior` (L624, depth=5, cc=12)
  - `_run_trace_metadata` (L648, depth=5, cc=13)

#### detector_contract.py (score 63.93) โ€” ์‹ ๊ทœ ์ž‘์„ฑ ํŒŒ์ผ
- `_readme_claimed_names` (L137): **depth=8** โ€” ํ”„๋กœ์ ํŠธ ์ „์ฒด ์ตœ์•… ์ค‘์ฒฉ ๊นŠ์ด
- `_detect_clinical_zero_default` (L44): depth=4, cc=16
- `_extract_package_all` (L115): depth=5, cc=12

#### advisory_contract.py (score 39.52)
- `function_clone_cluster`: `cited_finding_ids`, `_prohibited_claims`, `_missing_citation_items`, `_validate_item_list`, `_offline_reviewer_notes`, `_offline_inspection_priorities` ๋“ฑ 8๊ฐœ ํด๋ก 

#### cli.py (score 43.45)
- `main` (L717): depth=5, cc=14
- `function_clone_cluster`: `_print_full_summary`, `_print_policy_simulate` ๋“ฑ print ํ•จ์ˆ˜ 5๊ฐœ

### ๊ณตํ†ต ํŒจํ„ด

| Pattern ID | Axis | Severity | ๊ฑด์ˆ˜ |
|---|---|---|---|
| `nested_complexity` | quality | CRITICAL | 10 |
| `function_clone_cluster` | structure | CRITICAL | 3 |
| `god_function` | style | high | 22 |
| `deep_nesting` | style | high | 8 |
| `phantom_import` | quality | medium | 2 (rdkit, detector_bio.py L826/L837) |
| `lint_escape` | quality | medium | 3 |

---

## SIDRCE SaaS โ€” ์ฐจ์›๋ณ„ ์ ์ˆ˜

| ์ฐจ์› | ๊ธฐํ˜ธ | ๊ฐ€์ค‘์น˜ | pipeline-insight ์ ์ˆ˜ |
|---|---|---|---|
| Integrity | Sigma | 0.30 | 0.9946 |
| Purity | Pi | 0.25 | 1.0000 |
| Stability | Delta | 0.25 | 1.0000 |
| Coherence | Gamma | 0.20 | 0.9806 |
| **Omega** | **Omega** | โ€” | **0.9945** |

- inspect ๋ชจ๋“œ Omega: 0.7883 (10ํŒŒ์ผ ์ƒ˜ํ”Œ, entropy avg 4.24bit โ†’ Delta ์–ต์ œ)
- pipeline-insight 97ํŒŒ์ผ ๊ธฐ์ค€ ์‹ค์งˆ ํ’ˆ์งˆ: 0.9945 (A+ ์ˆ˜์ค€)
- ๋ฆฌ์Šคํฌ ํŒŒ์ผ 1๊ฐœ: `tmp/backend_build/build_backend.py` (DDC=0.50, tmp ๊ฒฝ๋กœ)
- 24/30 ํŒŒ์ผ "inconsistent entropy" (๋ชจ๋“ˆ ์„ฑ๊ฒฉ ๋‹ค์–‘์„ฑ์œผ๋กœ ํŒ๋‹จ)
- `vulture` ๋ฏธ์„ค์น˜ โ€” dead code ์Šค์บ” ๋ฏธ์™„์„ฑ

---

## ๊ต์ฐจ ํ™•์ธ โ€” ๋‘ ๋„๊ตฌ ์ผ์น˜ ํ•ญ๋ชฉ

| ์ด์Šˆ | SLOP ํŒ์ • | SIDRCE ์˜ํ–ฅ |
|---|---|---|
| `detector_contract.py` ๊ตฌ์กฐ ๋ณต์žก๋„ | CRITICAL (depth=8) | Gamma ๊ฐ์‚ฐ ์š”์ธ |
| `detector_bio.py` ํด๋ก  ํด๋Ÿฌ์Šคํ„ฐ | CRITICAL | ์—”ํŠธ๋กœํ”ผ ํŒจํ„ด ์ด์ƒ |
| `tmp/` ๋””๋ ‰ํ† ๋ฆฌ ์˜ค์—ผ | 97โ†’35 ํŒŒ์ผ ๋ถ€ํ’€๋ฆผ | DDC ๋ฆฌ์Šคํฌ ํŒŒ์ผ ์›์ธ |

---

## v1.7.0 ์ดํ›„ ์ƒํƒœ

`detector_contract.py`๋Š” v1.7.0์—์„œ ์‹ ๊ทœ ์ž‘์„ฑ๋˜์–ด CC-1/CC-2/CC-3 ํƒ์ง€๊ฐ€ ๋™์ž‘ํ•˜์ง€๋งŒ, ๊ฒ€์ˆ˜์—์„œ ์ง€์ ๋œ **๊ตฌ์กฐ์  ๋ณต์žก๋„ ๋ฌธ์ œ๋Š” ๋ฏธํ•ด๊ฒฐ** ์ƒํƒœ๋กœ ๋‹ค์Œ ํŒจ์น˜์— ์ด๊ด€.

---

## ํŒจ์น˜ ๋กœ๋“œ๋งต

### v1.7.1 โ€” ๊ตฌ์กฐ ๋ถ€์ฑ„ 1์ฐจ ํ•ด์†Œ (P0) โ€” DONE 2026-05-12

**๋Œ€์ƒ: `stem_ai/detector_contract.py`** (commit 22af1f8)

| ํ•จ์ˆ˜ | ํ˜„ํ™ฉ | ์กฐ์น˜ | ๊ฒฐ๊ณผ |
|---|---|---|---|
| `_readme_claimed_names` | depth=8 | `_flush_code_block()` ํ—ฌํผ ์ถ”์ถœ | depth 8โ†’3 |
| `_detect_clinical_zero_default` | cc=16 | `_collect_candidate_pairs()` ์ถ”์ถœ | cc ~4 |
| `_extract_package_all` | depth=5, cc=12 | `_parse_all_assign()` ์ถ”์ถœ | depth 5โ†’2 |

**๋Œ€์ƒ: ์„ค์ •** `.slopconfig.yaml` ์‹ ๊ทœ โ€” `tmp/`, `build/`, `dist/` ์ œ์™ธ

137/137 tests pass

### v1.7.2 โ€” ํด๋ก  ํด๋Ÿฌ์Šคํ„ฐ ํ•ด์†Œ (P1)

**๋Œ€์ƒ: `stem_ai/detector_bio.py`**

| ์ด์Šˆ | ํ˜„ํ™ฉ | ์กฐ์น˜ |
|---|---|---|
| SMILES ํ•จ์ˆ˜ ํด๋ก  11๊ฐœ | AST JSD < 0.05 (๊ฑฐ์˜ ๋™์ผ) | `_SMILES_RULES: list[tuple[str, Callable]]` dispatch table๋กœ ํ†ตํ•ฉ, `_apply_smiles_rule()` ๋‹จ์ผ ์‹คํ–‰๊ธฐ |
| `nested_complexity` x4 | `_collect_silent_mock_findings` cc=14 ๋“ฑ | ์กฐ๊ฑด ๋ถ„๊ธฐ โ†’ ์ „๋žต ํ•จ์ˆ˜ ์ถ”์ถœ |

**๋Œ€์ƒ: `pyproject.toml`**

```toml
[project.optional-dependencies]
bio = ["rdkit>=2023.3"]
```
`rdkit` phantom import โ†’ optional dep ์„ ์–ธ + `try/except ImportError` ๊ฐ€๋“œ๋กœ ๊ต์ฒด

### v1.7.3 โ€” ์ฝ”๋“œ ์œ„์ƒ ์™„์„ฑ (P2)

| ํ•ญ๋ชฉ | ์กฐ์น˜ |
|---|---|
| `cli.py` `main` cc=14 | `_handle_scan_cmd()`, `_handle_policy_cmd()` ๋“ฑ ์„œ๋ธŒํ•ธ๋“ค๋Ÿฌ ์ถ”์ถœ |
| print ํ•จ์ˆ˜ 5๊ฐœ ํด๋ก  | `_print_section(title, rows)` ๊ณตํ†ต ๋ Œ๋”๋Ÿฌ ํ†ตํ•ฉ |
| `advisory_contract.py` 8-ํ•จ์ˆ˜ ํด๋ก  | ๊ณตํ†ต `_validate_list_field(key, items, rules)` ์ถ”์ถœ |
| `vulture` ์„ค์น˜ | `pip install vulture` + `scripts/dead_code_check.sh` ์ถ”๊ฐ€ |

---

## ๊ฒ€์ˆ˜ ๋„๊ตฌ ์žฌ์‹คํ–‰ ๊ธฐ์ค€

| ๋ฒ„์ „ | ๊ธฐ๋Œ€ ๋ชฉํ‘œ |
|---|---|
| v1.7.1 | `detector_contract.py` slop score โ‰ค 30 (ํ˜„ 63.93) |
| v1.7.2 | `detector_bio.py` slop score โ‰ค 35 (ํ˜„ 72.12) |
| v1.7.3 | SIDRCE Omega โ‰ฅ 0.85 in inspect ๋ชจ๋“œ (ํ˜„ 0.7883) |

---

*AI-SLOP-Detector v3.7.3 + SIDRCE SaaS 1.1.15 | Flamehaven Research | 2026-05-11*
*ํŒจ์น˜ ๋กœ๋“œ๋งต ํ™•์ •: 2026-05-12*