道一修仙录 · 设计系统

武器设计的整个逻辑

一件武器先要说明谁使用它、怎样作用、怎样停止与恢复。形体承接这条动作链;法则与材料改变它的结构。图像负责把这些关系变成可见证据。

依据本机现行技能、材质编译器、项目图像档案与运行记录。检查日期:2026 年 9 月 13 日。

我的判断

主干成立:动作约束器形,法则改变结构,材料提供可见载体,图像接受独立检验。当前需要理顺的是器形与选材之间的往返,以及设计证据进入单帧时的取舍。

从需求到交付,分成五段

一 · 判定用途谁使用,处理哪种冲突。二 · 建立器形动作、质量、结构与法则。三 · 绑定材料部件工况与来源对齐。四 · 分配画面英雄图与机构图各取证据。五 · 核对结果设计、提示词、执行、实图。

正式入口是 weapon-treasure-design。旧目录“武器设计”已成为兼容入口;旧“出设计”“出提示词”保留作迁移资料。现行方法、共享程序与项目库共同决定结果。依据:入口与登记表

设计流程与接口

从任务输入到两套图像任务。点击步骤查看输入、输出和对接字段。

滚轮 / 双指缩放 · 拖动画布
任务约束
品类与接口
部件与工况
材料绑定
审核通过
证据计划
双路线合同

依据现行 weapon-treasure-design 专业方法:TaskProjection 与库选择、DesignCore、WeaponEvidencePlan、命名与下游交接。查看原文证据

先问它怎样进入冲突

兵器要有交战目标、主动作用和使用接口。接口可以是握持、穿戴、投放、召回或指令控制。固定法宝若离开交战者仍在完成水利、封堵或承压工程,就应转到设施或环境设计。

环节必须说明的关系不成立时回哪里
使用情境使用者、目标、距离、空间、任务,以及成功与失败。回到需求,不能靠造型补题。
动作链准备、发力、导向、接触、卸载、恢复,形成连续过程。回到动作,补中断的环节。
使用接口身体怎样控制;远程法宝怎样认主、定向、终止和回收。回到握持或指令关系。
形态签名主势线、质量分布、功能留空、截面与连接共同构成身份。回到器形,检查功能变形。
特殊机制触发、转换、作用、限制、代价、复位与故障。删去机制后能力不变,就重做机制。
携行维护不用时怎样收纳;接头、锁定件和损耗部件怎样处理。回到部署与维护结构。
依据:专业方法的对象边界、推理顺序与设计核

造型的辨识度,来自结构关系

主势线统领全器,质量分布决定视觉重心,孔槽与分叉承担作用路径,截面与接头交代结构。大体量定器类,中体量解释功能,小体量收口。

现行方法要求至少两项有功能理由的形态操作,并指定一项相对普通器类的主结构偏离。中国造物来源也要转成几何:榫卯可以成为穿插锁合,书法提按可以成为主轴与截面的转折。来源不能停在表面纹样。

器形判据

遮去材质,身份还在

黑色剪影仍有自己的主势线、质量与功能留空。既能认出属于哪种器类,也能认出与同类对象的差别。

法宝判据

拿掉法则,作用会变

异常要改变动作选择、结构、作用路径、风险或代价。能量导路应长进既有孔槽、截面与连接。

“仙气”在这里有四个落点:来源确定的世界身份;法则造成的器形变化;材料中的可见状态差;器物与修仙场所发生的接触和响应。雾、光或颜色只能支持这些关系。

英雄画面先交代器类,再给个体结构与法则,随后校验熟悉轮廓。这种排序要同时守住“认得出兵种”和“看得见改造”。依据:证据计划与首段顺序

材料从部件进入,从表面显现

骨架、部件与工况建立后,系统按部位、材料形态、载荷和界面需求检索候选,再读取选中材料的完整记录。每件最多四种;材料不适配部件时重选。向量检索命中只证明“找到候选”。

材料处理层它保存什么交给下一层什么
选材记录稳定材料编号、部件、材料形态、查询与选择来源。这块材料为何出现在这个部件上。
完整渲染记录固有色、表面、微结构、截面、受光、相邻边界、工艺。可对照来源的七类视觉事实。
英雄材质短句从同一记录选择二至四个通道,保留表面与边界。峰值主材保留重点;其余材料缩短。
内部能量记录输入、传导、工作区变化、衰减与复位、静息、完整表皮。机制的完整周期,供设计审查。
单帧峰值短句一种可见载体、一处区域变化、同相残迹、完整表皮。与当前动作相位一致的一个瞬间。

材料名不会自行变成画面。设计必须说明层间相界、半透深度、截面窗或应力带怎样显现,并达到局部区域或轮廓可读的尺度。每个可见构件都要有材料绑定或明确的同材继承。

代码还区分“英雄审计短句”与“实际提交短句”:后者选二至三个来源通道。完整记录留在证据包中。材质编译器

以五肋战扇看一次因果关系

项目已有战扇例子:握持输入经过枢轴传到扇肋,复位由返回结构承担。若同一肋由刃缘与内芯复合,材料界面必须仍属于同一根肋。图像一旦把两种材料画成两组部件,机构身份就变了。

修仙改造还要落到结构:例如选材与法则令肋的层间相态、开张弧线或反向锁定产生可见差异。英雄图抓其中一个峰值;机构图检查枢轴、同件界面与回程来源。两张图回指同一设计。

这是用现有测试夹具解释方法,不是新增正典设计,也不代表该战扇已通过实图验收。战扇回归样例

同一件设计,交给两种图

英雄材质母稿

看清它是什么、哪里特殊

完整器形、主结构偏离、法则峰值、材料区带、世界接触与光色。

现行项目档案以六至八个视觉句、900—1400 个英文字符为目标;超过 1500 触发压缩。这是本地预算,档案没有确认供应商的官方长度上限。

机构证明稿

看清各部件怎样成为一件器物

构件计数、控制到工作端的连续关系、一个冻结状态、截面、连接与复位来源。

现行目标为 650—900 个英文字符,超过 1050 触发压缩。复杂机构的 MJ 图属于诊断证据;严格三视图需要单独交付。

命名在结构与机制稳定后生成,提取世界锚、法则动作、形制意象与真实器类。名称不能倒过来增加能力。随后由风格编译与项目图像档案选择色彩、场所和表达方式。

英雄图中的场所也要有职责:近景承托,中景提供正在工作的修仙场所,远景给世界尺度;环境光色进入主材。每一层都要让主体可读。依据:双投影项目档案

四次检查,回答四个问题

检查层判断什么通过的含义
设计与来源对象属于兵器吗;动作、机制、材料、证据能否互相支持。候选具备交接条件。
提示词器类、结构、材料、相位与顺序有没有丢失;单帧是否超载。文本符合本地图像合同。
供应商执行最终提示词、参数、任务号与原生媒体是否对应;关键短语有无漂移。执行与请求可对账。
图像与采纳器类、结构偏离、材料状态、世界接触是否在图上可见。图像满足相应验收;正典采纳另有决定。

正式设计运行还包含来源审核、品类与机制审核、设计证据审核,并记录真实输出、终态与清理结果。审核合同已经登记;本次只读分析没有启动一次生产设计运行。

本轮兵器专项:38 项通过本轮新媒体:0

本次运行了三个 test_weapon 测试文件。8 月 24 日双案回执为“提交前阻断”,提交数 0、媒体 0;对应快速预览明确记录未运行验证。这个样本只能作为草案,不能用来证明最新视觉质量。运行记录

我认为需要理顺的四处

一 · 器形与材料法则之间,需要写出往返

文件现状:方法先要求结构成立后选材,又要求在形态阶段先决定法则怎样改变几何;内部能量步骤还先于后文“材料与工艺”。

判断:这是依赖顺序的歧义。执行者可能先把普通器形锁死,也可能预设材料能力后才寻找来源。

建议:动作与候选骨架先立;查询可用法则与材料;回到几何核验;通过后冻结结构与选材。应区分候选骨架和最终骨架。依据

二 · 完整证据与单帧预算,仍有张力

文件现状:英雄档案有 12 个正文槽位、22 项图像验收条件,同时要求六至八句,并保留结构、峰值、材质、近中远景与受光。

判断:短句压缩已经实施,但这些要求能否同时显现,需要实图检验。38 项程序测试不能回答这一点。

建议:每件选定一个主结构变化与一个材料峰值;把其他信息按“必须可见、支持、另图证明”分配。已有证据优先级字段应直接控制图像验收。依据

三 · 通用兵器合同,夹进了太玄专用条件

文件现状:共享验证器的较新证据合同要求法则绑定,并直接检查 ds:taixuan:material: 前缀。

判断:用于太玄修仙兵器时条件匹配;移到其他世界或凡器路线时,材料来源与异常要求会成为迁移障碍。

建议:共享核心保留动作、结构、接口与证据;太玄项目档案决定世界前缀、法则显形和修仙场所。凡器与法宝要有显式分支。依据

四 · 出图入口与部分文字规则,需要对齐

文件现状:专业方法的下游主要描述 MJ 双投影;登记表的媒体执行端另指向 NBP。材料短句的正文与代码接受二至四通道,失败说明和代码注释仍写三至四。

判断:媒体端可以并存,但需要注明各自产物与选择入口。这次没有验证 NBP 执行链,不能据登记字段判定已接通。

建议:写清“设计核 → 选定媒体路线 → 对应证据合同”的交接,并统一通道数量说明。登记表 · 编译器 · 方法正文

以上为只读诊断与修改建议。本轮没有改动技能、项目库、编译器或正典,也没有重新评定历史图片。

文件证据

下列摘录在本轮从本机文件读取,保留行号与文件校验值。它们说明系统现在怎样写、程序怎样检查;不代替现实力学或历史器物文献。

正式入口与媒体登记

技能/设计/武器设计/SKILL.md · 行 1—10
SHA-256:03f4aa760198fd56be8fa544e75dcf379de1f24ee3dc1ee341e03907afd875e9

1: ---
2: name: 武器设计
3: description: 武器设计的兼容入口,正式调用 weapon-treasure-design,沿用其专业方法、来源检查与独立审核。
4: ---
5: 
6: # 武器设计
7: 
8: 本入口固定路由到 [weapon-treasure-design](../../../设计系统/Skills/weapon-treasure-design/SKILL.md)。收到任务后读取该权威技能及其运行时审核引用,以 `weapon-treasure-design` 建立运行记录并立即启动来源检查。旧目录下的子步骤不再作为独立生产入口;设计、提示词、审核按权威技能声明交接。
9: 
10: 已有设计、来源引用、用户约束和输出范围原样传入。历史固定画幅、平台尾参或重复算法不能覆盖本次权威合同。[原有方法资料](references/legacy-method.md) 仅供迁移核对,不参与生产技能发现。

设计系统/skills-manifest.yaml · 行 364—373
SHA-256:529b562a0f082066c17e427a305cd48fd675964f42237960fd0d27d4c430fcca

364:   - skillId: "weapon-treasure-design"
365:     kind: "design"
366:     canonicalPath: "设计系统/Skills/weapon-treasure-design"
367:     aliases: ["武器设计","兵器法宝设计","daoyi:武器设计","daoyi:weapon-treasure-design"]
368:     entrypoints: {"skill":"SKILL.md","runtime":"Kernel.runtime","reviewInstructions":"references/运行时审核.md","professionalMethod":"references/professional-method.md"}
369:     mediaProducer: {provider: "vectorengine", model_target: "gemini-3-pro-image-preview", provider_profile: "vectorengine:nbp", protocol: "gemini_native_image", execution_entry: "Kernel.runtime.bridge#begin-provider", reference_manifest_required: false, fallback_allowed: false, output_contract: "VisualProductionAdmission"}
370:     contracts: {"inputs":["TaskProjection"],"outputs":["DesignCore"]}
371:     runtime_status: "host_adapter_required"
372:     discoveryScopes: ["runtime","cskill","design_inventory","kernel_router"]
373:     reviewPolicy: {"policyId":"weapon-treasure-design:independent-review","sourceRoles":["source_evidence"],"stages":[{"stageId":"design","roles":["category_mechanism","design_evidence"]}],"maxConcurrent":3,"maxReworkRounds":2}
对象边界、设计顺序与选材

设计系统/Skills/weapon-treasure-design/references/professional-method.md · 行 5—59
SHA-256:56b2ea3bde5c079e1e2af798a1308ee77543a8dd2b4cd64657df27b687338f73

5: 把兵器定义为把使用者身体、动力、结构、接触区、卸载和恢复组织成可重复作用链的对象。战斗法宝还须让异常机制真实改变动作选择、作用路径、风险或代价。
6: 
7: - 主要身份是日常、仪式、收藏或非战斗器物时转 `prop-artifact-design`。
8: - 固定承担水利、封堵、承压、桥接、城防或环境调节,且移除交战者后仍以同样方式运行的设施,不因被称为“法宝”就属于兵器;按主体转 `environment-concept-design` 或 `prop-artifact-design`。
9: - 能力独立于器物、主要表现为异常事件时转 `spell-ability-design`。
10: - 活体兵器若核心是自治生命,先由 `living-ecology-design` 建立生命 DesignCore,再将兵器作为使用接口子记录。
11: - 涉及现实武器时只做历史、人体工学、安全和非操作性概念分析,不提供可直接制造或提高伤害效能的细节。
12: 
13: ## TaskProjection 与数据库选择
14: 
15: 遵循 Kernel 的 `TaskProjection`,确认使用者、冲突情境、目标类型、距离、主要动作、部署类别、使用接口、携行环境、异常规则、当前状态、固定约束、正典快照与交付媒介。部署类别至少区分随身、手持、穿戴、投放、召回、载具挂接与固定设施;它是品类裁决字段,不是构图词。
16: 
17: 按需查询并保存 `ResolveReceipt`:
18: 
19: | 库 | 读取条件 | 解决的问题 |
20: |---|---|---|
21: | Project Canon & World Model | 始终 | 能力边界、归属、技术或超常规则 |
22: | Encyclopedia Library | 始终 | 武器类型、动作、生物力学、力学与安全参照 |
23: | Design Pattern Library | 始终 | 动作链、负载路径、连接、锁定、部署与故障模式 |
24: | Material Library | 骨架、载荷和工况确定后 | 物性、部位、工艺、界面、磨损与维护;同时核对 `product_scope`、`form_factor` 与 `parts`,不适配时换材质而非改写品类 |
25: | Cultural Context Library | 涉及历史、制度、身份或仪式时 | 使用传统、携行方式、禁忌与身份语义 |
26: | Symbol Library | 符号能进入结构或动作时 | 来源、含义、承载位置与变形许可 |
27: | Color System Library | DesignCore 通过后的证据规划 | 色彩角色,不参与动作与受力推理 |
28: 
29: 设计阶段不读取 Style Library 与 Midjourney Prompt Structure Library;名称在武器结构与机制稳定后生成。
30: 
31: 材质必须走 Kernel 的 `MaterialQuery → MaterialSelectionBundle → MaterialRenderPacket`:先完成动作链、承力骨架与明确部件,再以 `module_id=weapon-treasure-design`、`part`、`form_factor`、载荷和界面需求查询最多八条候选;选中后才按稳定 `material_id` 读取完整记录。每件兵器最多四种材料,每种必须绑定工作端、承力件、控制端、连接件或维护件之一;羽轴、玉件、线材等不得因语义相似越过部件兼容门。查询为空或部件不适配时返回 `MATERIAL_SCOPE_MISMATCH`,保留兵器结构并重选材料。英雄图还须从已选材质中指定一种主法则载体:它的异常必须在 `regional` 或 `silhouette` 尺度改变宿主几何、轮廓、负形、截面、相界或部件关系;只有钢纹、包柄、微小亮点或普通名贵材料不够。
32: 
33: 稳定 ID、项目材质名与选材理由只用于检索、来源和审计,不能直接成为 MJ 视觉语言。DesignCore 通过后,由 Kernel `compile_material_render_packet` 消费已选记录的 `prompt_tokens_en` 与 `render_profile`,再结合当前部件的英文可见名称、截面、受光、相邻边界和工艺,确定性生成完整 `compiled_mj_phrase`,作为来源与七通道审计记录。英雄母稿再调用 `compile_material_hero_projection`,从同一渲染包确定性选择二至四个通道,其中表面与相邻边界必选,微结构、截面、受光、工艺按当前部件职责再选;不得手写材质简称。材质库中的 `anti_collapse` 只进入内部检查,不作为尾部排除清单提交。
34: 
35: ## 核心推理顺序
36: 
37: 1. **兵器资格门**:必须存在具体交战目标、主动作用和可重复使用关系,并至少有身体耦合、可部署定向或受使用者约束的自主攻击三种接口之一。若移除使用者、指令或交战目标后对象仍以同样方式完成环境工程,立即转出兵器通道。
38: 2. **使用与冲突情境**:明确使用者、目标、防护、距离、空间、主要任务,以及成功、失败和误用。
39: 3. **动作链与力链**:建立准备、发力、加速与导向、接触、卸载或反冲、恢复的连续路径。
40: 4. **人体工学或指令工学**:手持、穿戴与载具接口核对握持、控制点、重心、惯量、活动空间与疲劳;投放、召回和自主法宝核对认主、定向、终止、误判与回收接口。
41: 5. **形态签名**:从动作与质量分配推出主轴、轮廓、有效作用区、功能负形和截面变化。`form_signature` 必须同时记录大中小三层节奏、一种被转译为受力几何的中国造物结构来源,以及至少两项有功能理由的偏置、折转、分叉、内收、外扩、阶差、套叠、悬挑、镂空或反向配重操作;不用放大、加刃或装饰冒充创新。另登记相对普通器类的一项主结构偏离,明确它改变剪影、功能负形、截面、质量分配或连接中的哪一项,并保证英雄距离可读。法器路线还要先决定哪一项法则怎样改变这些几何,再选能承载该变化的材料,不能先画普通刀剑、最后贴一根灵气线。
42: 6. **结构骨架**:建立从使用接口到作用区的连续承力或能量路径、连接、锁止、变形和维护入口。
43: 7. **材料内能量链与英雄相位**:从已选英雄材质的法则与响应字段编译 `material_internal_energy_projection`,完整保存输入、内部传导、工作区状态差、衰减/复位、静息态与完整表皮,供审计动作循环。随后另编译 `hero_phase_projection`,只冻结 `action_state.depicted_phase` 对应的一个峰值相位:一种材料自身的可见载体、一处区域状态差、一项同相残迹和完整表皮。英雄提示词只消费这条峰值短句,不把完整生命周期平均塞进单帧。`latent` 只表示能量仍在材料体内,不表示可以不可见;可见载体必须来自该材质自身的半透深度、截面窗、层间相界、折射差、颗粒迁移、孔隙压差或应力带。材料名、稳定 ID 与中文能力说明只留在来源。
44: 7. **特殊机制**:说明触发、转换、作用、限制、复位与故障;移除机制后能力必须可观察地下降。
45: 8. **材料与工艺**:逐部件绑定载荷、界面、成形、连接、磨损、修复和失效,并逐条通过材料适用范围门。
46: 9. **携行与部署**:建立收纳、锁定、展开、弃置及与身体、服装、坐骑或空间的关系。
47: 10. **证据规划**:建立 Kernel `WeaponEvidencePlan`。先冻结一件闭合、完整、可数主部件的兵器,再选择一个作用瞬间;用同一条“控制输入→连接传递→工作结果”证明机构,并显式保留复位件或回程来源。原生四宫格是四个单帧候选,不是开合、攻击、回收的连续分镜。
48: 
49: 动作链、人体工学和结构骨架优先于材料、符号与视觉表达。
50: 
51: ## DesignCore
52: 
53: ```yaml
54: DesignCore:
55:   core_id:
56:   subject_type: weapon-treasure
57:   module_id: weapon-treasure-design
58:   project_id:
59:   canon_snapshot_id:
证据计划、图像优先级与命名

设计系统/Skills/weapon-treasure-design/references/professional-method.md · 行 159—186
SHA-256:56b2ea3bde5c079e1e2af798a1308ee77543a8dd2b4cd64657df27b687338f73

159: - `component_ref` 先于材质建立;可数主部件、控制端、连接件、工作端和复位件必须属于同一闭合拓扑,不能把并置的刀片、扇面或法器核心称作连续机构。
160: - `category_anchor` 是不带材质、气氛和改造词的普通器类名,先锁兵种。随后立即下传 `cultivation_identity` 和 `law_form_material_binding.prompt_phrase`;`familiar_silhouette` 只在这句之后校验完整器类,不再先于个体几何占满首段。这样既防兵种漂移,也不把普通历史轮廓设为画面主命题。
161: - `cultivation_identity` 必须回指 `cultivation_context_ref` 所指的 01 正典或 08 文化语境记录,并在英雄母稿前段逐字出现;“仙气”不是自动加雾、悬浮、发光或提高 stylize,而是法则确实改变器身几何与材料状态。
162: - 单图只冻结一个 `depicted_phase`。完整动作循环由可见输入、传递、作用结果和复位准备共同证明,不在一张图里同时要求“展开、切割、回收”。
163: - 每条材质绑定都从已选 `MaterialSelectionBundle` 原样下传稳定 `material_id + part + form_factor + source_query_id`;向量命中仍只作候选。随后使用共享编译器生成 `MaterialRenderPacket`:`prompt_tokens_en` 是源视觉语言,`surface_finish` 与 `microstructure` 必须能从中逐字对证;`intrinsic_color + surface_finish + microstructure + edge_or_section + light_response + adjacent_boundary + craft_evidence` 七个画面通道全部保存在完整 `compiled_mj_phrase` 中,并以 `component_render_name` 紧贴部件。`render_phrase` 只允许等于该完整结果。英雄母稿不再序列化完整包,而以 `hero_projection_ref` 指向 `MaterialHeroProjection`;短句只能从同一包选择二至四个原文通道,不能手写缩成材料名,也不能另发明更华丽的材质词。
164: - `component_material_coverage` 覆盖 `component_topology` 的每个构件。可见构件用 `mode=bound` 指向一个或多个渲染包;同材连续构件可用 `mode=inherited` 登记来源构件、稳定 material_id 与接缝;内部件用 `mode=internal_not_visible` 说明不可见原因。这里检查构件覆盖,不把“至少三种材质”写成通用常量。
165: - `law_form_material_binding` 只能引用已经选中并进入英雄图的一个材质包,保存同一稳定 `material_id + part + form_factor + source_query_id`。`law_source_refs` 至少回指 `spirit_law`、`prompt_tokens_en`、`visual_evidence.response` 与 `visual_evidence.scale_read`;英文 `prompt_phrase` 必须同时包含宿主几何、材料相态、轮廓后果和杀伐后果。具体材料与法则仍在 06 项目库,不写成通用常量。
166: - 每条材质再登记 `projection_priority`。英雄母稿只保留两种 `hero_primary` 和至多一种 `hero_secondary`,以清楚的部件区带和同件界面建立材质身份;其余标为 `mechanism_only`,不让四种以上表面说明淹没器类轮廓。
167: - 同一可数部件使用两种以上材料时,每条绑定都写 `assembly_relation`,再以 `composite_component_phrases` 冻结“总件数+同件界面”。该短语作为 `identity_topology` 的内部审计事实,使钢刃、竹芯、包覆、镶嵌或内衬仍被读成一个复合部件。下游按渲染路线压缩为正向视觉短语,不得把“不是额外部件”类反例文字送入渲染器。
168: - 世界接触保留一个承重接触和一个使用后果,并把修仙存在拆成五项对象级证据:稳定 `cultivation_context_ref`、一种绑定器身或接触面的 `visible_cultivation_state`、真实工作的 `midground_function_site`、远景 `distant_world_anchor` 和环境进入主材的 `material_environment_exchange`。具体宗门、山水、锻造台、固定镜头和色盘都不是通用常量。
169: - 修订七令 `visible_cultivation_state` 与 `law_form_material_binding.prompt_phrase` 使用同一句证据。英雄母稿按“修仙媒介+器类锚→项目身份→器形—材质法则命题→熟悉轮廓校验→视角和状态→形态与材质细节”编译;`material_environment_exchange` 留在主材之后证明环境真的进入该材质。
170: - 修订八要求 `silhouette_novelty` 在材质之前逐字进入首段;它必须说明相对普通器类的一项主结构偏离及其剪影、负形、截面、质量或连接后果。表面花纹、普通贵重材、点光和局部装饰即使精细,也不能通过这道门。
171: - 英雄母稿恢复原版刀剑的表面语法:六至八个完整视觉句,正文控制在 900–1400 ASCII 字符;超过 1500 必须在付费提交前压缩。首句只承担器类、个体结构偏离、法则命题和当前峰值,第二句校验熟悉轮廓、主势线、质量与功能负形。材质句只逐字保留承担峰值的一种 `hero_primary` 完整投影;另一主材和可选次材压成一个部件名、一个表面或截面特征、一个相邻边界或制造痕迹。完整两主一副投影仍留在审计包,不把“合同完整”误当成“MJ 权重完整”。世界用一句近中远关系,受光与对象色彩各一句。受光收束须保留动机侧光、负补光、接缝环境遮蔽、粗糙度变化、镜面打散与胶片式高光收束;具体光位、镜头、材质、色彩和场所仍由项目库选择。
172: - `frame_constraints.surface_condition` 必须在 `intact`、`maintained`、`worn`、`damaged` 中明确选择,并给出会逐字进入英雄母稿前部的 `prompt_phrase`。`worn` 与 `damaged` 只有存在正典、设计核或用户授权的 `damage_authorization_ref` 才成立;局部锻打、锉削、包浆和接触磨亮不自动把整件兵器变成锈蚀遗物。
173: - `compiled_phrases` 冻结身份拓扑、单帧动作、形态证据、部件材质与工艺和世界接触五组内部证据。它们供验证器对证,不是一段必须逐字串联的渲染提示词。下游可依渲染意图改写为更短的正向视觉短语,但不得更改其事实、部件引用、材料选择或对象状态。
174: - `material_internal_energy_projection` 不是材料名的华丽同义词,也不是外部特效清单。它必须引用一个已选英雄材质和同一渲染包,逐项保存输入、内部传导、工作区状态差、衰减或复位、静息态、完整表皮、`visibility_carrier` 与 `visibility_scale`;这组字段是审计链,不再要求逐字进入英雄正文。`visibility_carrier` 必须来自该材质自身可见结构,例如半透体积、贯通截面窗、层间相界、折射深度、颗粒迁移、孔隙压差或应力带;`visibility_scale` 只能是 `regional` 或 `silhouette`。
175: - 修订九的 `hero_phase_projection` 必须与 `action_state.depicted_phase` 同值,只把峰值载体、区域状态差、同相残迹和完整表皮压成一条英文可见句,正文中早于第一条主材表面句出现。输入、传导、峰值、回落、静息不得整套逐字塞回英雄句;这样保留能量循环的结构真相,同时把 MJ 的视觉权重集中在一个能画出的材料相位。把能量写成 `faint`、`dim`、`buried`、`sleeping`、`under opaque skin` 等不可见退让,同时又没有可见载体,或只有普通钢纹、淬火带、金属高光与泛化发光,均判为 `WEAPON_INTERNAL_MATERIAL_ENERGY_UNRESOLVED`;把完整生命周期再次序列化则判为 `WEAPON_HERO_PHASE_OVERLOADED`。
176: - 实际提交后必须对 `provider_final_prompt` 做组件—场景语义边界检查。受保护的部件材质短语与峰值相位短语在规范化后仍须连续存在;承重台、地面、山石等 `world_only_phrases` 不得被插进刃、柄、骨、壳、枢轴等部件短语。供应商把场景材质黏到器身,即使 API 成功也必须保持 HOLD。
177: - `provider_final_prompt` 还必须逐字保住器类锚、主结构偏离、峰值载体和区域状态差四个最小语义锚。表面同义改写不因此失败,但缺失任一锚,或把当前能量相位改写成回落、静息、普通材质陈列,均记 `WEAPON_PROVIDER_CRITICAL_ANCHOR_DRIFT`。这项提交后门与整图视觉门分开:锚点保留也不代表图上真的可见。
178: 
179: ## 双投影交接
180: 
181: 每件已通过的兵器默认从同一份 `WeaponEvidencePlan` 交接两个独立投影,不再用一条提示词同时承担英雄母稿与机构证明。
182: 
183: 1. `hero_material_master`:一件完整兵器的造型、部件材质、制造痕迹、世界身份和光色母稿。視角由当前兵器的主势线、功能负形和工作端选择,不把固定镜头、材质、色盘或场所写成通用常量。不强迫单帧同时可视化整条动作与复位回路。
184: 2. `mechanism_proof`:同一兵器的单件连续拓扑、控制端至工作端、一个冻结状态、截面与连接证据。它压低电影场景和色彩预算;对多部件复合机构只记为 MJ 诊断图,不代替严格三视图或可控结构渲染。
185: 
186: 两个 `PromptArtifact` 和 `MJPromptPackage` 必须引用同一 `WeaponEvidencePlan.plan_id`,共享同一部件拓扑、材料选择包和名称世界锚,各自使用 03_style 与 09_midjourney-prompt-structure 中的路线记录。

设计系统/Skills/weapon-treasure-design/references/professional-method.md · 行 216—228
SHA-256:56b2ea3bde5c079e1e2af798a1308ee77543a8dd2b4cd64657df27b687338f73

216: 27. `WEAPON_EXTRAORDINARY_FORM_UNRESOLVED`:英雄证据没有至少两项改变轮廓、负形或截面的功能形态操作,回形态签名。
217: 28. `WEAPON_LAW_FORM_MATERIAL_BINDING_INVALID`:主法则材质没有稳定来源、宿主几何、相态、器形后果或杀伐后果,回选材与法器结构。
218: 29. `WEAPON_LAW_MATERIAL_SALIENCE_WEAK`:法则只在微纹或点光尺度成立,重选能在英雄距离改变结构或相界的材料法则。
219: 30. `WEAPON_SILHOUETTE_NOVELTY_UNRESOLVED`:形态操作存在但只落在表面或小尺度,没有形成相对普通器类的可见结构偏离,回形态签名。
220: 31. `WEAPON_MATERIAL_HERO_PROJECTION_INVALID`:英雄材质短句没有从同一完整渲染包确定性选择三至四个通道,回共享编译器。
221: 
222: 只修最早无效字段,再重算依赖它的字段。
223: 
224: ## 命名、风格与下游
225: 
226: DesignCore 通过后调用 `name_and_introduce(DesignCore, TaskProjection)`。`NamingStoryBundle` 可给出器名、别称、名称解释、铸造或传承大纲;名称必须来自世界锚、法则动作、形制意象和真实器类,不得反向添加能力。新增制造者、主人、誓约或历史事件进入正典变更提案。
227: 
228: 随后才调用 `style-compiler` 取得两个路线各自的 `StyleConstraintBundle`。向下游交接时必须保留 `deployment_class`、`combat_relation`、`use_interface`、`form_signature` 与完整 `WeaponEvidencePlan`,由风格库和提示词结构库分别投影英雄材质母稿与机构证明稿;固定设施不得继续消费任一兵器图档案。PromptArtifact、MJPromptPackage、平台参数、渲染与资产验收均在技能外。
完整材料记录与短句编译

设计系统/Kernel/materials.py · 行 247—317
SHA-256:ec4154720f3fd6c82aee4ce31b44b0c9a88f85ef3d0c5fce12fbc6dc2d14d1a0

247: def compile_material_hero_projection(
248:     packet: MaterialRenderPacket | Mapping[str, Any],
249:     *,
250:     projection_id: str,
251:     selected_channels: Iterable[str],
252:     submission_selected_channels: Iterable[str] | None = None,
253: ) -> MaterialHeroProjection:
254:     """Compress one full render packet without inventing or rewriting material language.
255: 
256:     The full packet remains the provenance and audit record.  The hero projection
257:     carries exactly three or four selected source channels so object identity, world,
258:     light, and colour keep their own prompt budget.
259:     """
260: 
261:     payload = packet.to_dict() if hasattr(packet, "to_dict") else dict(packet)
262:     channels = [str(channel).strip() for channel in selected_channels if str(channel).strip()]
263:     invalid = [channel for channel in channels if channel not in _HERO_SELECTABLE_CHANNELS]
264:     if (
265:         len(channels) not in {2, 3, 4}
266:         or len(channels) != len(set(channels))
267:         or invalid
268:         or not _HERO_REQUIRED_CHANNELS.issubset(set(channels))
269:     ):
270:         raise MaterialResolutionError(
271:             "hero material projection requires two to four unique source channels, "
272:             "including surface_finish and adjacent_boundary"
273:         )
274:     for field in ("packet_id", "component_ref", "projection_priority", "component_render_name"):
275:         if not _clean_mj_clause(payload.get(field)):
276:             raise MaterialResolutionError(f"material render packet requires {field} for hero projection")
277:     missing_values = [channel for channel in channels if not _clean_mj_clause(payload.get(channel))]
278:     if missing_values:
279:         raise MaterialResolutionError(
280:             f"material render packet lacks selected hero channels: {', '.join(missing_values)}"
281:         )
282:     if submission_selected_channels is None:
283:         submission_channels = ["surface_finish"]
284:         detail_channel = next(
285:             (
286:                 channel
287:                 for channel in channels
288:                 if channel not in {"surface_finish", "adjacent_boundary", "craft_evidence"}
289:             ),
290:             None,
291:         )
292:         if detail_channel:
293:             submission_channels.append(detail_channel)
294:         submission_channels.append(
295:             "adjacent_boundary" if "adjacent_boundary" in channels else "craft_evidence"
296:         )
297:     else:
298:         submission_channels = [
299:             str(channel).strip()
300:             for channel in submission_selected_channels
301:             if str(channel).strip()
302:         ]
303:     submission_invalid = [
304:         channel for channel in submission_channels if channel not in _HERO_SELECTABLE_CHANNELS
305:     ]
306:     if (
307:         len(submission_channels) not in {2, 3}
308:         or len(submission_channels) != len(set(submission_channels))
309:         or submission_invalid
310:         or "surface_finish" not in submission_channels
311:         or not {"adjacent_boundary", "craft_evidence"}.intersection(submission_channels)
312:     ):
313:         raise MaterialResolutionError(
314:             "submission material projection requires two or three unique source channels, "
315:             "including surface_finish and one boundary or craft channel"
316:         )
317:     submission_missing = [
战扇回归样例

设计系统/tests/test_weapon_dual_projection.py · 行 36—65
SHA-256:8e840bb175d16b19d6707fb553aa9bd2fd0b4331b4fa87957ac5768f7e6c5d0b

36:     "Forward sweep and tapering ribs open four long voids in one fan outline. Bronze-vessel shoulders step into rib spines and thin edges. "
37:     "Matte grey folded-steel edges are laminated onto violet-brown bamboo cores, with filed micro-serrations and planed fibres. "
38:     "A cast-bronze pivot joins every rib, its seam and lapped face marking the steel-bamboo junction. "
39:     "Grip and pivot bear on bluestone, a working talisman-forge hall stands in the midground, and sword-cliffs rise above a cloud river in the distance. "
40:     "Cool cloud light enters the folded steel and reveals every fitted seam. Grey steel, violet-brown bamboo and bronze separate from qing-blue depth and one cinnabar accent. "
41:     "Contact shadow, seam occlusion, roughness breakup and filmic roll-off keep the complete weapon primary."
42: )
43: 
44: MECHANISM_BODY = (
45:     "One complete portable Chinese five-rib war fan forms a single connected mechanism around one square "
46:     "pivot: one D-grip controls four forward cutting ribs and one reverse return rib. Grip pressure rotates the "
47:     "pivot and holds all five ribs in one open plane. The fan is frozen at its locked-open state, with the "
48:     "reverse rib tensioned as the return source. A forward sweep leads the silhouette, mass tapers toward the "
49:     "tips, and four long functional voids separate the five ribs. Square pivot shoulders step into hollow rib "
50:     "spines and then thin cutting edges. Each forward rib is one steel-edged bamboo composite with a continuous "
51:     "laminated boundary; the bronze pivot bears a casting seam and lapped faces. Restrained grey steel, "
52:     "violet-brown bamboo, bronze and ivory silk remain separated by component. The grip and pivot rest on one "
53:     "neutral stone rail with real gravity and a firm contact shadow."
54: )
55: 
56: 
57: def parameters(profile):
58:     return compile_mj_suffix(profile).resolved_parameters
59: 
60: 
61: class WeaponDualProjectionTests(unittest.TestCase):
62:     @classmethod
63:     def setUpClass(cls):
64:         records = yaml.safe_load(PROFILE_FILE.read_text(encoding="utf-8"))["records"]
65:         cls.profiles = {record["record_id"]: record for record in records}
英雄图与机构图的项目合同

设计系统/Projects/Taixuan/Libraries/09_midjourney-prompt-structure/content/prompt-structures.yaml · 行 171—270
SHA-256:3dd77e5cf841d637c677462d7f9118f9626178ae8695cbce0ba7bcdecdfec484

171:   - record_id: ds:taixuan:mj-structure:weapon-hero-7x3
172:     module_id: weapon-treasure-design
173:     render_mode: hero_material_master
174:     model_version: "8.2"
175:     route_selector:
176:       field: ontology.deployment_class
177:       values: [handheld, body_mounted, thrown, remote_deployable, autonomous_bound]
178:     requires_weapon_evidence_plan: true
179:     material_render_language_contract:
180:       source_identity_visibility: provenance_only
181:       compiler: Kernel.materials.compile_material_render_packet
182:       hero_projection_compiler: Kernel.materials.compile_material_hero_projection
183:       required_packet_fields: [component_render_name, intrinsic_color, surface_finish, microstructure, edge_or_section, light_response, adjacent_boundary, craft_evidence, compiled_mj_phrase]
184:       required_hero_projection_fields: [render_packet_ref, component_ref, projection_priority, selected_channels, compiled_mj_phrase]
185:       hero_projection_channel_count: {minimum: 2, maximum: 4}
186:       hero_projection_required_channels: [surface_finish, adjacent_boundary]
187:       component_coverage_modes: [bound, inherited, internal_not_visible]
188:       forbidden_shortcuts: [material_id_in_prompt, project_material_name_as_visual_description, bare_material_list, handwritten_render_phrase, material_name_without_surface_channels]
189:     body_slots:
190:       - one_complete_weapon_category_anchor_and_silhouette_level_structural_deviation
191:       - law_driven_form_material_thesis
192:       - familiar_silhouette_as_category_check
193:       - object_specific_hero_view_and_usage_state
194:       - dominant_axis_mass_distribution_and_functional_negative_space
195:       - three_scale_rhythm_chinese_structural_source_and_form_operations
196:       - selected_material_part_bindings_with_craft_evidence
197:       - adjacent_material_boundaries_and_surface_response
198:       - foreground_support_midground_function_site_and_distant_world_anchor
199:       - motivated_light_and_environmental_material_interaction
200:       - object_bound_color_constraint_bundle
201:       - complete_object_view_without_layout_or_sequence
202:     parameters:
203:       suffix_profile_ref: ds:taixuan:mj-suffix:ar7x3-s650-afbzw8l
204:       parameter_maturity: project_active_profile_after_observed_provider_alias_20260809
205:     run_policy:
206:       prompt_preview_required: true
207:       paid_submission_requires_user_confirmation: true
208:       keep_native_four_grid: true
209:       auto_actions: []
210:     compile_constraints:
211:       - 只有通过兵器资格门的便携、穿戴、投放、受控部署或认主自主兵器才能使用本档案;`fixed_infrastructure` 必须失败关闭。
212:       - 第一段先逐字下传 `category_anchor` 锁定真实器类,紧接项目来源约束的 `cultivation_identity`、`form_evidence.silhouette_novelty.prompt_phrase` 与 `law_form_material_binding.prompt_phrase`;结构偏离必须在英雄距离改变剪影、负形、截面、质量或连接。`familiar_silhouette` 只在其后作器类校验,不再先于个体改造几何占据首段。
213:       - 提示词顺序固定为修仙媒介与器类锚→项目身份→法则驱动的器形—材质命题→当前英雄峰值相位→熟悉轮廓校验→视角与整器状态→主势线/质量分配/功能负形/形态操作→部件材质与制造痕迹→近中远世界纵深→环境进入主材→受光与对象级色彩。法则命题与 `hero_phase_projection.prompt_phrase` 都必须早于第一条主材渲染短句;完整能量生命周期只留在审计合同。
214:       - 英文正文目标为 900-1400 ASCII 字符,使用六至八个完整视觉句;超过 1500 必须在付费提交前压缩。第一句合并身份、结构偏离、法则命题和英雄峰值,第二句校验熟悉轮廓、主势线、质量与功能负形。只完整保留承担英雄峰值的一种主材投影;其余主材与次材各缩成一个部件、一个辨识通道和一个界面或工艺事实。完整材料包、错误候选、反例对象和完整生命周期只留在审计件。
215:       - 英雄母稿只表现一个静态、展开、锁定、维护中或已完成的对象状态;精确计数、控制传递、作用结果和复位回路不同时挑战本图。
216:       - 每个可见材料都必须从 MaterialSelectionBundle 原样下传稳定 material_id、part、form_factor 与 source_query_id;向量命中只作候选,提示词阶段不得换材。项目材质名和 ID 只留在来源。
217:       - 英雄来源仍登记两种 `hero_primary` 和至多一种 `hero_secondary`;`mechanism_only` 保留来源但不进入材质句。完整 `MaterialRenderPacket.compiled_mj_phrase` 和 `MaterialHeroProjection.compiled_mj_phrase` 保留来源审计,修订九正文逐字使用相应 `submission_compiled_mj_phrase`;承担英雄相位的主材完整投影,其余可见材质只取同一来源包的表面与边界或工艺。
218:       - 每条英雄材质短句从同一完整渲染包确定性选择二至四个通道,其中表面与相邻边界必选,微结构、截面、受光、制造痕迹按该部件在本图的职责再选。每个可见构件仍有渲染包、同材继承边界或内部不可见声明;禁止材料名清单、手写简称和运行时自由换词。
219:       - 修订七必须从已选英雄材质中指定一个 `law_form_material_binding`。该材料的 `spirit_law`、`prompt_tokens_en`、`visual_evidence.response` 与 `scale_read` 只作来源;提交正文使用英文宿主几何、材料相态、轮廓或截面后果与杀伐后果,并达到 `regional` 或 `silhouette` 可读尺度。普通钢纹、普通包柄和微小亮点不能单独承担主法则身份。
220:       - 修订八从一个已选英雄材质编译完整 `material_internal_energy_projection` 审计链。修订九另编译与 `action_state.depicted_phase` 同值的 `hero_phase_projection`,英雄正文只逐字保留峰值载体、区域状态差、同相残迹与完整表皮。载体只能来自该材质自身的半透深度、截面窗、层间相界、折射深度、颗粒迁移、孔隙压差或应力带,并达到 regional 或 silhouette 级;不能把“hamon、lattice、premium steel、glow”本身当作能量相位,也不能把输入、传导、回落和静息整套重新串入英雄句。
221:       - 世界纵深只从当前项目中选择一个近景承托、一个真实工作的修仙中景功能场与一个具有超越性的远景世界锚;三者分别下传 `bearing_contact`、`midground_function_site` 与 `distant_world_anchor`,凡俗河岸、木架和泛化云雾不能代位。具体场所不作为档案常量。
222:       - 英雄母稿另下传一种 `visible_cultivation_state`,它必须依附于器身材料、部件界面或接触面;再以 `material_environment_exchange` 证明环境光色实际进入一种主材。两项都来自对象级证据,不把固定法术、颜色或光效写成档案常量。
223:       - 修订六证据计划必须从 `intact`、`maintained`、`worn`、`damaged` 中选择一种整器表面状态,并把对应正向 `prompt_phrase` 前置。`worn` 与 `damaged` 必须有来源授权;制造痕迹只证明工艺,不默认生成锈蚀、残破或考古遗物感。
224:       - 受光段只保留一个能揭示接缝、截面与工艺痕迹的动机光,环境光必须进入至少一种主材,再接对象级 ColorConstraintBundle;不预设固定光位或色盘。
225:       - 新铸与旧化状态不得同时出现。
226:       - 正文不含设定板、标注、标签、文字或比例尺诱因。
227:     prompt_order_contract:
228:       primary_slots: [one_complete_weapon_category_anchor_and_silhouette_level_structural_deviation, law_driven_form_material_thesis, familiar_silhouette_as_category_check, object_specific_hero_view_and_usage_state, dominant_axis_mass_distribution_and_functional_negative_space, three_scale_rhythm_chinese_structural_source_and_form_operations]
229:       deferred_slots: [selected_material_part_bindings_with_craft_evidence, adjacent_material_boundaries_and_surface_response, foreground_support_midground_function_site_and_distant_world_anchor, motivated_light_and_environmental_material_interaction, object_bound_color_constraint_bundle, complete_object_view_without_layout_or_sequence]
230:     weapon_projection_contract:
231:       projection_mode: hero_material_master
232:       source_fact_groups: [portable_identity, form_evidence, material_part_bindings, world_contact]
233:       cultivation_medium_phrase: "Chinese cultivation weapon hero study"
234:       cultivation_medium_within_chars: 96
235:       exact_compiled_phrase_serialization: forbidden
236:       positive_visual_language_only: true
237:       forbidden_prompt_fragments: ["not extra", "not separate", "exactly five total", "recovery provision", "same mechanism proves"]
238:       preferred_clause_groups_maximum: 12
239:       revision_eight_clause_groups_maximum: 10
240:       revision_nine_clause_groups_maximum: 8
241:       identity_anchor_within_chars: 320
242:       category_anchor_within_chars: 180
243:       cultivation_identity_within_chars: 300
244:       law_form_material_thesis_within_chars: 420
245:       silhouette_novelty_within_chars: 360
246:       familiar_silhouette_within_chars: 620
247:       law_thesis_before_familiar_silhouette: true
248:       law_thesis_before_primary_material: true
249:       cultivation_state_before_primary_material: true
250:       cultivation_state_within_chars: 760
251:       internal_material_energy_within_chars: 760
252:       surface_condition_prompt_required_revision: 6
253:       surface_condition_within_chars: 760
254:       hero_phase_projection_required_revision: 9
255:       provider_component_boundary_validation_required_revision: 9
256:       forbidden_palette_collapses: ["warm dark-brown field", "dark brown-black field"]
257:       protected_cinematic_finish_terms: ["negative fill", "seam ambient occlusion", "roughness variation", "specular breakup", "filmic highlight roll-off"]
258:       forbidden_layout_terms: [storyboard, sequence of, triptych, exploded view, orthographic sheet]
259:     compression_protected_slots: [one_complete_weapon_identity, law_driven_form_material_thesis, dominant_axis_mass_distribution_and_functional_negative_space, selected_material_part_bindings_with_craft_evidence, foreground_support_midground_function_site_and_distant_world_anchor]
260:     submission_prompt_budget:
261:       required_revision: 9
262:       preferred_ascii_chars: {minimum: 900, maximum: 1400}
263:       compression_gate_ascii_chars: 1500
264:       provider_official_limit: unknown
265:     image_acceptance_gates: [weapon_class_stable, category_anchor_matches_familiar_silhouette, silhouette_level_structural_deviation_readable, cultivation_identity_readable, law_driven_form_changes_silhouette_void_or_section, hero_law_material_changes_phase_or_boundary_at_regional_scale, internal_material_peak_carrier_visible, working_zone_energy_state_delta_visible, same_phase_residual_visible, intact_surface_over_internal_energy, single_complete_weapon, single_continuous_mechanism, form_signature_distinct, material_part_separation, primary_material_zone_map_readable, manufacturing_traces, visible_law_state_bound_to_weapon_or_contact, cultivation_world_depth, material_environment_exchange_readable, no_warm_dark_brown_collapse, world_depth_and_contact, no_pseudo_text]
266:     minimum_passing_candidates: 1
267:     submission_receipt_fields: [request_prompt, provider_final_prompt, profile_requested, profile_executed, execution_mode_requested, execution_mode_executed, task_id, original_grid_ref, api_status, visual_acceptance]
268:     status: active
269:     provenance:
270:       derivation: extracted_and_normalized

设计系统/Projects/Taixuan/Libraries/09_midjourney-prompt-structure/content/prompt-structures.yaml · 行 276—329
SHA-256:3dd77e5cf841d637c677462d7f9118f9626178ae8695cbce0ba7bcdecdfec484

276:   - record_id: ds:taixuan:mj-structure:weapon-mechanism-proof-7x3
277:     module_id: weapon-treasure-design
278:     render_mode: mechanism_proof
279:     model_version: "8.2"
280:     route_selector:
281:       field: ontology.deployment_class
282:       values: [handheld, body_mounted, thrown, remote_deployable, autonomous_bound]
283:     requires_weapon_evidence_plan: true
284:     body_slots:
285:       - one_complete_weapon_and_counted_component_topology
286:       - control_connector_working_end_continuous_chain
287:       - one_frozen_mechanism_state
288:       - recovery_source_as_structure
289:       - dominant_axis_mass_distribution_and_functional_negative_space
290:       - section_changes_and_joint_logic
291:       - composite_component_interfaces
292:       - restrained_material_part_and_craft_separation
293:       - neutral_bearing_contact_and_subordinate_context
294:     parameters:
295:       suffix_profile_ref: ds:taixuan:mj-suffix:ar7x3-s50-afbzw8l
296:       parameter_maturity: project_active_profile_after_observed_provider_alias_20260809
297:     run_policy:
298:       prompt_preview_required: true
299:       paid_submission_requires_user_confirmation: true
300:       keep_native_four_grid: true
301:       auto_actions: []
302:     compile_constraints:
303:       - 只有通过兵器资格门的便携、穿戴、投放、受控部署或认主自主兵器才能使用本档案;`fixed_infrastructure` 必须失败关闭。
304:       - 英文正文目标为 650-900 ASCII 字符,顺序为一件兵器与部件计数→控制端至工作端→一个冻结机构状态与回程来源→主势线/质量/负形/截面/连接→克制的材质工艺→中性承重接触。
305:       - 正文只写希望出现的对象和关系;错误兵种、额外刀片、多杆并置、动作分镜等反例留在验证器,不进入渲染正文。
306:       - 每个可见材料都必须从 MaterialSelectionBundle 原样下传稳定 material_id、part、form_factor 与 source_query_id;提示词只使用相应部件的视觉短语。
307:       - 复杂的精确计数、多轴联动或三层以上机构属于 MJ 诊断证据;严格结构交付使用独立三视图或可控参考路线。
308:       - 正文不含设定板、标注、标签、文字、比例尺或英雄场景诱因。
309:     prompt_order_contract:
310:       primary_slots: [one_complete_weapon_and_counted_component_topology, control_connector_working_end_continuous_chain, one_frozen_mechanism_state, recovery_source_as_structure, dominant_axis_mass_distribution_and_functional_negative_space, section_changes_and_joint_logic]
311:       deferred_slots: [composite_component_interfaces, restrained_material_part_and_craft_separation, neutral_bearing_contact_and_subordinate_context]
312:     weapon_projection_contract:
313:       projection_mode: mechanism_proof
314:       source_fact_groups: [portable_identity, component_topology, action_state, form_evidence, material_part_bindings]
315:       exact_compiled_phrase_serialization: optional
316:       positive_visual_language_only: true
317:       forbidden_prompt_fragments: ["not extra", "not separate", "not four staffs", "instead of", "rather than", "cinematic", "cloud-sea", "filmic highlight", "committed limited palette"]
318:       preferred_clause_groups_maximum: 12
319:       forbidden_layout_terms: [storyboard, sequence of, triptych, exploded view, orthographic sheet]
320:       exact_count_visual_status: diagnostic_only
321:     compression_protected_slots: [one_complete_weapon_and_counted_component_topology, control_connector_working_end_continuous_chain, one_frozen_mechanism_state, section_changes_and_joint_logic]
322:     submission_prompt_budget:
323:       preferred_ascii_chars: {minimum: 650, maximum: 900}
324:       compression_gate_ascii_chars: 1050
325:       provider_official_limit: unknown
326:     image_acceptance_gates: [weapon_class_stable, single_continuous_mechanism, control_to_working_chain, section_and_joint_readable, material_part_separation, no_pseudo_text]
327:     diagnostic_gates: [counted_component_topology]
328:     minimum_passing_candidates: 1
329:     submission_receipt_fields: [request_prompt, provider_final_prompt, profile_requested, profile_executed, execution_mode_requested, execution_mode_executed, task_id, original_grid_ref, api_status, visual_acceptance]
最近双案的本机提交记录

设计系统/Projects/Taixuan/_system/run-ledger/runs/weapon-chrome-two-mj-test-20260824/run-status.json · 行 1—37
SHA-256:fe428ca18bb19a65346d7e7a9a214074c04a9dbbdcfe41e5176e2de24a81ca44

1: {
2:   "run_id": "weapon-chrome-two-mj-test-20260824",
3:   "requested_browser": "chrome",
4:   "source_prompt_bundle": "../weapon-quick-two-prompt-preview-20260824/quick-preview.json",
5:   "intended_items": [
6:     {
7:       "id": "WQP-003",
8:       "name_zh": "三阙回锋战笔"
9:     },
10:     {
11:       "id": "WQP-004",
12:       "name_zh": "负衡双脉绳镖"
13:     }
14:   ],
15:   "status": "blocked_before_submission",
16:   "submission_count": 0,
17:   "task_ids": [],
18:   "media": [],
19:   "browser_observations": {
20:     "chrome_extension_connection": "available",
21:     "midjourney_login_surface": "Create tabs visible",
22:     "existing_create_tabs": "owned_by_other_browser_sessions",
23:     "new_tab_navigation": "repeated timeout",
24:     "prompt_input_reached": false
25:   },
26:   "cleanup": {
27:     "temporary_tabs_closed": true,
28:     "user_existing_tabs_touched": false
29:   },
30:   "boundaries": {
31:     "imagine_submissions": 0,
32:     "reroll": 0,
33:     "upscale": 0,
34:     "variation": 0,
35:     "canon_write": 0
36:   }
37: }

设计系统/Projects/Taixuan/_system/run-ledger/runs/weapon-quick-two-prompt-preview-20260824/quick-preview.json · 行 1—8
SHA-256:e31b737a45f74b860f2120f447697a6e640c95a321bd8dfa00072e9d665e5bd6

1: {
2:   "batch_id": "weapon-quick-two-prompt-preview-20260824",
3:   "module_id": "weapon-treasure-design",
4:   "status": "prompt_preview_only_noncanon",
5:   "validation_status": "skipped_by_continued_scope",
6:   "submission_count": 0,
7:   "items": [
8:     {
共享验证器中的项目绑定

设计系统/Kernel/validators/category.py · 行 2497—2526
SHA-256:7a6cdbca75bd70067e9d70465429055fe7afaba2b33366f4fd4a36d3f346c08d

2497:             "offset",
2498:             "fold",
2499:             "fork",
2500:             "inset",
2501:             "flare",
2502:             "step",
2503:             "nest",
2504:             "cantilever",
2505:             "pierce",
2506:             "reverse_counterweight",
2507:         }
2508:         form_operations = form.get("form_operations")
2509:         form_operations = [
2510:             str(item).strip() for item in form_operations if str(item).strip()
2511:         ] if isinstance(form_operations, list) else []
2512:         if len(set(form_operations)) < 2 or any(
2513:             operation not in allowed_form_operations for operation in form_operations
2514:         ):
2515:             issues.append(
2516:                 _issue(
2517:                     "WEAPON_EXTRAORDINARY_FORM_UNRESOLVED",
2518:                     "修订七兵器没有把至少两项功能形态操作投影到英雄证据,普通器类轮廓会吞掉个体设计。",
2519:                     subject_ref,
2520:                     "从 DesignCore 的动作、受力或维护关系下传至少两项 offset/fold/fork/inset/flare/step/nest/cantilever/pierce/reverse_counterweight,并让它们改变轮廓、负形或截面。",
2521:                 )
2522:             )
2523: 
2524:         law_binding = payload.get("law_form_material_binding")
2525:         law_binding = law_binding if isinstance(law_binding, Mapping) else {}
2526:         required_law_fields = (

设计系统/Kernel/validators/category.py · 行 2568—2598
SHA-256:7a6cdbca75bd70067e9d70465429055fe7afaba2b33366f4fd4a36d3f346c08d

2568:         ]
2569:         lineage_invalid = (
2570:             law_component not in component_ids
2571:             or not law_material_id.startswith("ds:taixuan:material:")
2572:             or not isinstance(law_packet, Mapping)
2573:             or law_packet.get("component_ref") != law_component
2574:             or law_packet.get("material_id") != law_material_id
2575:             or law_packet.get("part") != law_binding.get("part")
2576:             or law_packet.get("form_factor") != law_binding.get("form_factor")
2577:             or law_packet.get("source_query_id") != law_binding.get("source_query_id")
2578:             or law_packet.get("projection_priority") not in {"hero_primary", "hero_secondary"}
2579:             or not expected_source_refs.issubset(set(source_refs))
2580:         )
2581:         if missing_law_fields or lineage_invalid or prompt_drift:
2582:             issues.append(
2583:                 _issue(
2584:                     "WEAPON_LAW_FORM_MATERIAL_BINDING_INVALID",
2585:                     "修订七兵器没有把一种有来源的材料法则绑定为可见器形后果,或其部件、材质包与提示词发生漂移。",
2586:                     subject_ref,
2587:                     "从同一 MaterialSelectionBundle 与 MaterialRenderPacket 下传稳定 material_id、part、form_factor、source_query_id;引用 spirit_law、prompt_tokens_en、visual_evidence.response 与 scale_read,并把宿主几何、材料相态、轮廓后果和杀伐后果写入同一句 MJ 画面语言。",
2588:                 )
2589:             )
2590:         if str(law_binding.get("readability_scale", "")) not in {"regional", "silhouette"}:
2591:             issues.append(
2592:                 _issue(
2593:                     "WEAPON_LAW_MATERIAL_SALIENCE_WEAK",
2594:                     "主法则材料只在微观纹理或局部点光尺度成立,不能改变英雄图中的修仙器物身份。",
2595:                     subject_ref,
2596:                     "重选能在 regional 或 silhouette 尺度改变截面、负形、轮廓、相界或部件关系的材料法则;微纹和亮点只作支持证据。",
2597:                 )
2598:             )