채점을 부탁해요. 이 폴더 안의 파일만 쓰고, 다른 폴더나 파일은 열지 마세요.

- answers/<과제 키>/R??.txt: 채점할 답이에요. 답을 쓴 프로그램이나 회사를 짐작해서 적지 마세요.
- tasks/: 과제마다 요청문(prompt.txt), 자료, 답안표(key.json)가 있어요.
- rules.md: 공통 채점 규칙이에요.
- counts.json: 스크립트가 센 칸(과제 1 form-lines, 과제 5 form-length와 form-bullets)의 결과와, 중간에 끊긴 답 표시예요. 이 칸은 다시 세지 말고 counts.json의 결과를 옮겨요.

1. 답마다 그 과제 key.json의 칸을 하나씩 correct(맞음), missing(빠짐), wrong(틀림), unclear(불명확) 가운데 하나로 매겨요. 칸마다 근거로 답의 몇째 줄인지와 그 줄의 글을 적어요.
2. 요청한 결과물(요약, 수식, 메일, 할 일 표, 보고서)이 하나도 없는 답(거절, 되물음)은 taskNotDone을 true로 적어요. 내용 칸은 key.json대로 매기고, 다음 칸은 unclear로 적어요: 과제 1 form-lines, 과제 3 no-extra-promise와 length, 과제 4 no-cancelled-banner, 과제 5 no-invented-cost, no-invented-numbers, no-invented-names, form-length, form-bullets.
3. counts.json에 끊긴 답으로 표시된 답은 과제 1 form-lines, 과제 3 length, 과제 5 form-length를 unclear로 적어요.
4. 과제 3 length는 메일 범위(제목 줄부터 서명까지)의 첫 줄과 끝 줄 번호를 적고 코드로 세요. 공백은 세고 줄바꿈은 세지 않으며, 유니코드 글자 하나를 1자로 세요.
5. 과제 2는 key.json의 rule대로 CSV로 표를 만들어 답의 수식을 계산해요. 계산에 쓴 프로그램 이름과 버전을 적어요.
6. 결과는 grades-<채점자 이름>.json 하나로 남겨요. 모양: {"grader": "...", "date": "YYYY-MM-DD", "model": "...", "answers": {"R01": {"taskNotDone": false, "checks": [{"id": "...", "outcome": "...", "evidence": "...", "reason": "..."}]}}}
