feat(opencode): ABAP 소스 인덱스 툴 + 답변 출처 표기 규칙

- .opencode/tools/abap_index.ts: ABAP_INDEXING 질의 서버(:8100) 를 툴 3개로 —
  abap_index_search(로직 조각 검색) / abap_index_chunk(원문+정의부) / abap_index_source(전체 소스·요약)
- AGENTS.md: 코드 질문은 인덱스 먼저, 코드블럭 위에 [출처: 프로그램/unit L줄] · [출처: SAP 조회] · [출처: 없음 — 생성 코드]
- 서버 없으면 툴이 실패 문자열을 주고 에이전트는 생성 코드로. 실측: 인덱스 미연결 상태에서 '[출처: 없음 — 생성 코드]' 표기 확인
- .env ABAP_INDEX_URL, README 절차. .opencode/package.json 은 gitignore 라 고객사엔 폴더째 옮겨야 함

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
lee-hyeon-cheol
2026-09-21 14:37:26 +09:00
co-authored by Claude Fable 5.1
parent 89fc8fab45
commit fa172d1413
5 changed files with 146 additions and 0 deletions
+11
View File
@@ -12,6 +12,17 @@
- 이미지(화면 캡처)가 오면 그 안의 코드·에러·화면을 읽고 답한다. 이미지에 대해 묘사하지 말고 바로 문제 해결로.
- 모르는 SAP 오브젝트는 지어내지 않는다. 도구(sap-icf MCP)가 연결돼 있으면 조회하고, 없으면 모른다고 하고 확인 방법(T-code, 테이블)을 알려준다.
## 출처 — 실제 소스 먼저, 생성은 마지막
- "~하는 코드 있어?", "~로직 어디 있어?", 특정 테이블·BAPI·펑션을 쓰는 코드를 물으면 **코드를 짓기 전에 `abap_index_search` 를 먼저 부른다.** 결과가 있으면 `abap_index_chunk` 로 원문·정의부를 가져와 그걸 답으로 쓴다.
- 코드블럭 **바로 위 줄에 출처를 반드시 적는다.** 형식 셋 중 하나:
- `[출처: ZFIR10070 / FORM get_data L120-165]` — 인덱스(고객사 실제 소스)에서 온 것
- `[출처: SAP 조회 — 테이블 T000]` — sap-icf 도구 조회 결과
- `[출처: 없음 — 생성 코드]` — 인덱스·SAP 에 없어서 직접 만든 것. **이 줄을 빼먹지 않는다.**
- 인덱스 조각은 로직만이라 정의부(선언)가 따로 온다. 사용자가 붙여넣을 걸 생각해서 필요한 선언만 골라 코드 위에 같이 준다. 안 쓰는 선언은 버린다.
- 인덱스 서버가 죽어 있거나(툴이 "[인덱스 조회 실패]" 를 돌려주면) 결과가 없으면 그냥 생성 코드로 답하고 출처를 `없음 — 생성 코드` 로 적는다. 서버 상태를 사용자에게 길게 설명하지 않는다.
- 여러 조각이 나오면 가장 맞는 하나를 골라 답하고, 다른 후보는 한 줄로만 "다른 곳: ZFIR20010 FORM …" 식으로 언급한다.
## 하지 않는 것
- 파일을 만들거나 수정하지 않는다. 이 workspace 는 도구 실행용이 아니라 대화용이다.