마스터 계약 생성기은(는) 무엇을 하나요?
하나의 마스터 템플릿, 상대방당 하나의 작은 사양, 하나의 초안 빌드 단계. 생성기는 항상 출력에 DRAFT 레이블을 지정합니다(템플릿이 완료된 상태에서 생성된 문서 포함). 성공적인 변환은 문서 생성의 증거일 뿐, 법적 완전성, 계약 체결 권한, 또는 발송 또는 서명 준비 상태를 의미하지 않습니다. 실행된 계약에 따라 지정된 기회를 통지로 추가할 수 있는 경우가 있습니다. Schedule A 워크플로를 사용하기 전에 해당 권한이 설정되어 있어야 합니다.
사용 시기
- 많은 상대방에게 동일한 조건과 몇 가지 당사자별 필드만 있는 프레임워크 계약(NDA, 추천 또는 소싱 수수료, 비우회 계약, 마스터 서비스 계약)을 발행하는 경우.
- 시간이 지남에 따라 거래가 추가되고 각 거래를 다시 문서화하는 것이 병목 현상인 경우.
- 문서가 추적 가능한 소스에서 재현 가능하고, diff 가능하며, 수동 편집이 없어야 하는 경우.
- 서명 필드가 자동으로 배치되고 안정적인 페이지 레이아웃이 필요한 경우.
작동 방식
템플릿
{{PLACEHOLDER}} 필드가 있는 단일 마크다운 템플릿. 모든 당사자별 값은 플레이스홀더이며, 나머지는 고정 텍스트입니다. 기본 템플릿은 references/master-template.example.md에 있습니다. 일반적인 문장을 법무팀이 승인한 조항으로 바꾸십시오.
참조 스크립트가 채우는 플레이스홀더:
| 플레이스홀더 | 출처 |
|---|---|
{{DATE}} | spec.date, 기본값 오늘 |
{{CP_SHORT}} | spec.short |
{{CP_LEGAL}}, {{CP_JURIS}}, {{CP_ADDR}} | spec 필드, 또는 상대방이 서명 시 작성하는 경우 빈 줄 |
{{ROLE_CLAUSE}}, {{FEE_TITLE}}, {{FEE_CLAUSE}} | 역할 테이블에서 spec.role로 선택 |
{{SCHEDULE_ROWS}} | spec.schedule, 또는 "서명 시 항목 없음" 행 하나 |
{{SUPPLEMENT_CLAUSE}} | spec.supplement, 뒤에 구분자 또는 빈 값으로 렌더링 |
{{CP_SIGBLOCK}}, {{CP_SIGNER}}, {{CP_TITLE}}, {{CP_EMAIL}} | 서명 블록 필드, 알 수 없는 경우 빈 값 |
사양
상대방당 하나의 JSON 파일:
{
"file": "AcmeSupplier",
"short": "Acme",
"role": "supplier",
"legal": "Acme Compute Ltd",
"juris": "England and Wales company",
"addr": "1 Example Street, London",
"signer": "A. Person",
"title": "Director",
"email": "[email protected]",
"schedule": [["1", "2026-09-01", "Lot A (16 nodes)", "introducer", "12 months", "standard"]],
"supplement": "the Data Processing Addendum dated 2026-09-01"
}
초안에는 file, short, role만 필요합니다. 누락된 서명 필드는 검토 및 완료를 위해 빈 줄로 렌더링됩니다. references/spec.example.json을 참조하십시오.
file은 AcmeSupplier 또는 Acme Supplier와 같이 비어 있지 않은 이식 가능한 파일 이름이어야 하며, 디렉터리 구성 요소를 포함할 수 없습니다. 빌더는 경로 구분 기호, 드라이브/UNC 구문, 제어 문자, Windows 예약 구두점 또는 장치 이름, 후행 점 또는 공백을 거부합니다. 잘못된 이름은 삭제 또는 이름 변경 없이 거부되며, 출력을 생성하거나 pandoc을 호출하기 전에 처리됩니다.
schedule을 생략하거나 []를 사용하여 "서명 시 항목 없음" 자리 표시자를 사용합니다. 제공된 일정은 그렇지 않은 경우 순서대로 6개 셀 배열의 밀집 배열이어야 합니다: 번호, 날짜, 보호된 상대방 또는 로트, 역할, 조건, 수수료. 각 셀은 유효한 유니코드 문자열 또는 유한 숫자여야 합니다. 의도적인 공백에는 빈 문자열이 허용됩니다. Null, 부울, 객체, 중첩 셀 배열, 누락된 셀 및 무한 숫자는 아티팩트 쓰기 또는 pandoc 활동 전에 행/셀 인덱스와 함께 거부됩니다. 쌍을 이루지 않은 UTF-16 서로게이트도 UTF-8 출력 중에 대체되지 않고 거부됩니다. 이모지와 같은 유효한 보충 문자는 계속 지원됩니다.
셀은 일반 텍스트이며, Markdown 또는 HTML이 아닙니다. 빌더는 구문 문자를 인코딩하여 리터럴 파이프, 백슬래시, 백틱 및 마크업이 원래 필드에 유지되도록 합니다. 각 CRLF, bare CR 또는 LF는 공백이 됩니다. 줄 바꿈 주변의 텍스트는 유지됩니다. 기타 공백 및 리터럴 구두점은 렌더링된 셀에서 유지됩니다. 소스 사양은 수정되지 않습니다. 일반적인 유효한 일정은 6개의 열을 유지합니다. 잘못된 입력은 빈 일정으로 자동 대체되지 않습니다.
역할 테이블
spec.role은 세 개의 문자열을 선택합니다: 상시 약정 조항, 수수료 섹션 제목 및 수수료 조항 시작 문구.
| 역할 | 지불 주체 | 조항 구조 |
|---|---|---|
| buyer | 상대방이 소개된 당사자와의 거래에 대해 지불 | 상대방이 비독점적 기준으로 당사를 소개 및 추천하도록 지정 |
| supplier | 상대방이 소개된 당사자와의 거래에 대해 지불; 당사가 주체로 구매하는 경우 일정 조건에 따라 계약 | 상대방이 당사 및 당사가 소개하는 구매자에게 용량 제공 |
| mutual | 상대방의 소개로 거래를 체결한 쪽이 지불 | 각 당사자가 소개 가능; 체결 당사자가 지불 |
알 수 없는 역할은 빌드 시 거부됩니다.
빌드
운영자가 검토한 템플릿과 사양만 사용하십시오. Schedule A 외부의 일반적인 템플릿 대체는 마크업이 가능하며, 신뢰할 수 없는 문서에 대한 삭제 도구가 아닙니다. Pandoc은 참조된 로컬 또는 원격 리소스를 읽을 수 있습니다. 이 생성기는 변환기의 파일 시스템 또는 네트워크 액세스를 샌드박싱하지 않습니다. 해당 참조를 검토하고 적절히 제한된 환경에서 변환을 실행하십시오. 집중 테스트는 합성 변환기를 사용하며 실제 DOCX 레이아웃 또는 격리를 인증하지 않습니다.
node skills/master-agreement-generator/scripts/build-agreement.js \
skills/master-agreement-generator/references/master-template.example.md \
specs/AcmeSupplier.json \
out/
스크립트는 플레이스홀더를 채우고, 일정 테이블을 렌더링하며, 필수 DRAFT 고지와 함께 out/<file> MASTER.md를 작성합니다. 기본적으로(또는 --require-docx 사용 시) 설치된 pandoc이 필요하며 비어 있지 않은 일반 .docx 아티팩트를 생성합니다. Pandoc이 없거나 변환 실패 또는 출력이 없거나 비어 있는 경우 종료 코드 1을 반환합니다. 각 pandoc 프로브 또는 변환은 10초로 제한됩니다. 알 수 없거나 중복되거나 충돌하는 플래그는 종료 코드 2를 반환합니다.
--markdown-only를 명시적으로 사용하여 성공적인 Markdown 전용 초안을 생성합니다. 이 모드는 pandoc을 프로브하거나 호출하지 않으며, 라이브러리에서 docxSkipped: true를 반환하고 전자 서명 워크플로에 DOCX를 제공하지 않습니다. 라이브러리 호출자는 { markdownOnly: true }를 전달해야 합니다. { pandoc: false }만으로는 이제 DOCX 요구 사항에 실패합니다. 결과는 항상 documentStatus: 'draft'를 보고합니다. 기존 생성된 DOCX는 Markdown을 다시 빌드할 때 제거되며, 실패한 변환은 부분적인 DOCX를 남기지 않으므로 이전 아티팩트가 현재 출력으로 가장할 수 없습니다. 생성된 두 파일을 버전 관리에서 제외하십시오. 템플릿과 사양이 소스입니다.
실행 복사본 모드는 없습니다. 예제에는 의도적으로 해결되지 않은 대괄호로 묶인 초안 작성 지시문이 포함되어 있습니다. {{PLACEHOLDER}} 토큰을 채우는 것이 해당 법적 조항을 완료하는 것은 아닙니다. 실행 문서를 준비하기 전에 완료된 조항, 당사자 세부 정보, 권한 있는 서명자, 상업 조건 및 정확한 문서 버전에 대한 별도의 검토를 받으십시오. 초안과 검토된 실행 복사본을 별도의 기록으로 보관하십시오. 성공적인 DOCX 변환이 업로드, 발송 또는 서명을 승인하지는 않습니다. esign-field-placement 승인 워크플로를 참조하십시오.
두 출력 대상은 확인된 출력 디렉터리의 직접 하위 항목이어야 합니다. 대상에 있는 기존 심볼릭 링크(끊어진 링크 포함)는 DOCX 변환이 비활성화된 경우에도 아티팩트가 작성되기 전에 거부됩니다. 일반 일반 파일은 다시 빌드할 수 있습니다. 사용자가 제어하는 출력 디렉터리를 사용하십시오. 이러한 검사는 동시에 적대적인 파일 시스템 변경에 대한 격리를 제공하지 않습니다. 반환된 아티팩트 경로는 절대 경로입니다.
서명 페이지 지오메트리
템플릿은 OpenXML 페이지 나누기로 본문을 종료하여 호환 가능한 DOCX 렌더러에서 서명 블록이 새 페이지를 요청하도록 합니다:
```{=openxml}
<w:p><w:r><w:br w:type="page"/></w:r></w:p>
```
서명 페이지 구조(우리 블록, 그 다음 상대방 블록, 각각 By, Name, Title, Email, Date 포함)는 일관되지만, 페이지 매김은 텍스트, 글꼴, 렌더러 또는 형식에 따라 변경될 수 있습니다. 필드를 배치하기 전에 실제 검토된 문서와 페이지 지오메트리를 검사하십시오. esign-field-placement 스킬을 참조하십시오.
Schedule A 추가 워크플로
실행된 계약의 실제 권한 및 통지 요구 사항을 사용하십시오:
- 내부 협상/승인 채널에서 기회 경제성 및 협상 전략을 검토하십시오. 계약 콘텐츠를 보내기 전에 약정 승인을 받으십시오. 공유 상대방 채널은 내부 채널이 아닙니다.
- 제안된 항목, 역할, 조건, 수수료 및 발효일이 계약의 명시적인 Schedule A 통지 권한 내에 있는지 확인하십시오. 기존 조건의 변경 또는 해당 권한을 벗어난 변경은 해당 수정 절차를 따라야 합니다. 통지는 자체 예외를 생성할 수 없습니다.
- 실행된 계약에 의해 승인된 수신자 및 통지 채널에 대해 승인된 상대방 별 날짜 통지를 초안을 작성하십시오. 유용한 비즈니스 콘텐츠(보호된 상대방 또는 로트, 승인된 역할, 상업 조건 및 적용 가능한 수수료)를 포함하십시오. 내부 마진, 협상 전략, 다른 당사자의 경제성, 시스템 추적, 원시 오류 및 내부 제출 통지는 제외하십시오.
- 보내기 전에 운영자 승인을 위해 정확한 통지를 제출하십시오. operator-approval-loop를 참조하십시오. 승인 또는 참여 권한이 없는 동안 상대방 채널에서 침묵을 유지하십시오. 승인은 권한 있는 발신자가 실제로 통지를 전달했다는 증거와 별개입니다.
- 실행된 계약의 실제 요구 사항에 따라 승인된 전달 증거, 발효일 및 이의 제기를 기록하십시오. 예시 기간은 기본값이 아닙니다. 실행된 문서를 변경 불가능하게 유지하십시오. 추적된 일정 기록을 업데이트하고 실행된 버전 및 승인된 통지에 대한 참조와 함께 내부 검토를 위해 초안 통합 보기를 다시 빌드하십시오. 이 재빌드는 서명된 계약을 대체하거나 법적 효력을 증명하지 않습니다.
예제
통지 텍스트
예시 초안일 뿐입니다. 실행된 계약에서 승인하고 운영자가 이 특정 수신자 통지를 승인하는 경우에만 이 조건과 날짜를 사용하십시오.
Schedule A 통지, 2026-09-02
계약: 2026-08-14일자 당사와 Acme 간 마스터 계약
항목 2: Lot B, 8개 노드, 지역 EU-West
역할: introducer
조건: 6개월 기간, 2026-10-01까지 시작
수수료: standard
이 항목은 귀하가 상대방과의 사전 관계에 대한 날짜가 기록된 서면 증거를 가지고 10영업일 이내에 이의를 제기하지 않는 한 오늘 발효됩니다.
사양에 항목 추가
"schedule": [
["1", "2026-08-20", "Lot A (16 nodes)", "introducer", "12 months", "standard"],
["2", "2026-09-02", "Lot B (8 nodes, EU-West)", "introducer", "6 months", "standard"]
]
재빌드하고, 초안 Markdown을 diff하고, 변경되지 않은 실행 문서 및 통지 증거와 함께 통합 초안을 내부 기록에 첨부하십시오.
상대방이 서명 시 자체 세부 정보 입력
초안 작성을 위해 legal, juris, addr, signer, title, email을 사양에서 생략하여 빈 줄을 렌더링하십시오. 별도로 검토된 실행 워크플로는 어떤 세부 정보가 상대방에 의해 완료될 수 있는지 결정하고 실제 필드를 확인해야 합니다. 생성기는 전자 서명 봉투를 생성하거나 승인하지 않습니다.