agent-cowork/skills/refine-boundaries/SKILL.md
공개 지침 파일(트랙 A: 루트 `AGENTS.md` / 트랙 B: 루트 `CLAUDE.md`)의 `## Boundaries` 섹션에 규칙을 한 번에 한 개씩 누적한다. 트랙은 자동 감지(우선순위: AGENTS.md > CLAUDE.md). 사용자가 에이전트 실수를 지적하거나 규칙을 명시적으로 선언할 때 자동 발화하거나 슬래시로 호출. 3-tier(Always do / Ask first / Never do) 중 적절한 곳에 분류하고, 토픽 특정적이면 해당 섹션(Code Style, Testing, Git Workflow 등)에 인라인으로, 크로스커팅이면 Boundaries에 배치한다. 기존 규칙은 건드리지 않는 **additive-only** 스킬. Triggers: "refine boundaries", "add boundary", "add never do", "add always do", "다시는 이렇게 하지 마", "항상 ~ 먼저 해", "에이전트가 실수했어", "/refine-boundaries". Auto-trigger: 사용자가 교정 발화를 할 때 ("the agent shouldn't have", "don't do X", "never do Y", "always do Z first" 등). 에이전트 실수를 본 직후, 또는 사용자가 새 규칙을 선언할 때 사용.
npx skillsauth add dev-goraebap/skills refine-boundariesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
공개 지침 파일(트랙 A: AGENTS.md / 트랙 B: CLAUDE.md)의 ## Boundaries 섹션을 프로젝트 수명 동안 지속적으로 성장시키는 스킬. 에이전트가 실수할 때마다 교정 내용을 이 섹션에 누적해두면, 다음 에이전트가 같은 실수를 반복하기 전에 이 섹션을 읽고 참고한다.
source 파일은 자동 감지: 루트 AGENTS.md 우선, 없으면 CLAUDE.md. 슬래시 호출 시 --track=A|B 인자로 명시 가능.
In scope:
## Boundaries 섹션 미존재 시 신규 생성Out of scope:
| # | 확인 | 실패 시 |
|---|---|---|
| 1 | source 파일(AGENTS.md 또는 CLAUDE.md)이 프로젝트 루트에 존재 | "공개 지침 파일이 없습니다. /draft-public-rules로 먼저 생성하세요." |
| 2 | 둘 다 존재 시 트랙 결정 | 우선순위: AGENTS.md > CLAUDE.md. --track=B로 강제 가능. CLAUDE.md가 @AGENTS.md 한 줄(import-only)이면 AGENTS.md를 source로 사용하고 CLAUDE.md는 건드리지 않는다 |
사용자 대면 메시지는 사용자 언어. source 파일에 기록하는 규칙 본문도 사용자 언어 (draft-public-rules와 동일 정책). 단, 구조적 요소는 영어 고정:
## Boundaries), 서브헤딩(### Always do / ### Ask first / ### Never do)**ALWAYS**, **ASK FIRST**, **NEVER**)| 진입 신호 | 모드 |
|---|---|
| /refine-boundaries 명시 호출 | Slash → Step 2 |
| 교정 발화 감지 ("다시는 X 하지마", "never Y" 등) | Auto → Step 3 (바로 분류) |
| 명시적 규칙 선언 ("항상 X 먼저", "X는 금지") | Auto → Step 3 |
Auto-trigger 원칙: auto 모드에서는 인터뷰 생략. 사용자가 방금 말한 내용을 곧바로 분류·배치한다.
어떤 규칙을 추가할까요? 명령형 한 줄로:
예:
- "Never commit .env 파일"
- "커밋 전 항상 pnpm test 실행"
- "새 GitHub issue 만들기 전 확인"
결정 트리:
여러 개 해당하면 강한 tier 우선 (Never > Ask > Always).
제안:
Tier: Never do
이유: 위반 시 되돌릴 수 없는 피해 (시크릿이 커밋됨)
맞나요? (y / 다른 tier)
결정 질문: "이 규칙이 한 종류의 작업을 어떻게 하는지에 관한 것인가, 아니면 어떤 행동이든 언제 멈춰 확인해야 하는지에 관한 것인가?"
| 규칙 성격 | 배치 |
|---|---|
| "코드 작성 시 ~" — 토픽 범위 | ## Code Style 등에 인라인 |
| "테스트 작성 시 DB mock 금지" — 토픽 | ## Testing 인라인 |
| "git 작업 시 main 브랜치 force-push 금지" — 토픽 | ## Git Workflow 인라인 |
| "시크릿 커밋 금지" — 모든 행동 | ## Boundaries > Never do |
| "파괴적 작업 전 확인" — 크로스커팅 | ## Boundaries > Ask first |
토픽에 걸리는 경우 해당 섹션 존재 확인:
| 조건 | 처리 |
|---|---|
| 토픽 섹션 존재 | 그 섹션 끝에 tier prefix와 함께 인라인 추가 |
| 토픽 섹션 미존재 | 사용자에게 선택 제시: "인라인(섹션 신규 생성) / Boundaries에 배치" |
| 크로스커팅 | ## Boundaries의 해당 sub-tier 끝에 추가 |
배치 제시:
배치: ## Git Workflow 에 인라인 (토픽 특정적 autonomy 규칙)
## Git Workflow
...
- **NEVER** main 브랜치에 force-push
적용? (y / Boundaries로 이동)
- **ALWAYS** 커밋 전 pnpm test 실행- **ASK FIRST** 새 마이그레이션 파일 생성- **NEVER** main 브랜치에 force-push## Boundaries의 해당 sub-section 끝에 한 줄로 추가 (tier prefix는 불필요 — sub-heading이 이미 암시).크로스커팅 규칙인데 source 파일에 ## Boundaries가 없으면, source 파일(트랙별) 끝에 다음 구조로 생성:
## Boundaries
### Always do
### Ask first
### Never do
<!-- 에이전트 실수가 있을 때마다 여기 누적하세요. Error-driven growth. -->
그 후 첫 규칙을 해당 tier에 추가.
testing
도메인 일반 패턴을 강의 모드로 가르치는 인지과학 기반 학습 스킬. AI가 가상 도메인 전문가(선생님) 역할을 하고 사용자가 학생으로 낯선 도메인을 차근차근 배운다. 메뉴로 시작해서 페이즈를 골라 잠수 → 능동 회상 Q&A → 자기 설명(Feynman) 순서로 진행. Dunlosky 메타분석 기반 인지과학 8원칙(Cognitive Load, Practice Testing, 정교화 질문, Self-Explanation, Schema 연결, Dual Coding, Desirable Difficulty, 분산 학습)을 본문에 명시 적용. 도메인의 법령·산업 표준·인증을 학습 본문에 정식 통합 (출처 인용이 아니라 학습 대상). AI가 판단해 보편적이고 자료 풍부한 도메인은 자료 요청 없이 진행, 좁고 깊은 도메인일 때만 사용자에게 자료 있는지 묻기. 산출물은 학습 노트 스타일 (진도 체크박스 + 페이즈별 일관 구조 + 출처 링크). 페르소나 강요 없이 보편 액터 표현("사원 A", "관리자 A"). bigpicture의 이전 단계로 작동하거나 단독 사용 가능. Triggers — "도메인 학습", "낯선 도메인 가르쳐줘", "이 산업 어떻게 굴러가요", "선생님 모드", "1:1 강의", "도메인 입문", "도메인 일반 패턴", "HR 플랫폼이 뭔지", "이커머스 흐름", "domain classroom", "/domain-classroom".
development
빅픽처 이벤트스토밍의 1:1 분석 도구. 학습 단계(domain-classroom)에서 머리에 박힌 도메인 일반 패턴을 클라이언트 시스템에 매핑해 빅픽처 산출물(시간순 도메인 이벤트·페이즈·액터·외부시스템·핫스팟·피벗)을 누적한다. domain-classroom의 학습 노트(docs/learning-notes/{도메인}- classroom.md)와 클라이언트 자료(RFP·요구사항정의서·기존 시스템 스키마)를 입력으로 받아 페이즈 단위로 진행. 페르소나·서사 없는 분석 톤. 도메인 이벤트 판별 4기준(도메인 전문가 관심·비즈니스 상태 변화·법적 의미·다른 흐름 트리거)을 명시 적용해 UI/Telemetry 이벤트 혼입 방지. 이벤트는 한국어 자연어 + Code Identifier 이중 표기. 핫스팟에 ID·답할 위치·확신도 태그 부여. 산출물은 docs/eventstorming.md 단일 파일로 시작, 후속 단계 스킬(process-modeling·software-design)이 추가될 때 폴더로 자연 분기. Initial/Update/Cycle 모드 지원 — 코드 작성 후에도 다시 사이클 가능. Triggers — "빅픽처", "빅픽처 만들어줘", "이벤트스토밍", "도메인 이벤트 정리", "Big Picture EventStorming", "페이즈 매핑", "도메인 산출물 정리", "/bigpicture".
data-ai
빅픽처 이벤트스토밍의 1:1 학습 친화 변형. 그룹 워크샵에서 도메인 전문가가 던지는 이벤트를 받아 적는 대신, AI가 가상 도메인 전문가 역할을 하고 사용자가 학습자로 1:1 인터뷰하며 빅픽처를 누적한다. 산출물(시간순 도메인 이벤트·액터· 외부시스템·핫스팟·피벗)은 빅픽처 이벤트스토밍과 거의 동일하지만, 한 보드에 한 번에 펼치는 방식이 아니라 **한 액터·한 챕터씩 시간순 서사로 누적**한다. 각 장면마다 "왜 이게 필요한가?" 설명을 곁들여 학습자가 따라올 수 있게 한다. RFP·요구사항정의서·기존 도메인 자료를 입력으로 받거나, 자료가 없으면 AI 사전 리서치(보편 사례·법령·산업 표준)로 보충해 진행. 페르소나 시점의 챕터 단위 (5~7개 장면) + 확신도 태그 [확실/일반론/추측]로 검증 지점 명시 + 사용자 인터랙션 + 액터 전환으로 빅픽처를 점진적으로 채운다. 산출물 저장은 옵셔널 — 이해 자체가 목적이다. Triggers — "낯선 도메인 이해", "도메인 차근차근 알려줘", "1:1 빅픽처", "솔로 이벤트스토밍", "RFP 분석", "비즈니스 흐름 이해", "액터 시나리오", "신규 프로젝트 도메인 파악", "빅픽처 스토리타임", "bigpicture storytime", "/bigpicture-storytime".
databases
PostgreSQL DB에 직접 접근하는 스킬. DB 조회, 테이블 구조 확인, 데이터 검증이 필요할 때 사용한다. Node.js 스크립트로 직접 연결하며 접속 정보는 환경변수 또는 credentials 파일에서 읽는다. "postgres 조회", "DB 확인", "테이블 구조", "pg-query", "쿼리 실행", "데이터 검증", "PostgreSQL 접속" 같은 요청에 트리거한다.