Skip to main content

build-the-missing-link-not-the-missing-system

백로그가 "X 가 없다"고 말할 때, 대개 X 의 부품은 대부분 이미 있고 **연결 하나**만 없다. 사슬(생산자→전송→저장→읽기→화면)을 링크별로 측정하면 서브시스템 하나가 200줄짜리 배선으로 줄어든다. 트리거 - "가시성이 없다"·"자기 자신을 모른다" 같은 부재형 증상, "새 메커니즘이 필요하다"는 결론, 코드에 있는데 프로덕션 출력을 본 적 없는 기능, 큰 신규 트랙 착수 직전.

Jump to install

Source facts

Repository
blas1n/claude-skills
Last source activity
August 14, 2026 at 08:51
Detected SKILL.md language
Korean
Stars
2
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
build-the-missing-link-not-the-missing-system
description
백로그가 "X 가 없다"고 말할 때, 대개 X 의 부품은 대부분 이미 있고 **연결 하나**만 없다. 사슬(생산자→전송→저장→읽기→화면)을 링크별로 측정하면 서브시스템 하나가 200줄짜리 배선으로 줄어든다. 트리거 - "가시성이 없다"·"자기 자신을 모른다" 같은 부재형 증상, "새 메커니즘이 필요하다"는 결론, 코드에 있는데 프로덕션 출력을 본 적 없는 기능, 큰 신규 트랙 착수 직전.
# 없는 건 시스템이 아니라 링크 하나다 ## Problem - **증상**: 백로그/이슈가 부재형으로 적혀 있다 — "진행 중 가시성이 없다", "플랫폼이 자기를 모른다". - **본능**: 그 X 를 만든다. 하트비트 메커니즘, 지식 파이프라인. - **실제**: 부품은 **대부분 이미 있고** 사슬의 링크 하나가 끊겨 있다. 그런데 부재형 증상은 전체가 없는 것처럼 읽힌다. - **흔한 오해**: "코드에 그 로직이 있으니 동작한다." — **있는 것과 프로덕션 경로에서 도는 것은 다르다.** ### 실측 1 (BSVibe #752 — "진행 중 가시성이 없다") 새 하트비트를 설계하려다 사슬을 링크별로 재봤다: | 링크 | 상태 | |---|---| | 기록 로직 (루프가 툴 콜마다 활동 기록) | **있음** | | 실시간 신호 (툴 콜이 API 프로세스에서 매번 커밋, row lock 까지) | **있음** | | 저장·읽기 엔드포인트 | **있음** | | 화면 (`RunDetail` → 타임라인 렌더) | **있음** | | **executor 경로의 생산자** | **없음** ← 이거 하나 | 결정적 측정 한 줄: ```sql SELECT count(*) FILTER (WHERE activity_type='tool_call') FROM ... GROUP BY run_id; -- 최근 프로덕션 런 전부: 0 ``` **코드에 있는 기록 로직이 프로덕션에서 한 번도 실행된 적이 없었다.** 인-프로세스 루프는 기록하는데 프로덕션 실행 경로는 executor 였기 때문. 서브시스템이 아니라 **끊긴 선 하나**였고, 결과물은 배선 + 테스트뿐이었다. ### 실측 2 (BSVibe #753 — "플랫폼이 자기를 모른다") 지식 파이프라인을 고치려다 확인했더니: **무조건 붙는 시스템 프롬프트 슬롯이 이미 있었고, executor CLI 까지 `--append-system-prompt` 로 도달하고 있었다.** 내용이 한 달 낡았을 뿐. 그리고 원래 후보였던 "지식 노트를 만든다"는 **원리적으로 안 닿았다** — 지식 시드는 런의 *의도*로 검색하는데 "플랫폼이 너에게 무엇을 주는가"는 어떤 작업 주제와도 무관하다. ## Solution 1. **사슬을 적어라.** 생산자 → 전송 → 저장 → 읽기 → 표면. 추상적으로 말고 파일·함수로. 2. **링크마다 "이게 프로덕션에서 도는가"를 측정하라.** 코드 존재가 아니라 **산출물**로. - 행이 쌓이는가? `GROUP BY` 로 세라. 0 이면 그 링크가 범인이다. - 소비자가 실제로 받는가? 그 문자열/객체를 **출력해 눈으로 봐라.** 3. **끊긴 링크만 이어라.** 나머지는 이미 테스트·검증된 코드다. 4. **원리적으로 안 닿는 후보를 먼저 탈락시켜라.** #753 의 지식 노트처럼, 그럴듯한데 전달 경로가 그 종류의 정보를 나르지 못하는 경우가 있다. 5. **이은 링크가 소비자에게 도달하는지 테스트로 고정하라** — 소스에 다 적혀 있는데 아무에게도 안 닿는 형태가 바로 이 결함의 재발이다. ```sql -- 링크 프로브의 전형: "이 기능의 산출물이 프로덕션에 실재하는가" SELECT r.id, count(a.id) FILTER (WHERE a.activity_type='<the thing>') AS produced FROM runs r LEFT JOIN activities a ON a.run_id=r.id WHERE r.created_at > now() - interval '7 days' GROUP BY r.id; -- 전부 0 → 코드는 있는데 프로덕션 경로에서 안 돈다 ``` ## Key Insights - **부재형 증상은 규모를 과장한다.** "가시성이 없다"는 가시성 시스템이 없다는 뜻이 아니라 대개 **한 경로에서만 없다**는 뜻이다. - **경로가 둘이면 한쪽은 죽어 있을 수 있다.** 네이티브/원격, 동기/비동기처럼 같은 일을 하는 두 경로가 있으면, 프로덕션이 쓰는 쪽에만 구멍이 있는지 반드시 확인하라. 유닛 테스트는 대개 살아 있는 쪽만 덮는다. - **소비자가 이미 있는 경우가 흔하다.** 보통의 half-wired 는 UI 가 먼저 나가고 producer 가 빠지는 것인데, **방향이 반대인 경우**(소비자·화면·라벨러가 다 있고 생산자만 없음)도 똑같이 흔하다. - 링크를 찾으면 **작업이 한 자릿수 배로 줄어든다.** 그 절감이 이 확인의 값어치다. ## Red Flags - 백로그 문장이 "…가 없다 / 안 보인다 / 모른다"로 끝난다. - 결론이 "새 메커니즘이 필요하다"인데 **기존 사슬을 그려본 적이 없다.** - 어떤 기능이 코드에는 있는데 **그 산출물을 프로덕션에서 본 기억이 없다.** - 같은 일을 하는 경로가 둘 이상이고, 그중 하나가 프로덕션 기본값이다. - 해결책 후보가 "데이터를 더 넣는다"인데, **그 데이터를 나르는 경로가 그 종류의 정보를 선택하는 기준**(예: 주제 유사도)과 맞지 않는다. ## 관련 - `verify-handoff-claims-against-code-before-building` — 브리프가 "안 됐다"고 한 것이 이미 됐을 때 - `half-wired-subsystem-audit` — 보이는 절반만 지어지는 반대 방향 - `seam-must-assert-what-the-consumer-sees` — 이은 링크가 실제로 닿는지 단언하기
View on GitHub