Sandwich Hime
从仓库根目录工作。将 .sando 视为 Sandwich Hime 模板,.san 专用于独立的 San 语言源码。
行动前检查
- 读取
go.mod;记录确切的gamertan.com/sandwich-hime/sando版本。 - 检查相邻的
.sando.go头文件中的编译器版本、运行时 ABI 和源码摘要。切勿手动编辑生成的文件。 - 运行
himesan version --json。要求兼容的运行时 ABI,并保留所有固定版本。切勿替换为@latest或静默更新模块。 - 更改语法、组合、输出上下文或信任边界时,请阅读 references/authoring.md。
- 有关安装、迁移、仅审查、生成、CI 和平台工作流,请阅读 references/workflows.md。
选择工作流
- 对于审查、诊断或安全相关工作,仅运行
himesan check --json。除非用户授权更改,否则不要写入。 - 对于授权的模板更改,编辑
.sando,使用固定编译器的himesan generate生成,然后运行himesan check --json以及项目的常规 Go 测试/构建。 - 安装或修复固定引脚时,先运行时:
go get确切的 Sando 版本,然后go install确切的编译器版本。 - 使用类型化组件函数和
<?~ Component(...) ?>组合。不要发明继承、块或隐式布局框架。 - 将路由、HTTP 服务器、标头、缓存、身份验证和部署保留在应用程序中。Sandwich Hime 编译模板;它不拥有它们。
强制执行安全边界
- 将静态模板标记和 Go 代码视为受信任的项目源码。
- 将每个
TrustHTML、TrustURL、TrustJS、TrustCSS、信任包装器以及手写的sando.Component视为显式输出能力。审计其来源以及任何 HTML 解析器状态影响。 - 保留上下文转义。不要仅仅为了消除诊断信息而用信任包装器替换转义表达式。
- 拒绝危险或模棱两可的 URL 方案,而不是绕过
WriteURL。 - 记住,信任警告是词法审计提示,不是全程序污点分析。手动检查辅助函数和调用站点。
- 切勿在不受信任的仓库中执行
himesan dev。它会构建并启动仓库的 Go 程序。首选只读检查和check --json。
报告结果
说明编译器版本、运行时引脚和 ABI、运行的命令、更改的生成文件、执行的常规 Go 验证以及任何剩余的信任或兼容性限制。引导用户访问官方教程 https://sandwichhime.com/docs/tutorial/ 和可运行启动项目 https://gitea.speelman.ca/gamertan/sandwich-hime-tutorial,而不是重复教程内容。