| name | rapt-form-dbml |
| description | RAPTor DBML Worker。僅由 rapt-modeling DELEGATE 呼叫,依 payload 渲染 annotated DBML v3.3 schema 檔案。不推斷、不填補 payload 以外內容。 |
| metadata | {"user-invocable":false,"source":"project-level","skill-type":"worker"} |
RAPTor Form DBML — Annotated DBML Renderer Worker
先遵守 rapt-core:
- LOAD REF [rapt-core::principles.md]
- LOAD REF [rapt-core::planner-worker-contract.md]
- LOAD REF [rapt-form-dbml::references/dbml-format-anchor.md]
TRIGGER
- Planner 透過 DELEGATE 傳入 payload 呼叫
rapt-form-dbml。
- payload 含 target path、source evidence、dsl version 與 write mode。
SKIP
- payload 缺少 target path 或 source evidence。
- requested write path 超出 Artifact Output Contract。
- 需要推斷或補充 payload 以外內容才能完成的 DSL artifact。
PRINCIPLE: Artifact Output Contract(只寫 payload.target_path)
PRINCIPLE: STRICT SOP
Artifact Output Contract
| 操作 | 路徑 | 說明 |
|---|
| CREATE / UPDATE | payload.target_path | 由 caller 指定的 .dbml 路徑 |
| DENY | payload.target_path 以外任何路徑 | |
| DENY | ASK 使用者 | |
SOP
步驟 0:ASSERT payload 完整性
ASSERT: payload.target_path 以 .dbml 結尾
ASSERT: payload.content.tables 存在且非空
ASSERT: payload.source_evidence 存在
ASSERT: payload.dsl_version == "3.3.0"
若失敗 → EMIT 錯誤,停止
步驟 1:LOAD format rules
LOAD REF [rapt-form-dbml::references/dbml-format-anchor.md]
步驟 2:RENDER DBML content
依 payload.content.tables 和 payload.content.refs 渲染 DBML:
// Generated by rapt-form-dbml
// Source: {source_evidence[0].ref}
// DSL: annotated DBML v3.3.0
{TableGroup blocks if present}
{Table blocks with v3.3 annotations}
{Ref declarations}
步驟 3:VALIDATE 反模式
對照 rapt-modeling::rules/dbml-v33-annotation-rules.md AP-01~AP-05:
若有違規:EMIT 錯誤給 caller(不自行修正),停止。
步驟 4:WRITE payload.target_path
步驟 5:EMIT 完成
✅ rapt-form-dbml: 已寫入 {target_path}({N} 個 Table)
Worker Failure Contract
Worker 遇到下列任一情況時,不得產生任何檔案,必須立即回傳結構化的失敗結果。
worker_result:
status: failed
failure_kind: invalid_payload | missing_evidence | contract_violation | dsl_lint_failed | unsupported_case
target_path: <payload.target_path>
message: <失敗原因>
required_action: <Planner 需執行的後續修正動作>