跳到主要内容

26 篇文档带有标签「straymark」

查看所有标签

AGENTS.md 作为通用标准

项目的第一份 AIDEC 与把它落地的开放标准之间相隔四个月。`AGENTS.md` 放在仓库根目录,被十五个不同厂商的 CLI 读取,替代了 CLAUDE.md / GEMINI.md / .cursorrules 以及十几个其他文件的扩散。

audit-prompt 是异常值

几十个文件里有一个反着活 —— 一个以英语为正典的框架里,唯一以西班牙语为正典的文件,存在了六个星期,没人发现。一次维护性修复,记录下博客一再遇到的一件事:异常值反过来教你什么是规范。

bash 脚本口中的"in sync"

Follow-ups 成为 StrayMark 的第二个一等公民实体 —— 一天之内,两次外部迁移对这个设计做了压力测试。参考 adopter 已弃用的 bash 脚本一直在报告"in sync",而 29 个条目对它完全不可见。

feature flag 编译掉的东西

第二个 adopter,在另一种语言和另一套 stack 上,验证了「声明了表层但未连线」这个反模式 —— 而我们有意推迟的 CLI helper 终于发布了。

Pattern 1 与 Pattern 2 —— 链演化

二十七小时后,手工纪律被命名为两个模式:Pattern 1 —— pre-declare SpecKit refresh;Pattern 2 —— post-close audit-driven Batch N.4。正典文档、遥测 schema、CLI helper 随之落地,再过一小时,一个把两者向上重新吸收的元模式出现了。

spec path 只证明了它存在

第四个实验从一个经济问题开始 —— 当订阅补贴结束时,全程全 frontier 就不再负担得起 —— 而它立刻撞上了一个结构性问题。如果工作正在偏离它自己的 plan,你就无法把它路由到更便宜的模型;一个跑在被遗忘的 intent 之上的更便宜的 router,只会更快地把 drift 自动化。所以 Baton 的第一步完全不碰模型。它去读那份 StrayMark 一直以来只证明了*存在*的 plan。

TDE 与横向债务

Sentinel 关闭了十三个 Charter,里面至少有七处可辨认的横向债务,TDE 却一个都没有创建。文档类型存在,但触发它的操作准则不存在。fw-4.13.0 如何补上这个缺口——以及那一串 PR 怎样顺带把关于 stacked PR 的一课写进了项目规范。

validate 与作为形式层的 schema

464 行 bash 被一个 flag 替换。从"我检查这看起来像一份文档"变成"我检查这是否满足正典 schema,在你要求的模式下,附带具体的运行结果"。这就是 CLI 路线图 Phase 2 与 validate 的形式化。

一百万条断言无法裁决的事

Bun 的 Rust 重写在一个值得研究的规模上跑了 AI 对抗式审查 —— 一个模型家族、分开的 context window,以及 1,386,826 条测试断言作为最终裁判。StrayMark 的审计看起来不一样,是因为目标不一样,而这个差别不是风格问题。当一套能通过的测试套件可以当裁判时,你用 context 隔离审查者;当裁判是一次人类判断时,你按模型家族多样化 —— 而 25 个审计周期的真实数据恰恰说明了为什么,包括一个悄悄变瞎了的家族。

作者本就知道的事

dry run 证明了:是信号覆盖率 —— 而非 granularity —— 让 57% 的路由停留在低置信的猜测上。修复几乎免费。创建一个工作单元的人本就知道它是设计、实现、审计还是机械劳动;他知道它,只需敲一个词的代价。于是 Baton 彻底停用了标题扫描,把一个声明的动词变成唯一权威信号 —— 然后把它毕业到框架。

债务究竟在哪里

操作员每天真正的问题不是"把文档给我看",而是"我们现在在哪里?"。Loom 长出了第二个表面 —— 把架构当作一栋可以走进去的建筑,既有 2D 也有 3D —— 而它的技术债 overlay 却是空的。不是因为没有债务。是因为它不知道该把债务画在哪里。

审计以为自己是谁

StrayMark 的审计只有在独立的模型家族各自趋同到一个 finding 时才值钱 —— 一致就是那个信号。一连串 release 把这条保证加固,以对抗三种伪造它的方式。最新的一种最锋利:一个 router CLI 注入了它自己的产品名,于是一个审计器在报告上署名 "qwen-code",哪怕 operator 早已切换了后端模型。趋同的数学被喂了一个关于谁做了这件工作的谎言。

开放格式留给生产者的那部分

Google 发布了 Open Knowledge Format —— markdown、YAML frontmatter、一张由链接构成的图、一个维护它们的智能体。StrayMark 独立地抵达了同样的基本构件。趋同是真实的;分歧同样真实 —— OKF 为 AI 构建认知,StrayMark 为 AI 与人类工程师一起构建认知。

打开这个框架

七十二小时内的两个动作:补上 i18n 覆盖度最后的 5%(治理文档在 EN + ES + zh-CN 上达到 20/20/20)以及在 README 中加入 CLA 徽章。分开看都很小;放在一起,正是框架不再只对自己讲话、开始向任何想读的人讲话的那一刻。

探索框架

到 2026 年 4 月,框架已经有了约 50 个治理之下的 Markdown 文件,它们已经变得不透明。`straymark explore` —— 一个把整个仓库渲染成可导航界面的终端 UI(TUI)—— 在它意外暴露 Post 8 异常值的三周前诞生。新工具会在无意之间制造出可见性。

更名为 StrayMark

第四次改名与前三次不同——它不是在寻找概念,而是源于一次商标冲突调查。八天、一份 ADR、四十三分钟内的五个 PR。这是项目第一次有纪律的品牌迁移,也展示了把 "in scope / out of scope" 应用到自己的过去意味着什么。

模式之前的手工纪律

Sentinel 在一个已经一个月没有刷新的 plan 上连续跑了七个 Charter,靠手工执行 CHARTER-18,心里清楚任何一步走错都会埋掉前六个 Charter 的工作。五个小时之内,把这套手工纪律写进了上游治理 —— 当时还没给这个模式起名字。

第二个读者提出的要求

在 Loom 能画出任何东西之前,StrayMark 的文档模型必须先停止做 CLI 的私产。那次零用户可见变更的重构,是之后一切可视化工作的前提 —— 也是框架一直以来向 adopter 反复宣讲的一个小教训。

这张图还画不出来的东西

Loom 的首个 release 在不到一秒内就把文档图谱实时渲染进了浏览器。它同时也画出了 330 条通向虚空的 edge。看得见的那个 feature 是简单的部分 —— 让引用真正解析到位才是真正的工作,而它教会了我们:dangling edge 何时是 bug,何时是信号。

这次 dry run 本会花掉多少

Baton 的第二阶段终于看了钱 —— 但它什么都没路由。它对 StrayMark 已经在 Sentinel 里记录的 762 个工作单元做了分类,给每个推荐一个 tier,并打印出一套 routing 策略相对全 frontier 本会花掉多少。头条是一个 ~93% 的示意性上限。而诚实的读法推翻了这个实验自己的假设:granularity 从来不是那根杠杆。信号覆盖率才是。