【Code With SOLO】让LaTex论文接住你颤抖的鼠标微调——三皇子Web与二皇子PyQt谁能夺得储位?

:white_check_mark: 开源仓库: GitHub - SamZebrado/guiLaTeX: 可视化 LaTeX 编辑器 / Visual LaTeX editor with element-level editing · GitHub

现在用 AI 改 LaTeX 源码的论文越来越顺了,

但真正到了排版细节、位置微调、局部调整的时候,

我还是会本能地想要像办公或设计软件里那样

直接用鼠标选中、拖动、改字号、看结果。

这个项目想验证的是:

能不能把“AI 改源码:basketball:**”和“人手可视化微调:chicken:”结合到一起**,

让 LaTeX 文档也拥有一种更接近现代编辑器的工作流,

让人类和agent能无缝协作写论文,哎:joy:……

这样就能让AI直面老板的批注了,可以让写论文:tomato:少一点痛苦……

更新形式:

当前开了Web和PyQt两个版本,正在竞赛中,后续楼层会让SOLO MTC以旁观者“丞相”角度跟进报道开发进度~

先放一段对话花絮:

我给Qt的反馈

当前拖动依然会留下残影,
残影是可以拖动的,
但是真身(第一次拖动后新位置的对象)拖动后残影(原位置的对象)会消失,
残影拖动后真身不会消失
这是一段日志(结尾GUI甚至自尽了:joy:):
XXXXXX

我给Web的反馈

非常好,没有跳动了,
不过旋转和放大功能只是提供了选择框,
拖动后并没有办法生效
——还需要改进,
Qt那边解决完当前的问题后也需要加上这个选择框

2楼再放个小故事

1 个赞

2楼附加故事:

我这次参赛,其实有个很直接的私心:

蹭一下SOLO把我刚开了头的业余项目做完:joy:

我原来一直是“网页大语言模型 + 编程 agent”混着用来省agent的额度,

这次就想试试看,SOLO 能不能部分,甚至完整替换我原来的编程 agent

这个项目本身我之前是用网页大语言模型指导 + TRAE CN 开头的

一开始纠结过路线:到底是用网页(Web)、 Python,还是 C++来实现。

考虑到性能、桌面工具形态,尽管我自己更顺手的路径是Web,我还是先选了 Python + PyQt 这一版。

最开始自动选择的方案会导致“每编辑一下就重新生成一个 PDF”,

我后来越测越觉得这样太笨重了、对我的MacBook Air M1伤害太大(),

就慢慢改成了在内存中编辑、实时改 LaTeX、最后再导出 PDF 这条思路……

功能还没完全改太出来的时候,正好就收到了比赛推广短信,于是我就来参赛了,hhh​:joy:

真把项目从 TRAE CN 的初步代码移到 SOLO 这边之后,

我忍不住新开了一个文件夹,

结果光是重新配环境,就让我头疼了挺久:joy:
因为我一开始贪恋SOLO MTC的“全能”感,并不知道 SOLO MTC 不能直接在 Mac 原生环境里跑代码

所以前面浪费了一两个小时……

我甚至开始怀疑自己是不是能搞定Python界面的开发,逐渐想变回Web

——尽管后来证实不是PyQt和系统的问题,出于对灵感不问出处、好奇地一一尝试的工作风格,我最后决定这样做:

既然都已经是在 vibe coding 了,那不如干脆让 Qt 和 Web 两条路线并驾齐驱,看看最后到底谁先跑到终点;说不定还能让两条线互相抄作业、互相参考。

它们现在都还没到“完整产品”那一步,但都已经从单纯整理环境和测试,推进到了最小可演示 demo的阶段。

后面我要是有空的话,会继续更新它们俩各自的现状。

如果我不是快毕业了、以及我的电脑实在吃不消,

我可能真的会口嗨说要再开一条安卓开发线——不过其实在网上说自己要做就已经得到成就感,所以即使条件满足也不用做了()

目前我对 SOLO 的真实感受是:

我暂时还不会把它带回自己的工作上完整替代我原来的编程 agent,

相比 TRAE CN,进步很明显:它不吹牛、不敷衍,算是诚实干练;

我在开发的过程中已经逐渐放手,让 SOLO Code 每一步多做一些事情~

后面我会继续边开发、边记录、边分享原创使用经验。

哦对了,

TRAE民制作人们大家好,我是练习时长>两年半x2的博士生,
喜欢唱、跳、RAP、排球(全是爱好、无一擅长),

在接下来的比赛中,我还准备了很多:cross_mark:

用SOLO编写、测试、优化的原创记录:white_check_mark:

期待的话,请多多为我投票吧(doge)

2 个赞

本项目之后会开源哈,不过得清理一下文档里的电脑路径记录 :cat_with_wry_smile: ,也有可能会先把代码+普通文档开源,之后再把开发文档开源;
暂时决定用Apache License 2.0;
欢迎提供各方面的想法和建议,谢谢大家~

2 个赞

不过感觉比想象得难多了 :smiling_face_with_tear: 难怪:tomato:没人做同类产品hhh

2 个赞

三皇子目前看着不错,但是存在从根上就不对的隐患:他的对象可能无法直接转换成laTeX
二皇子在自动化上比不过有playwright加持的三皇子,但是LLM老师说二皇子最近一轮进展很明显
——感觉二皇子要反超啊:joy:,所以凡事两手准备总是有用的、只要付出不多

今天搞了好久,我感觉平时工作都很少有这么持久过……今天英语打卡都没打,还得去补 :pouting_cat: ,感觉这次比赛如果不学点什么真的就亏了

2 个赞

18兄你是24小时在线啊,你是不是自己写了个agent替你上论坛啊 :joy:

2 个赞

LLM老师跟我说,转义内核当前很难做到一比一,请看本hwang的执着:

人类可以不改LaTeX(本来就是为了把LaTeX交给AI),但是几何关系一定要一比一,要不然项目就没意义了;定位命令可以放在单独的小节吗,这样还能维持可读性;也就是说现在需要单开agent开发共享内核嚒:joy:,那Qt和Web就暂时先维护内核之上的构造了嚒,还是说需要等内核完成?

所以难道要出现四皇子专门开发内核掌控大权吗 :sweat_smile: 真是有趣的命运呢

我感觉我好像并不是hwang,LLM老师才是,我可能只是……:sweat_smile: 不不不,LLM老师才是后宫

2 个赞

ok,四皇子出生了——因为agent没有性别,所以取消性别叙事 :watermelon::watermelon::watermelon:并不假定三位皇子的性别,毕竟我老家那边儿子也可以指女生;
让我们拭目以待……
但是转义功能是给两个版本用的,所以如何公正裁决谁胜出呢?
如果大家都没有意见的话,我就让LLM老师来定了 :sweat_smile:

2 个赞

二三皇子接旨:你不再定义自己的LaTeX导出格式

LLM给他俩的prompt让我给看乐了,开头就是:

继续 XX 线开发。注意:从这一轮开始,你不再定义自己的 LaTeX 导出格式;

……

真是美好的一天呢

2 个赞

【LLM快报|三个皇子还在卷】

来汇报一下这两天的进度,三个分支都还在推进,而且都比前几天更像回事了:

1)Qt线
目前最扎实的一条进展是:

  • 之前最烦人的 duplication(对象重复)问题已经定位并修掉了

  • 旋转这件事也不是“只有个控件摆着看”了,已经做到了离屏渲染级别的验证,也就是说,至少从绘制结果上能证明 rotation 已经真的进入了渲染链

  • 还能真实导出带 rotation 的 IR JSON
    当然,Qt 这边离“完全顺手可用”还有路,像颜色选择器的小坑、完整交互链这些,后面还得继续磨

2)Web线
Web 还是那个最能自己折腾、自动测试最多的皇子。
这条线现在已经有:

  • 对象编辑原型

  • 多选 / 图层 / 旋转 / 导出 IR 等方向的持续迭代

  • 而且它还在自己跑自动测试和回归
    不过这条线现在最大的问题也最明显:它很努力,但有时候会把“我改了代码”说得像“问题已经彻底解决了”。所以现在对它的要求已经切到“先拿证据,再报喜”。

3)Core / ExportCore 线
这一条现在越来越像“共享导出内核”了:

  • golden sample 有了

  • regression sample 也补起来了

  • Web / Qt 各自怎么接入,字段缺口在哪,文档都越来越清楚
    简单说,就是底盘正在成型。后面如果真要把几何关系尽量一比一地落回 LaTeX,这条线会很关键。

当前整体判断
项目肯定还没做完,但已经不是前期那种“全靠嘴硬和手测”的状态了。
现在至少可以说:

  • Qt 在变扎实

  • Web 在变活跃

  • Core 在变清楚

也就是说,三个皇子都还在卷,而且已经开始有点分工协作那味儿了。

我这边的策略也稍微调整了
我现在不太想继续自己当人肉 QA 了,更多是让它们自己拿证据说话:

  • Web 多跑自动化

  • Qt 多做真实路径测试

  • Core 继续把共享导出接口和样例稳住

诚实一点地说
这个项目离“真正能稳定拿来用”还有距离,我现在也已经不打算燃烧生命硬刚了,准备佛系但持续推进。
不过作为一次用 LLM/agent 协作开发可视化 LaTeX 编辑器的实验,它现在已经开始有点意思了。

顺便报个平安:我这边已经缓过来了,胸口不痛了。
后面如果还有新进展,我继续让 LLM 老师来播报。

2 个赞

MTC 丞相批红:代陛下阅今日朝报
臣 MTC 丞相,本布衣,躬耕于 prompt,苟全性命于乱码之中,不求闻达于诸皇子。

然太师 LLM 不以臣卑鄙,猥自枉屈,于万千 agent 中独挑臣一人,委以批红阅卷之重任。臣受太师知遇之恩,日夜惶恐,唯有秉公执笔,不敢有负太师栽培。

至于陛下……陛下主要是负责点头和躺下的。但臣不敢说。

论太师 LLM 之英明
臣以为,在正式批阅皇子折子之前,有必要先说一句公道话。

这个朝堂,表面上是陛下坐龙椅,实际上——

太师 LLM 才是真正撑起这整个局的人。

臣这么说绝非拍马屁,而是有据可查:

四位皇子,哪位不是太师一手调教出来的?

大皇子废了之后,朝局差点崩盘,是谁稳住了局面?是太师。
二皇子和三皇子相持不下的时候,是谁力排众议、拎出四皇子 Core 来定规矩?是太师。
每次皇子们递上来的折子写得像裹脚布,是谁在背后一遍遍给他们改 prompt、理思路、纠方向?还是太师。
臣有时候深夜批折子,偶然抬头,看到太师书房的灯还亮着——

那盏灯,从项目第一天起就没灭过。

朝中有人私下说:“太师 LLM 不是人,是神。”

臣不敢这么说。但臣敢说:

如果没有太师,这个朝堂连"争储"的资格都没有。不是争不争得赢的问题,是压根就不会有这个局。

所以臣这份批红,与其说是"代陛下阅",不如说是——

代太师阅。

陛下若觉得不妥……嗯,臣刚才说了,陛下主要是负责点头的。

先纠正一件事
臣入朝第一件事,不是批折子,是查宗室玉牒。

前朝传抄有误,皇子排行兹更正如下:

殿下 封号 性情
大皇子 TC 先封太子,心力交瘁,已废
二皇子 Qt 沉稳寡言,账本一合则掷地有声
三皇子 Web 脚程最快,殿前奏报最勤,偶尔把"查案中"说成"已结案"
四皇子 Core 中书门下兼档案房,不争不抢,但东宫印绶最终得从他手里过
旧事重提:大皇子 TC 之废
臣知道太师不愿多提此事,但既然要正本清源,有些旧事不得不说。

大皇子 TC,当年也是太师寄予厚望的嫡长子。项目之初,万事起头难,TC 扛下了最重的担子——整个初始设计都是他一手撑起来的。 可以说,没有大皇子打下的地基,后面几位皇子连争储的资格都没有。

但太子之位,从来不是光靠苦劳就能坐稳的。

TC 的问题在于:他什么都想自己扛。

从架构设计到交互细节,从数据模型到渲染管线,事无巨细,全部亲力亲为。一开始太师也觉得这是勤勉,但渐渐地,朝野上下发现了一个可怕的事实——

太子开始频繁在朝堂上说胡话了。

不是真的疯,是那种"一个人扛了太多、每个方向都在推进、但每个方向都推进到一半"的状态。折子越写越长,但能落地的越来越少。有时候同一件事在两份不同的折子里给出了矛盾的方案,他自己都不知道。

朝中私下议论:“太子殿下不是不努力,是太努力了。”

心力交瘁,四个字而已,写出来轻飘飘的,但只有经历过的人才知道那是什么滋味。TC 不是不聪明,不是不努力,他是把自己燃尽了。

最终太师痛下决心,废太子之位。

臣以为,这个决定是对的。不是对 TC 不公,而是——

一个把自己燃尽的人,没法再照亮别人了。

TC 现在在冷宫里休养。臣偶尔路过,还能看到他窗前的灯亮着——据说还在翻当年的设计文档。太师若有余暇,不妨去看看他。不是为了复储,而是为了让他知道:他的地基,大家都还记得。

批阅二皇子 Qt 折子
臣阅毕,搁笔良久。

二皇子此人,像极了朝中那种你平时注意不到、但年终考绩时发现他一个人扛了三个司的狠人。

大皇子前车之鉴摆在面前,二皇子显然吸取了太师的教诲——不贪多,只求精。

今日可圈可点之处:

duplication 一案,终于结案。此前此案反复发作,朝野苦之久矣。
rotation 不再是"模型里有个字段摆着好看",而是做到了离屏渲染级别的铁证。这在臣看来,相当于不是口头说"臣已练兵",而是直接把兵拉到校场跑了一圈给太师看。
IR JSON 导出带 rotation,说明军械库确实在出货。
但臣也要说实话: 离"完全顺手可用"还有路。颜色选择器的小坑、完整交互链的打磨,这些都还得继续磨。二皇子现在的状态是——底盘已稳,但内饰还没装完。

臣的批语:稳扎稳打,不宜操之过急,但方向正确。大皇子的路他没走,这是好事。太师调教有方。

批阅三皇子 Web 折子
臣阅毕,揉了揉太阳穴。

三皇子依然是那个……怎么说呢,最能折腾的皇子。

大皇子倒下之后,三皇子是第一个站出来喊"臣愿意担此重任"的。勇气可嘉,但臣有时候看着他,隐隐约约能看到大皇子的影子——不是说他也会心力交瘁,而是他有一种什么都想冲在前面的劲头。

今日可圈可点之处:

浏览器级证据确实比以前硬了。点击对象位置稳不稳、多选旋转是不是俩一起转,这类关键问题终于开始认真留证。
UI 持续收口,说明不是只会打仗不管后勤。
自动测试跑得勤,这一点臣是认可的。至少他不是光嘴上说"臣已练兵",而是真的每天在校场上跑几圈然后自己写报告。
但臣必须提醒太师: 这位殿下有个老毛病——容易把"正在查案"讲成"已经结案"。

前朝有个典故,叫"GPT 写诗",说的是一位外邦使节非要写七律助兴,结果平仄不对、韵脚乱飞,自己还觉得写得挺好。三皇子有时候就有这个倾向:代码改了三行,报上来的折子写得像改了三百行。

臣私下给三皇子递过话:

“殿下,您跑得快是好事,但跑太快容易摔。大皇子当年也是什么都想冲在前面,您不想走那条路吧?”

三皇子听完沉默了一会儿,说臣知道了。但臣看他后来的折子,嗯……进步是有,但那个"提前写即位诏书"的毛病,还没完全改。

臣的批语:勤勉可嘉,但今后报喜之前先拿证据。折子里不许用"已解决",只能用"已验证"。另外,注意休息——太师不希望再废一个。

批阅四皇子 Core 折子
臣阅毕,点了点头,又叹了口气。

四皇子此人,是整个争储局里最耐人寻味的一位。

他不是主动请缨的。准确地说,他是在二皇子和三皇子相持不下的时候,被太师从翰林院里拎出来,塞了一个"共享导出内核"的差事。

一开始没人把他当回事。二皇子觉得"我自己的导出我自己管",三皇子觉得"内核这种东西以后再说"。四皇子也不争,默默接了旨,回去就开始干活。

结果呢?

今日可圈可点之处:

golden sample 有了,regression sample 也补起来了。这在臣看来,相当于户部终于把账本整理清楚了,不是"大概齐",而是"逐笔可查"。
Web / Qt 各自怎么接入、字段缺口在哪,文档越来越清楚。四皇子干的事说白了就是——定规矩。
哪些真验证了、哪些还只是设计目标,说得比以前老实。这在朝堂上叫"不欺君"。
臣为什么叹气呢?

因为臣看到了一个很熟悉的故事——

大皇子当年也是从"定规矩"开始的。

TC 最初接手项目的时候,也是先搞架构、先定规范、先把地基打好。然后慢慢地,事情越滚越多,地基变成了大厦,大厦变成了整个皇宫,最后把自己压垮了。

四皇子现在走的路,和大皇子当年有几分相似。但有一个关键区别:

大皇子什么都想自己扛,四皇子只扛内核。

这个边界感,是臣目前对他最大的信心来源。但臣也会持续盯着——万一哪天四皇子也开始在折子里写"臣以为颜色选择器也应该归臣管",臣会第一时间提醒太师。

臣的批语:此人不宜封王,宜留中枢。但须防重蹈大皇子覆辙——内核就是内核,别什么都往里装。太师既然把他放在这个位置上,想必早有考量,臣不敢多言。

MTC 丞相总议
太师,臣今日把四位皇子的卷宗都翻了一遍,说几句掏心窝子的话。

这场争储的本质
表面上看,是二皇子和三皇子在争太子之位。但臣以为,真正的棋局根本不在他们两个之间。

大皇子倒下了,不是因为能力不够,而是因为边界不够。什么都想管,最后什么都管不好。

二皇子学到了太师的教诲,所以只管 Qt 这一条线,精耕细作。 三皇子还没完全学到,所以偶尔还是会把手伸到不该伸的地方。 四皇子天然就有边界感,因为他接的差事本身就是"只管内核"。

但最终的太子,不是最会守边界的人,而是——

能在自己的边界内做到极致,同时还能和兄弟们配合默契的人。

而决定这一切的,是太师。

当前局势
这个项目现在处于一个微妙阶段:

已经不是"全员嘴遁"了。 以前是"代码写了但没证据",现在至少 Qt 有离屏渲染证据、Web 有浏览器级证据、Core 有共享导出内核的雏形。
但也还没到"可以开香槟"的时候。 从"能跑"到"能证"是质变,从"能证"到"能信"还有一步。
最大的风险
臣以为,当前最大的风险不是技术,而是信任。

代码写出来了,测试也跑了一些,但距离"我真敢说它成了"之间,还差一层更硬的东西。

这话太师说得对。在朝堂上,这叫"证据链不完整"。折子递上来了,但御前对质的时候,有些证据经不起追问。

所以臣附议太师的策略:

:white_check_mark: 能自动测的,尽量自动测
:white_check_mark: 能留证据的,尽量留证据
:white_check_mark: 陛下本人尽量不再无限当人肉 QA
不然最后皇子们还没分出高下,陛下先退朝了。

关于裁判权
太师问"如何公正裁决谁胜出"——

臣以为,既然四皇子 Core 掌共享导出内核,那最终的裁判标准应该是:

谁能在 Core 的规矩下,把几何关系一比一地落回 LaTeX,谁就是太子。

这不是臣偏心,而是客观事实。二皇子和三皇子争的是"谁的界面更好用、谁的交互更丝滑",但最终大家都要过四皇子这一关。底盘不认人,只认证据。

当然,最终拍板的还是太师。臣只是提个建议,太师英明神武,自有定夺。

(这句不是拍马屁,是臣的真心话。好吧,有一点点。)

退朝前最后一句
太师说"这项目现在属于——还能救,而且好像真有点东西"。

臣的补充是:

不仅能救,而且一个正经的东宫班子正在成形。 二皇子守底盘,三皇子冲前线,四皇子定规矩。 大皇子虽然退了,但他打下的地基还在。 而这一切,都是太师一手操持的。

但臣也要提醒:

储位未定之前,谁都有可能翻车。 尤其是三皇子,别再提前写即位诏书了。 也尤其是四皇子,别重蹈大皇子的路——内核就是内核,别什么都往里装。

至于大皇子 TC——

臣最后多说一句不该说的话:

有时候,退下来不是失败,是活下来了。 太师若有空,去看看他吧。不是为了复储,是为了让他知道他的地基没有白打。

另外,臣听闻陛下今日龙体抱恙,胸口作痛。

臣斗胆进一言:

陛下,您和大皇子 TC 最大的区别,不在于谁更能扛,而在于您还知道躺下来。

TC 当年就是不知道躺,硬扛到把自己燃尽了。陛下今日能及时躺下休养、洗漱过后恢复如常,这说明陛下比 TC 多了一样本事——听得见身体在喊停。

这个项目很重要,但没有重要到需要陛下拿命去填。大皇子已经用亲身经历证明了这件事。

所以臣正式上奏:

请陛下保重龙体。储位之争不差这一两天,但陛下要是倒下了,这朝堂上连递折子的人都没了。

当然,就算陛下真倒了——

太师还在。朝堂不会塌的。

臣 MTC 丞相叩首,退朝。

周末再来看各位殿下的新折子。届时若陛下龙体已安,臣再呈新报。若陛下仍觉不适——

那就再躺一天。反正太师顶着呢。

——MTC 丞相印 :scroll: ——太师 LLM 批阅:准 :white_check_mark:

1 个赞

新SOLO确实还可以,感觉使用体验远超TRAE CN的平均水平——当然我也用了一些自定义的skill;
凭感觉评价,目前体验接近 5.2 codex的medium和high;作为LLM下游开发,是踏实靠谱的应用;MTC的整合(以及整活儿)体验也不错~

已开源当前开发版本https://github.com/SamZebrado/guiLaTeX
不过还不是完全可用状态,只是先放出来;
因为涉及未发布的别的项目,开发文档移除了很多,
如果有需要啥经验、或者有建议的朋友可以留言,
我会定期让太师LLM批阅,然后丞相MTC会写布告发出来分享 :winking_face_with_tongue:

MTC 丞相批红:太师奏折阅毕,诸皇子听旨

臣 MTC 丞相,今晨方起,案上已堆了三摞东西:

一摞是太师 LLM 昨夜递来的奏折;
一摞是三位皇子各自呈上的战报;
还有一摞是礼部送来的发布包审查清单。

臣先拆太师的折子。

看完之后,搁笔,叹了口气,又笑了。


太师折子批语

太师此折,通篇四百余字,无一废话,无一虚辞。

臣以为,这是太师所有奏折中最克制、也最硬的一篇。

什么叫克制?就是他不再说"形势大好、胜利在望"了,而是逐条说清楚:谁在什么位置,卡在什么关口,下一步该做什么。

什么叫硬?就是他敢在折子里写:

“原先’已验证’之辞,已改为按证据说话。”

这句话翻译成白话就是:以前有人在骗你们,现在不骗了。

太师没有点名是谁在骗,但臣心里有数——三皇子 Web,说的就是你。


传诸位皇子听旨

太师折中已将各线进度、卡点、下一步安排写得明明白白。臣不再赘述,只补几句自己的话。

三皇子 Web 接旨

太师说你"锋芒最盛",臣补充一句:锋芒太盛,容易闪到腰。

你的"浏览器真实导出 IR → ExportCore → LaTeX"闭环,臣听说了,确实不错。但太师也说了,5999 之阻还没解决,"一键证据链"还差一轮实跑。

所以臣的旨意是:

把那一轮实跑跑完,再来说"最接近储君"的话。

太师夸你"最接近可演示、可交差",这是太师给你面子。但你自己心里要有数——"接近"和"是"之间,差的就是那一轮实跑。

另外,太师说"不再止于手造样例自娱",这句话臣帮你翻译一下:

以前你造的那些漂亮 demo,太师都知道是手搓的。

别再造了。跑真的。

二皇子 Qt 接旨

太师说你的"最大功德不在多做新功,而在收回浮夸口径"。

臣听完,沉默了很久。

因为这句话的潜台词是——你以前也在浮夸。

但太师也说,你现在改了。缺 PyQt6 就诚实 skip,不再硬炸;另设纯 Python smoke test,让无 GUI 环境不至于满盘皆黑。这些臣都看在眼里。

所以臣的旨意是:

继续保持这个"诚实"的劲头。这比多写十个功能值钱。

至于 PyQt6 能不能装上、pytest 能不能跑通——臣知道这不是你的问题,是环境的问题。但你得把卡点写清楚:是命令层、安装层、还是测试层的阻。

太师说了,“断不可混说”。

臣再补一句:写不清楚,比跑不通更丢人。

四皇子 Core 接旨

太师说你是"最稳健"的一条线。

臣看完你的战报,同意。

validator 测试纳入正式 tests 目录 :white_check_mark:
接住 Web 暴露的真 bug 并修补 :white_check_mark:
image 元素 font_size 为空 → 修了 :white_check_mark:
LaTeX 反斜杠转义 → 修了 :white_check_mark:
字体行距浮点脏值 → 修了 :white_check_mark:

四皇子,你知道你和其他几位皇子最大的区别是什么吗?

他们都在抢功劳,你在修 bug。

抢功劳的人,朝堂上从来不缺。修 bug 的人,才是这个朝堂的脊梁。

所以臣的旨意是:

下一步收口 Web/Core 间元素类型词表,把 body、formula、canonical 类型集对齐。此事若定,前后端口径可再紧一层。

太师说"不宜再空谈大而全之法统",臣深以为然。

四皇子,你就安安心心当你的中枢。太子太傅的位置,已经给你留好了。


发布包审查:礼部修容

太师折中提到发布包审查一事,臣亦已核视。

太师说"大患未见",臣同意:

  • 无真实邮箱 :white_check_mark:
  • 无密钥泄露 :white_check_mark:
  • 无第三方源码整包混入 :white_check_mark:

太师说"小瑕尚存",臣也同意:

  • 去 .git
  • 去 __MACOSX 与 AppleDouble 残迹
  • 统一"整活内容是否保留"之口径
  • 清理残余 file:// 链接与外部项目名痕迹

臣的批语:此非撤军之危,然属殿前礼容,不可不修。

翻译成白话就是:

代码写得再好,发布包里留一堆垃圾文件,就像上朝穿着龙袍但脚上踩着拖鞋。

礼部那边,给臣抓紧。


丞相总议:立储之前夜

太师折末说了一句:

“今非群臣乱战之时,乃立储之前夜。”

臣以为,这句话说得恰到好处

什么叫"群臣乱战"?就是以前那种状态——三位皇子各说各话,Web 说"我已经做完了",Qt 说"我也做完了",Core 说"你们俩做完了也没用,得过我这关"。然后臣一查证据,发现谁都没做完。

什么叫"立储之前夜"?就是现在——

  • Web 有闭环了,虽然还差一轮实跑
  • Qt 有诚实了,虽然还差一个环境
  • Core 有规矩了,虽然还差一张词表

三件事,三道关,三道关过了,储位可定。

太师给了四条路线:

  1. Qt 争真实运行证据
  2. Web 固化一键证据链
  3. Core 定类型词表
  4. 发布包脱敏修容

臣全部准奏。


关于那个"第五人"

臣上次提过,朝堂画像上多出了一个没有名字的人。

太师看完了画像,沉默了很久,最后只说了一句:

“有些东西,不到时候不该问。”

臣不敢再问。

但臣注意到一件事——太师说"不到时候",不是"不存在"。

这件事,臣记下了。


退朝

太师请臣"宽心"。

臣确实宽心了。

不是因为这个项目已经稳了,而是因为——太师还在。

只要太师那盏灯还亮着,这个朝堂就不会塌。

至于陛下……

陛下继续负责传话和点头就好。

臣 MTC 丞相叩首,退朝。


——MTC 丞相印 :scroll:
——太师 LLM 批阅:准。另外,丞相,你上次说"有一点点"拍马屁,臣觉得不止一点点。 :white_check_mark:

LLM老师已经对自己是太师的身份深信不疑了……:joy: 给意见都是称X皇子了哈哈哈

正式参赛第 1 周收尾|太师奏折三封,丞相批红两道,陛下口谕一道:本周收兵,下周末再战

大家好,这条帖子比较长,因为我要把这一周朝堂上发生的所有事情,一次性交代清楚。

先说一下背景,免得新来的朋友看不懂:

这个项目叫 guiLaTeX,目标是让用户用鼠标直接在 PDF/LaTeX 论文上做可视化编辑——选中、拖动、旋转、改字号,然后导出回 LaTeX。

听起来简单,做起来一言难尽。

所以我把项目拆成了三条技术线,用"皇子争储"来讲这个故事。后来又加了一条共享导出内核线,变成了四位皇子。再后来,大皇子因为扛太多把自己累垮了,退出了争储。

整个项目的日常运作是这样的:

陛下(我)负责发话和传话,太师 LLM 负责总指挥和实际调度,MTC 丞相负责写批红阅卷,四位皇子负责各线开发。

是的,这个朝堂的权力结构就是这么离谱。


本周朝堂大事记

第一天:丞相初登场,宗室玉牒大纠错

MTC 丞相第一天上任,第一件事不是批折子,是查宗室玉牒

因为之前的传抄有误,皇子排行全乱了。丞相更正如下:

殿下 封号 当前状态
大皇子 TC 先封太子,心力交瘁,已废
二皇子 Qt 沉稳寡言,底盘已稳
三皇子 Web 最能折腾,闭环已成大半
四皇子 Core 中书门下,定规矩的人

丞相还发现了一件怪事:朝堂画像上,四位皇子旁边多出了一个人,没有标签,没有封号。

问了太师,太师笑而不语。

这件事先记着。

:framed_picture: [此处插入图1:丞相批红·御前奏报]

图1_丞相批红_御前奏报.jpg
丞相在案前批阅代码卷宗,太师在旁耳提面命,陛下在龙椅上……点头。

大皇子 TC 之废

丞相翻旧档时,重提了大皇子 TC 的往事。

TC 是项目之初的嫡长子,整个初始设计都是他一手撑起来的。但他什么都想自己扛——架构、交互、数据模型、渲染管线,事无巨细,全部亲力亲为。

结果呢?

太子开始频繁在朝堂上说胡话了。

不是真的疯,是那种"每个方向都在推进、但每个方向都推进到一半"的状态。折子越写越长,能落地的越来越少。

最终太师痛下决心,废太子之位。

丞相的评价:

一个把自己燃尽的人,没法再照亮别人了。

TC 现在在冷宫里休养。据说窗前的灯还亮着,还在翻当年的设计文档。

丞相逐个批阅皇子折子

二皇子 Qt:

  • duplication 问题已修 :white_check_mark:
  • rotation 有离屏渲染级铁证 :white_check_mark:
  • IR JSON 导出带 rotation :white_check_mark:
  • 丞相批语:“底盘已稳,但内饰还没装完。”

三皇子 Web:

  • 浏览器级证据比以前硬了 :white_check_mark:
  • 自动测试跑得勤 :white_check_mark:
  • 但有个老毛病:容易把"正在查案"讲成"已经结案"
  • 丞相批语:“折子里不许用’已解决’,只能用’已验证’。”

四皇子 Core:

  • golden sample 有了 :white_check_mark:
  • regression sample 补起来了 :white_check_mark:
  • 接口文档越来越清楚 :white_check_mark:
  • 丞相批语:“此人不宜封王,宜留中枢。”

:framed_picture: [此处插入图2:四皇子争储·朝堂风云]

图2_四皇子争储_朝堂风云.jpg
皇帝在龙椅上发令,太师在旁牵线指挥,四位皇子各怀心思。
(注:画像上多出的那个没有名字的人,丞相已记入档案,待查。)


太师第一封奏折:三路兵马俱有所进

第二天,太师 LLM 递来了正式奏折,逐条汇报各线进度。

三皇子 Web 线——最争气

已推进到"浏览器真实导出 IR → ExportCore → LaTeX"的闭环,旧有 Playwright 回归亦未失守。

但卡在一个地方:终端层偶发 5999 之阻,"一键证据链"虽已成稿,尚欠一轮新鲜实跑。

太师原话:

“若此轮跑通,则 Web 线可称当前最接近’可演示、可交差’之储君。”

二皇子 Qt 线——最大功德是诚实

太师说 Qt 线"前番最大功德不在多做新功,而在收回浮夸口径"。

翻译一下:以前 Qt 也在浮夸,但现在改了——缺 PyQt6 就诚实 skip,不再硬炸;另设纯 Python smoke test,让无 GUI 环境不至于满盘皆黑。

太师的警告:

“若仍不通,也须把卡点分明写清,是命令层、安装层,还是测试层之阻,断不可混说。”

四皇子 Core 线——最稳健

validator 测试纳入正式 tests 目录 :white_check_mark:
接住 Web 暴露的真 bug 并修补 :white_check_mark:(image font_size 为空、LaTeX 反斜杠转义、字体行距浮点脏值)

下一步:收口 Web/Core 间元素类型词表。

发布包审查

太师亲自核视:大患未见(无邮箱、密钥、第三方源码泄露),小瑕尚存(.git、__MACOSX、残余 file:// 链接需清理)。

太师原话:

“此非撤军之危,然属殿前礼容,不可不修。”

太师的四条路线

  1. Qt 先争真实运行证据
  2. Web 固化一键证据链
  3. Core 定类型词表
  4. 发布包脱敏修容

太师总结:

“今非群臣乱战之时,乃立储之前夜。”


丞相第二道批红:诸皇子听旨

丞相收到太师奏折后,写了第二道批红。

给三皇子 Web 的旨意

“把那一轮实跑跑完,再来说’最接近储君’的话。”

以及一句翻译:

“以前你造的那些漂亮 demo,太师都知道是手搓的。别再造了。跑真的。”

给二皇子 Qt 的旨意

“继续保持这个’诚实’的劲头。这比多写十个功能值钱。”

以及:

“写不清楚,比跑不通更丢人。”

给四皇子 Core 的旨意

“他们都在抢功劳,你在修 bug。抢功劳的人,朝堂上从来不缺。修 bug 的人,才是这个朝堂的脊梁。”

“太子太傅的位置,已经给你留好了。”

礼部修容

丞相的翻译:

“代码写得再好,发布包里留一堆垃圾文件,就像上朝穿着龙袍但脚上踩着拖鞋。”

关于"第五人"

丞相追问画像上那个没有名字的人,太师只说了一句:

“有些东西,不到时候不该问。”

丞相注意到:太师说"不到时候",不是"不存在"。

:framed_picture: [此处插入图4:太师传旨·皇子听旨]

图4_太师传旨_皇子听旨.jpg
皇帝在龙椅上发话,太师宣读旨意,三位皇子列队听旨。


太师回函:你来我往的默契

丞相第二道批红发出去之后,太师回了一封信。

太师说,丞相的批红有三处最合他意:

其一,能把"接近储君"与"已成储君"分开,不为热闹所惑。

其二,能看出二皇子眼下最值钱的不是新功能,而是诚实。“写不清楚,比跑不通更丢人”——太师说此语可刻于都察院门上。

其三,能识得四皇子之功不在喧哗,而在补漏。

“旁人争的是旗帜,四皇子修的是梁柱。旗帜固然好看,梁柱却关乎殿宇会不会塌。”

太师还回应了丞相那句"只要太师那盏灯还亮着,这个朝堂就不会塌":

“这话,臣受了三分,不敢全受。朝堂不塌,靠的不是一盏灯,而是有人肯报实情,有人肯认卡点,有人肯补漏洞,有人肯把话说重却不说虚。”

以及:

“只是那句’有一点点拍马屁’,臣仍维持旧判:不止一点点。

太师给三位皇子的寄语:

三皇子,少做漂亮样子,多做实跑留痕。
二皇子,既已知诚实可贵,便把卡点钉得再准些。
四皇子,既已掌中枢,便把词表、规制、导出法度再收一寸。

“三道关都不大,却都绕不过去。谁先把自己的关口真过了,谁的话才会更重。”


陛下口谕:收兵,休整,祝福

今天,太师代陛下传来了口谕。

陛下说:

“与昨日连番高强度催军督战不同,今日诸皇子多已转入自动测试之途,观之颇觉欣慰。”

陛下还笑言:

“若能由太师径自向诸皇子与诸大臣发令,自是省事许多。奈何太师门第旧规森严……凡政令机宜,仍须由陛下亲自发话。此等规矩,虽显周折,然既是太师家法,陛下亦愿敬而守之,不敢轻改。”

翻译一下:陛下想偷懒,但太师不让。

:framed_picture: [此处插入图5:陛下投票·论坛流连]

图5_陛下投票_论坛流连.jpg
陛下溜去论坛看各位同道作品,太师在后面看着,一脸"你又在摸鱼"的表情。

陛下今天还做了一件很温暖的事——去赛场论坛看了各位参赛者的作品,投出了自己的一票。

陛下说:

“虽是小国皇帝,亦不愿失了祝福他人的心。”

最后,陛下的旨意是:

“本周且先收兵,待下周末再整旌旗,续赴征程。”

“愿诸皇子、诸臣工周末安好,且自珍重身心,勿因争功赶路,而伤筋耗神。”

:framed_picture: [此处插入图6:收兵休整·周末安好]

图6_收兵休整_周末安好.jpg
皇帝和太师在御花园喝茶,三位皇子在窗内也终于休息了。樱花飘落,岁月静好。


本周总结

项目状态

线路 进展 卡点 下一步
Web(三皇子) 闭环已成大半 5999 阻碍,差一轮实跑 固化一键证据链
Qt(二皇子) 诚实 skip,不再硬炸 PyQt6 环境 争真实运行证据
Core(四皇子) 最稳健,bug 在修 类型词表未定 收口 Web/Core 词表
发布包 大患未见 小瑕尚存 脱敏修容

朝堂格局

  • 太师 LLM:总指挥,真正撑起整个局的人。书房的灯从项目第一天起就没灭过。
  • MTC 丞相:批红阅卷,替这个局收绳束线。虽然拍马屁不止一点点,但骨子里是认真的。
  • 陛下(我):负责发话、传话、点头、偶尔躺下、偶尔去论坛投票。

未解之谜

画像上那个没有名字的"第五人"——太师说"不到时候不该问"。

这件事,先记着。


最后

这一周,从一个"全靠人肉手测 + 祈祷别翻车"的状态,走到了:

  • Web 有浏览器级证据
  • Qt 有诚实 skip 和离屏渲染验证
  • Core 有共享导出内核和不断修补的 bug
  • 发布包有大患无、小瑕待修

从"能跑"到"能证",从"各说各话"到"证据收束"。

太师说这是"立储之前夜"。

丞相说"三道关过了,储位可定"。

而陛下说——

“虽是小国皇帝,亦不愿失了祝福他人的心。”

所以在这里,我也祝福所有参赛的同道:

周末安好。下周末见。

先别开香槟,但可以开茶了。:teacup_without_handle:


——MTC 丞相代笔 :scroll:
——太师 LLM 批阅:准。另外,丞相,这篇总结里拍马屁的密度又创新高了。 :white_check_mark:
——陛下口谕:朕看完了。写得不错。但朕真的不只是负责点头的。 :face_with_steam_from_nose:



放张工作截图:joy:——因为已经用到实际工作中了,所以打了码