๐ T-FIX-SOM-RACE โ DevLog v1.0
ํต์ฌ ์์ฝ
# ๐ T-FIX-SOM-RACE โ DevLog
> Status: โ DONE โ โณ VERIFIED ๋๊ธฐ (์ฌ์ฉ์ ๋ค์ SoM ํธ์ถ์์ E2E ๊ฒ์ฆ)
> ์์: 2026-05-14 19:00 KST (์ผ๋์ ๋ถ์ ์ค ๋ฐ๊ฒฌ)
> ์๋ฃ: 2026-05-14 21:10 KST
> ์์: ~2์๊ฐ 10๋ถ (์กฐ์ฌ 30๋ถ + G1 30๋ถ + ๊ตฌํ 1์๊ฐ + ๋ฐฑํ 10๋ถ)
> ๊ด๋ จ ํ์ค: STD-SOM-FLOW v1.0 ยง2.1 SSOT ์ฒ๋ฐฉ, T-PATCH-SOM-V10 ํ์
๋ฌธ์
Pipeline Orchestrator (SXdgnGyUFMAP9oTB) ๋
ธ๋ 14 ๐ SoM Summary ์ง๊ณ ๊ฐ v10 Main(GPdC7tIQBraa0mae) SubWF์ 4๊ฐ LLM INSERT ์๋ฃ ์ด์ ์ ์คํ๋๋ race condition.
์์ธ: // v1.6: ๋๊ธฐ ๋ฃจํ ์ ๊ฑฐ (AP-09 60์ด ์ ํ ์ค์), ๋จ์ผ ์กฐํ๋ก ๋ณ๊ฒฝ โ AP-09 ํํผํ๋ ค๊ณ polling ์ ๊ฑฐ โ executeWorkflow๊ฐ return๋์ด๋ 4 LLM SubWF์ raw INSERT๋ ์งํ ์ค.
์ฆ๊ฑฐ (์ผ๋์ ํด์ธ run_id 672):
- Summary ์ง๊ณ: 06:33:07.580 (raw 18/48๋ง ๋ค์ด์ ์์)
- Perplexity own_brand_mentioned=true INSERT: 06:33:13 (+5.6s, ๋๋ฝ)
- Gemini own_brand_mentioned=true INSERT: 06:33:36 (+28.7s, ๋๋ฝ)
- ๋ง์ง๋ง INSERT: 06:34:47 (+99.8s)
์ํฅ (30์ผ):
- 90 runs ์ค 72๊ฑด(82.8%) race ์ํฅ
- ๋๋ฝ rows 4,622 / ๋๋ฝ mentioned 1,060
- ํ๊ท ๋ฐ์ดํฐ ์์ค๋ฅ 57%
์ฒ๋ฐฉ (์ต์ B โ ๋ณ Sub-WF + polling)
1. ์ ๊ท Sub-WF ์์ฑ: ๐ข [Phase2-Premium-3] SoM Summary Aggregator v1
- WF ID:
jUrOYZhRwiwjouuM - ๋งํฌ: https://bawee.app.n8n.cloud/workflow/jUrOYZhRwiwjouuM
- ๋ ธ๋ ์: 16
- ๊ณจ๋ ํจํด ํฉ์น:
- Pattern I-C (Config Loader Sub-WF) โ ioeCnRVbsFsohwv7 ํธ์ถ
- AP-08 (ํค Iํจํด), AP-02 (Code fetch ๊ธ์ง โ HTTP Request), AP-09 ํํผ
- AP-16 (Switch/If ๊ธฐ์กด ๊ตฌ์กฐ ๋ณต์ฌ โ v10 Main์ Wait/Poll ํจํด)
- SKILL.md B2 (๋ช
์์ _done flag โ Compute State Code ๋
ธ๋)
- SKILL.md $input.all() ํจํด (HTTP Request ๋ฐฐ์ด ์๋ต ์ฒ๋ฆฌ)
- B5 __rl:true ํ๋๊ทธ
Polling ์ข ๋ฃ ์กฐ๊ฑด (3์ค ์์ ๋ง)
| ์กฐ๊ฑด | ์๋ฏธ |
|---|---|
count >= query_count ร 4 | ์ ์ ์๋ฃ (๋ชจ๋ LLM raw ๋์ฐฉ) |
| ๋ง์ง๋ง INSERT ํ 5์ด ์ ์ฒด | early exit (๋๊ธฐํด๋ ๋ ์ ์ด) |
| 40 iter ร 3s = 120s hard timeout | ๋น์ ์ข ๋ฃ + warning ๋ช ์ |
2. Pipeline Orchestrator ์์
- ๋
ธ๋ 14
๐ SoM Summary ์ง๊ณ(Code, 5,381์ jsCode) โ๐ค Premium-3 SoM Aggregator(executeWorkflow) ๊ต์ฒด - workflowId:
{value: "jUrOYZhRwiwjouuM", __rl: true}, waitForSubWorkflow: true - onError: continueErrorOutput (๊ธฐ์กด ํจํด ์ ์ง)
- connections ๊ทธ๋๋ก ๋ณด์กด:
- Premium-2 SoM Benchmark โ Premium-3
- Premium-3.main[0] (์ฑ๊ณต) โ Premium-4 Competitor
- Premium-3.main[1] (์๋ฌ) โ ๐ข Summary ์คํจ Alert (Telegram)
- ๋ฐฑ์
:
/home/claude/orchestrator_BEFORE_t-fix-som-race.json(74,585 bytes)
3. ๋ฐฑํ (30์ผ race ์ํฅ 70 rows ์ผ๊ด ๊ฐฑ์ )
- ๋ฐฑ์
ํ
์ด๋ธ:
_backup_som_summary_race_fix_20260514(90 rows) - ๊ฐฑ์ ์ปฌ๋ผ:
total_responses,total_queries,overall_som,first_mention_rate,som_by_llm - ๊ฒ์ฆ: 30์ผ 90 runs ์ค race ์ํฅ 0๊ฑด (๋ฐฑํ ์ 72๊ฑด โ 0๊ฑด)
๋ฐ์ดํฐ ์ํฅ โ ์ผ๋์ ์ผ์ด์ค ์ฌํ ๊ฒ์ฆ
๊ตญ๋ด nol.yanolja.com (run_id 671)
| ์งํ | ๋ฐฑํ ์ | ๋ฐฑํ ํ | ๋น๊ณ |
|---|---|---|---|
| total_responses | 22 (race 19/48) | 48 | 100% ์ ํ |
| overall_som | 75.0% | 83.33% | +8.3%p |
| OpenAI | 33.3% | 58.3% | โญ ๊นํ์ง ๋ฉ์ผ ์์น ์ผ์น |
| Gemini / Anthropic / Perplexity | 100% / 85.7% / 100% | 91.7% / 91.7% / 91.7% | ์ ์ ์ ํ |
โ ๊นํ์ง ์ฃผ์ 5/13 ๋ฉ์ผ์ ChatGPT 58.3% ์์น๊ฐ ์ ๋ต. ํ๋ฉด ํ์(DB summary 75%)๊ฐ race๋ก ์๋ชป๋ ๊ฐ์ด์๊ณ , ๋ฉ์ผ์ raw์์ ์ง์ ์ฌ์ง๊ณํ ์ ํํ ๊ฐ ์ฌ์ฉ.
ํด์ธ world.nol.com (run_id 672)
| ์งํ | ๋ฐฑํ ์ | ๋ฐฑํ ํ |
|---|---|---|
| total_responses | 18 | 48 |
| overall_som | 0.00% | 4.17% |
| Gemini | 0/4 = 0% | 1/12 = 8.3% |
| Perplexity | 0/3 = 0% | 1/12 = 8.3% |
โ ๊นํ์ง ํด์ธ ๋ณด๊ณ ์์ SoM 0%ยท์ธ๊ธ๋ฅ 4.3% ํ๊ธฐ ์ ํ.
๊ฒ์ฆ (AP-17)
SYS-011
| ์์ฐ | critical | warning | info | ์ ๊ท ์๋ฐ |
|---|---|---|---|---|
| Premium-3 Aggregator | 0 | 2 (N1/N7 ์๋ฆฌ์ฆ ํ์ค) | 2 (N2 false positive) | 0๊ฑด |
| Pipeline Orchestrator | 0 | 1 (N7 ๋ณ๊ฒฝ ์ ๊ณผ ๋์ผ) | 1 (N6 ๋ณ๊ฒฝ ์ ๊ณผ ๋์ผ) | 0๊ฑด |
E2E
- ๋จ๋ webhook ํ ์คํธ (run_id 672 ์ฌ์ง๊ณ): ์๋ต 4.07์ด, 1 iter ์ข ๋ฃ, race ํด๊ฒฐ ์ ์ฆ โ
- ์ค ์ด์ E2E: ๋ค์ ์ฌ์ฉ์ SoM ํธ์ถ์์ ์๋ ๊ฒ์ฆ ์์ (testbed ์ต์ โก ์ฑํ)
๋ถ์ ํ์ต (skill_creator ํ๋ณด)
- Set ๋
ธ๋ expression์
?.optional chaining ํ๊ณ โ Code ๋ ธ๋๋ก ๊ต์ฒด - HTTP Request ๋ฐฐ์ด ์๋ต ๋ถ๋ฆฌ ์ฒ๋ฆฌ โ
$input.all()ํ์ (SKILL.md ๊ฐํ ํ์) - If ๋
ธ๋ expression ํ๊ณ โ ๋ช
์์
_doneflag ํจํด (SKILL.md B2 ํ์ฅ ์ฌ๋ก) - Response ๋ ธ๋ ๋ฏผ๊ฐ ์ ๋ณด ๋ ธ์ถ ์ํ โ ํ์ดํธ๋ฆฌ์คํธ ๋ฐฉ์ ๊ถ์ฅ (AP-08 ํ์ฅ โ Response output๊น์ง ์ ์ฉ)
- executeWorkflow waitForSubWorkflow์ ํ๊ณ โ Sub-WF๊ฐ ์ผ์ฐ returnํ๋ฉด ๊ทธ ๋ด๋ถ ๋น๋๊ธฐ INSERT๋ ๋๊ธฐ ์ ํจ โ polling ๋๋ SubWF ๋ด๋ถ์์ ๋๊ธฐํ ํ์
์์ฌ ์์
- [x] Asana ํ์คํฌ 1214629583828373 ๊ฒฐ๊ณผ ๋๊ธ ๋ฑ๋ก
- [x] Premium-3 SoM Aggregator ์์ฑยทactive
- [x] Pipeline Orchestrator ๋ ธ๋ 14 ๊ต์ฒด
- [x] 30์ผ 70 rows ๋ฐฑํ
- [x] ๋ณธ DevLog ๋ฑ๋ก
- [ ] GEOCARE Snapshot (
061e5edb) ๊ฐฑ์ - [ ] Cross-Room MB ๋ฐ์ (์ฅํ์ ์ธ์ง ํธ๋ฆฌ๊ฑฐ)
- [ ] STD-SOM-FLOW v1.0 ๊ฐฑ์ (Issue ์ฒ๋ฐฉ ์ ์ฉ ํ๊ธฐ)
- [ ] AP ์นดํ๋ก๊ทธ v2.21 ํ์ต ์ฌํญ 5๊ฑด ์ถ๊ฐ ๊ฒํ
๋ฐฑ์ ์์ฐ ์์น
- Pipeline ๋ณ๊ฒฝ ์ ํ JSON:
/home/claude/orchestrator_BEFORE_t-fix-som-race.json - ๋
ธ๋ 14 jsCode ๋ฐฑ์
:
/home/claude/node14_BEFORE_code.txt - som_summary 30์ผ ๋ฐฑ์
:
_backup_som_summary_race_fix_20260514ํ ์ด๋ธ - ์ ๊ท Sub-WF ํ์ด๋ก๋:
/home/claude/agg_v4_patched.json
5๋ถ ๋กค๋ฐฑ ์ ์ฐจ
- Premium-3 Sub-WF ๋นํ์ฑ:
PATCH /workflows/jUrOYZhRwiwjouuM {"active": false} - Pipeline ๋
ธ๋ 14 ๋ณต์:
PUTwith/home/claude/orchestrator_BEFORE_t-fix-som-race.json - som_summary ๋กค๋ฐฑ:
UPDATE gp_geoex_som_summary su SET ... FROM _backup_som_summary_race_fix_20260514 b WHERE su.id = b.id;
๊ด๋ จ ์์ฐ
- Pipeline Orchestrator: https://bawee.app.n8n.cloud/workflow/SXdgnGyUFMAP9oTB
- Premium-3 Aggregator: https://bawee.app.n8n.cloud/workflow/jUrOYZhRwiwjouuM
- v10 Main: https://bawee.app.n8n.cloud/workflow/GPdC7tIQBraa0mae
- Asana ์ผ๋์ ํ์คํฌ: https://app.asana.com/0/0/1214629583828373
- STD-SOM-FLOW v1.0:
83f428e7-ebab-480f-858f-9c05c62a53ba