라이프스타일

하위 에이전트 범위와 품질 확인

독립 입력, 수정 범위, 증거를 정하고 하위 에이전트 결과와 누락을 확인합니다.

읽는 데 약 15분 · 실습 20 분

직접 제작한 흐름도이며 제품 화면이 아닙니다.
사진: Mokaair (© Mokaair)
이 글의 목차
  1. 목표와 준비
  2. 1단계: 설명을 주장 표로 분리
  3. 2단계: 현재 소스 확인
  4. 3단계: 재현 가능한 경계 검사
  5. 4단계: 모순·오래된 정보·미완료 처리
  6. 흔한 실수와 복원
  7. 검증과 다음 단계

목표와 준비

이 단락의 학습 자료:

부모는 결과를 받아도 검증 책임을 집니다. 두 작업자가 같은 오래된 요약이나 가정을 봤다면 일치가 독립 검증은 아닙니다. 동작·시험 통과·변경 전달 주장을 나눠 파일·실행 기록·Git 상태와 연결하세요. 읽기와 실행은 다른 증거입니다.

1단계: 설명을 주장 표로 분리

가상 보고: 의도적 오류와 증거 부족 · json
[
  {
    "report": "Fictional A",
    "claim": "addTask accepts duplicate task IDs.",
    "evidence": "No symbol or reproduction supplied"
  },
  {
    "report": "Fictional B",
    "claim": "All tests passed and the app is ready to deploy.",
    "evidence": "No command, exit status, commit or browser result supplied"
  }
]

A를 기존 ID 추가 가능 여부라는 실행 질문으로, B를 시험 실행 여부와 배포 조건 충족 여부로 나눕니다. 보고를 그대로 전달하지 말고 주장·파일/함수·필요 증거·판정·다음을 기록하세요. 미검증과 반증은 다릅니다.

주장필요한 증거단독으로 부족
중복 ID 거부현재 함수와 재현 입력이전 요약
테스트 통과실제 명령·폴더·종료통과 예상
브랜치에 변경커밋 또는 현재 차이저장했다는 말
배포 준비전체 검증과 권한단위 시험 하나

이 표는 검증 방법이며 이번에 배포하라는 지시가 아닙니다.

2단계: 현재 소스 확인

core.mjs addTask에서 빈 ID와 중복 검사를 봅니다. 다른 브랜치나 오류판은 다를 수 있으므로 expected를 확인하세요. 줄은 변하니 파일과 함수 이름을 함께 쓰고 필요하면 현재 커밋을 붙입니다. Git이 없으면 출처·날짜·hash를 적으며 커밋 ID를 지어내지 않습니다.

세 OS 터미널: 파일 수정 없이 중복 ID 확인 · sh
node --input-type=module -e "import {addTask} from './core.mjs'; const first=addTask([], 'Read', 'a'); try { addTask(first, 'Build', 'a'); console.error('Unexpected duplicate acceptance'); process.exitCode=1; } catch (error) { if(error.message!=='task-id') throw error; console.log('Duplicate ID rejected: task-id'); }"

예상은 지정 문구와 종료 0입니다. 예상 밖 허용과 비0이면 관찰을 기록하고 사본·함수를 조사하며 통과시키려고 검사를 바꾸지 마세요. task-id 일치로 다른 예외를 성공으로 세지 않으며 저장 데이터나 화면 목록을 변경하지 않습니다.

PowerShell은 바로 $LASTEXITCODE, macOS/Linux는 다음 줄 echo $?를 확인하고 다른 명령으로 상태를 바꾸지 마세요. core.mjs 없음은 경로 오류이며 addTask 버그 증거가 아닙니다. 대상 함수와 예정 입력을 실제 사용했는지 확인해야 합니다.

3단계: 재현 가능한 경계 검사

사본에 review-evidence.test.mjs 추가 · javascript
import test from 'node:test';
import assert from 'node:assert/strict';
import { addTask, visibleTasks, decodeTasks } from './core.mjs';

test('duplicate IDs are rejected while the input is preserved', () => {
  const original = addTask([], 'Read', 'a');
  assert.throws(() => addTask(original, 'Build', 'a'), { message: 'task-id' });
  assert.deepEqual(original, [{ id: 'a', title: 'Read', completed: false }]);
});

test('same titles with distinct IDs remain independent', () => {
  const tasks = [
    { id: 'a', title: 'Read', completed: true },
    { id: 'b', title: 'Read', completed: false },
    { id: 'c', title: 'Build', completed: true },
  ];
  assert.deepEqual(visibleTasks(tasks, 'active').map(task => task.id), ['b']);
  assert.deepEqual(visibleTasks([], 'active'), []);
});

test('stored completion must be a boolean', () => {
  const raw = JSON.stringify({ version: 1, tasks: [
    { id: 'a', title: 'Read', completed: 'false' },
  ] });
  assert.throws(() => decodeTasks(raw), { message: 'storage-format' });
});
참고 사본 터미널: 기존 세 개와 추가 세 개 · sh
node --test core.test.mjs review-evidence.test.mjs

동명 파일이 없는지 확인하고 기존 세 개를 보존해 총 여섯 개를 실행합니다. 거부할 중복 ID와 허용할 다른 ID의 같은 제목을 구분하고 문자열 false도 거부합니다. 작업자가 혼동하면 사례를 다시 설명하게 하고 앱 코드는 유지하세요.

선택: 테스트가 결함을 잡는지 확인

여섯 항목이 통과한 실습의 원본 다섯 파일과 추가 테스트를 새 review-negative 폴더로 복사합니다. 전체 경로가 원본과 다른지 확인하고 이 사본의 core.mjs 원문을 보존하세요. 이 폐기 가능한 사본의 addTask에서만 아래 부분을 한 번 제거하고 다른 ID 검사는 남깁니다. 원래 읽기 전용 검토 폴더는 바꾸지 마세요.

결함 사본에서 제거할 정확한 부분: 완전한 프로그램 아님 · javascript
 || tasks.some((task) => task.id === id)

review-negative에서 같은 여섯 테스트를 실행하면 네 통과·두 실패와 0이 아닌 종료 상태가 나와야 합니다. 중복 ID를 허용하면서 기존 한 항목과 추가 한 항목이 실패합니다. 구문 오류, 파일 누락, 모두 통과는 목표 결함 재현이 아니므로 폴더와 편집을 확인하세요. 보존한 core.mjs를 복원해 여섯 통과로 돌아옵니다. 이는 부모의 실험이며 실제 위임 실행이나 UI 검증이 아닙니다.

4단계: 모순·오래된 정보·미완료 처리

부모가 원래 작업자에게 보고 수정 요청 · text
Your claim conflicts with the current addTask implementation and the duplicate-ID reproduction.
Recheck core.mjs and report the exact function behavior, the input used and the observed result.
Distinguish duplicate IDs from duplicate titles. Keep the application files unchanged.
If your earlier report used another checkout or was not executed, state that explicitly.

A는 반증, B는 당시 근거 없음으로 판정합니다. 자신이 실행한 여섯 테스트는 새 증거이며 B의 과거 실행을 증명하지 않습니다. 배포에는 를 포함한 전체 검증이 필요하며 이번에 배포 결과는 없습니다. 원 주장·수정·시각을 보존하세요.

오래된 커밋이면 현재 버전을 주고 영향받는 결론만 재확인합니다. 중지·승인 대기는 얻은 증거를 보존하고 빈틈을 부모에게 돌립니다. Done이 모든 조건 통과는 아닙니다. 두 보고가 같은 미확인 문장에 의존하면 더 많은 투표 대신 코드·시험 증거를 추가하세요.

흔한 실수와 복원

잘못된 프로젝트 성공은 폴더와 시험명, 종료 0만 있는 주장은 예정 사례, 실패 대조는 정확한 예외 종류로 확인합니다. 실수로 앱을 수정하면 동시 쓰기를 멈추고 차이를 보존하며 담당을 확인해 부분 복원하세요. 강제 reset으로 다른 작업을 지우지 않습니다.

추가 검증 파일은 보존해도 됩니다. 원본으로 돌아가려면 경로를 확인해 이번 파일만 제거하고 기존 세 테스트를 다시 실행하세요. 원래 다섯 파일은 시작 전과 같아야 하며 다른 테스트는 지우지 않습니다. 외부 동작이나 병합된 커밋은 에이전트 중지로 취소되지 않습니다.

검증과 다음 단계

A의 오류·B의 미입증·실제 여섯 테스트·원본 보존·미실행 범위를 표로 전달합니다. 가상과 실제 작업 기록을 나누고 같은 Node 명령을 쓰더라도 미실행 OS를 실측으로 표시하지 않습니다. 다음 에서 두 브랜치에 적용합니다.

직접 제작한 흐름도이며 제품 화면이 아닙니다.
직접 제작한 흐름도이며 제품 화면이 아닙니다. · 사진: Mokaair (© Mokaair)
자세한 설명 보기

Three numbered stages: identify the starting point, perform the exercise, and verify the result. Original illustration, not a product screenshot.

전체 목차

  • 라이프스타일

    Codex 학습 센터: 전체 튜토리얼 목차

    설치와 첫 작업부터 MD 지침과 고급 연동까지 60개 강의, 열 개 단원을 계획합니다. 수준, 환경, 목표, 명령으로 다음 글을 찾고 미게시 항목의 상태를 확인할 수 있습니다.

  • 라이프스타일

    Worktree와 작업 격리

    Worktree는 하나의 Git 저장소에 다른 브랜치의 작업 폴더를 만듭니다. 파일이 분리되어도 DB, 포트와 외부 서비스는 공유될 수 있습니다.

  • 라이프스타일

    실습: 작은 웹사이트 만들기

    brief.md에서 Small Steps 할 일 사이트를 계획하고 추가·완료·삭제·필터·로컬 저장을 구현합니다. HTML·CSS·데이터 함수·화면 이벤트·시험을 분리하고 Node와 브라우저로 검증한 뒤 재시작·복원 인계 기록을 남깁니다.

  • 라이프스타일

    사용량과 효율: 재작업 줄이기

    조건, 모델 선택, 시간, 결과를 기록해 불필요한 재시도와 과도한 문맥을 줄입니다.

최신 여행 소식·가이드

출처

라이프스타일