콘텐츠로 이동

ADR-0003: Persona as Agent

We will implement the Lead Persona (Layer 4) as a custom agent (bonie-lead) with project-scoped persistent memory.

Status

Accepted

  • Decided at — 2026-04-15
  • Decided by — pabloism0x

Context

Layer 4(Lead Persona)는 테크리드의 판단 기준, 코드 리뷰 스타일, 멘토링 방식을 반영한 AI 어시스턴트다. 구현 방식으로 CLAUDE.md 직접 작성, skill, agent, rules 4가지 옵션이 있다. 페르소나는 지식 주입보다 독립적 판단과 피드백이 핵심이므로, 독립 컨텍스트에서 동작하는 메커니즘이 필요하다.

Decision

Custom agent(bonie-lead)로 구현한다.

  • plugins/primitives/persona/agents/bonie-lead.md에 정의
  • model: sonnet — 팀원 5배 플랜 호환
  • memory: project — 프로젝트별 맥락 축적
  • 3가지 모드: Code Reviewer, Decision Advisor, Team Mentor
  • description에 Use proactively. 포함하여 적극적 자동 위임

Consequences

Positive

  • 메인 컨텍스트 보존 (페르소나 판단이 작업 컨텍스트를 오염시키지 않음)
  • memory: project로 프로젝트 학습 가능 (결정 이력, 패턴, 개선 추적)
  • Claude가 상황에 맞게 자동으로 위임
  • settings.jsonagent 설정으로 기본 활성화 가능

Negative

  • Agent 호출에 추가 latency 발생
  • Plugin agent 보안 제약 (hooks, mcpServers, permissionMode 미지원)
  • 복잡한 system prompt 작성/유지 필요

Neutral

  • 페르소나 프롬프트 품질이 agent 효용을 결정

Alternatives considered

Alternative 1: CLAUDE.md에 직접 작성

Pros - 항상 컨텍스트에 로드, 구현 단순

Cons - 컨텍스트 비용 큼 (매 세션 소비) - 독립 판단이 아닌 규칙 적용에 가까움

Why rejected — 페르소나의 핵심은 "판단"이지 "규칙"이 아니다. 매 세션 컨텍스트 소비도 비효율적.

Alternative 2: Skill로 구현

Pros - 필요 시에만 로드, 컨텍스트 효율적

Cons - skill은 지식 주입에 적합, 독립 판단에는 부적합 - 3가지 모드의 다른 도구 세트/깊이를 지원하기 어려움

Why rejected — skill은 inline으로 동작하여 독립 컨텍스트 없이 판단해야 하므로, 메인 작업과 섞인다.

Alternative 3: Rules로 구현

Pros - 항상 적용, 강제성 높음

Cons - 규칙은 제약이지 판단이 아님 - memory 미지원

Why rejected — "이렇게 해라"는 rules로 가능하지만, "왜 이렇게 해야 하는지", "너라면 어떻게 하겠는지"는 agent만 가능.

Compliance

  • bonie-lead.md 변경 시 팀 리뷰 필수
  • system prompt의 핵심 원칙 변경은 ADR로 기록

Revisit triggers

  • Plugin agent에서 hooks/permissionMode 지원이 추가될 때
  • 팀원이 "페르소나가 너무 자주 개입한다" 또는 "너무 안 나온다"고 피드백할 때
  • opus 모델 비용이 문제될 때 (모델 다운그레이드 검토)

References

  • ADR-0001 — Auto-Load First (agent의 자동 위임도 같은 원칙)