업무 메모를 주간업무보고 양식으로 정리하기
금요일 오후에 흩어진 메모를 4칸 주간업무보고로 옮기되 지어낸 성과가 끼지 않게 합니다. 메모에 번호를 붙여 근거를 달게 하고 스크립트로 누락·새 숫자를 셉니다.
메모 15줄을 「주간업무보고 써 줘」 한 문장과 함께 넣었더니 이런 줄이 나왔습니다. 진행 중 (약 50%), 법무 회신 지연, 담당자 확인 필요 (긴급). 메모에는 「절반쯤 진행」, 「회신 아직」, 「담당자 확인 필요」 만 있었습니다. 숫자와 정도가 슬쩍 바뀌거나 붙은 것입니다. 아래는 메모에 번호를 붙이고 항목마다 근거 번호를 달게 한 뒤, 빠진 메모와 새로 생긴 숫자를 스크립트로 세는 방법입니다.
[1] 메모를 한 줄에 하나씩 둡니다. 가상의 웹사이트 개편 팀이 한 주 동안 적은 것으로, 완료·요청·예정·보류가 일부러 섞여 있습니다.
로그인 화면 시안 2차 전달결제 오류 재현 실패 (카드사 테스트 환경, 3회 시도)회원가입 약관 문구 법무 검토 요청함, 회신 아직메인 배너 이미지 교체 완료모바일 메뉴 겹침 버그 수정, 배포는 다음 주QA 회의 화 오전 10시 예정검색창 자동완성 API 응답 느림 — 원인 미확인디자인팀에 아이콘 세트 요청관리자 페이지 엑셀 다운로드 버튼 위치 변경 건 보류FAQ 페이지 문구 12건 수정스테이징 서버 인증서 만료 임박, 담당자 확인 필요다음 주 목요일 외주 개발사 미팅쿠폰 입력란 오류 메시지 문구 정리테스트 계정 5개 생성이미지 용량 줄이기 작업 시작, 절반쯤 진행[2] 줄마다 번호를 붙입니다. 번호가 있어야 근거를 가리키고 나중에 되짚을 수 있습니다.
$ awk '{printf "%d. %s\n",NR,$0}' notes.ko.txt > notes.ko.num.txt[3] 프롬프트를 만듭니다. 지시와 메모를 <instructions>·<notes> 태그로 갈라 두면 메모 속 문장이 지시로 읽히는 일이 줄어듭니다(Anthropic 의 프롬프트 문서가 권하는 구성입니다). 규칙은 세 가지입니다. 근거 번호가 없는 항목 금지, 메모에 없는 숫자 금지, 「요청·시작·예정」은 완료가 아님.
<instructions><notes> 의 번호 붙은 메모를 주간업무보고로 정리하세요.규칙:- 항목은 4칸으로 나눕니다: 진행 업무 / 성과(완료한 것) / 이슈·지연 / 다음 주 계획.- 모든 항목 끝에 근거 메모 번호를 [3] 또는 [3,7] 형식으로 답니다. 번호가 없는 항목은 쓰지 않습니다.- 메모에 없는 숫자·날짜·진행률·원인을 만들어 넣지 않습니다. 정보가 모자라면 그대로 모자라다고 씁니다.- '완료'는 메모에 완료·전달·수정했다고 적힌 것만. 요청·시작·예정은 완료가 아닙니다.- 어느 칸에도 안 맞는 메모는 맨 끝에 '분류 보류: 번호'로 적습니다.- 형식은 칸 제목과 글머리 기호만 씁니다. 다른 설명은 붙이지 않습니다.</instructions> <notes>[4] 번호 메모를 붙여 실행합니다.
$ (cat head.ko.txt notes.ko.num.txt; echo "</notes>") > prompt.ko.txt$ claude -p --model claude-sonnet-5-5 --max-turns 1 --tools "" --setting-sources "" --strict-mcp-config < prompt.ko.txt > out.ko.1.txt첫 번째 결과입니다(중간은 줄였습니다. 원본은 15개 메모가 모두 들어 있습니다).
**진행 업무**- 회원가입 약관 문구 법무 검토 요청, 회신 대기 중 [3]- 디자인팀에 아이콘 세트 요청 (수령 여부는 메모에 없음) [8]- 쿠폰 입력란 오류 메시지 문구 정리 (완료 여부는 메모에 명시되지 않음) [13]- 이미지 용량 줄이기 작업 시작, 절반쯤 진행 [15] … **성과(완료한 것)**- 로그인 화면 시안 2차 전달 [1]- 메인 배너 이미지 교체 완료 [4]- 모바일 메뉴 겹침 버그 수정 (배포는 아직) [5]- FAQ 페이지 문구 12건 수정 [10]- 테스트 계정 5개 생성 [14] … **다음 주 계획**- 모바일 메뉴 겹침 버그 수정분 배포 [5]- 목요일 외주 개발사 미팅 [12] 분류 보류: 6메모 5번(버그 수정, 배포는 다음 주)은 「성과」에 (배포는 아직) 을 달아, 배포는 「다음 주 계획」에 나뉘어 올랐습니다. 6번(QA 회의)은 어느 주인지 몰라 분류 보류: 6 으로 뺐습니다. 한 번 더 돌린 out.ko.2.txt 도 6번을 뺐고 13번(쿠폰 문구 정리)까지 보류했습니다. 첫 번째는 13번을 「진행 업무」에 올리고 완료 여부가 메모에 없다고 달았고, 두 번째는 3번(법무 회신 대기)을 「진행 업무」와 「이슈」에 중복으로 넣었습니다. 「화」가 몇 주 차인지는 메모에 없으니 사람이 정할 부분입니다.
[5] 대조 스크립트를 만듭니다. 세 가지를 셉니다. 인용되지 않은 메모 번호, 번호 없는 글머리 줄, 메모에 없는 숫자입니다. 분류 보류 줄에 적은 번호는 인용으로 칩니다.
#!/usr/bin/env python3"""usage: check.py notes.txt report.txt"""import re, sysnotes = open(sys.argv[1], encoding="utf-8").read().splitlines()rep = open(sys.argv[2], encoding="utf-8").read().splitlines()used, held, bare = set(), set(), 0for l in rep: if l.startswith(("분류 보류", "Unsorted")): held |= set(map(int, re.findall(r"\d+", l.split(":")[1].split("(")[0]))) elif l.lstrip().startswith("-"): refs = re.findall(r"\[([\d,\s]+)\]", l) bare += not refs used |= {int(x) for r in refs for x in r.split(",")}missing = sorted(set(range(1, len(notes) + 1)) - used - held)body = re.sub(r"\[[\d,\s]+\]", "", " ".join(l for l in rep if not l.startswith(("분류 보류", "Unsorted"))))new = sorted(set(re.findall(r"\d+", body)) - set(re.findall(r"\d+", " ".join(notes))))print("memos not cited:", missing)print("bullets without number:", bare)print("numbers not in memos:", new)sys.exit(1 if missing or bare or new else 0)[6] 두 결과와, 한 문장으로 시킨 결과(naive.ko.out.txt)에 돌립니다.
$ python3 -I check.py notes.ko.txt out.ko.1.txt; echo "exit $?"memos not cited: []bullets without number: 0numbers not in memos: []exit 0$ python3 -I check.py notes.ko.txt out.ko.2.txt | tail -1numbers not in memos: []$ python3 -I check.py notes.ko.txt naive.ko.out.txtmemos not cited: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]bullets without number: 15numbers not in memos: ['1', '4', '50']번호를 요구한 두 결과는 15개 메모가 모두 어딘가에 있고 새 숫자도 없습니다. 한 문장으로 시킨 결과는 번호가 없어 전부 걸리고, 새 숫자로 50 이 잡힙니다. 1·4 는 소제목 번호(「1. 진행 업무」)라 무시해도 됩니다. 번호가 그 내용을 정말 뒷받침하는지는 보지 못합니다. 번호만 맞고 문장이 부풀어도 통과합니다.
[7] 사람이 읽을 때는 이 세 곳을 봅니다.
- 「성과」 칸의 각 줄을 번호 메모와 맞춰 봅니다. 요청·시작이 완료로 바뀌는 곳입니다.
- 괄호 안 보충을 봅니다. 「수령 여부는 메모에 없음」처럼 모자람을 밝힌 것은 두고,
(긴급)처럼 새로 붙은 판단은 뺍니다.
「약 50%」 같은 진행률이 꼭 필요하면 메모에 적은 사람이 직접 넣습니다. 프롬프트에 「추정해서 채워라」를 쓰지 않습니다.