Skip to content

Instantly share code, notes, and snippets.

View philipjkim's full-sized avatar

Soo Philip Jason Kim philipjkim

View GitHub Profile
@philipjkim
philipjkim / cross-model-adversarial-review-guide.md
Created May 20, 2026 01:35
Cross-Model Adversarial Review 가이드

Cross-Model Adversarial Review 가이드

Claude Code 로 메인 코드 작성, Codex 로 코드리뷰 받고 싶다는 요구사항 전제

결론부터: 가장 간단하고 보편적인 답

OpenAI가 공식 출시한 codex-plugin-cc를 Claude Code에 설치하는 것이 현재 가장 표준에 가까운 답입니다. 2026년 3월 30일에 OpenAI가 공식 플러그인 codex-plugin-cc를 출시하면서 환경이 바뀌었고, 슬래시 커맨드 하나로 Codex 리뷰가 실행되어 DIY 방식보다 진입 장벽이 훨씬 낮아졌습니다.

특히 사용자님의 워크플로우에 정확히 맞는 명령어가 있습니다 — /codex:adversarial-review는 선택한 구현과 설계에 의문을 제기하는 steerable review를 실행하며, 가정·트레이드오프·실패 모드·다른 접근이 더 안전하거나 단순했을지를 압박 테스트하는 데 쓸 수 있습니다. 인증, 데이터 손실, 롤백, 경쟁 조건, 신뢰성 같은 특정 리스크 영역을 압박 테스트할 때 사용합니다.

package com.github.philipjkim.demo.hexagonal
import ch.qos.logback.classic.Level
import ch.qos.logback.classic.Logger
import com.tngtech.archunit.core.importer.ClassFileImporter
import com.tngtech.archunit.lang.syntax.ArchRuleDefinition.noClasses
import org.junit.jupiter.api.Assertions.*
import org.junit.jupiter.api.BeforeAll
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.Nested
@philipjkim
philipjkim / FunctionalVsIemerativeTransformationTest.java
Created December 2, 2022 01:46
Java - Transformation from 2 arrays to a map - Imperative vs. Functional
import static org.junit.jupiter.api.Assertions.*;
class FunctionalVsIemerativeTransformationTest {
@Test
void functionalVersusImperative() {
// Imperative
var parameterNames = new String[]{"aaa", "bbb"};
var args = new Object[]{"arg1", "arg2"};
Map<String, Object> params1 = new HashMap<>();
@philipjkim
philipjkim / context_demo.go
Created April 24, 2019 06:02
Demo: Using context to cancel heavy jobs after timeout
package main
import (
"context"
"fmt"
"time"
)
// DemoTimeout .
func DemoTimeout(ctxTimeout time.Duration, workDuration time.Duration) error {
@philipjkim
philipjkim / git-amend-author.sh
Last active March 13, 2019 01:11
Bash scripts for amending author of commits at once
#!/bin/bash
# (for example, your previous author name contains `Anonymous`)
# @ PROJECT_ROOT dir: run
#
# git log | grep -B 1 "Anonymous" | grep commit | awk '{print $2}' | xargs -L 1 ./git-amend-author.sh
if [ "$#" -ne 1 ]; then
echo "Illegal number of parameters: $#"
exit 1
@philipjkim
philipjkim / iter_test.rs
Last active March 15, 2024 00:15
Rust: Difference between iter(), into_iter(), and iter_mut()
#[test]
fn iter_demo() {
let v1 = vec![1, 2, 3];
let mut v1_iter = v1.iter();
// iter() returns an iterator of slices.
assert_eq!(v1_iter.next(), Some(&1));
assert_eq!(v1_iter.next(), Some(&2));
assert_eq!(v1_iter.next(), Some(&3));
assert_eq!(v1_iter.next(), None);
@philipjkim
philipjkim / vscode-user-settings.json
Created June 4, 2018 03:18
VS Code user settings
{
"editor.fontSize": 14,
"[go]": {},
"[python]": {
"editor.formatOnSave": true
},
"eslint.autoFixOnSave": true,
"eslint.validate": [
"javascript",
"javascriptreact",
@philipjkim
philipjkim / template.go
Created February 12, 2018 09:51
genny sample template for list
package list
import (
"github.com/cheekybits/genny/generic"
)
// Something .
type Something generic.Type
// SomethingList .