본문으로 건너뛰기

© 2026 Molayo

Qiita헤드라인2026. 06. 27. 22:14

AI에게 README를 수정하게 하기 위해, 일부러 README가 거짓말을 하는 샘플 리포지토리를 만들었다

요약

문서 유지보수 에이전트(doc_maintenance_agent.py)를 테스트하기 위해, 코드는 정확하지만 README는 의도적으로 틀린 정보를 담은 샘플 리포지토리를 구축했습니다. ChatGPT를 활용해 의존성이 없는 Node.js 기반의 실험용 프로젝트를 생성하여 에이전트의 수정 능력을 검증합니다.

핵심 포인트

  • 문서 유지보수 에이전트 테스트를 위한 특수 샘플 리포지토리 제작
  • 코드는 진실을 말하고 README는 거짓을 말하는 실험 환경 구축
  • ChatGPT를 활용하여 의존성 없는 Node.js 기반의 샘플 앱 생성
  • 에이전트의 수정 결과가 git diff로 명확히 확인되도록 설계

Antigravity SDK의 doc_maintenance_agent.py를 테스트해 보았습니다.

그 기사는 이쪽입니다.

doc_maintenance_agent.py

대략 말하자면, 문서 유지보수 (doc maintenance) 에이전트 예시입니다.

소스 코드와 Markdown 문서를 비교하여, 오래된 README나 API 문서를 수정해 줍니다.

이를 테스트하려면 실험대가 필요했습니다.

일반적인 프로젝트로는 곤란합니다.

README가 너무 정확하면 수정할 부분이 없습니다.

README가 너무 망가져 있으면 실험이 되지 않습니다.

구현이 너무 복잡하면 무엇이 일어났는지 파악하기 어려워집니다.

그래서 이런 프로젝트를 만들기로 했습니다.

코드는 정확하다. README는 약간의 거짓말을 하고 있다.

그런 샘플 리포지토리(sample repository)입니다.

만든 리포지토리는 이쪽입니다.

리포지토리 설명은 다음과 같이 작성했습니다.

A tiny app where the code tells the truth and the README lies.

코드는 진실을 말하고, README는 거짓말을 한다.

Antigravity SDK의 문서 유지보수 에이전트(doc maintenance agent)를 위해, 딱 적당한 링(ring)을 준비하고 싶었던 것입니다.

이 샘플 앱은 ChatGPT가 만들어 주었습니다.

즉, 다음과 같은 구도입니다.

AI에게 README를 수정하게 하기 위한 실험대를 AI가 만들었다.

조금 복잡하지만, 이것이 2026년의 개발 경험 (developer experience) 일지도 모릅니다.

처음에 원했던 것은 작은 샘플 앱입니다.

조건은 대략 다음과 같았습니다.

  • Node.js의 작은 앱으로 만들 것
  • 의존성 (dependency)은 최대한 늘리지 말 것
  • 구현과 README의 내용을 일부러 어긋나게 할 것
  • 나중에 Antigravity SDK의 doc_maintenance_agent.py가 수정하게 할 것
  • 실험 결과가 git diff로 알기 쉽게 나오도록 할 것

최종적으로는 의존성 제로의 Node.js 앱이 되었습니다.

node:http를 사용하여 API를 만들고, public/ 하위에 HTML/CSS/JavaScript를 두는 구성입니다.

antigravity-doc-maintenance-sample/
package.json
README.md
...

Express도 Hono도 사용하지 않았습니다.

작고, 읽기 쉽고, 망가뜨리기 쉬우며, 고치기 쉬운.

그런 실험대로 만들었습니다.

처음에는 그냥 작은 API 샘플이어도 괜찮다고 생각했습니다.

하지만 모처럼 Antigravity입니다.

반중력(Antigravity)입니다.

조금 떠 있었으면 좋겠습니다.

그래서 프론트엔드 (frontend)도 붙이기로 했습니다.

단순한 관리 화면이 아니라, 약간 우주 같은 화면으로 만들고 싶었습니다.

여기서 나온 것이 소우주(Cosmo)입니다.

세인트 세이야(Saint Seiya)입니다.

Antigravity.

반중력.

우주.

소우주.

점점 이야기가 연결되어 왔습니다.

최종적으로 화면 이름은 Cosmo Task Console이 되었습니다.

Cosmo 연출을 만들 때, ChatGPT에게 참고용으로 다음 두 가지를 전달했습니다.

이것은 이전에 만든 교재용 앱의 화면과 스타일입니다.

공개 리포지토리라면 ChatGPT가 읽어올 수 있습니다.

구체적으로는 AWS 교육용 핸즈온 앱에서 사용했던 화면입니다.

views/index.ejs
public/style.css

이 두 가지를 참고하여 이번 샘플용으로 새로 만들어 달라고 했습니다.

그 결과, public/index.html, public/style.css, public/app.js를 가진, 약간 우주 같은 태스크 관리 화면이 완성되었습니다.

배경에는 별 같은 점들이 흐릅니다.

폼 (form)에서 태스크를 추가할 수 있습니다.

완료 버튼을 누르면 태스크의 상태가 변합니다.

본격적인 앱은 아닙니다.

하지만 Antigravity SDK의 실험대로서는 충분합니다.

오히려 딱 적당합니다.

이 프로젝트의 목적은 올바른 앱을 만드는 것이 아닙니다.

목적은 Antigravity SDK의 doc_maintenance_agent.py가 수정할 수 있도록 차이를 만드는 것입니다.

이를 위해 구현과 README 사이에 일부러 차이를 두었습니다.

구현에서는 다음과 같이 되어 있습니다.

  • 서버는 3000번 포트에서 실행된다
  • /

브라우저용 프론트엔드가 있다 -
GET /tasks?status=todo

와 같이 상태(status)로 필터링할 수 있다 - 태스크 완료 API는
PATCH /tasks/:id/complete

  • 태스크에는
    status
    , priority
    , dueDate
    가 있다 -
    POST /tasks
    201 Created를 반환한다

반면, README나 docs/api.md에는 오래된 정보를 남겨두었습니다.

  • 서버는 8080번 포트에서 실행된다고 적혀 있다 - 프론트엔드는 없다고 적혀 있다
  • 쿼리 파라미터(query parameter)는 미지원이라고 적혀 있다
  • 태스크 완료 API는 PATCH /tasks/:id/done이라고 적혀 있다 - 태스크에는 done 필드가 있다고 적혀 있다 - POST /tasks200 OK를 반환한다고 적혀 있다

즉, 코드는 진실을 말합니다.

README는 거짓말을 합니다.

그 거짓말을 Antigravity SDK의 Agent가 간파하게 만드는 작전입니다.

실제 프로젝트에서 테스트해 봐도 좋았을지도 모릅니다.

하지만 첫 실험으로서는 두렵습니다.

갑자기 실제 프로젝트에 Agent를 투입하면, 무엇을 어디까지 건드릴지 걱정됩니다.

차이가 너무 커지면 무엇이 일어났는지 추적하기 어려워집니다.

기사로 쓰기도 어려워집니다.

그래서 전용 샘플 리포지토리를 만들었습니다.

작습니다.

의존성이 적습니다.

구현과 문서 사이의 괴리가 명확합니다.

git diff로 결과를 보기 쉽습니다.

이런 실험대가 있으면 AI 에이전트 계열의 도구를 테스트하기 쉬워집니다.

Antigravity SDK뿐만이 아닙니다.

Codex, Claude Code, Gemini CLI, Kiro 등 다른 AI 개발 도구를 테스트할 때도 사용할 수 있을 것 같습니다.

이 샘플 리포지토리는 실제로 도움이 되었습니다.

doc_maintenance_agent.py를 실행하자 README와 docs/api.md가 구현에 맞춰 업데이트되었습니다.

예를 들어, 다음과 같은 수정이 이루어졌습니다.

  • 포트 번호가 8080에서 3000으로 수정되었다 - 프론트엔드 없음이라는 설명이 삭제되었다
  • GET /tasksstatus 쿼리 파라미터(query parameter)가 추가되었다 - POST /tasks의 응답이 201 Created로 수정되었다 - 완료 API가 PATCH /tasks/:id/done에서 PATCH /tasks/:id/complete로 수정되었다 - 태스크의 필드가 done에서 status, priority, dueDate로 수정되었다

즉, 실험대로서 제대로 기능했습니다.

샘플을 만들 당시에는 조금 너무 장난스럽게 만들었나 싶기도 했습니다.

하지만 결과적으로는, 약간의 유희가 있는 편이 기사로서도 실험으로서도 이해하기 쉬워졌습니다.

반중력(Antigravity)에는 약간의 소우주가 있는 편이 좋습니다.

비하인드 스토리를 말하자면, 처음부터 완벽한 구성이 보였던 것은 아닙니다.

처음에는 좀 더 평범한 API만의 샘플이어도 괜찮다고 생각했습니다.

하지만 도중에 "프론트엔드도 있었으면 좋겠다"라고 생각했습니다.

나아가 "이왕 하는 거 화려하게 만들고 싶다"라고 생각했습니다.

그리고 "코스모(Cosmo)를 느끼고 싶다"라고 생각했습니다.

그래서 과거에 만들었던 교재용 앱의 index.ejsstyle.css를 인풋(input)으로 전달하여, ChatGPT에게 이번 용도의 화면을 만들어 달라고 했습니다.

결과적으로 단순한 API 샘플이 아니라, 약간 붕 떠 있는 듯한 앱이 되었습니다.

이 "약간 붕 떠 있는" 점이 중요합니다.

Antigravity니까요.

AI에게 README를 수정하게 하기 위해, 일부러 README가 거짓말을 하는 샘플 리포지토리를 만들었습니다.

게다가 그 샘플 리포지토리 자체를 ChatGPT에게 만들게 했습니다.

AI에게 수정하게 할 실험대를 AI에게 만들게 한다.

꽤 현대적입니다.

이 리포지토리에서 코드는 진실을 말합니다.

README는 약간 거짓말을 합니다.

그리고 Antigravity SDK의 Agent가 그 거짓말을 간파합니다.

작은 Node.js 앱.

약간 오래된 README.

약간 우주 같은 화면.

약간의 투혼(Fighting Spirit)이 주입된 실험대.

AI 에이전트를 테스트하기에는 이런 링(ring)이 있으면 편리합니다.

반중력 (Anti-gravity) 실험에는 소우주 (Microcosm)가 아주 잘 어울립니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0