mirror of
https://github.com/NomaDamas/k-skill.git
synced 2026-06-24 02:04:11 +00:00
Prevent corporate registration drafts from overreaching
Tighten the Korean corporate registration skill after round-3 review by keeping filled HWP examples outside the repository, turning the investigation-report conclusion into a user/expert-confirmed placeholder, and locking human-only final action prohibitions with regression coverage. Constraint: Legal-document workflow must avoid collecting or committing filled PII artifacts Constraint: Agent may prepare drafts and checklists only, not final legal/tax conclusions or filings Rejected: Add out/ to .gitignore | safer to teach non-repo private output for sensitive generated forms Confidence: high Scope-risk: narrow Tested: node --test --test-name-pattern='corporate-registration-consulting' scripts/skill-docs.test.js Tested: npx --yes k-skill-rhwp create-blank <tmp>/blank.hwp && npx --yes k-skill-rhwp info <tmp>/blank.hwp Tested: npm run ci
This commit is contained in:
parent
a6e77545e4
commit
275cc56d8f
4 changed files with 31 additions and 22 deletions
|
|
@ -70,9 +70,9 @@ metadata:
|
|||
4. **발기인 결정서·주식인수·주금납입**: 발기인이 주식을 인수하고 자본금을 입금한 뒤 잔고증명서 또는 주금납입보관증명에 준하는 증빙을 준비한다.
|
||||
5. **임원 취임승낙서·인감·주민등록/주소 증빙 준비**: 이사·대표이사·감사가 취임을 승낙했다는 서류와 인감 관련 서류를 준비한다. 주민등록번호·신분증·인감증명 같은 민감정보는 원문을 대화나 로그에 남기지 말고 제출 직전 로컬 문서에만 반영한다.
|
||||
6. **조사보고서/이사회·발기인 의사록 작성**: 현물출자 등 특수 사정이 없더라도 설립 경과를 확인하는 문서를 준비한다. 1인 회사면 결정을 단순화한다.
|
||||
7. **등록면허세 신고·납부**: 위택스 또는 관할 지자체에서 등록면허세와 지방교육세를 납부하고 영수필확인서를 확보한다.
|
||||
7. **등록면허세 신고·납부 준비**: 위택스 또는 관할 지자체 납부 화면에 넣을 금액·근거·체크리스트를 정리한다. 사용자/전문가가 실제 신고와 세금 납부를 직접 수행하고 영수필확인서를 확보한다.
|
||||
8. **등기신청서 작성·첨부서류 묶기**: `templates/incorporation-document-pack.md`의 순서대로 신청서, 정관, 취임승낙서, 조사보고서, 주금납입 증빙, 인감신고서, 세금 영수증을 점검한다.
|
||||
9. **인터넷등기소/관할 등기소 제출**: 전자신청이면 인증서·전자서명·스캔본 품질을 확인하고, 방문이면 원본/사본과 도장을 확인한다.
|
||||
9. **인터넷등기소/관할 등기소 제출 준비**: 전자신청이면 인증서·전자서명·스캔본 품질 체크리스트를 만들고, 방문이면 원본/사본과 도장 확인 목록을 만든다. 사용자/전문가가 실제 로그인, 전자서명, 등기 제출 절차를 직접 완료한다.
|
||||
10. **보정 대응**: 등기소가 보정명령을 내리면 문구·첨부서류·세금 계산을 수정한다. 보정 사유를 쉬운 말로 풀고 다음 조치만 제시한다.
|
||||
11. **등기 완료 후 후속 작업**: 법인등기사항증명서, 법인인감증명서, 사업자등록, 4대보험, 은행 법인계좌, 통신판매업/소프트웨어사업자 신고 등 후속 일정을 안내한다.
|
||||
|
||||
|
|
@ -103,13 +103,17 @@ metadata:
|
|||
2. `templates/standard-articles-of-incorporation.md`와 `templates/incorporation-document-pack.md`의 `{{PLACEHOLDER}}`를 채워 Markdown 초안을 만든다.
|
||||
3. HWPX가 필요하면 `hwp` 스킬의 kordoc `markdownToHwpx` 경로를 사용한다.
|
||||
4. 기존 HWP 양식을 편집해야 하면 `rhwp-edit` 스킬의 `k-skill-rhwp replace-all` 또는 `set-cell-text`로 자리표시자를 채운다. `replace-all`은 본문 문단 자리표시자 치환에만 우선 사용하고, 표/셀 안의 입력란은 `k-skill-rhwp info`로 구조를 확인한 뒤 `set-cell-text` 같은 셀 인식 명령으로 채운다. 법원·등기소 공식 HWP 양식은 표가 많으므로 제출 전에는 반드시 사람이 열어 레이아웃과 누락 셀을 검토한다.
|
||||
5. 채워진 HWP에는 이름·주소·생년월일 같은 개인정보가 들어갈 수 있으므로 레포 밖의 비공개 임시 디렉터리나 사용자가 지정한 안전한 로컬 폴더에만 저장한다. 예시는 `mktemp -d`와 `chmod 700`으로 저장소 외부 작업 디렉터리를 만든 뒤 사용한다.
|
||||
|
||||
```bash
|
||||
npx k-skill-rhwp replace-all ./templates/court-form.hwp ./out/court-form-filled.hwp \
|
||||
workdir="$(mktemp -d "${TMPDIR:-/tmp}/corp-reg.XXXXXX")"
|
||||
chmod 700 "$workdir"
|
||||
npx k-skill-rhwp replace-all ./templates/court-form.hwp "$workdir/court-form-filled.hwp" \
|
||||
--query '{{COMPANY_NAME}}' --replacement '예시소프트 주식회사'
|
||||
k-skill-rhwp info "$workdir/court-form-filled.hwp"
|
||||
```
|
||||
|
||||
5. 생성 직후 `k-skill-rhwp info ./out/court-form-filled.hwp`로 round-trip 여부를 확인하고, 사용자가 제출 전 읽을 수 있도록 쉬운 말 요약본을 함께 만든다.
|
||||
6. 생성 직후 `k-skill-rhwp info "$workdir/court-form-filled.hwp"`로 round-trip 여부를 확인하고, 사용자가 제출 전 읽을 수 있도록 쉬운 말 요약본을 함께 만든다. 채워진 산출물 경로는 PR·테스트 로그·공유 요약에 노출하지 않는다.
|
||||
|
||||
## 응답 끝에 항상 붙일 문구
|
||||
|
||||
|
|
|
|||
|
|
@ -54,7 +54,9 @@
|
|||
4. 현물출자, 재산인수 등 변태설립사항 유무: {{SPECIAL_FORMATION_ITEMS}}
|
||||
5. 등록면허세 및 지방교육세 납부 여부
|
||||
|
||||
위 조사 결과 설립 절차에 중대한 흠이 없음을 보고합니다.
|
||||
조사 결론: {{INSPECTION_CONCLUSION_AFTER_USER_OR_EXPERT_REVIEW}}
|
||||
|
||||
> 에이전트는 “설립 절차에 중대한 흠이 없다”는 최종 법률 판단을 임의로 쓰지 않습니다. 위 결론은 사용자, 조사보고자, 법무사·변호사 등 전문가가 근거를 확인한 뒤 확정하세요.
|
||||
|
||||
{{REPORT_DATE}}
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
이 기능은 **참고용**이다. 법률 자문, 세무 자문, 법무사 대행이 아니다. 실제 제출 전 관할 등기소, 위택스/지방자치단체 세무부서, 세무사, 법무사, 변호사 확인을 권한다.
|
||||
|
||||
에이전트는 초안·체크리스트·자리표시자 치환만 지원한다. 인터넷등기소/위택스 로그인, 전자서명, 세금 납부, 등기 제출, 사용자 사칭, 최종 법률 판단, 최종 세무 판단은 사용자가 직접 또는 전문가를 통해 수행해야 한다.
|
||||
에이전트는 초안·체크리스트·자리표시자 치환만 지원한다. 인터넷등기소/위택스 로그인, 전자서명, 세금 납부, 등기 제출, 사용자 사칭, 최종 법률 판단, 최종 세무 판단은 지원하지 않는다. 이러한 최종 행위와 판단은 사용자가 직접 또는 전문가를 통해 수행해야 한다.
|
||||
|
||||
## 개인정보 처리 원칙
|
||||
|
||||
|
|
@ -43,8 +43,8 @@
|
|||
3. `corporate-registration-consulting/templates/standard-articles-of-incorporation.md`를 채워 정관 초안을 만든다.
|
||||
4. 발기인, 주식인수, 주금납입 또는 잔고증명을 준비한다.
|
||||
5. 이사·감사 취임승낙서, 조사보고서, 인감신고서, 주소/신분 관련 증빙을 준비한다.
|
||||
6. 위택스 또는 지자체에서 등록면허세와 지방교육세를 신고·납부한다.
|
||||
7. 인터넷등기소 전자신청 또는 관할 등기소 방문 제출을 진행한다.
|
||||
6. 위택스 또는 지자체 등록면허세·지방교육세 신고·납부 체크리스트를 만들고, 사용자/전문가가 실제 신고·납부를 수행한다.
|
||||
7. 인터넷등기소 전자신청 또는 관할 등기소 방문 제출 체크리스트를 만들고, 사용자/전문가가 실제 제출 절차를 완료한다.
|
||||
8. 보정명령이 오면 어려운 표현을 쉬운 말로 풀어 원인·수정 문구·추가서류만 정리한다.
|
||||
9. 등기 완료 후 사업자등록, 법인계좌, 4대보험, 업종별 신고를 이어서 안내한다.
|
||||
|
||||
|
|
@ -61,6 +61,7 @@
|
|||
- 이미 받은 법원/법무사 HWP 양식이 있으면 `rhwp-edit` 스킬의 `k-skill-rhwp replace-all`로 `{{COMPANY_NAME}}`, `{{CEO_NAME}}`, `{{HEAD_OFFICE_ADDRESS}}` 같은 자리표시자를 채운다.
|
||||
- `replace-all`은 본문 문단 자리표시자 치환용으로 우선 사용한다. 표/셀 안의 입력란은 `k-skill-rhwp info`로 구조를 확인하고 `set-cell-text` 같은 셀 인식 명령으로 채운 뒤, 복잡한 공식 양식은 사람이 열어 레이아웃과 누락 셀을 검토한다.
|
||||
- 생성 후 `k-skill-rhwp info`로 파일이 열리는지 확인하고, 사람이 읽는 제출 전 체크리스트를 함께 제공한다.
|
||||
- 채워진 HWP에는 개인정보가 들어갈 수 있으므로 레포 밖의 비공개 임시 디렉터리나 사용자가 지정한 안전한 로컬 폴더에 저장하고, PR·테스트 로그·공유 요약에는 경로와 원문 개인정보를 노출하지 않는다.
|
||||
|
||||
## 공식 확인 출처
|
||||
|
||||
|
|
|
|||
|
|
@ -2942,13 +2942,10 @@ test("corporate-registration-consulting skill covers court registry workflow, ta
|
|||
assert.match(skill, /소프트웨어/);
|
||||
assert.match(skill, /주민등록번호/);
|
||||
assert.match(skill, /마스킹/);
|
||||
assert.match(skill, /로그인/);
|
||||
assert.match(skill, /전자서명/);
|
||||
assert.match(skill, /세금 납부/);
|
||||
assert.match(skill, /등기 제출/);
|
||||
assert.match(skill, /사용자 사칭/);
|
||||
assert.match(skill, /최종 법률 판단/);
|
||||
assert.match(skill, /최종 세무 판단/);
|
||||
assert.match(skill, /에이전트는[\s\S]*로그인[\s\S]*전자서명[\s\S]*세금 납부[\s\S]*등기 제출[\s\S]*수행하지 않는다/);
|
||||
assert.match(skill, /사용자 사칭[\s\S]*수행하지 않는다/);
|
||||
assert.match(skill, /최종 법률 판단[\s\S]*수행하지 않는다/);
|
||||
assert.match(skill, /최종 세무 판단[\s\S]*수행하지 않는다/);
|
||||
assert.match(skill, /모집설립/);
|
||||
assert.match(skill, /현물출자/);
|
||||
assert.match(skill, /변태설립사항/);
|
||||
|
|
@ -2962,6 +2959,10 @@ test("corporate-registration-consulting skill covers court registry workflow, ta
|
|||
assert.match(skill, /replace-all.*본문/);
|
||||
assert.match(skill, /set-cell-text/);
|
||||
assert.match(skill, /표.*셀/);
|
||||
assert.match(skill, /mktemp -d/);
|
||||
assert.match(skill, /chmod 700/);
|
||||
assert.match(skill, /레포.*밖|레포.*외부|저장소.*밖|저장소.*외부/);
|
||||
assert.doesNotMatch(skill, /\.\/out\/court-form-filled\.hwp/);
|
||||
assert.match(skill, /법인명/);
|
||||
assert.match(skill, /이사/);
|
||||
assert.match(skill, /주소/);
|
||||
|
|
@ -2980,6 +2981,8 @@ test("corporate-registration-consulting skill covers court registry workflow, ta
|
|||
assert.match(documentPackTemplate, /등록면허세/);
|
||||
assert.match(documentPackTemplate, /개인정보|민감정보/);
|
||||
assert.match(documentPackTemplate, /레포.*커밋/);
|
||||
assert.match(documentPackTemplate, /\{\{INSPECTION_CONCLUSION_AFTER_USER_OR_EXPERT_REVIEW\}\}/);
|
||||
assert.doesNotMatch(documentPackTemplate, /중대한 흠이 없음을 보고합니다/);
|
||||
|
||||
assert.match(featureDoc, /법인등기 신청 컨설팅/);
|
||||
assert.match(featureDoc, /표준 정관/);
|
||||
|
|
@ -2987,13 +2990,10 @@ test("corporate-registration-consulting skill covers court registry workflow, ta
|
|||
assert.match(featureDoc, /과밀억제권역/);
|
||||
assert.match(featureDoc, /조세특례제한법 제6조/);
|
||||
assert.match(featureDoc, /지방세법 제28조/);
|
||||
assert.match(featureDoc, /로그인/);
|
||||
assert.match(featureDoc, /전자서명/);
|
||||
assert.match(featureDoc, /세금 납부/);
|
||||
assert.match(featureDoc, /등기 제출/);
|
||||
assert.match(featureDoc, /사용자 사칭/);
|
||||
assert.match(featureDoc, /최종 법률 판단/);
|
||||
assert.match(featureDoc, /최종 세무 판단/);
|
||||
assert.match(featureDoc, /에이전트는[\s\S]*로그인[\s\S]*전자서명[\s\S]*세금 납부[\s\S]*등기 제출[\s\S]*지원하지 않는다|에이전트는[\s\S]*로그인[\s\S]*전자서명[\s\S]*세금 납부[\s\S]*등기 제출[\s\S]*수행하지 않는다/);
|
||||
assert.match(featureDoc, /사용자 사칭[\s\S]*(지원하지 않는다|수행하지 않는다|사용자가 직접 또는 전문가)/);
|
||||
assert.match(featureDoc, /최종 법률 판단[\s\S]*(지원하지 않는다|수행하지 않는다|사용자가 직접 또는 전문가)/);
|
||||
assert.match(featureDoc, /최종 세무 판단[\s\S]*(지원하지 않는다|수행하지 않는다|사용자가 직접 또는 전문가)/);
|
||||
assert.match(featureDoc, /개인정보|민감정보/);
|
||||
assert.match(featureDoc, /모집설립/);
|
||||
assert.match(featureDoc, /현물출자/);
|
||||
|
|
@ -3006,6 +3006,8 @@ test("corporate-registration-consulting skill covers court registry workflow, ta
|
|||
assert.match(featureDoc, /replace-all.*본문/);
|
||||
assert.match(featureDoc, /set-cell-text/);
|
||||
assert.match(featureDoc, /표.*셀/);
|
||||
assert.match(featureDoc, /사용자\/전문가가.*신고.*납부|사용자.*신고.*납부/);
|
||||
assert.match(featureDoc, /사용자\/전문가가.*제출|사용자.*제출/);
|
||||
assert.match(featureDoc, /인터넷등기소|온라인법인설립시스템/);
|
||||
assert.match(featureDoc, /참고용/);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue