用途:在影响面已知、规格已确定后,编写或修改 PL/SQL 源码,包括过程、函数、包、触发器与视图。开始时应声明“Using pythia-write — mining the codebase's conventions first.”。
主要能力与流程:先学习再动手。若项目存在 .pythia/conventions.md 必须先读,其内部规则优先于通用模式;可用 pythia conventions 查看命名模式,用 pythia conventions --init 初始化。用 pythia similar <NEW_NAME> 找出命名相近的现有程序并模仿其命名、参数前缀、游标风格、错误处理与注释风格;用 pythia args NAME 确认被调用程序的真实参数名、顺序、类型与默认值;用 pythia cols TABLE 确认表列,并用 %TYPE / %ROWTYPE 声明变量。写文件时:一个文件一个对象,包规范与包体分两个文件;文件以 PL/SQL 块的 ; 结尾,最后一行是 /;对象名不加限定,或使用连接所指向的确切 schema。非 ASCII 字符串字面量须用 pythia unistr "<text>" 生成 unistr('...'),COMMENT ON ... IS 例外。交付前先运行 pythia lint <file>,再对照 reference/patterns.md 复查游标、批量模式、异常处理、绑定变量与提交归属;所有注释经 pythia-comment 处理。
限制:只改开发者点名的对象,影响面显示会破坏的依赖时只报告并给建议,修复需另行明确批准。约定优先于个人偏好,风格变更须单独提出。新包、API 或触发器设计用 pythia-package;表、列、注释用 pythia-table;理解现有代码用 pythia-explore;评估影响用 pythia-impact;落地数据库必须用 pythia-apply,不得用 run-sql 或 sqlplus。