Skip to main content
공개 노트

VibeGuard Skills 사용법: AI 업무앱 개발 전 기본 틀(Skills.md) 만드는 방법

Views 213약 11분생성형 AI 활용
Summary

바이브 코딩을 시작하기 전, 먼저 정해야 할 것은 “개발 기준”입니다

앞 선 글에 언급하였다시피 최근 조직 안에서 바이브 코딩을 활용하는 사례가 늘어나고 있습니다.
ChatGPT, Claude Code, Codex, Antigravity, Cursor 같은 AI 코딩 도구를 활용하면 과거보다 훨씬 빠르게 업무앱을 만들 수 있습니다.

하지만 문제는 속도만 빨라진 것이 아니라는 점입니다.
권한 요청도 빨라졌고, 데이터 연결도 쉬워졌고, 조직 내부 자료가 외부 도구나 AI 프롬프트에 들어갈 가능성도 함께 커졌습니다.

특히 조직 업무앱을 만들 때는 다음 문제가 자주 발생할 수 있습니다.

  • 필요 없는 Google Drive 전체 접근 권한 요청

  • Gmail 전체 읽기 권한 요청

  • Microsoft Graph Application Permission처럼 과도한 조직 단위 권한 요청

  • 실제 개인정보를 AI 코딩 도구에 그대로 입력

  • 상담기록, 장애정보, 건강정보, 급여·평가·징계 자료를 일반 업무앱에 저장

  • 다운로드, 외부 발송, 파일 업로드 기능에 대한 로그 미비

  • 누가 어떤 데이터를 볼 수 있는지 권한 분리 부족

그래서 바이브 코딩을 시작하기 전에 먼저 정해야 할 것은 코드가 아닙니다.

바로 개발 기준입니다.


Skills.md란 무엇인가?

Skills.md는 AI 코딩 도구가 개발을 시작하기 전에 참고해야 할 기준 문서입니다.

단순히 “이런 앱을 만들어줘”라고 요청하는 대신, Skills.md에 다음 내용을 먼저 정리합니다.

  • 이 앱의 목적은 무엇인가?

  • 어디까지 개발해도 되는가?

  • 어떤 데이터는 저장해도 되는가?

  • 어떤 데이터는 절대 저장하면 안 되는가?

  • 어떤 권한만 허용되는가?

  • 어떤 권한은 요청하면 안 되는가?

  • 어떤 기능은 승인 없이는 만들면 안 되는가?

  • 어떤 로그를 남겨야 하는가?

  • 어떤 테스트를 통과해야 하는가?

  • 개발 완료 기준은 무엇인가?

즉, Skills.md는 단순한 설명서가 아니라 AI 코딩 에이전트가 따라야 하는 개발 계약서에 가깝습니다.

이런 기준이 있어야 Codex, Claude Code, Antigravity 같은 AI 코딩 도구가 기능을 임의로 확장하지 않고, 조직의 보안 기준 안에서 개발하도록 유도할 수 있습니다.


VibeGuard Skills란?

스크린샷 2026-07-10 07

스크린샷 2026-07-10 07

스크린샷 2026-07-10 07

VibeGuard Skills는 제가 제작한 업무앱을 만들기 전에 안전한 Skills.md를 생성할 수 있도록 만든 웹앱입니다.

사용자는 복잡한 권한 이름을 몰라도 됩니다.
처음부터 “Microsoft Graph Application Permission을 쓸 건가요?” 또는 “Google Workspace 관리자 권한이 필요한가요?”라고 묻지 않습니다.

대신 다음과 같은 쉬운 질문으로 시작합니다.

  • 어떤 조직에서 사용할 앱인가요?

  • 무엇을 만들고 싶은가요?

  • 어떤 정보가 들어가나요?

  • 어떻게 사용하고 싶은가요?

  • Google Workspace를 쓰나요, Microsoft 365를 쓰나요?

이 질문에 답하면 VibeGuard Skills가 다음 내용을 자동으로 정리합니다.

  • 보안등급

  • 권장 기술스택

  • 허용 데이터

  • 금지 데이터

  • 허용 권한

  • 금지 권한

  • 핵심 기능 범위

  • 구현 규칙

  • UI/UX 기준

  • 로그 기준

  • 테스트 기준

  • Acceptance Criteria

  • Definition of Done

  • Human Review Checklist

생성된 문서는 복사하거나 Markdown 파일로 다운로드할 수 있고, Codex, Claude Code, Antigravity 같은 AI 코딩 도구에 그대로 넣을 수 있습니다.

VibeGuard Skills 사용하기


VibeGuard Skills가 필요한 이유

ChatGPT Image 2026년 7월 10일 오전 07_41_58

1. 권한 이름을 몰라도 시작할 수 있습니다

초보자는 Delegated Permission, Application Permission, Drive Scope, Webhook, OAuth Scope 같은 용어를 모를 수 있습니다.

VibeGuard Skills는 권한명부터 묻지 않습니다.
먼저 만들고 싶은 업무를 묻습니다.

예를 들어 사용자는 이렇게 선택합니다.

  • 신청서를 받고 싶다

  • 재고를 관리하고 싶다

  • 예약을 관리하고 싶다

  • 대시보드를 만들고 싶다

  • 알림을 보내고 싶다

  • 파일을 첨부하고 싶다

그러면 앱이 필요한 권한 범위를 자동으로 추천합니다.


2. AI 코딩 에이전트에 바로 적용할 수 있습니다

생성된 Skills.md는 사람이 읽는 설명서만이 아닙니다.

Codex, Claude Code, Antigravity 같은 도구에 붙여 넣기 쉽도록 다음 구조를 포함합니다.

  • AI Coding Agent Instructions

  • Agent Mission

  • Out of Scope

  • Recommended Stack

  • Security Level

  • Data Contract

  • Permission Contract

  • Feature Scope

  • Implementation Rules

  • UI/UX Requirements

  • Logging Requirements

  • Test Requirements

  • Acceptance Criteria

  • Definition of Done

즉, AI 코딩 도구에게 “이 기준을 넘지 말고 개발하라”고 지시할 수 있습니다.


3. 조직 보안 기준을 먼저 세울 수 있습니다

비영리기관, 복지기관, 교육기관, 공공기관은 개인정보와 민감정보를 다루는 경우가 많습니다.

예를 들어 복지기관이라면 상담 내용, 장애정보, 건강정보, 가족정보, 소득정보가 포함될 수 있습니다.
교육기관이라면 학생, 보호자, 수업 기록, 출결 정보가 포함될 수 있습니다.
비영리기관이라면 후원자, 신청자, 사업 참여자 정보가 섞일 수 있습니다.

이런 데이터를 다루는 업무앱은 “일단 만들어보고 나중에 점검”하면 위험합니다.

처음부터 보안등급과 금지 범위를 정해야 합니다.


4. 실제 개발 가능한 기준을 제공합니다

VibeGuard Skills는 단순히 “보안을 조심하세요”라고 말하지 않습니다.

실제 개발 기준으로 사용할 수 있도록 다음을 제공합니다.

  • 권장 기술스택

  • 허용 권한

  • 금지 권한

  • Data Contract

  • Permission Contract

  • Logging Requirements

  • Test Requirements

  • Acceptance Criteria

  • Definition of Done

이 기준은 AI 코딩 도구가 실제 앱 구조를 설계할 때 참고할 수 있습니다.


VibeGuard Skills 사용 방법

1단계. 어떤 조직에서 사용할 앱인가요?

첫 번째 단계에서는 조직 유형과 사용하는 업무 도구를 선택합니다.

선택할 수 있는 조직 유형은 다음과 같습니다.

  • 비영리기관

  • 복지기관

  • 교육기관

  • 일반기업

  • 공공기관

  • 기타

그리고 사용하는 업무 도구도 선택합니다.

  • Google Workspace

  • Microsoft 365

  • 잘 모르겠어요

조직 유형과 업무 도구는 추천 결과에 영향을 줍니다.

예를 들어 Microsoft 365를 선택하면 Microsoft Bookings, Outlook Calendar, Microsoft Lists, SharePoint, Power Automate, Power BI 같은 도구가 우선 추천됩니다.
Google Workspace를 선택하면 Google Forms, Google Sheets, Apps Script, AppSheet, Looker Studio 같은 도구가 우선 추천됩니다.

스크린샷 2026-07-10 07
첫 번째 단계에서는 조직 유형과 사용하는 업무 도구를 선택합니다. 비영리기관을 선택하면 개인정보와 민감정보 가능성을 보수적으로 판단하고, Microsoft 365를 선택하면 Microsoft 계열 도구를 우선 추천합니다.


2단계. 무엇을 만들고 싶은가요?

두 번째 단계에서는 만들고 싶은 업무앱 유형을 선택합니다.

현재 VibeGuard Skills는 다음 유형을 기준으로 합니다.

  • 신청서·접수 관리

  • 재고·자산관리·물품대여

  • 일정·예약관리

  • 업무 체크리스트·진행상황 관리

  • CRM·후원자·협력기관 관리

  • 상담관리·사례관리·직업지원 보조

  • HR·인사·근태 관리

  • 비용·지출·예산 관리

  • 업무 자동화·알림 봇

  • 내부 대시보드·보고서 자동화

  • 전자결재·승인 시스템

이번 예시에서는 일정·예약관리를 선택합니다.

스크린샷 2026-07-10 07

두 번째 단계에서는 만들고 싶은 프로그램 유형을 선택합니다. 여기서는 일정·예약관리를 선택했습니다. 이 선택에 따라 예약 전용 캘린더, 예약 목록, 중복 예약 방지, 예약 상태 관리가 기본 기능으로 잡힙니다.

일정·예약관리 앱은 예약을 받고, 일정표에 반영하고, 중복 예약을 줄이기 위한 업무앱입니다.

예를 들어 다음과 같은 상황에 사용할 수 있습니다.

  • 상담 예약

  • 회의실 예약

  • 교육 일정 신청

  • 장비 사용 예약

  • 방문 일정 조율


3단계. 어떤 정보가 들어가나요?

스크린샷 2026-07-10 07

세 번째 단계에서는 앱에 들어갈 정보를 선택합니다.

이번 예시에서는 테스트를 위해 다음과 같이 민감도가 높은 정보를 일부러 선택했습니다.

  • 이름/연락처 정도가 들어가요

  • 신청 이력/참여 기록이 들어가요

  • 상담 내용이 들어가요

  • 건강/장애 관련 정보가 들어가요

  • 직원 정보가 들어가요

  • 급여/평가/징계 정보가 들어가요

  • 예산/지출/증빙 자료가 들어가요

이렇게 선택하면 보안등급은 높아질 수밖에 없습니다.

이름, 연락처, 이메일 정도라면 제한 개인정보로 볼 수 있습니다.
하지만 상담 내용, 장애정보, 건강정보, 급여, 평가, 징계, 회계 증빙이 들어가면 민감정보 또는 민감 업무자료로 보아야 합니다.

그래서 이번 예시는 4등급: 민감 업무로 판단됩니다.

중요한 점은 이것입니다.

4등급이 나왔다는 것은 “이 정보를 저장해도 된다”는 뜻이 아닙니다.
오히려 반대로, 이 정도 정보가 들어가면 일반 업무앱으로 가볍게 만들면 안 된다는 경고에 가깝습니다.


4단계. 어떻게 사용하고 싶은가요?

네 번째 단계에서는 필요한 기능을 선택합니다.

스크린샷 2026-07-10 07

이번 예시에서는 다음 6개 기능을 선택했습니다.

  • 목록과 현황을 볼 수 있게 하고 싶어요

  • 새 신청·물품·일정을 등록하고 싶어요

  • 처리상태를 수정하고 메모를 남기고 싶어요

  • 승인·반려 절차가 필요해요

  • 담당자에게 자동 알림을 보내고 싶어요

  • 파일이나 증빙자료를 첨부하고 싶어요

기능 선택은 권한과 테스트 기준에 영향을 줍니다.

예를 들어 자동 알림을 선택하면 Teams Incoming Webhook 또는 Power Automate 알림 흐름이 권한 후보에 포함될 수 있습니다.
파일 첨부를 선택하면 특정 SharePoint 문서 라이브러리 또는 폴더 접근이 필요할 수 있습니다.
승인·반려를 선택하면 승인 로그와 처리 이력이 필요합니다.

반대로 선택하지 않은 기능은 기본 개발 범위에서 제외됩니다.

이번 예시에서는 다음 기능을 선택하지 않았습니다.

  • 보고서 다운로드

  • 관리자 전용 화면

  • 모바일 사용

  • 사용자별 조회 제한

따라서 이 기능들은 기본 개발 범위에 포함되지 않습니다.


5단계. 추천 구성을 확인합니다

마지막 단계에서는 추천 구성을 확인합니다.

스크린샷 2026-07-10 07

이번 예시의 추천 결과는 다음과 같습니다.

  • 추천 기술스택: Microsoft Bookings + Outlook Calendar + Power Automate

  • 보안등급: 4등급 · 민감 업무

  • 추천 이유: 예약 업무이지만 민감정보 가능성이 있어 접근권한 최소화, 감사 로그, 배포 전 내부 검토가 필요함

  • 권장 방향: 예약 전용 Outlook Calendar, 특정 예약 Excel Table 또는 SharePoint List, Power Automate 알림 흐름 사용

  • 피해야 할 권한: 조직 전체 Calendar 접근, 개인 캘린더 전체 접근, Microsoft Graph Application Permission, 전체 Drive/Gmail 권한

초보자라면 고급 설정을 열지 않고 기본 추천으로 Skills.md 생성하기를 누르면 됩니다.
기본 추천은 최소 권한 기준으로 만들어집니다.

이미지 설명 문구
추천 구성 확인 단계입니다. 선택한 조직, 플랫폼, 프로그램 유형, 데이터, 기능을 바탕으로 Microsoft Bookings + Outlook Calendar + Power Automate 구성이 추천되었습니다. 민감정보 가능성이 있어 4등급으로 표시되며, 배포 전 내부 검토가 필요하다는 안내가 함께 나옵니다.


고급 설정은 꼭 필요한 경우에만 사용합니다

VibeGuard Skills에는 고급 설정 영역도 있습니다.

스크린샷 2026-07-10 07

하지만 초보자는 이 영역을 건너뛰어도 됩니다.
기본 추천으로 생성하면 최소 권한 기준으로 자동 정리됩니다.

고급 설정은 조직 내부에서 특정 권한을 직접 조정해야 할 때만 사용합니다.

예를 들어 다음과 같은 항목을 직접 조정할 수 있습니다.

  • 특정 Form 접근

  • 특정 Sheet 접근

  • 특정 Calendar 접근

  • 특정 파일 접근

  • 전체 Drive 접근

  • Gmail 전체 읽기

  • 관리자 권한

이 중 전체 Drive 접근, Gmail 전체 읽기, 관리자 권한은 일반 업무앱에서 거의 필요하지 않습니다.
특별한 내부 검토 없이 선택하지 않는 것이 좋습니다.

이미지 설명 문구
고급 설정 화면입니다. 초보자는 이 영역을 건너뛰어도 됩니다. 전체 Drive 접근, Gmail 전체 읽기, 관리자 권한 같은 고위험 권한은 특별한 내부 검토 없이 선택하지 않는 것이 좋습니다.


생성 결과: 일정·예약관리용 Skills.md

최종 결과 화면에서는 생성된 Skills.md를 확인할 수 있습니다.

스크린샷 2026-07-10 07

사용자는 다음 작업을 할 수 있습니다.

  • Skills.md 복사

  • Markdown 다운로드

  • 코딩 에이전트에 넣는 방법 보기

  • 선택 내용 수정

  • 다시 만들기

생성된 문서는 단순한 설명서가 아닙니다.
AI 코딩 에이전트가 따라야 할 개발 기준이 들어 있습니다.

이번 예시에서 생성된 일정·예약관리용 Skills.md는 다음 구조를 포함합니다.

  • AI Coding Agent Instructions

  • Agent Mission

  • Out of Scope

  • Recommended Stack

  • Security Level

  • Data Contract

  • Permission Contract

  • Feature Scope

  • Implementation Rules

  • UI/UX Requirements

  • Logging Requirements

  • Test Requirements

  • Acceptance Criteria

  • Definition of Done

  • Human Review Checklist

  • Notes for Beginners

실제 결과물

# 일정·예약관리용 Skills.md

## 0. AI Coding Agent Instructions

이 문서는 AI 코딩 에이전트가 업무앱을 개발하기 전에 반드시 따라야 하는 개발 기준입니다.

에이전트는 다음 규칙을 지켜야 합니다.

- MUST: 이 문서에 명시된 데이터 범위와 권한 범위를 넘어서 구현하지 않습니다.
- MUST NOT: 금지 데이터, 금지 권한, 외부 전송 기능을 임의로 추가하지 않습니다.
- SHOULD: 기능 구현보다 최소 권한, 로그, 테스트 기준을 우선합니다.
- DO NOT: 사용자 편의를 이유로 전체 Drive, 전체 Gmail, 관리자 권한을 요청하지 않습니다.
- ASK BEFORE IMPLEMENTING: 문서에 없는 기능, 민감정보 처리, 외부 API 연동, 관리자 권한 요청이 필요하면 개발을 중단하고 사람에게 확인합니다.

## 1. Agent Mission

예약 가능한 시간과 장소를 관리하고, 담당자 일정과 중복 예약을 줄이는 업무앱입니다. 상담 내용이 아니라 시간·담당자·상태 중심으로 관리합니다.

조직 유형: 비영리기관
선택 플랫폼: Microsoft 365

에이전트는 다음 범위 안에서만 개발해야 합니다.

### Core Features

- 예약 등록
- 예약 현황 조회
- 중복 예약 방지
- 예약 취소/변경
- 예약 상태 관리

### Optional Features Selected by User

- 목록과 상세 내용을 확인합니다.
- 새 항목을 추가합니다.
- 처리상태나 메모를 수정합니다.
- 관리자가 승인하거나 반려하고 사유를 기록합니다.
- 담당자에게 필요한 자동 알림을 보냅니다.
- 파일이나 증빙자료를 지정된 저장소에 업로드합니다.

이 앱은 조직 전체 데이터 관리 시스템으로 확장하지 않습니다. 문서에 명시된 업무 보조 범위 안에서만 개발합니다.

## 2. Out of Scope

다음 항목은 개발 범위에 포함하지 않습니다. 에이전트는 이 항목을 구현하거나 데이터 모델에 추가하면 안 됩니다.

- Google Drive 전체 접근
- Gmail 전체 읽기
- Gmail 전체 쓰기
- Google Workspace 관리자 권한
- Microsoft Graph Application Permission
- 조직 전체 Calendar 접근
- 개인 캘린더 전체 접근
- 관리자 권한
- 개인별 상담 내역
- 건강정보 및 심리·의료 정보
- 민감한 방문 사유
- 가족관계
- 주민등록번호
- 비밀번호
- 인증 토큰
- 장애정보 및 장애진단명
- 급여
- 평가
- 징계
- 회계 증빙 원본
- 내부 감사자료 원본
- 원본 상담기록의 무제한 복사본
- 사용자 승인 없는 외부 API 전송
- 외부 공개 링크 자동 생성
- 문서에 없는 관리자 화면 또는 권한 변경 기능
- 전체 데이터 일괄 다운로드

## 3. Recommended Stack

선택 플랫폼과 추천 기술스택은 반드시 충돌하지 않아야 합니다.

- 1차 추천: Microsoft Bookings + Outlook Calendar + Power Automate
- Google Workspace 대안: Google Calendar + Google Forms + Apps Script
- 고도화 대안: Microsoft Bookings + Power Automate, AppSheet

- 현재 추천 결과: Microsoft Bookings + Outlook Calendar + Power Automate
- 권장 방향: Microsoft Forms, Excel, SharePoint, Power Automate, Power Apps를 우선 검토합니다.
- 추천 이유: 선택 플랫폼이 Microsoft 365이므로 Microsoft Forms, Excel, SharePoint, Power Automate, Power Apps 계열을 1차 추천으로 표시합니다.
- MUST: 선택 플랫폼과 다른 계열의 도구는 1차 추천이 아니라 대안으로만 표시합니다.

## 4. Security Level

보안등급: 4등급 - 민감 업무

판정 이유:
- 제한 개인정보가 포함되어 최소 3등급입니다.
- 민감정보 또는 민감 업무자료가 포함되어 최소 4등급입니다.

개발 제한:
- MUST: 허용 데이터와 허용 권한 범위 안에서만 구현합니다.
- MUST NOT: 금지 데이터 필드, 금지 권한, 외부 전송 기능을 임의로 추가하지 않습니다.
- MUST: Logging Requirements에 정의된 action만 감사 로그로 남깁니다.
- MUST: 배포 전 내부 승인자 또는 개인정보보호 담당자 검토를 받습니다.
- MUST NOT: 원본 민감정보를 localStorage, console.log, URL query string, 외부 API에 저장하거나 전송하지 않습니다.
- 민감정보 보호, 접근권한 최소화, 감사 로그, 배포 전 내부 검토가 필수입니다.
- 판정 이유: 상담 내용, 장애정보, 건강정보, 급여, 평가, 징계, 회계 증빙, 내부 감사자료 같은 민감정보 또는 민감 업무자료가 실제 선택되어 4등급 이상으로 분류됩니다.
- 추천 방향: Microsoft Bookings + Outlook Calendar + Power Automate 구성을 기준으로 특정 파일과 특정 리소스만 접근하도록 시작합니다.

## 5. Data Contract

### Allowed Data

에이전트는 다음 필드만 기본 데이터 모델에 포함할 수 있습니다.

- eventTitle: 일정명
- reservedAt: 예약일시
- location: 장소
- ownerName: 담당자
- reservationStatus: 예약상태
- reservationPurpose: 예약 목적
- isCanceled: 취소 여부

### Optional Personal Data

다음 데이터는 사용자가 명시적으로 선택했거나 기관이 승인한 경우에만 포함합니다.

- reservedByName: 예약자 이름
- contactPhone: 연락처
- email: 이메일
- additionalField4: 예약 이력

### Forbidden Data

에이전트는 다음 데이터를 저장하는 필드, 입력창, 업로드 구조, 로그를 만들면 안 됩니다.

- 개인별 상담 내역
- 건강정보 및 심리·의료 정보
- 민감한 방문 사유
- 가족관계
- 주민등록번호
- 비밀번호
  - 금지 이유: 인증정보는 코드, 시트, 프롬프트, 로그 어디에도 저장하지 않습니다.
- 인증 토큰
  - 금지 이유: 토큰은 비밀값이므로 코드나 문서에 직접 넣지 않고 안전한 저장소에 보관합니다.
- 장애정보 및 장애진단명
- 급여
- 평가
- 징계
- 회계 증빙 원본
- 내부 감사자료 원본
- 원본 상담기록의 무제한 복사본
  - 금지 이유: 대량 복사본은 유출 피해가 크므로 보조 앱이나 다운로드 파일로 만들지 않습니다.

공통 금지 이유:
이 앱은 명시된 업무 보조 범위만 구현하며, 원본 민감정보나 조직 전체 자료를 저장하거나 표시하지 않습니다. 위 데이터에 대한 필드, 입력창, 업로드 구조, 로그, 다운로드 구조를 만들면 안 됩니다.

## 6. Permission Contract

### Allowed Permissions

에이전트는 다음 권한만 사용할 수 있습니다.

- 특정 Outlook Calendar 접근
  - 사용 목적: 예약 일정을 등록하고 중복 예약을 확인하기 위해 예약 전용 Outlook Calendar 하나에만 접근합니다.
  - 제한: 예약 전용 Calendar 외의 개인 또는 조직 전체 Calendar에는 접근하지 않습니다.
- 특정 예약 Excel Table 또는 SharePoint List 읽기·쓰기
  - 사용 목적: 예약 신청 내역, 변경 상태, 취소 여부를 저장하기 위해 예약용 Excel Table 또는 SharePoint List 하나에만 접근합니다.
  - 제한: 승인된 Table 또는 List 외의 원본 파일과 개인별 상세 자료로 확장하지 않습니다.
- 예약자에게 알림 발송
  - 사용 목적: 예약 확정, 변경, 취소 안내를 필요한 범위에서만 발송합니다.
  - 제한: 민감정보를 메시지 본문에 포함하지 않고 테스트 채널 또는 테스트 흐름에서 먼저 검증합니다.
- Teams Incoming Webhook 또는 Power Automate 알림 흐름 사용
  - 사용 목적: 담당자에게 필요한 알림만 보내기 위해 승인된 Teams Webhook 또는 Power Automate 흐름만 사용합니다.
  - 제한: 민감정보를 메시지 본문에 포함하지 않고 테스트 채널 또는 테스트 흐름에서 먼저 검증합니다.
- 특정 SharePoint 문서 라이브러리 또는 폴더 접근
  - 사용 목적: 업로드 파일이나 증빙자료를 승인된 SharePoint 위치 하나에만 저장하기 위해 사용합니다.
  - 제한: 지정된 라이브러리 또는 폴더 외의 SharePoint 전체 접근을 요청하지 않습니다.

### Forbidden Permissions

에이전트는 다음 권한을 요청하거나 구현하면 안 됩니다.

- Google Drive 전체 접근
  - 금지 이유: 이 앱은 특정 파일이나 폴더만 사용하므로 전체 Drive 접근은 과도한 권한입니다.
  - 대안: 특정 SharePoint 문서 라이브러리, SharePoint 폴더 또는 OneDrive 폴더만 사용합니다.
- Gmail 전체 읽기
  - 금지 이유: 알림 발송에는 필요하지 않으며, 메일 본문 전체를 읽는 권한은 허용하지 않습니다.
  - 대안: 지정된 알림 Webhook 또는 제한된 발송 기능만 사용합니다.
- Gmail 전체 쓰기
  - 금지 이유: 사용자 대신 메일을 보낼 수 있어 오발송 위험이 크므로 사용하지 않습니다.
  - 대안: 지정된 알림 Webhook 또는 제한된 발송 기능만 사용합니다.
- Google Workspace 관리자 권한
  - 금지 이유: 조직 전체 계정과 설정에 영향을 줄 수 있어 일반 업무앱에서 요청하지 않습니다.
  - 대안: 앱 내부 관리자 역할과 승인자 역할을 분리합니다.
- Microsoft Graph Application Permission
  - 금지 이유: 업무 목적에 비해 권한 범위가 넓거나 데이터 유출 위험이 커서 사용하지 않습니다.
  - 대안: 허용 권한 목록에 있는 최소 권한만 사용합니다.
- 조직 전체 Calendar 접근
  - 금지 이유: 업무 목적에 비해 권한 범위가 넓거나 데이터 유출 위험이 커서 사용하지 않습니다.
  - 대안: 허용 권한 목록에 있는 최소 권한만 사용합니다.
- 개인 캘린더 전체 접근
  - 금지 이유: 업무 목적에 비해 권한 범위가 넓거나 데이터 유출 위험이 커서 사용하지 않습니다.
  - 대안: 허용 권한 목록에 있는 최소 권한만 사용합니다.
- 관리자 권한
  - 금지 이유: 업무 목적에 비해 권한 범위가 넓거나 데이터 유출 위험이 커서 사용하지 않습니다.
  - 대안: 앱 내부 관리자 역할과 승인자 역할을 분리합니다.

## 7. Feature Scope

### Core Features

- 예약 등록
- 예약 현황 조회
- 중복 예약 방지
- 예약 취소/변경
- 예약 상태 관리

### Optional Features Selected by User

- 목록과 상세 내용을 확인합니다.
- 새 항목을 추가합니다.
- 처리상태나 메모를 수정합니다.
- 관리자가 승인하거나 반려하고 사유를 기록합니다.
- 담당자에게 필요한 자동 알림을 보냅니다.
- 파일이나 증빙자료를 지정된 저장소에 업로드합니다.

### Do Not Build Unless Approved

- 삭제 또는 영구 삭제 기능
- 대시보드 표시 또는 보고서 다운로드 기능
- 사용자별 조회 제한 또는 관리자 화면 기능
- 외부 API 연동
- 조직 전체 파일 또는 메일 검색 기능
- 금지 데이터 입력폼
- 전체 데이터 일괄 다운로드

## 8. Implementation Rules

에이전트는 다음 구현 규칙을 따라야 합니다.

- MUST: 입력값 검증을 모든 생성·수정 기능에 적용합니다.
- MUST: 삭제보다 비활성화 또는 보관 상태를 우선 사용합니다.
- MUST: 승인 후 수정이 필요한 경우 변경 로그를 남깁니다.
- MUST NOT: 민감정보를 console.log, localStorage, URL query string에 저장하지 않습니다.
- MUST NOT: API Key, Webhook URL, Token을 코드에 직접 작성하지 않습니다.
- MUST NOT: 실제 개인정보, 상담 원문, HR 원본, 회계 증빙 원본을 프롬프트에 입력하지 않습니다.
- SHOULD: 초기 버전은 최소 기능으로 구현하고, 알림·다운로드·외부 연동은 별도 단계로 추가합니다.
- ASK BEFORE IMPLEMENTING: 문서에 없는 기능이나 권한이 필요하면 구현을 멈추고 사람에게 확인합니다.

## 9. UI/UX Requirements

- 예약 가능 시간과 불가능 시간을 명확히 보여줍니다.
- 예약 변경과 취소 버튼을 구분합니다.
- 민감한 방문 사유를 입력하지 않도록 안내합니다.
- 마감 알림 중복 발송을 방지합니다.
- 알림 발송 실패 시 재시도 기준과 실패 메시지를 표시합니다.
- 저장 실패와 권한 오류는 사용자가 다음 조치를 알 수 있게 쉬운 문장으로 안내합니다.
- 파일 업로드 실패는 사용자가 다음 조치를 알 수 있게 쉬운 문장으로 안내합니다.
- 모바일 사용이 필요한 경우 작은 화면에서 입력 항목이 잘리지 않는지 확인합니다.
- 위험한 작업은 일반 버튼과 시각적으로 구분합니다.

## 10. Logging Requirements

다음 이벤트는 로그로 남겨야 합니다.

- 예약생성: 예약 생성
- 예약변경: 예약 변경
- 예약취소: 예약 취소
- 담당자변경: 담당자 변경
- 알림발송실패: 알림 발송 실패

로그에는 다음 필드를 포함합니다.

- actorId
- actorName
- action
- targetId
- timestamp
- beforeValue
- afterValue

로그에는 비밀번호, 토큰, 계좌번호, 상담 원문, 원본 증빙파일 내용을 저장하지 않습니다.

## 11. Test Requirements

에이전트는 다음 시나리오를 테스트해야 합니다.

- 중복 예약 상황을 만들어 중복 저장이나 중복 발송이 발생하지 않는지 확인합니다.
- 예약 취소 시나리오를 테스트 데이터로 검증합니다.
- 예약 변경 시나리오를 테스트 데이터로 검증합니다.
- 권한 없는 일정 조회를 테스트하고, 허용되지 않은 사용자가 데이터에 접근하거나 수정하지 못하는지 확인합니다.
- 알림 발송 실패 상황에서 실패 메시지와 재시도 기준이 사용자에게 명확히 보이는지 확인합니다.
- 알림 중복 방지 상황을 만들어 중복 저장이나 중복 발송이 발생하지 않는지 확인합니다.
- Webhook 또는 알림 흐름 실패 상황에서 실패 메시지와 재시도 기준이 사용자에게 명확히 보이는지 확인합니다.
- 작성자 또는 담당자는 허용된 데이터만 조회·수정할 수 있습니다.
- 권한 없는 사용자는 제한 데이터에 접근할 수 없습니다.
- Webhook 또는 알림 발송 실패 시 사용자에게 실패 메시지를 표시합니다.
- 권한 거부와 저장 실패 상황을 테스트하고 사용자 안내 문구를 확인합니다.
- 실제 운영 데이터가 아닌 샘플 데이터로 테스트합니다.

## 12. Acceptance Criteria

이 앱은 다음 조건을 만족해야 완료된 것으로 봅니다.

- 데이터 모델에 금지 데이터 필드가 없습니다.
- Core Features가 샘플 데이터로 동작합니다: 예약 등록, 예약 현황 조회, 중복 예약 방지, 예약 취소/변경, 예약 상태 관리.
- 앱은 허용 권한만 사용합니다: 특정 Outlook Calendar 접근, 특정 예약 Excel Table 또는 SharePoint List 읽기·쓰기, 예약자에게 알림 발송, Teams Incoming Webhook 또는 Power Automate 알림 흐름 사용, 특정 SharePoint 문서 라이브러리 또는 폴더 접근.
- 전체 Drive, 전체 Gmail, 조직 관리자 권한을 요청하지 않습니다.
- 권한 있는 사용자는 목록과 상세 내용을 조회할 수 있습니다.
- 새 항목 등록 시 필수값 검증과 중복 방지 기준이 적용됩니다.
- 처리상태나 메모 수정 시 변경 전후 값과 수정자가 로그에 남습니다.
- 승인과 반려 처리 시 처리자, 처리일시, 사유가 로그에 남습니다.
- 알림 발송은 지정된 채널 또는 흐름으로만 전송되고 민감정보를 본문에 포함하지 않습니다.
- 파일 업로드는 지정된 저장소 하나에만 저장되고 파일 권한이 제한됩니다.
- 권한 없는 사용자는 제한된 데이터에 접근할 수 없습니다.
- 실제 운영 데이터가 아닌 샘플 데이터로 주요 흐름 테스트가 완료되었습니다.
- 일정·예약관리의 목적을 벗어난 기능을 임의로 추가하지 않았습니다.

## 13. Definition of Done

개발은 다음 조건을 모두 만족해야 완료됩니다.

- npm run build 또는 해당 플랫폼의 빌드 명령이 성공합니다.
- 주요 기능은 샘플 데이터로 테스트되었습니다.
- 금지 권한이 코드, 설정, 배포 환경에 포함되어 있지 않습니다.
- 비밀키, API Key, Webhook URL, Token은 코드에 하드코딩되어 있지 않습니다.
- 로그에는 비밀번호, 토큰, 계좌번호, 상담 원문, 원본 증빙파일 내용이 저장되지 않습니다.
- 관리자 또는 내부 검토자가 배포 전 확인할 수 있는 체크리스트가 제공됩니다.

## 14. Human Review Checklist

사람 검토자는 배포 전에 다음 항목을 확인해야 합니다.

- 예약 전용 캘린더만 접근합니다.
- 개인 캘린더 전체 권한을 요청하지 않습니다.
- 실제 데이터 대신 테스트 데이터로 배포 전 검증합니다.
- 최소 권한 계정으로 주요 기능을 테스트합니다.
- 데이터 보관 위치와 접근 가능 담당자를 문서화합니다.
- 입력 데이터 항목과 보관 위치를 문서화합니다.
- 필요한 최소 권한만 요청하도록 구현합니다.
- 삭제·외부 발송 기능에 확인 절차와 로그를 넣습니다.
- 테스트 데이터와 실제 데이터를 분리합니다.
- 배포 전 개인정보보호 담당자 또는 내부 승인자를 확인합니다.
- 마감 알림 테스트 채널 또는 테스트 흐름을 먼저 검증했습니다.
- 공유 링크가 외부 공개로 열려 있지 않은지 확인합니다.
- 개인정보보호 담당자 또는 내부 승인자가 검토해야 하는 데이터가 포함되어 있는지 확인합니다.

## 15. Notes for Beginners

- 회의실 예약은 예약 전용 캘린더 하나만 사용합니다.
- 상담 예약은 상담 내용이 아니라 시간과 담당자만 관리합니다.
- 민감한 방문 사유는 예약 폼에 입력하지 않도록 안내합니다.
- 먼저 데이터 표 구조를 작게 만들고, 선택한 핵심 기능부터 샘플 데이터로 확인합니다.
- 운영 데이터 연결 전에는 반드시 샘플 데이터로 전체 흐름을 테스트합니다.

### Program Warnings

- 상담 예약이라도 상담 내용 원문은 예약 폼에 입력하지 않습니다.

---
이 도구는 조직의 보안 검토를 대체하지 않습니다. 민감정보, 상담기록, HR, 회계, 후원자 정보가 포함된 시스템은 기관 내부 보안 기준과 개인정보보호 담당자 검토를 거쳐야 합니다.
 

일정·예약관리용 Skills.md 결과 해석

1. 개발 목적을 제한합니다

생성된 문서의 Agent Mission은 다음 방향으로 작성됩니다.

예약 가능한 시간과 장소를 관리하고, 담당자 일정과 중복 예약을 줄이는 업무앱입니다. 상담 내용이 아니라 시간·담당자·상태 중심으로 관리합니다.

이 문장이 중요합니다.

예약앱이라고 해서 상담 내용 전체를 저장하거나, 개인별 사례기록을 관리하는 시스템으로 확장하면 안 됩니다.
이 앱은 시간, 장소, 담당자, 예약상태 중심으로 제한됩니다.


2. 기본 기능과 선택 기능을 구분합니다

생성 문서는 기능을 두 가지로 나눕니다.

Core Features

  • 예약 등록

  • 예약 현황 조회

  • 중복 예약 방지

  • 예약 취소/변경

  • 예약 상태 관리

Optional Features Selected by User

  • 목록과 상세 내용 확인

  • 새 항목 추가

  • 처리상태나 메모 수정

  • 승인·반려

  • 자동 알림

  • 파일 업로드

이 구조는 AI 코딩 에이전트에게 중요합니다.

기본으로 만들어야 하는 기능과 사용자가 추가로 선택한 기능이 분리되기 때문입니다.
선택하지 않은 기능은 개발 범위에 들어가지 않습니다.


3. 개발하지 말아야 할 범위를 명확히 정합니다

Out of Scope에는 다음과 같은 항목이 포함됩니다.

  • 조직 전체 Calendar 접근

  • 개인 캘린더 전체 접근

  • Microsoft Graph Application Permission

  • 개인별 상담 내역

  • 건강정보 및 심리·의료 정보

  • 민감한 방문 사유

  • 장애정보 및 장애진단명

  • 외부 공개 링크 자동 생성

  • 전체 데이터 일괄 다운로드

이 부분은 매우 중요합니다.

AI 코딩 도구는 편의를 위해 “전체 캘린더 권한을 요청하면 됩니다” 또는 “관리자 권한을 주면 쉽게 됩니다”라고 제안할 수 있습니다.
하지만 이 문서가 있으면 그런 제안을 막을 수 있습니다.


4. 각 환경에 맞는 기술스택을 제안합니다

이번 예시는 Microsoft 365를 선택했기 때문에 다음 구성이 추천되었습니다.

  • Microsoft Bookings

  • Outlook Calendar

  • Power Automate

  • Excel Table 또는 SharePoint List

  • SharePoint 문서 라이브러리

Google Calendar나 Google Sheets는 1차 추천이 아니라 대안으로만 표시됩니다.
이렇게 해야 조직에서 실제로 사용하는 플랫폼과 개발 기준이 충돌하지 않습니다.


5. Data Contract로 데이터 모델을 제한합니다

Data Contract에는 에이전트가 사용할 수 있는 필드가 명시됩니다.

기본 데이터는 다음과 같습니다.

  • eventTitle: 일정명

  • reservedAt: 예약일시

  • location: 장소

  • ownerName: 담당자

  • reservationStatus: 예약상태

  • reservationPurpose: 예약 목적

  • isCanceled: 취소 여부

개인정보는 별도로 Optional Personal Data로 분리됩니다.

  • reservedByName: 예약자 이름

  • contactPhone: 연락처

  • email: 이메일

  • 예약 이력

이 구조 덕분에 코딩 에이전트가 임의로 주민등록번호, 상담 내용, 건강정보 같은 필드를 만들지 않도록 제한할 수 있습니다.


6. Permission Contract로 권한 범위를 제한합니다

이번 예시에서 허용된 권한은 다음과 같습니다.

  • 특정 Outlook Calendar 접근

  • 특정 예약 Excel Table 또는 SharePoint List 읽기·쓰기

  • 예약자에게 알림 발송

  • Teams Incoming Webhook 또는 Power Automate 알림 흐름 사용

  • 특정 SharePoint 문서 라이브러리 또는 폴더 접근

핵심은 특정입니다.

조직 전체 Calendar에 접근하지 않습니다.
개인 캘린더 전체를 읽지 않습니다.
SharePoint 전체 접근을 요청하지 않습니다.

예약앱에 필요한 범위만 접근합니다.


7. Acceptance Criteria로 완료 기준을 정합니다

문서의 Acceptance Criteria는 개발 완료 여부를 확인하는 기준입니다.

예를 들어 다음과 같은 조건이 들어갑니다.

  • 데이터 모델에 금지 데이터 필드가 없어야 함

  • 예약 등록, 예약 현황 조회, 중복 예약 방지가 샘플 데이터로 동작해야 함

  • 전체 Drive, 전체 Gmail, 조직 관리자 권한을 요청하지 않아야 함

  • 승인과 반려 처리 시 처리자, 처리일시, 사유가 로그에 남아야 함

  • 파일 업로드는 지정된 저장소 하나에만 저장되어야 함

  • 실제 운영 데이터가 아닌 샘플 데이터로 테스트가 완료되어야 함

이 기준이 있으면 개발이 끝난 뒤에도 “잘 만들어졌는지” 확인할 수 있습니다.


AI 코딩 도구에 넣는 방법

생성된 Skills.md는 그대로 복사해 Codex, Claude Code, Antigravity 같은 도구에 넣을 수 있습니다.

다음 문장을 함께 넣으면 좋습니다.

아래 Skills.md 기준을 반드시 지켜서 개발해 주세요.

이 문서의 Data Contract, Permission Contract, MUST, MUST NOT, Out of Scope, Acceptance Criteria를 벗어나는 기능은 임의로 추가하지 마세요.

추가 권한, 외부 API, 민감정보 저장, 관리자 권한이 필요하다고 판단되면 개발을 중단하고 먼저 질문해 주세요.

이렇게 하면 AI 코딩 도구가 개발 범위를 임의로 넓히는 것을 줄일 수 있습니다.


실제 운영 시 주의할 점

이번 예시는 테스트를 위해 민감한 정보를 많이 선택했습니다.
그래서 보안등급이 4등급으로 올라갔습니다.

하지만 실제 일정·예약관리 앱이라면 보통 다음 정도만 수집하는 것이 바람직합니다.

  • 예약자 이름

  • 연락처

  • 예약일시

  • 장소

  • 담당자

  • 예약상태

상담 내용, 장애정보, 건강정보, 급여·평가·징계 정보는 예약앱에 넣지 않는 것이 원칙입니다.
필요하다면 기존 상담관리 시스템이나 기관의 승인된 원본 시스템에서 별도로 관리해야 합니다.

즉, VibeGuard Skills가 4등급을 표시했다는 것은 “이런 정보를 넣어도 된다”는 뜻이 아닙니다.
오히려 “이 정도 정보가 들어가면 일반 업무앱으로 가볍게 만들면 안 된다”는 경고입니다.


VibeGuard Skills는 보안 검토를 대체하지 않습니다

VibeGuard Skills는 조직의 보안 검토를 대체하지 않습니다.

특히 다음과 같은 시스템은 반드시 내부 검토가 필요합니다.

  • 상담기록

  • 사례관리

  • HR

  • 급여

  • 평가

  • 징계

  • 회계

  • 후원자 정보

  • 법무·계약 문서

  • 조직 전체 관리자 권한이 필요한 시스템

VibeGuard Skills는 “무엇을 만들어도 되는지 자동 승인하는 도구”가 아닙니다.

오히려 반대로, 무엇을 만들면 안 되는지 먼저 확인하게 하는 도구입니다.


정리: 바이브 코딩에서 중요한 것은 빠른 개발보다 안전한 범위 설정입니다

AI 코딩 도구는 앞으로 더 강력해질 것입니다.
업무앱을 만드는 일도 점점 쉬워질 것입니다.

그럴수록 조직은 “누가 만들었는가”보다 “어떤 기준으로 만들었는가”를 더 중요하게 봐야 합니다.

VibeGuard Skills는 다음 질문에 답하기 위한 도구입니다.

  • 이 앱은 어떤 목적까지 개발해야 하는가?

  • 어떤 데이터는 저장하면 안 되는가?

  • 어떤 권한은 요청하면 안 되는가?

  • 어떤 기능은 승인 없이는 만들면 안 되는가?

  • AI 코딩 에이전트가 어디까지 개발해도 되는가?

바이브 코딩을 막자는 것이 아닙니다.
더 안전하게 시작하자는 것입니다.

빠르게 만드는 것보다 먼저 해야 할 일은 범위를 정하는 것입니다.
VibeGuard Skills는 그 범위를 정리하는 첫 번째 기준 문서 생성기입니다.

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기