Skip to content

shipoftheseus_g5 (92) 리뷰 #57

Description

@whyjp

점수 요약 — g5는 92점, 상위권 4개 대비 모두 뒤처짐

┌────────────────────────┬─────┬────────────────┬────────────────┬──────────────────┬──────────────────┐
│ Category │ g5 │ ouroboros (97) │ plan-mode (96) │ agent-teams (95) │ superpowers (94) │
├────────────────────────┼─────┼────────────────┼────────────────┼──────────────────┼──────────────────┤
│ conceptual_modelling │ 18 │ 19 │ 19 │ 19 │ 18 │
├────────────────────────┼─────┼────────────────┼────────────────┼──────────────────┼──────────────────┤
│ data_topology │ 14 │ 15 │ 15 │ 15 │ 14 │
├────────────────────────┼─────┼────────────────┼────────────────┼──────────────────┼──────────────────┤
│ simulation_correctness │ 18 │ 19 │ 19 │ 19 │ 19 │
├────────────────────────┼─────┼────────────────┼────────────────┼──────────────────┼──────────────────┤
│ experimental_design │ 14 │ 14 │ 14 │ 14 │ 14 │
├────────────────────────┼─────┼────────────────┼────────────────┼──────────────────┼──────────────────┤
│ results_interpretation │ 14 │ 15 │ 14 │ 14 │ 14 │
├────────────────────────┼─────┼────────────────┼────────────────┼──────────────────┼──────────────────┤
│ code_quality │ 9 │ 10 │ 10 │ 9 │ 10 │
├────────────────────────┼─────┼────────────────┼────────────────┼──────────────────┼──────────────────┤
│ traceability │ 5 │ 5 │ 5 │ 5 │ 5 │
└────────────────────────┴─────┴────────────────┴────────────────┴──────────────────┴──────────────────┘

g5는 traceability와 experimental_design을 제외한 5개 카테고리에서 모두 1점씩 손해를 봤습니다.


  1. 벤치마크 각 요소별 문제점

A. conceptual_modelling (-1)

  • conceptual_model.md은 system boundary / entities / resources / events / state / assumptions / limitations / performance measures 8개
    절을 모두 갖췄지만, ouroboros·plan-mode·agent-teams는 시나리오별 자원 오버라이드 표(예: ramp_upgrade에서 E03_UP capacity 1→999,
    ramp_closed에서 closed)를 명시한 반면 g5는 본문 텍스트에 흩어 놓음.
  • "Time horizon and termination" 별도 절 부재 — ouroboros는 t=480 하드 컷, in-flight cycle 폐기 정책을 1.3절로 분리.
  • conceptual_model.md:88-94의 "Routing weight is empty-speed travel-minutes; 적재 인자는 통과 시점에 적용" 같은 critical introduced
    assumption이 본문에는 있으나 Q4 답변 근거와 연결되지 않음(README §8 Q4가 "E03_UP 5%만 busy" 사실에 의존하지만, 그 5%가 dispatch 정책
    산물이라는 점이 conceptual_model.md에서 명시 안 됨).

B. data_topology (-1)

  • topology.png은 존재하지만 정적 단일 이미지. ouroboros는 topology.png + animation.gif(1 replication 동영상)을 함께 산출.
  • outputs/에 data/가 미러되지 않음 — plan-mode·ouroboros는 시나리오 YAML들을 submission 안으로 복사해 self-contained로 만듦. g5는
    ../../benchmarks/.../data/에 의존.
  • capacity-1 엣지(E03/E05/E07/E09 양방향 8개)가 그래프 시각화에서 강조 안 됨 — bottleneck 분석의 핵심 자원이지만 토폴로지 그림에서 일반
    엣지와 동일하게 그려짐.

C. simulation_correctness (-1)

구체적 결함 후보 3가지:

  1. 분포 혼용 근거 부재: travel time은 lognormal(E[X]=1, CV=0.10)(README §4 / conceptual_model.md §6.3), load/dump는 truncated normal
    lower=0.5×mean(conceptual_model.md §6.4) — 두 다른 family를 쓰는 이유가 정당화 안 됨. ouroboros도 같은 혼용을 쓰지만 lower clip이 0.1(분
    단위로 거의 0)이라 보수적이지 않음. g5의 0.5×mean 클립은 분포 좌측 절단을 너무 공격적으로 해서 평균 service time을 양의 방향으로
    편향시킬 수 있음 — 특히 σ/μ가 큰 LOAD_N(σ=1.2, μ=6.5, σ/μ≈0.18)에서 무시 못 할 수준.
  2. Replication 0만 full event log (conceptual_model.md:60, README §10): 1~29번 replication은 load_end/dump_end만 기록. 디스크 절약
    트레이드오프라고 disclose했지만 routing 검증 불가능 — 가령 ramp_closed에서 J2→J7→J8→J4 우회를 모든 replication에서 동일하게 사용하는지
    확인 불가. ouroboros는 모든 replication 풀 트레이스.
  3. routing이 scenario 시작 시 1회 계산, 재계산 없음: conceptual_model.md:101 명시 — 동적 혼잡 회피 안 함. 이는 의도적이지만, capacity-1
    엣지에서 deadlock 가능성이 있는데(예: E03_UP/E03_DOWN 양쪽 reserve race) 그에 대한 검증 없음.

D. results_interpretation (-1, ouroboros만 15점)

  • 추가 시나리오 미실행이 결정타. ouroboros는 trucks_12_ramp_upgrade.yaml을 실제로 돌려 두 투자의 상호작용에 대한 empirical 답변 제공.
    g5는 README §8 말미에 "suggested but not run"으로 처리:
    ▎ "we have not added an additional scenario in this run (the user brief explicitly cautioned against speculative additions when the six
    required scenarios already cover the decision questions)"
  • 이 해석은 너무 보수적임. prompt가 "speculative additions" 자체를 금지한 게 아니라 6개 시나리오가 결정 질문을 커버한다는 전제에서
    추가는 선택이라고 본 것 — ouroboros는 동일 brief에서 추가 시나리오를 실행해 1점 더 받음.
  • Q2(bottleneck) 답변에서 narrow ramp E03_UP이 5%만 busy라는 반-직관적 발견을 강조한 것은 좋으나, 이게 dispatch policy(south-face 우선
    cycle-time minimiser) 산물임을 명시하지 않아 정책 sensitivity 분석이 빠짐.

E. code_quality (-1)

  • 테스트 디렉토리 0. mine_sim/은 8개 모듈, 928 라인이지만 tests/도 pytest.ini도 pyproject.toml도 없음. 비교:
    • ouroboros: tests/ 7개 (test_aggregate, test_cli, test_io_writers, test_rng, test_runner, test_scenario_runner) + pytest.ini +
      pyproject.toml
    • superpowers: tests/ 8개 (test_experiment, test_metrics, test_report, test_resources, test_scenario, test_topology, test_truck) +
      pytest.ini
    • plan-mode: tests 없음(코드 품질 10점 받았지만, 다른 지표가 강함)
  • comment_lines: 18 (run_metrics.json) — 928라인에서 주석 18줄. 모듈 docstring/공개 API 설명 부족. ouroboros model.py:1-30처럼 모듈
    헤더에 design contracts를 명시하지 않음.
  • 모듈 분해 부족: g5는 routing이 simulation.py·trucks.py에 흩어져 있고 RNG seed 관리가 별도 rng.py로 분리 안 됨. ouroboros는 rng.py,
    routing.py, events.py, aggregate.py, io_writers.py, cli.py로 더 직교적.

F. 무손실 영역 (실험 설계, traceability)

  • 30 reps × 6 scenarios, deterministic seed scheme, summary.json·event_log.csv·results.csv 셋 다 산출, README §3가 재현 절차 명시 — 이
    부분은 상위권과 동등.

  1. 에이전트 스킬-하네스 관점

shipoftheseus 하네스 자체

  • 15-phase 오케스트레이션 + 88 conventions + 18 agents 라는 스펙이 무겁게 짜여 있음에도, 산출물은 lean (mine_sim 7 모듈, 테스트 0,
    928라인) — 페이즈 산출물 양과 코드 품질 사이 상관관계가 약함을 시사.
  • README §"Disclosed deviations"가 deny-list 처리에 1 단락을 할애 — 하네스가 컴플라이언스 메타-디스클로저에 자원을 많이 쏟지만, 정작
    점수에 직결되는 additional scenario 결정에서는 보수적으로 회피.
  • main 트리(submissions/.../shipoftheseus/)에는 .ShipofTheseus/ 페이즈 아티팩트가 보존돼 있으나, worktree(shipoftheseus_g5/)에는 없음 —
    재현·감사 측면에서 일관성 부족.

상위권 하네스 비교

┌─────────────────────────────────┬──────────────┬─────────────┬──────────────┬────────────────────────────────────────────────────┐
│ 하네스 │ code_quality │ tests │ extra │ 결정적 차별점 │
│ │ │ │ scenario │ │
├─────────────────────────────────┼──────────────┼─────────────┼──────────────┼────────────────────────────────────────────────────┤
│ ouroboros-max-thinking │ 10 │ ✅ 7개 │ ✅ 실행 │ 자기 점검(ouroboros) 루프가 "추가 가치 │
│ │ │ │ │ 시나리오"까지 압박 │
├─────────────────────────────────┼──────────────┼─────────────┼──────────────┼────────────────────────────────────────────────────┤
│ plan-mode │ 10 │ ❌ │ ❌ │ 사전 plan에서 module 분해를 미리 결정 │
├─────────────────────────────────┼──────────────┼─────────────┼──────────────┼────────────────────────────────────────────────────┤
│ agent-teams-nelson-max-thinking │ 9 │ (tools/ │ ❌ │ Nelson red-cell review가 dead code 캐치 │
│ │ │ 보유) │ │ │
├─────────────────────────────────┼──────────────┼─────────────┼──────────────┼────────────────────────────────────────────────────┤
│ superpowers-max-thinking │ 10 │ ✅ 8개 │ ❌ │ test-driven-development skill로 테스트 우선 │
├─────────────────────────────────┼──────────────┼─────────────┼──────────────┼────────────────────────────────────────────────────┤
│ shipoftheseus_g5 │ 9 │ ❌ │ ❌ │ 페이즈 많지만 TDD 페이즈가 약함 │
└─────────────────────────────────┴──────────────┴─────────────┴──────────────┴────────────────────────────────────────────────────┘

핵심 갭

  1. TDD 부재가 -1 (code_quality): superpowers-max-thinking 케이스가 같은 모델로 19/10/5의
    simulation_correctness/code_quality/traceability를 받은 결정적 요인이 tests/ 8개. shipoftheseus 하네스에 TDD 강제 페이즈가 없거나 약하게
    적용됨.
  2. 보수적 결정의 누적이 -1 (results_interpretation): 하네스의 phase 04 인터뷰 후 인터럽트 0 정책이 "유저 brief의 cautious tone"을 그대로
    따라서 additional scenario를 실행하지 않는 결정으로 이어짐. ouroboros는 같은 brief에서 적극적으로 +1 시나리오 실행 → +1점.
  3. Module decomposition 약함 (-1 conceptual + -1 simulation_correctness): routing/rng/events 분리가 안 돼 conceptual_model.md의 명세와
    코드 모듈 1:1 대응이 깨짐. 이게 conceptual_modelling과 simulation_correctness 양쪽에서 1점씩 깎는 cross-cutting issue.
  4. Visualization scope 좁음 (-1 data_topology): topology.png 단일 정적 이미지만 산출. ouroboros·plan-mode는 별도 plot_topology.py /
    render_animation.py 스크립트로 시각화를 페이즈 산출물로 분리. shipoftheseus 하네스가 visualization 페이즈를 1급 시민으로 다루지 않은
    정황.

  1. 권장 개선 (다음 g6 / shipoftheseus 하네스 진화 방향)

벤치마크 점수 +5점 (92→97) 회복을 위한 우선순위:

  1. TDD 페이즈를 hard requirement로 강제 (+1 code_quality)
    정황.

  1. 권장 개선 (다음 g6 / shipoftheseus 하네스 진화 방향)

벤치마크 점수 +5점 (92→97) 회복을 위한 우선순위:

  1. TDD 페이즈를 hard requirement로 강제 (+1 code_quality)
    mine_sim의 routing/rng/metrics에 unit test, scenario_runner에 integration test. superpowers나 grimoire의 test-driven-development skill을
    phase 06~08쯤 inline으로 호출하도록 conventions에 못 박기.
  2. 추가 시나리오를 "default ON"으로 (+1 results_interpretation)
    trucks_12_ramp_upgrade 같은 combo는 6개 required와 별도 yaml 파일 하나로 30분 내 생성 가능. 하네스가 "speculative additions"라는 사용자
    표현을 default 회피가 아닌 justification 요구로 해석하도록 조정.
  3. Module 분해 conventions 추가 (+1 conceptual_modelling, +1 simulation_correctness)
    routing.py / rng.py / events.py / aggregate.py 분리를 phase 산출물 체크리스트에 포함. conceptual_model.md 절번호와 모듈 파일 1:1 매핑.
  4. Visualization을 별도 스크립트 페이즈로 (+1 data_topology)
    scripts/render_topology.py + scripts/render_animation.py을 phase 산출물에 포함. capacity-1 엣지를 색/굵기로 강조한 토폴로지 도면.
  5. Service-time clip 정책 재검토 (simulation_correctness 보완)
    0.5×mean lower clip → max(0.1, sample) 또는 inverse-CDF 기반 sampling으로 전환. CV가 0.18인 LOAD_N에서 mean shift가 측정 가능한
    수준(추정 +1~2%).
  6. 모든 replication에 full event log 옵션 (simulation_correctness 보완)
    디스크 비용은 30MB대로 ouroboros가 입증. replication 0만 full trace라는 트레이드오프가 routing 검증을 막고 있음.

핵심 진단: shipoftheseus 하네스는 페이즈 수와 컨벤션 양에 비해 test/visualization/extra-scenario 같은 점수 직결 산출물에 자원을 덜
할당하고 있으며, 이는 단일 한 페이즈의 결함이라기보다 phase routing convention(어떤 페이즈가 어떤 산출물을 책임지는지)의 매핑 빈틈으로
보입니다.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions