Skip to content

docs: R0 리포트 인계와 #4·#7 추적 경계를 명시한다 - #8

Open
OstenHun wants to merge 3 commits into
developfrom
docs/donghun-r0-report-agent-discord-handoff
Open

docs: R0 리포트 인계와 #4·#7 추적 경계를 명시한다#8
OstenHun wants to merge 3 commits into
developfrom
docs/donghun-r0-report-agent-discord-handoff

Conversation

@OstenHun

@OstenHun OstenHun commented Aug 29, 2026

Copy link
Copy Markdown
Member

연결된 작업 항목 및 계약

연결된 이슈의 담당자와 검토 요청은 GitHub 메타데이터를 기준으로 합니다. 이 PR은 제품 코드, 런타임 설정, 스키마, 빌드 또는 잠금 파일을 변경하지 않습니다.

핵심 검토

  • 해결하는 실패 조건 또는 위험: 병합된 Discord·LangChain·YAML 전환 시제품을 P0 핵심 전달 완료로 오인하거나, #4의 진단 출력 포트와 #7의 리포트 조립·영속화·Discord 전달 책임을 섞는 위험을 줄입니다. 두 에이전트의 prompt version 저장·호출·로그 의미와 예상 밖 legacy/부분 SQLite schema의 fail-closed 경계도 문서 간 동일하게 고정합니다.
  • 취약한 가정 또는 남은 차단 요인: P0 패키지는 ready_for_design, 핵심/리포트 계약은 ready_for_implementation, Delivery Statusnot_started입니다. #7은 [작업] LangChain 진단 출력의 순서와 tool_call_id 참조를 보존한다 #4 외에도 canonical Run/Evidence/Tool Call 영속화와 현재 코드 전용 자동화 테스트 기반에 차단되어 있습니다. 정적 3도구 계약과 YAML 런타임의 정합화, 실제 Prometheus/Loki/Backend mapping은 미결정입니다.

변경 전과 변경 후

변경 전:
- PR #3·#5·#6의 전환 구현과 현재 P0 계약의 관계가 불명확했습니다.
- 진단/리포트 agent의 prompt version 저장·로그·완료 전이 의미가 문서 사이에서 충분히 닫히지 않았습니다.
- #4와 #7의 의존 범위, 독립 선행조건, 검토 경계가 하나의 운영 기준으로 정리되지 않았습니다.

변경 후:
- 전환 시제품은 보존하되 P0 전달 완료 근거와 분리합니다.
- `diagnostic_prompt_version`과 nullable `report_prompt_version`의 fresh schema, binding, 로그, 완료 불변조건을 정합화합니다.
- #4는 순서와 `tool_call_id` 참조를 보존하는 제한된 진단 출력 포트만 소유하고, #7은 정본 리포트 조립·영속화 이후 Discord 전달을 소유합니다.
- GitHub 단일 추적기, Ready/Verify/Done 기준, 한국어 문서 원칙과 검증 기록 형식을 추가합니다.

절충안 분석

  • 선택한 경로: 현재 팀 구현을 삭제하거나 규범 계약으로 자동 승격하지 않고, 유지/조정/상위 구성요소를 PRD 06에서 명시합니다. #4와 #7은 분리된 이슈로 유지하며 GitHub 네이티브 의존성은 제한된 진단 출력 포트에만 둡니다.
  • 거부한 대안과 이유: #4에 리포트 조립·영속화·Discord 전달까지 포함하면 진단 소유권과 고위험 전달 책임이 섞입니다. 현재 AgentDiagnosisResult/ToolObservation을 정본 Evidence로 형식 강제 변환하면 동일 Run 추적을 증명할 수 없습니다.
  • 새로 발생한 실패 모드: 문서와 구현이 어긋나거나 prompt-version 조합을 로그 신호로 추정할 수 있습니다. 문서는 SQLite 저장 상태와 Report 조합만 완료 판정 근거로 두며, 비동기 model-call 로그를 non-durable 관측 신호로 제한합니다.

검증 근거

점검 환경 정확한 명령 또는 산출물 결과 입증하는 것 입증하지 않는 것
Git diff 공백 검사 Windows PowerShell, 현재 head git diff --check origin/develop...HEAD 통과 net diff의 공백 오류 0건 문서 의미의 정확성
제품 경로 변경 검사 Windows PowerShell, 현재 head git diff --name-only origin/develop...HEAD -- src package.json package-lock.json tsconfig.json Dockerfile scripts schemas config 통과: 출력 0건 제품 코드·설정·스키마·빌드·잠금 파일 변경 없음 향후 구현 완료
변경 범위 확인 Windows PowerShell, 현재 head git diff --name-only origin/develop...HEAD 통과: Markdown/제어 파일 12개 PR 설명과 net diff 범위 일치 계약 구현 여부
Markdown 상대 링크 검사 변경된 12개 Markdown을 각 파일 위치 기준으로 해석한 PowerShell 검사 깨진 상대 링크 목록 통과: 0건 로컬 상대 링크 대상 존재 외부 링크의 가용성
비밀정보 패턴 검사 origin/develop...HEAD patch 개인 키, AWS/OpenAI형 토큰, Discord webhook, Bearer 값 고신뢰 패턴 검사 통과: 0건 검사한 고신뢰 패턴 노출 없음 모든 가능한 비밀정보의 부재
TypeScript 정적 검사 기존 의존성 상태 npm run typecheck 통과 현재 TypeScript가 --noEmit 검사를 통과 REST/SQLite/Report/Discord 동작
자동화 테스트 기반 확인 현재 저장소 package.json scripts 및 rg --files -g '*test*' -g '*spec*' -g '!node_modules' 미실행/부재: test 스크립트 없음, 테스트 파일 0개 자동 테스트 공백 확인 자동 테스트 통과
빌드 문서 전용 PR npm run build 미실행: TypeScript·의존성 변경 없음 해당 없음 빌드 성공
GitHub 추적기/의존성 Aolda/amdc GitHub gh issue view 4, gh issue view 7, GraphQL blockedBy 조회 통과: #4·#7 OPEN, #7 blockedBy #4 최신 이슈 상태와 네이티브 의존성 #7 독립 선행조건 충족
비작성자 최신 head 검토 PR #8 검토 요청 상태 대기: 최신 head 승인 없음 검토 공백을 명시 코드·문서 승인

위험 및 롤백

  • 비밀정보/개인정보/운영 환경 경계: 실제 자격 증명, 운영 원천, 원시 제공자/원천 출력과 런타임 프롬프트 전문을 사용하거나 기록하지 않았습니다. 문서는 환경 값과 자격 증명을 에이전트 입력·리포트·기본 로그에서 제외하도록 유지합니다.
  • 수행한 실패 주입: 해당 없음. 문서 전용 변경이며 제품 실패 주입은 현재 코드 전용 테스트 기반이 생긴 뒤 후속 구현 PR에서 수행해야 합니다.
  • 롤백 또는 복구: 병합 전에는 PR을 병합하지 않고 문서 브랜치를 수정합니다. 병합 후에는 PR merge commit을 되돌립니다. GitHub 이슈 본문과 네이티브 의존성은 Git 커밋과 별도 상태이므로 필요하면 별도로 복원합니다.

병합 점검표

  • 범위와 비목표가 연결된 이슈 및 정본 PRD와 일치합니다.
  • 계약 문서의 스키마 의미, 상태 전이, 구현 경계와 검증 인계를 일관되게 유지했습니다.
  • 정확한 명령과 미검증 공백을 기록했으며 typecheck를 자동화 테스트라고 부르지 않았습니다.
  • 자격 증명이나 비밀정보 값, 추적 중인 .env 할당, 런타임 프롬프트 전문, 원시 제공자/원천 응답을 노출하지 않았습니다.
  • 최신 head를 비작성자 검토자가 승인해야 합니다.
  • 병합 후에도 #4와 #7을 구현 작업으로 열어 두며, 이 PR은 어느 이슈도 닫지 않습니다.

@OstenHun OstenHun self-assigned this Aug 29, 2026
@OstenHun
OstenHun requested a review from worud8457 August 29, 2026 01:36
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Aug 29, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-08-29T01:41:37.810050Z 556f034 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 556f034d8c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +203 to +206
Discord를 enable하면 `DISCORD_TOKEN`, `DISCORD_CLIENT_ID`, `DISCORD_GUILD_ID`가 모두
필수다. token은 deployment secret이고 client/guild ID도 Agent input, Report, default
log에 넣지 않는다. `/diagnose`의 environment는 server-owned config에서 정하며 command
option이나 Report Agent input으로 변경할 수 없다.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Define the Discord run environment setting

When both dev and prod are enabled, this contract says /diagnose obtains its immutable environment from server-owned configuration, but the required settings only define AMDC_ENABLED_ENVIRONMENTS, which is an allowlist rather than a Discord environment selection. An implementation cannot deterministically populate the Run context and may silently diagnose the wrong environment; retain and document an explicit setting such as the existing AMDC_ENVIRONMENT, including startup validation against the allowlist.

AGENTS.md reference: AGENTS.md:L95-L98

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영했습니다 (e30f858). Discord /diagnose는 기존 AMDC_ENVIRONMENT를 기본값 없는 명시적 서버 선택값으로 사용하고, AMDC_ENABLED_ENVIRONMENTS는 허용 목록으로만 유지하며 시작 시 멤버십을 검증하도록 계약을 확정했습니다. Discord 활성 시 선택값·자격 증명을 필수로 하고, 비활성 상태에서도 제공된 선택값은 검증하며, 모든 오류는 HTTP 수신·명령 등록·로그인 전에 닫힌 실패 처리합니다. 명령이나 에이전트 입력으로 환경을 변경할 수 없고 환경값은 모델 메시지, DiagnosisResult, ReportAgentInput, 정본 리포트, Discord 출력, 기본 로그에 포함하지 않습니다. 유효·무효 조합과 마이그레이션·롤백은 PRD 04에 추가했습니다. 제품 코드 적용은 별도 후속 구현으로 추적하며, 검증 완료 전 Discord 런타임을 계약 준수 상태로 운영 활성화하지 않습니다.

Comment on lines +221 to +223
enabled Discord 설정이 누락되면 startup을 중단한다. Diagnostic Agent와 Report Agent는
같은 configured model adapter를 쓰더라도 서로 다른 port, prompt version, invocation
budget과 message state를 갖는다. 별도 Report model 선택은 P0 비목표다.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Persist both agents' prompt versions

Introducing separate Diagnostic and Report prompt versions conflicts with PRD 01's unchanged runs.prompt_version TEXT NOT NULL storage contract and PRD 02's requirement to record the prompt version in Run metadata. For every Report-Agent invocation, one prompt version is therefore lost or the field's meaning is left implementation-defined, preventing reproducible attribution of the generated cause after either prompt changes; define separate columns or an explicitly versioned prompt-set value.

Useful? React with 👍 / 👎.

@OstenHun
OstenHun force-pushed the docs/donghun-r0-report-agent-discord-handoff branch from 556f034 to 576c84c Compare August 29, 2026 03:29
@OstenHun OstenHun changed the title docs: align R0 handoff and tracker docs: R0 인계와 실행 추적기 정합화 Aug 29, 2026
@OstenHun OstenHun changed the title docs: R0 인계와 실행 추적기 정합화 docs: R0 리포트 인계와 #4·#7 추적 경계를 명시한다 Aug 29, 2026
PR #3/#5/#6의 전환 시제품 경계와 현재 검증 상태를 기록하고, agent별 prompt version 저장·로그·마이그레이션 계약을 일관되게 정리한다.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant