Update gitignore
This commit is contained in:
@@ -1,50 +0,0 @@
|
||||
---
|
||||
name: verify-mcp-server-change
|
||||
description: Review, implement, and verify changes to the AX HUB Java MCP server, including mandatory Korean class and method comments for added or modified production source. Use for JSON-RPC parsing or errors, MCP method handlers, Tool Registry metadata or fallback, tool execution planning and routing, streaming responses, trace or audit behavior, Spring profiles, and OpenShift deployment changes. Do not use for documentation-only edits unrelated to server behavior.
|
||||
---
|
||||
|
||||
# Verify MCP Server Change
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Read the root `AGENTS.md`, the relevant production code, and its nearest tests.
|
||||
2. Identify the affected contract and its downstream consumers before editing.
|
||||
3. Read the matching sections of [references/change-checklist.md](references/change-checklist.md).
|
||||
4. Preserve the server boundaries: Agent Builder selects tools, this server validates and executes, and Tool Services own business rules.
|
||||
5. Implement the smallest coherent change and add or update focused tests.
|
||||
6. Add or refresh the required Korean source comments described below before verification.
|
||||
7. Run the narrowest useful tests while iterating, then run the project verification command before handoff.
|
||||
8. Update architecture or extension documentation only when the durable design or operational guidance changed.
|
||||
9. Report the behavior changed, files affected, verification run, comment coverage, and remaining risks.
|
||||
|
||||
## 필수 한글 소스 주석
|
||||
|
||||
소스 추가 또는 수정이 있으면 `src/main/java`의 해당 변경 범위에 아래 규칙을 반드시 적용한다.
|
||||
|
||||
1. 새로 추가하거나 수정한 최상위 `class`, `interface`, `record`, `enum` 선언 바로 위에 한글 Javadoc을 둔다.
|
||||
2. 클래스 주석에는 다음을 명시한다.
|
||||
- 해당 타입의 역할과 책임
|
||||
- 처리하는 HTTP/MCP 요청 또는 처리 단계. 직접 요청을 처리하지 않으면 그 사실과 호출자를 명시한다.
|
||||
- 주요 의존성 및 협력 객체, 또는 외부 시스템과의 경계
|
||||
3. 새로 추가하거나 수정한 명시적 메서드·생성자 바로 위에 한글 Javadoc을 둔다. 주석은 메서드가 하는 일, 입력/출력 또는 오류 처리, 호출 시점·영향 범위를 설명한다.
|
||||
4. compiler가 생성하는 record accessor, 단순 enum 상수, 빈 marker interface에는 메서드별 주석을 강제하지 않는다. 그러나 타입 자체의 주석은 필요하다.
|
||||
5. 주석은 구현 코드를 한 줄씩 번역하지 말고 협업자가 설계 의도와 호출 흐름을 이해하도록 작성한다. credential, bearer token, 개인정보 원문 및 민감 업무 payload를 주석에 쓰지 않는다.
|
||||
6. 기존 파일의 일부만 수정한 경우에도, 수정한 클래스 또는 메서드에 위 형식의 주석이 없거나 현재 동작과 맞지 않으면 함께 추가·갱신한다.
|
||||
|
||||
검증 전에는 변경된 production source의 클래스·메서드 선언과 Javadoc을 대조한다. 누락이 있으면 테스트가 통과해도 완료로 보고하지 않는다.
|
||||
|
||||
## Verification commands
|
||||
|
||||
On Windows:
|
||||
|
||||
```powershell
|
||||
.\gradlew.bat test
|
||||
```
|
||||
|
||||
On Unix-like systems:
|
||||
|
||||
```bash
|
||||
./gradlew test
|
||||
```
|
||||
|
||||
Use `clean test` for dependency, packaging, profile, deployment, or broad cross-cutting changes. Never claim verification succeeded unless the command completed successfully.
|
||||
@@ -1,4 +0,0 @@
|
||||
interface:
|
||||
display_name: "MCP Server Change Verification"
|
||||
short_description: "Verify MCP changes and required Korean code comments"
|
||||
default_prompt: "Use $verify-mcp-server-change to implement and verify this MCP server change, including required Korean class and method comments."
|
||||
@@ -1,65 +0,0 @@
|
||||
# MCP Server Change Checklist
|
||||
|
||||
Read only the sections relevant to the requested change.
|
||||
|
||||
## JSON-RPC and MCP contracts
|
||||
|
||||
- Preserve the JSON-RPC envelope, request `id`, and HTTP-versus-JSON-RPC error behavior.
|
||||
- Confirm invalid JSON, invalid requests, unknown methods, invalid params, and tool failures map to the intended error codes.
|
||||
- Keep `initialize`, `notifications/initialized`, `tools/list`, and `tools/call` behavior internally consistent.
|
||||
- Update request samples when a public payload or response shape changes.
|
||||
|
||||
## Method dispatch and execution
|
||||
|
||||
- Ensure method resolution remains explicit and unsupported methods fail safely.
|
||||
- Validate arguments before calling an upstream Tool Service.
|
||||
- Preserve the requested Tool order and result-to-call correlation.
|
||||
- Keep tool selection outside this server; never infer or substitute a Tool implicitly.
|
||||
- Confirm timeout, partial failure, and upstream client errors produce safe normalized results.
|
||||
|
||||
## Tool Registry and cache
|
||||
|
||||
- Keep the request path free of Redis: `tools/list` and `tools/call` read the in-memory snapshot only.
|
||||
- Keep Redis on the background refresh path only, as a cross-replica sharing point rather than a source of truth.
|
||||
- Write to Redis only after a successful source fetch, and update memory before Redis.
|
||||
- Never let any failure path empty the Tool snapshot; replace it only on success.
|
||||
- Treat Redis health, serialization, read, and write failures as cache degradation rather than correctness failures.
|
||||
- Confirm cold-start behavior when no cache is available.
|
||||
- Keep metadata versioning and enabled/disabled Tool behavior explicit.
|
||||
- Preserve the Redis key namespace (`key-prefix:identity:schema-version`) when touching cache code.
|
||||
|
||||
## Request context, trace, and audit
|
||||
|
||||
- Propagate `traceId`, `requestId`, `mcpSessionId`, `agentId`, and `userId` where the contract requires them.
|
||||
- Clear ThreadLocal and MDC state on every completion and exception path.
|
||||
- Mask sensitive values only in log and audit copies; do not mutate execution payloads.
|
||||
- Keep payload logging disabled by default.
|
||||
- Verify audit hooks do not change business results.
|
||||
|
||||
## Streaming
|
||||
|
||||
- Preserve NDJSON framing and final response semantics.
|
||||
- Flush progress notifications without losing the original request correlation.
|
||||
- Handle upstream SSE `data:` lines and NDJSON consistently.
|
||||
- Consider client disconnect, proxy buffering, timeout, and back-pressure implications.
|
||||
- Test both streaming and non-streaming paths when shared code changes.
|
||||
|
||||
## Configuration and deployment
|
||||
|
||||
- Keep the `local` profile runnable without Redis.
|
||||
- Keep production values externally configurable; do not commit credentials or trust material.
|
||||
- Preserve stateless replicas, read-only container filesystem support, and arbitrary UID compatibility.
|
||||
- Review liveness, readiness, graceful shutdown, ingress buffering, timeouts, and egress policy when deployment behavior changes.
|
||||
- Explain compatibility impact when changing Java, Spring Boot, Spring AI BOM, Gradle, or container settings.
|
||||
|
||||
## Tests and documentation
|
||||
|
||||
- Mirror production responsibility in the corresponding test package.
|
||||
- Add regression coverage for the failure mode being fixed.
|
||||
- Prefer focused unit tests; use broader application tests for wiring and profile behavior.
|
||||
- For every added or modified `src/main/java` top-level type, add or refresh a Korean Javadoc directly above the declaration. Explain its responsibility, its HTTP/MCP request or processing stage (or state that it has none), and its key dependencies or external boundary.
|
||||
- For every added or modified explicit production method or constructor, add or refresh a Korean Javadoc. Explain its purpose, input/output or error handling, and invocation timing or impact. Exclude only compiler-generated record accessors, simple enum constants, and empty marker interfaces.
|
||||
- Review the changed source declarations and their Javadocs before test execution; comment coverage is required even when behavior tests pass.
|
||||
- Update `docs/architecture.md` for responsibility or flow changes.
|
||||
- Update `docs/extension-points.md` for new operational gaps, agreements, or extension guidance.
|
||||
- Run the Gradle wrapper test task before handoff.
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -12,6 +12,7 @@ out/
|
||||
output/
|
||||
outputs/
|
||||
tmp/
|
||||
.agents/
|
||||
|
||||
# 에이전트 작업 계획·산출물. 저장소 문서가 아니므로 반입 대상에 넣지 않는다.
|
||||
# 결정은 docs/decisions/의 ADR에, 규칙은 계약 테스트에 남긴다(AGENTS.md 4절).
|
||||
@@ -34,4 +35,4 @@ secrets/
|
||||
# Claude Code: 공유 설정(.claude/settings.json)은 커밋하고 개인 설정은 제외한다.
|
||||
.claude/settings.local.json
|
||||
|
||||
.agents/.idea/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user