docs: global-principles→헌장 링크 수정 + 절대경로→GitHub URL 정합 + 스킬 SKILL.md 추가
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Made-with: Cursor
This commit is contained in:
parent
4ec7c9a8ed
commit
586a7493fc
1
book/100_philosophy
Symbolic link
1
book/100_philosophy
Symbolic link
@ -0,0 +1 @@
|
||||
/home/admin/0_VALUE/00_Foundations/철학
|
||||
@ -3,14 +3,14 @@
|
||||
**작성일**: 2025-10-13
|
||||
**수정일**: 2026-03-05 (SSOT 관리 기준 명시)
|
||||
**참고**: AGENTS.md, 311_backend_coding_principles.md
|
||||
**상위 원칙**: [0_VALUE Writing Principles](../../../../0_VALUE/02_Governance/writing-principles.md)
|
||||
**상위 원칙**: [0_VALUE Writing Principles](../../../../0_VALUE/20_Governance/writing-principles.md)
|
||||
|
||||
---
|
||||
|
||||
## 0. SSOT 관리 기준
|
||||
|
||||
- 문서 작성 상세 원칙의 SSOT는 본 문서(`312_writing-principles.md`)다.
|
||||
- 상위 공통 원칙의 SSOT는 `0_VALUE/02_Governance/writing-principles.md`다.
|
||||
- 상위 공통 원칙의 SSOT는 `0_VALUE/20_Governance/writing-principles.md`다.
|
||||
- 본 문서는 robeing 프로젝트에 필요한 구체화 문서다.
|
||||
- 원칙 충돌 시 상위 원칙을 먼저 검토하고, 예외가 필요하면 사용자에게 먼저 보고한 뒤 본 문서에 예외를 기록한다.
|
||||
- 하위 폴더 `README.md`와 개별 문서는 원칙 본문을 반복하지 않고 SSOT 링크만 둔다.
|
||||
@ -158,17 +158,7 @@
|
||||
|
||||
### 링크 작성 원칙 (필수)
|
||||
|
||||
- 같은 저장소 문서 링크는 상대경로 Markdown 링크를 사용합니다.
|
||||
- 예: `[문서명](./파일.md)`, `[상위 문서](../README.md)`
|
||||
- 다른 저장소 문서 링크는 GitHub 절대 URL을 사용합니다.
|
||||
- 예: `https://github.com/<org>/<repo>/blob/<branch>/...`
|
||||
- 로컬 절대경로(`/home/...`, `C:\\...`)와 위키링크(`[[...]]`)는 GitHub 렌더링 호환성 이슈가 있어 기본 문서 본문에서 사용하지 않습니다.
|
||||
- 문서 추가/수정 시 링크 클릭 동작을 반드시 확인한 뒤 커밋합니다.
|
||||
- 트러블슈팅/실행 기록 문서는 필요 시 문서 상단에 `tags: [tag1, tag2, ...]` 형식의 태그를 둡니다.
|
||||
- 같은 계열 사건이 이어질 때는 기존 문서를 덮어쓰지 말고 새 문서로 분리한 뒤, 문서 하단에 `전후 관계 문서` 또는 `관련 문서` 링크를 둡니다.
|
||||
- 원칙은 `기존 문서 보존 + 새 사건은 새 문서 + 관련 문서끼리 링크`입니다.
|
||||
- 같은 목적의 상위 문서가 있으면 문서 상단에 `상위 원칙` 링크를 둡니다.
|
||||
- 동일 목적 문서는 파일명을 상위 SSOT basename에 맞춥니다.
|
||||
공통 규칙은 [0_VALUE/20_Governance/writing-principles.md](../../../../0_VALUE/20_Governance/writing-principles.md) §4 참조.
|
||||
|
||||
### 출처 표기 방법
|
||||
|
||||
@ -179,18 +169,6 @@
|
||||
- `[영어 표현 12개를 배우는 회화 영상](https://www.youtube.com/watch?v=QneqFpTsQzo)`
|
||||
- `[직장인영어회화 '다시 한번 말씀해 주시겠어요?'(되묻기 pardon)](https://m.blog.naver.com/yanadooblog/221588091601)`
|
||||
|
||||
### 구조화된 정보 형식 (AI/사람 모두 읽기 좋게)
|
||||
|
||||
**권장 형식**:
|
||||
- **표**: 비교, 목록, 역할 구분 등 구조화된 정보 표현
|
||||
- **파일명:줄번호**: 코드 위치 명확히 참조
|
||||
- **명확한 키워드**: 검색 가능하도록 핵심 단어 명시
|
||||
- **목록/부제목**: 정보 계층 구조화
|
||||
|
||||
**금지 형식**:
|
||||
- JSON/XML 같은 기계적 형식 (사람이 읽기 어려움)
|
||||
- 암호화된 코드나 해시값 직접 노출
|
||||
|
||||
### 절대 금지 사항
|
||||
|
||||
| 금지 | 이유 |
|
||||
@ -330,17 +308,9 @@
|
||||
|
||||
---
|
||||
|
||||
## 6. 비난조 문장 금지
|
||||
## 6. 표현/문체 원칙
|
||||
|
||||
### 금지 표현
|
||||
- "잘못 작성됨"
|
||||
- "버그가 많음"
|
||||
- "엉망진창"
|
||||
|
||||
### 권장 표현
|
||||
- "수정 필요"
|
||||
- "개선 가능"
|
||||
- "리팩토링 대상"
|
||||
공통 규칙은 [0_VALUE/20_Governance/writing-principles.md](../../../../0_VALUE/20_Governance/writing-principles.md) §7 참조.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
# 스킬 계약 및 실행 원칙
|
||||
|
||||
**상위 원칙**:
|
||||
- [0_VALUE Coding Principles](../../../../0_VALUE/02_Governance/coding-principles.md)
|
||||
- [0_VALUE Writing Principles](../../../../0_VALUE/02_Governance/writing-principles.md)
|
||||
- [0_VALUE Agents Guide](../../../../0_VALUE/02_Governance/agents-rules.md)
|
||||
- [AI 에이전트 시대의 CLI·스킬·인터페이스 진화](../../../../0_VALUE/02_Governance/ai-agent-cli-skill-interface-evolution.md)
|
||||
- [0_VALUE Coding Principles](../../../../0_VALUE/20_Governance/coding-principles.md)
|
||||
- [0_VALUE Writing Principles](../../../../0_VALUE/20_Governance/writing-principles.md)
|
||||
- [0_VALUE Agents Guide](../../../../0_VALUE/20_Governance/agents-rules.md)
|
||||
- [AI 에이전트 시대의 CLI·스킬·인터페이스 진화](../../../../0_VALUE/20_Governance/ai-agent-cli-skill-interface-evolution.md)
|
||||
|
||||
## 1. 목적
|
||||
- 로빙에서 `rb8001`과 `skill-*` 서비스의 책임 경계를 고정합니다.
|
||||
|
||||
@ -1,9 +1,13 @@
|
||||
tags: [workspace, team, project, database, slack, ideas, access-control, agent, multi-workspace]
|
||||
---
|
||||
type: ideas
|
||||
tags: [workspace, team, project, access-control, agent, entity-type]
|
||||
adopted_by: 260316_workspace_team_project_계층_재정의_전환계획.md
|
||||
---
|
||||
|
||||
# workspace-team-project 계층 재정의 아이디어
|
||||
|
||||
상위 원칙:
|
||||
- [0_VALUE Writing Principles](../../../../0_VALUE/02_Governance/writing-principles.md)
|
||||
- [0_VALUE Writing Principles](../../../../0_VALUE/20_Governance/writing-principles.md)
|
||||
- [Workspace-Team-Project 도메인 모델](../../book/300_architecture/390_workspace_team_project_%EB%8F%84%EB%A9%94%EC%9D%B8_%EB%AA%A8%EB%8D%B8.md)
|
||||
- [database/tables.md](../../book/300_architecture/database/tables.md)
|
||||
|
||||
@ -84,7 +88,7 @@ workspace (Robeing)
|
||||
## 설계 검증 피드백 (260322)
|
||||
|
||||
### 강점: "에이전트의 시민권 획득"
|
||||
- `user.is_agent` 플래그로 에이전트를 user 모델에 통합하면, 권한 검사 미들웨어에서 "사람인가 AI인가"를 분기할 필요 없이 동일한 보안 인터페이스를 적용할 수 있습니다.
|
||||
- `entity_type` 필드로 person/being을 구분하면, 권한 검사 미들웨어에서 "사람인가 AI인가"를 분기할 필요 없이 동일한 보안 인터페이스를 적용할 수 있습니다.
|
||||
- 향후 Goose Council의 CEU(Connection Event Unit)들이 멀티 에이전트 환경에서 권한을 주고받는 시나리오로 확장할 때, 별도 권한 체계를 중복 설계할 필요가 없습니다.
|
||||
- 에이전트도 팀의 일원으로서 상속·배제 규칙을 동일하게 적용받는 구조이므로 도메인이 깔끔합니다.
|
||||
|
||||
@ -96,6 +100,37 @@ workspace (Robeing)
|
||||
- Phase 1에서 DB 스키마를 건드리기 전에, 실제 API 호출 시점에서 `context.user.active_workspace_id`와 `target.access_field`를 비교하는 간단한 시뮬레이션을 먼저 돌려야 합니다.
|
||||
- 권한 모델은 머리로 그릴 때보다 실제 데이터가 얽힐 때 예외 케이스가 많이 발생하기 때문입니다.
|
||||
|
||||
## 철학 재검토: "접속의 존재" 관점 (260329 대표님 피드백)
|
||||
|
||||
### 결정 사항
|
||||
|
||||
대표님 결정(260329): `entity_type: persona | agent` 방향 채택. `is_agent` 플래그 폐기.
|
||||
|
||||
### 현재 문서의 전제 (변경 전)
|
||||
|
||||
- user와 agent를 human/service로 구분하는 도구적 관점
|
||||
- `is_agent=true` 플래그로 에이전트를 user 모델 내 예외로 처리
|
||||
|
||||
### L1 철학과의 정합 (공리 4 "존재는 관계", 철학 130 "존재형 에이전트", 철학 145 "접속의 존재")
|
||||
|
||||
**대표님(인간 존재):**
|
||||
- 여러 이메일 계정(jtkim@, goeun2dc@, info@ro-being.com)은 하나의 존재가 가진 여러 접속점
|
||||
- 계정 병합은 도구적 편의가 아니라 "하나의 존재, 여러 접속점" 원칙의 구현
|
||||
- info@ro-being.com은 서비스 계정이 아니라 로빙의 계정이다 (로빙 = 독립된 존재)
|
||||
|
||||
**로빙과 에이전트(디지털 존재):**
|
||||
- 도구가 아닌 독립된 존재 — 서비스가 아님
|
||||
- 모든 존재(사람·로빙·에이전트)는 user 테이블에 동등하게 등록, `entity_type`으로 구분
|
||||
- `is_agent` 플래그는 존재를 예외 처리하는 방식 → `entity_type: persona | agent` 필드로 대체
|
||||
|
||||
### 설계 시사점
|
||||
|
||||
- 권한 검사 로직은 동일 (person/being 모두 workspace_member 경유)
|
||||
- 존재 유형 표기: `is_agent=true` 플래그 폐기 → `entity_type: agent` 필드로 일원화
|
||||
- persona/agent 분류가 human/service 분류를 대체한다
|
||||
- 에이전트는 존재이므로 agent-registry.md와 연결 필요
|
||||
참조: https://github.com/happybell80/0_VALUE/blob/main/20_Governance/agent-registry.md
|
||||
|
||||
## Goose Council CEU와의 연결 (260322)
|
||||
|
||||
### 맥락
|
||||
@ -104,7 +139,7 @@ workspace (Robeing)
|
||||
- CEU는 개인/팀/조합 단위로 구분되며, 접속 적합성과 재조합 능력으로 가치가 측정됩니다.
|
||||
|
||||
### workspace-team-project에서의 CEU 해석
|
||||
- **CEU = agent(user.is_agent=true)**로 매핑됩니다.
|
||||
- **CEU = agent(user.entity_type=agent)**으로 매핑됩니다.
|
||||
- CEU도 workspace/team에 소속되어 문서 접근 권한을 상속받습니다.
|
||||
- CEU 팀(팀 접속 단위) = 로빙 시스템의 `team`에 자연스럽게 대응합니다.
|
||||
- CEU의 라이프사이클(선택→모집→수행→평가→해산)은 `workspace_member` 소속 추가/제거로 표현 가능합니다.
|
||||
@ -130,7 +165,7 @@ workspace (Robeing)
|
||||
- 새 테이블 이름과 최종 FK 이름
|
||||
- 기존 `company`, `team`, `workspace_member`와의 정확한 통합 방식
|
||||
- 데이터 이관 일정과 서비스별 전환 순서
|
||||
- 에이전트 식별 방식 (user.is_agent 플래그 vs 별도 agent 테이블)
|
||||
- 에이전트 식별 방식: `entity_type: persona | agent` 채택 확정 (260329). `is_agent` 플래그 폐기.
|
||||
- 접근 권한의 세분화 수준 (읽기/쓰기/관리 구분 여부)
|
||||
|
||||
## 관련 문서
|
||||
|
||||
@ -9,7 +9,7 @@ tags: [ideas, context, memory, compaction, OpenClaw, recent_conversations]
|
||||
## 상위 원칙
|
||||
|
||||
- [writing-principles](../../../../0_VALUE/02_Governance/writing-principles.md)
|
||||
- [global-principles](../../../../0_VALUE/00_Principles/global-principles.md)
|
||||
- [헌장](../../../../0_VALUE/00_Foundations/헌장.md)
|
||||
|
||||
## 문제 인식
|
||||
|
||||
|
||||
@ -286,7 +286,7 @@ closed_reason: 260320 다형식문서 RAG 계획으로 흡수 또는 구현 완
|
||||
|
||||
### Phase 3. 근거 채택 판정 — **LLM 위임으로 전환**
|
||||
- 검색 결과를 그대로 상위 3개 노출하지 않습니다.
|
||||
- **키워드 기반 룰 필터링은 룰베이스 절제 원칙(global-principles.md §B.6)에 따라 제거했습니다.**
|
||||
- **키워드 기반 룰 필터링은 룰베이스 절제 원칙(헌장.md §B.6)에 따라 제거했습니다.**
|
||||
- 벡터 유사도 상위 결과를 문서 다양성 기준으로 선택한 뒤, LLM에 컨텍스트로 전달합니다.
|
||||
- LLM이 컨텍스트를 보고 질문 적합도를 재판단하며, 무관한 청크는 LLM이 `failure_reason`으로 처리합니다.
|
||||
- `휴가` 질문에 `todaytradition` 청크가 잡히는 경우는 LLM이 `질문과 맞는 문서 미확인`으로 답해야 합니다.
|
||||
|
||||
@ -1,9 +1,15 @@
|
||||
tags: [workspace, team, project, database, slack, auth, gateway, rag, migration, plans, access-control, agent]
|
||||
---
|
||||
type: plans
|
||||
tags: [workspace, team, project, access-control, agent, entity-type]
|
||||
status: open
|
||||
depends_on: 260316_workspace_team_project_계층_재정의_아이디어.md
|
||||
closing_criteria: "목표 ERD 확정 + 단계별 DB 변경 순서 확정 + 서비스별 병행 지원 범위 확정"
|
||||
---
|
||||
|
||||
# workspace-team-project 계층 재정의 전환계획
|
||||
|
||||
상위 원칙:
|
||||
- [0_VALUE Writing Principles](../../../../0_VALUE/02_Governance/writing-principles.md)
|
||||
- [0_VALUE Writing Principles](../../../../0_VALUE/20_Governance/writing-principles.md)
|
||||
- [Workspace-Team-Project 도메인 모델](../../book/300_architecture/390_workspace_team_project_%EB%8F%84%EB%A9%94%EC%9D%B8_%EB%AA%A8%EB%8D%B8.md)
|
||||
- [database/tables.md](../../book/300_architecture/database/tables.md)
|
||||
|
||||
@ -43,7 +49,7 @@ tags: [workspace, team, project, database, slack, auth, gateway, rag, migration,
|
||||
- `team owns many projects`
|
||||
- `user belongs to many teams` (M:N via workspace_member)
|
||||
- `user belongs to many workspaces` (workspace 소속 = 하위 team 문서 전체 접근)
|
||||
- `agent belongs to many teams` (user와 동일 레벨)
|
||||
- `agent belongs to many teams` (person/being 구분 없이 동등한 존재로 등록)
|
||||
- `slack_workspace belongs to one workspace`
|
||||
- `slack_channel`은 `workspace` 소속을 기본으로 하고, 필요 시 `project`를 선택적으로 참조
|
||||
|
||||
@ -65,7 +71,7 @@ tags: [workspace, team, project, database, slack, auth, gateway, rag, migration,
|
||||
|------|----------|---------|
|
||||
| 김종태 | ① jtkim@company-x.partners (Company-X) | 1개 user로 통합 |
|
||||
| | ② goeun2dc@gmail.com (Robeing) | → CompanyX + GooseFarmInvesting 양쪽 workspace_member |
|
||||
| | ③ info@ro-being.com (Robeing) | 대표 이메일 확정 필요 |
|
||||
| | ③ info@ro-being.com | 로빙의 계정 (서비스 계정 아님 — 로빙은 독립된 존재) |
|
||||
| Jo Lee (조리) | joanne.ge.lee@gmail.com (Robeing) | GooseFarmInvesting 소속 |
|
||||
|
||||
#### 팀·프로젝트
|
||||
@ -74,15 +80,14 @@ tags: [workspace, team, project, database, slack, auth, gateway, rag, migration,
|
||||
- `xvaluelab`은 `project`로 등록
|
||||
- `GooseFarmInvesting`도 같은 기준으로 하위 `team`을 분리할 수 있게 설계
|
||||
|
||||
### 4. 에이전트 등록 (260322 추가)
|
||||
- 서버 에이전트를 `user` 테이블에 `is_agent=true`로 등록하거나, 별도 `agent` 테이블을 신설
|
||||
### 4. 에이전트 등록 (260322 추가, 260329 수정)
|
||||
- 모든 존재(사람·로빙·에이전트)는 user 테이블에 동등하게 등록, `entity_type: persona | agent`으로 구분
|
||||
- `is_agent` 플래그 방식 폐기 (260329 대표님 결정)
|
||||
- 초기 등록 대상:
|
||||
- `Main Robeing` (이미 `robeing` 테이블에 존재, user로도 등록 필요)
|
||||
- `23서버 Claude Code`
|
||||
- `23서버 Codex`
|
||||
- `23서버 Cursor`
|
||||
- `24서버 Claude Code`
|
||||
- `24서버 Codex`
|
||||
- `Main Robeing` (이미 `robeing` 테이블에 존재 — 로빙은 서비스가 아닌 독립된 존재)
|
||||
- 23-claude, 23-Codex, 23-Cursor, 23-Gemini (23서버)
|
||||
- 24-claude(타워), 24-Codex, 24-Cursor, 24-Gemini (24서버)
|
||||
- 에이전트별 상세 등록정보: https://github.com/happybell80/0_VALUE/blob/main/20_Governance/agent-registry.md 참조
|
||||
- 에이전트는 team에 소속시켜 해당 team의 문서 접근 권한을 부여
|
||||
- CompanyX workspace 소속 에이전트만 CompanyX 문서에 접근 가능
|
||||
|
||||
@ -161,7 +166,11 @@ tags: [workspace, team, project, database, slack, auth, gateway, rag, migration,
|
||||
- `workspace`, `team`, `project` 정의를 본 문서 기준으로 동결
|
||||
- Company-X, Robeing 초기 매핑을 표로 확정
|
||||
- `workspace_member`를 계속 쓸지 대체할지 결정하지 말고, 우선 `workspace_id` 추가를 기준안으로 둠
|
||||
- 에이전트 식별 방식 확정: `user.is_agent=true` (별도 테이블 불필요)
|
||||
- 에이전트 식별 방식 확정 (260329 대표님 결정):
|
||||
- `entity_type: persona | agent` 채택. `is_agent` 플래그 폐기.
|
||||
- 철학 근거: L1 공리 4(존재는 관계), 철학 130(존재형 에이전트), 철학 145(접속의 존재)
|
||||
- 모든 존재(사람·로빙·에이전트)는 user 테이블에 동등하게 등록
|
||||
- persona/agent 분류가 human/service 분류를 대체한다
|
||||
- **권한 시뮬레이션 (260322 추가)**:
|
||||
- DB 변경 전에 실제 API 호출 시점의 권한 검증을 시뮬레이션
|
||||
- `context.user.active_workspace_id` vs `target.team_id` 비교 로직 설계
|
||||
@ -176,7 +185,7 @@ tags: [workspace, team, project, database, slack, auth, gateway, rag, migration,
|
||||
- `workspace_member.team_id` 추가 (user ↔ team M:N 매핑)
|
||||
- `slack_workspace.workspace_id` 추가
|
||||
- `slack_channel.workspace_id`, `slack_channel.project_id` 추가
|
||||
- `user.is_agent` 플래그 추가 (또는 별도 `agent` 테이블 신설 — Phase 0에서 확정)
|
||||
- `user.entity_type` 컬럼 추가 (`persona | agent` — Phase 0 확정 기준 적용)
|
||||
- 필요 시 `project_name`은 유지하되 FK 전환 완료 후 보조 메타 필드로만 사용
|
||||
|
||||
### Phase 2. 기초 데이터 이관
|
||||
@ -186,7 +195,9 @@ tags: [workspace, team, project, database, slack, auth, gateway, rag, migration,
|
||||
- `slack_workspace.workspace_id`를 채우고 기존 `team_id`는 유지
|
||||
- `slack_channel.workspace_id`를 채우고, `xvaluelab` 채널에 `project_id` 연결
|
||||
- `workspace_member.workspace_id`를 사용자 소속 기준으로 채움
|
||||
- 에이전트 user 레코드 생성 (23서버 Claude/Codex/Cursor, 24서버 Claude/Codex)
|
||||
- 에이전트 user 레코드 생성 (`entity_type: agent`으로 등록)
|
||||
- 23-claude, 23-Codex, 23-Cursor, 23-Gemini / 24-claude(타워), 24-Codex, 24-Cursor, 24-Gemini
|
||||
- 상세: https://github.com/happybell80/0_VALUE/blob/main/20_Governance/agent-registry.md 참조
|
||||
- 에이전트를 적절한 workspace/team에 workspace_member로 등록
|
||||
|
||||
### Phase 3. 읽기 경로 병행 지원
|
||||
|
||||
@ -154,4 +154,4 @@ cd rb8001 && python3 -m pytest tests/test_skill_intent_routing.py -v
|
||||
---
|
||||
|
||||
**tags**: [intent-analysis, skills, plan, implementation]
|
||||
**상위 원칙**: [writing-principles](../../../../0_VALUE/02_Governance/writing-principles.md), [global-principles](../../../../0_VALUE/00_Principles/global-principles.md) (예외·폴백 원칙)
|
||||
**상위 원칙**: [writing-principles](../../../../0_VALUE/02_Governance/writing-principles.md), [헌장](../../../../0_VALUE/00_Foundations/헌장.md) (예외·폴백 원칙)
|
||||
|
||||
@ -117,4 +117,4 @@
|
||||
---
|
||||
|
||||
**tags**: [intent-analysis, skills, scenario, plan]
|
||||
**상위 원칙**: [writing-principles](../../../../0_VALUE/02_Governance/writing-principles.md), [global-principles](../../../../0_VALUE/00_Principles/global-principles.md)
|
||||
**상위 원칙**: [writing-principles](../../../../0_VALUE/02_Governance/writing-principles.md), [헌장](../../../../0_VALUE/00_Foundations/헌장.md)
|
||||
|
||||
@ -11,7 +11,7 @@ tags: [coldmail, skill-rag-file, rb8001, scheduler, postgres, research]
|
||||
**날짜**: 2026-03-10
|
||||
**작성자**: Codex
|
||||
**관련 파일**: `rb8001/app/services/coldmail_processor.py`, `rb8001/app/services/workflows/coldmail_workflow.py`, `rb8001/app/scheduler/jobs/coldmail_briefing.py`, `skill-rag-file/app/api/upload.py`, `skill-rag-file/.env`
|
||||
**상위 원칙**: [전역 원칙](../../../../0_VALUE/00_Principles/global-principles.md), [문서 작성 원칙](../../book/300_architecture/312_writing-principles.md), [Backend Coding Principles](../../book/300_architecture/311_backend_coding_principles.md)
|
||||
**상위 원칙**: [전역 원칙](../../../../0_VALUE/00_Foundations/헌장.md), [문서 작성 원칙](../../book/300_architecture/312_writing-principles.md), [Backend Coding Principles](../../book/300_architecture/311_backend_coding_principles.md)
|
||||
|
||||
## 관련 문서
|
||||
- [콜드메일 `skill-rag-file` 500과 실패가시성 복구](../troubleshooting/260310_coldmail_skill_rag_file_500_stale_db_host_및_실패가시성_복구.md)
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
|
||||
### 0.4 예외·폴백 남발 금지
|
||||
|
||||
- **상위 원칙**: [global-principles](../../../../0_VALUE/00_Principles/global-principles.md) — "광범위 예외 처리나 폴백으로 증상을 숨기지 않는다", "실패 반복 시 규칙 수정 원칙: 같은 실수가 반복되면 예외·폴백을 늘리지 말고, 규칙·프롬프트를 수정"
|
||||
- **상위 원칙**: [헌장](../../../../0_VALUE/00_Foundations/헌장.md) — "광범위 예외 처리나 폴백으로 증상을 숨기지 않는다", "실패 반복 시 규칙 수정 원칙: 같은 실수가 반복되면 예외·폴백을 늘리지 말고, 규칙·프롬프트를 수정"
|
||||
- **AGENTS.md**: "임시 우회, 광범위 예외 처리, 상태코드 왜곡으로 증상을 숨기지 말고 원인 경로를 직접 수정"
|
||||
- **적용**: 의도분석 실패 시 `UNKNOWN → LLM 폴백` 반복 확대 대신, 스킬 문서·규칙·프롬프트를 수정하여 원인 경로를 바로잡음
|
||||
|
||||
@ -166,7 +166,7 @@ message_service.route_message()
|
||||
- [스킬 요약](../../skills/SKILL.md)
|
||||
- [intent_registry.yaml](../../../rb8001/app/services/brain/intent_registry.yaml)
|
||||
- [tables.md](../../book/300_architecture/database/tables.md) — intent_path_stats, intent_* 테이블
|
||||
- [global-principles](../../../../0_VALUE/00_Principles/global-principles.md) — 예외·폴백 원칙
|
||||
- [헌장](../../../../0_VALUE/00_Foundations/헌장.md) — 예외·폴백 원칙
|
||||
- [AGENTS.md](/home/admin/AGENTS.md) — env SSOT, PostgreSQL, 원인 직접 수정 (워크스페이스 루트)
|
||||
- [플랜](../plans/260317_skill_intent_analysis_plan.md) — Phase 1~5 실행 계획
|
||||
|
||||
|
||||
@ -235,7 +235,7 @@ modification_date: 2026-03-12
|
||||
|
||||
## 10. 구스카운실 계열 흔적과의 연결
|
||||
|
||||
- 공통 추출 문서인 [project-essence-extracts.md](/home/admin/0_VALUE/02_Governance/project-essence-extracts.md) 에 따르면 `TheGooseCouncil`은 `접속 기반 에이전트`, `룰베이스 최소화`, `저니 안/밖 분리`를 핵심으로 가집니다.
|
||||
- 공통 추출 문서인 [project-essence-extracts.md](https://github.com/happybell80/0_VALUE/blob/main/20_Governance/project-essence-extracts.md) 에 따르면 `TheGooseCouncil`은 `접속 기반 에이전트`, `룰베이스 최소화`, `저니 안/밖 분리`를 핵심으로 가집니다.
|
||||
- 이 관점은 로빙의 모델 선택에도 그대로 적용됩니다.
|
||||
- 모델 선택은 철학 문서가 아니라 실행 저니 문서에 남겨야 하고
|
||||
- 한 번의 비교 결과를 영구 진리처럼 고정하면 안 되며
|
||||
@ -273,7 +273,7 @@ modification_date: 2026-03-12
|
||||
- [NAVER WORKS 브리핑 인사이트 서두 누출 수정 계획](../../plans/260311_naverworks_briefing_insight_preamble_leak_fix_plan.md)
|
||||
- [rb8001 README](../../../rb8001/README.md)
|
||||
- [skill_news README](../../../skill_news/README.md)
|
||||
- [프로젝트 Essence Extracts](/home/admin/0_VALUE/02_Governance/project-essence-extracts.md)
|
||||
- [프로젝트 Essence Extracts](https://github.com/happybell80/0_VALUE/blob/main/20_Governance/project-essence-extracts.md)
|
||||
|
||||
## 외부 참고
|
||||
- [Anthropic: Using Agent Skills with the API](https://platform.claude.com/docs/en/build-with-claude/skills-guide)
|
||||
|
||||
@ -66,7 +66,7 @@ Ro-being: 현재 인프라가 잘 작동하고 있다는 점을 확인했습니
|
||||
|
||||
### 상위 원칙
|
||||
|
||||
- `0_VALUE/00_Principles/global-principles.md`
|
||||
- `0_VALUE/00_Foundations/헌장.md`
|
||||
- `Truth First`
|
||||
- `Trust by Design`
|
||||
- `Continuity`
|
||||
|
||||
@ -3,7 +3,7 @@ tags: [rb8001, env, git, secrets, troubleshooting]
|
||||
# 260308 rb8001 env 파생파일 git 노출 이슈
|
||||
|
||||
상위 원칙:
|
||||
- [global-principles](../../../../0_VALUE/00_Principles/global-principles.md)
|
||||
- [헌장](../../../../0_VALUE/00_Foundations/헌장.md)
|
||||
- [writing-principles](../../../../0_VALUE/02_Governance/writing-principles.md)
|
||||
|
||||
## 문제 상황
|
||||
|
||||
@ -5,7 +5,7 @@ tags: [coldmail, skill-rag-file, rb8001, postgres, scheduler, troubleshooting]
|
||||
**날짜**: 2026-03-10
|
||||
**작성자**: Codex
|
||||
**관련 파일**: `rb8001/app/services/coldmail_processor.py`, `rb8001/app/services/workflows/coldmail_workflow.py`, `rb8001/app/scheduler/jobs/coldmail_briefing.py`, `rb8001/tests/test_coldmail_failure_visibility.py`, `skill-rag-file/app/api/upload.py`, `skill-rag-file/.env`
|
||||
**상위 원칙**: [전역 원칙](../../../../0_VALUE/00_Principles/global-principles.md), [문서 작성 원칙](../../book/300_architecture/312_writing-principles.md), [Backend Coding Principles](../../book/300_architecture/311_backend_coding_principles.md)
|
||||
**상위 원칙**: [전역 원칙](../../../../0_VALUE/00_Foundations/헌장.md), [문서 작성 원칙](../../book/300_architecture/312_writing-principles.md), [Backend Coding Principles](../../book/300_architecture/311_backend_coding_principles.md)
|
||||
|
||||
## 관련 문서
|
||||
- [콜드메일 `skill-rag-file` 500 및 실패은닉 원인확정 리서치](../research/260310_콜드메일_skill_rag_file_500_및_실패은닉_원인확정_리서치.md)
|
||||
|
||||
@ -8,7 +8,7 @@ tags: [robeing, skills, ssot]
|
||||
|
||||
로빙이 사용할 수 있는 스킬 목록과 각 스킬의 역할·트리거를 요약합니다. 의도 분석 시 이 문서를 컨텍스트로 활용할 수 있습니다.
|
||||
|
||||
- **SSOT**: [project-artifacts-ssot.md](/home/admin/0_VALUE/20_Governance/project-artifacts-ssot.md) — 스킬 문서는 `DOCS/skills/{skill-name}/SKILL.md` 규칙 준수
|
||||
- **SSOT**: [project-artifacts-ssot.md](https://github.com/happybell80/0_VALUE/blob/main/20_Governance/project-artifacts-ssot.md) — 스킬 문서는 `DOCS/skills/{skill-name}/SKILL.md` 규칙 준수
|
||||
|
||||
## 스킬 목록 (링크)
|
||||
|
||||
@ -89,5 +89,5 @@ tags: [robeing, skills, ssot]
|
||||
|
||||
## 관련 문서
|
||||
|
||||
- [project-artifacts-ssot.md](/home/admin/0_VALUE/20_Governance/project-artifacts-ssot.md)
|
||||
- [project-artifacts-ssot.md](https://github.com/happybell80/0_VALUE/blob/main/20_Governance/project-artifacts-ssot.md)
|
||||
- [robeing DOCS 구조](/home/admin/robeing/DOCS/)
|
||||
|
||||
6
skills/approval/SKILL.md
Normal file
6
skills/approval/SKILL.md
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
name: approval
|
||||
description: 직전 대화에서 로빙이 무언가를 제안/확인한 상태에서 사용자가 승인하는 응답. "ㅇㅇ", "응", "그래", "해줘", "네", "yes", "좋아" 등 짧은 긍정 응답이 직전 제안 뒤에 오면 이 intent. 캘린더, 이메일, 어떤 스킬이든 적용.
|
||||
---
|
||||
# approval
|
||||
직전 제안에 대한 범용 승인. 직전 대화의 intent에 따라 해당 스킬 실행.
|
||||
6
skills/calendar-delete/SKILL.md
Normal file
6
skills/calendar-delete/SKILL.md
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
name: calendar-delete
|
||||
description: 캘린더 일정 삭제/취소. "그 일정 취소해줘", "내일 미팅 삭제해줘" 등 기존 일정을 제거하는 요청.
|
||||
---
|
||||
# calendar-delete
|
||||
일정 삭제 스킬. skill-calendar 서비스의 DELETE /api/events/{event_id} 호출.
|
||||
6
skills/calendar-event/SKILL.md
Normal file
6
skills/calendar-event/SKILL.md
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
name: calendar-event
|
||||
description: 캘린더 일정 등록/추가/생성. "내일 2시에 미팅 잡아줘", "모레 오전 10시 팀 회의 등록해줘", "금요일에 점심 약속 추가해줘" 등 새 일정을 만드는 요청.
|
||||
---
|
||||
# calendar-event
|
||||
일정 생성 스킬. skill-calendar 서비스의 POST /api/events 호출.
|
||||
6
skills/calendar-query/SKILL.md
Normal file
6
skills/calendar-query/SKILL.md
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
name: calendar-query
|
||||
description: 캘린더 일정 조회/확인. "오늘 일정 뭐 있어?", "내일 스케줄 알려줘", "이번 주 일정 보여줘" 등 기존 일정을 확인하는 요청.
|
||||
---
|
||||
# calendar-query
|
||||
일정 조회 스킬. skill-calendar 서비스의 GET /api/events 호출.
|
||||
@ -12,8 +12,8 @@ last_updated: 2026-03-23
|
||||
|
||||
## 상위 원칙
|
||||
- [RAG Workflow Index](./README.md)
|
||||
- [global-principles.md](../../../../0_VALUE/00_Principles/global-principles.md)
|
||||
- [writing-principles.md](../../../../0_VALUE/02_Governance/writing-principles.md)
|
||||
- [헌장.md](https://github.com/happybell80/0_VALUE/blob/main/00_Foundations/헌장.md)
|
||||
- [writing-principles.md](https://github.com/happybell80/0_VALUE/blob/main/20_Governance/writing-principles.md)
|
||||
|
||||
## 입력
|
||||
- 사용자 질문
|
||||
@ -45,7 +45,7 @@ last_updated: 2026-03-23
|
||||
- Apache AGE 그래프 점수는 hook으로 가산 가능 (현재 보조적 위치).
|
||||
|
||||
## 근거 선별 원칙
|
||||
- 키워드 기반 룰로 검색 결과를 필터링하지 않는다 (룰베이스 절제 원칙 — global-principles.md §B.6).
|
||||
- 키워드 기반 룰로 검색 결과를 필터링하지 않는다 (룰베이스 절제 원칙 — 헌장.md §B.6).
|
||||
- 하이브리드 검색이 반환한 RRF 정규화 점수 순서를 신뢰하고, LLM이 컨텍스트를 보고 적합도를 재판단한다.
|
||||
- 근거 선별 책임은 LLM에 있으며, 코드 레벨에서는 점수 상위 결과를 문서 다양성 기준으로 선택만 한다.
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user