fix: align pod manifest scaffold schema
Some checks failed
Deploy to OCIWP / deploy (push) Failing after 25s

This commit is contained in:
jade
2026-09-02 14:34:56 +09:00
parent 2dc0c19c5a
commit e6bcfe8934
3 changed files with 13 additions and 6 deletions

View File

@@ -92,9 +92,16 @@ public class ScaffoldingController {
String prompt = """ String prompt = """
Generate only YAML for an MCP tool service manifest. Generate only YAML for an MCP tool service manifest.
The root must be mcp.manifest.routing-functions with one routing function. The root must be mcp.manifest.routing-functions with one routing function.
Include name, description, server-id, category-key, product-boundary, business-domain, Include name, server-id, category-key, product-boundary, business-domain,
business-outcome, primary-entities, capabilities, select-if, reject-if, business-outcome, primary-entities, capabilities, select-if, reject-if,
confidence-server-ids, and decision-policy. confusable-servers, decision-policy, and description-serialization.
Except for machine identifiers and YAML keys (name, server-id, category-key), write every value in Korean.
The routing function name must be exactly route_to_<moduleName>, preserving hyphens (for example route_to_dat-was-cus).
description_serialization is the Korean tool description generated from business-outcome and decision-policy;
do not put JSON, MCP tags, or implementation instructions inside description_serialization.
confusable-servers must contain only other plausible target server IDs and must never contain the current server-id.
descriptions, business domains, outcomes, entities, capabilities, selection/rejection rules,
and decision policy must all be natural and specific Korean text.
Use valid YAML only, without Markdown fences or explanations. Use valid YAML only, without Markdown fences or explanations.
Pod module: %s Pod module: %s
Business description: %s Business description: %s

View File

@@ -843,7 +843,7 @@
<label class="form-label">Pod 업무 설명</label> <label class="form-label">Pod 업무 설명</label>
<textarea class="form-control" name="podDescription" id="podDescription" rows="3" placeholder="예: 보험 계약과 보험금 지급을 처리하는 처리계 서버"></textarea> <textarea class="form-control" name="podDescription" id="podDescription" rows="3" placeholder="예: 보험 계약과 보험금 지급을 처리하는 처리계 서버"></textarea>
<div class="d-flex justify-content-between align-items-center mt-2"> <div class="d-flex justify-content-between align-items-center mt-2">
<div class="input-hint">설명을 입력하면 AI가 tool-service-manifest.yml 초안을 작성합니다.</div> <div class="input-hint">설명을 입력하면 AI가 한국어 업무 내용으로 tool-service-manifest.yml 초안을 작성합니다.</div>
<div class="d-flex gap-2 align-items-center"> <div class="d-flex gap-2 align-items-center">
<select id="podAiModelSelect" class="form-select" aria-label="Pod Manifest AI 모델 선택" style="width:220px;"> <select id="podAiModelSelect" class="form-select" aria-label="Pod Manifest AI 모델 선택" style="width:220px;">
<optgroup label="[신한라이프 내부망]"><option value="Qwen3-Coder" selected>Qwen3-Coder</option><option value="Gemma-4-31B">Gemma-4-31B</option></optgroup> <optgroup label="[신한라이프 내부망]"><option value="Qwen3-Coder" selected>Qwen3-Coder</option><option value="Gemma-4-31B">Gemma-4-31B</option></optgroup>

View File

@@ -393,7 +393,7 @@ public class PodScaffolder {
manifest: manifest:
routing-functions: routing-functions:
- name: route_to_%s - name: route_to_%s
description: %s 업무 서버로 요청을 라우팅합니다. description-serialization: %s 업무 서버로 요청을 라우팅합니다. %s 관련 업무를 처리합니다. 요청의 주요 업무 영역을 기준으로 서버를 선택합니다.
server-id: %s server-id: %s
category-key: %s category-key: %s
product-boundary: insurance product-boundary: insurance
@@ -403,9 +403,9 @@ public class PodScaffolder {
capabilities: [] capabilities: []
select-if: %s 관련 요청인 경우 select-if: %s 관련 요청인 경우
reject-if: 다른 업무 영역이 주된 요청인 경우 reject-if: 다른 업무 영역이 주된 요청인 경우
confidence-server-ids: [%s] confusable-servers: []
decision-policy: 요청의 주요 업무 영역을 기준으로 서버를 선택합니다. decision-policy: 요청의 주요 업무 영역을 기준으로 서버를 선택합니다.
""".formatted(moduleName.replace("-", "_"), key, moduleName, key, key, key, key, moduleName); """.formatted(moduleName, key, key, moduleName, key, key, key, key);
} }
private static String capitalize(String str) { private static String capitalize(String str) {