这是 IrisSakura 的长期个人创作网站。公开展示游戏、Mod、文章与长期项目;内部仍通过事实源、Publication Contract 和生成器保证公开信息可靠。
正式 Logo、Wordmark、产品 Lockup、核心概念 Icon 与 Social Card 模式由 config/brand.json 统一登记;新增页面必须先取得一个已登记的 Brand Mode,再由 owner generator 生成公开投影。
部分作品会沿着一条可验证的协作链形成,但四个项目并不从属于这条流水线:
Myosotis(研究)→ Iris Engineering(工程治理)→ SakuraGameFramework(能力沉淀)→《言铸之剑》(游戏验证)
站点不展示没有事实来源的技能百分比、虚构项目、模拟联系结果或私有仓库地址。
/:个人介绍、Now、代表作品、近期动态、最新文章、Mods、长期项目与关于入口;/pages/development.html:一级“项目”入口,并列介绍 Iris Engineering、SakuraGameFramework、Myosotis 与 Violet Shelf;/pages/engineering.html:Iris Engineering 子页,说明研发工作流、授权、执行与验证边界;/pages/journal.html:研究资料库Myosotis(稳定内部Journal)入口,包含策展研究、公开证据链与文章入口;/pages/tools.html:Violet Shelf项目页,只说明真实本地工具边界,不提供下载或发布声明;/pages/blog.html:一级“文章”入口,聚合正式文章、系列与标签;/pages/subscribe.html:文章订阅说明、复制订阅地址与阅读入口;/rss.xml:只收录正式文章语义地址的 RSS 2.0 订阅;/pages/framework.html:SakuraGameFramework 项目页,展示采用入口、架构、模块浏览器与生命周期成熟度;/pages/framework-quickstart.html:从 Core Only 到 Bootstrap Lite 的 15 分钟安装、事件、对象池、验证与清理教程;/pages/game.html:《言铸之剑》可玩原型案例;/pages/mods.html:Freesia Mods 跨游戏 Mod 创作系列入口;按宿主游戏组织显式登记的 Mod 作品与共享技术基础;
/pages/portfolio.html:游戏、Mod 与实验原型;7 个 Consumer Lab 案例可在 Framework 技术区域继续浏览;
/pages/brand.html:由“关于与联系”和页脚进入的品牌资料页,公开展示 IrisSakura 品牌架构、四项目资料、色板、图标与命名规则;/pages/art-music.html:旧“美术音乐”地址的noindexBrand 兼容跳转;/pages/contact.html:个人介绍、创作兴趣、Now、工作邮箱、工作 QQ 与公开主页;/pages/about.html:旧 About 地址的noindex首页兼容跳转;/404.html:GitHub Pages 自定义错误页。
/pages/now.html:当前投入、思考、阶段成果与近期动态;从首页、关于和页脚进入,不增加一级导航。- 更新当前活动只改
data/now.json。current建议 3~5 项,thinking为 0~4 项,recentlyCompleted为 0~5 项。空的可选栏目不显示;长期未更新不会阻止构建。 - 编辑动态只改
data/updates.json,按日期降序排列。同日保留编辑顺序;未来日期按 Asia/Shanghai 判断。动态不自动读取 Git,不进入 RSS。 - 首批内容采用 2026-09-20 确认的三个方向,仅记录当天启动网站整理这项动态,没有补写历史日期或完成结果。
- 首页文章只选正式发布内容,按
publishedAt降序、slug 升序取前三篇;修改旧文不改变首页新文章排序。 config/site-presentation.json控制首页区块顺序和作品分组。作品只能引用登记 ID;空分组不显示。Consumer Lab 已移至/pages/framework.html#consumer-lab,作品页旧锚点保留导引。- 真实视觉目前复用《言铸之剑》游戏截图。Iris / Violet 暂无站内产品截图,保留文字介绍;后续只添加审阅过的真实素材,不制作虚假界面。
- 新截图可放入
assets/images/showcase/,公开前检查私有地址、路径、密钥和聊天等敏感内容。 - 更新后运行
npm run check、npm run test:smoke、npm run package:site,生成的 HTML 不手工维护。提交与发布另行授权。
npm ci
npm run build
python3 -m http.server 8000打开 http://localhost:8000/。
npm run check
npm run test:smoke
npm run package:sitenpm run generate:从公共模板和 JSON 事实源生成导航、页脚、SEO、RSS、Sitemap、栏目/文章分享图与 Framework 静态回退;npm run test:json:直接扫描原始 JSON 文本,拒绝package.json、data/*.json和config/*.json的重复键与语法错误;npm run build:生成站点源文件并把 TypeScript 编译到dist/;npm test:运行数据契约、内容真实性、链接、资源和 HTML 语义检查;npm run test:smoke:用无头 Chromium 检查主要路由、响应式留白、页面 Brand Mode、文章出版、证据链与移动导航;npm run package:site:把发布所需文件复制到_site/。
- 全站 Search / Cmd/Ctrl+K 读取构建时生成的
data/site-search-index.json;原data/search-index.json继续服务 Journal 专题搜索。来源、排序与失败回退见docs/architecture/search.md。 - 文章、研究、项目与 Framework 的相关导航由
data/content-relations.json和已登记的系列、项目关系及 Evidence Chain 派生;规则见docs/architecture/content-graph.md。 - 隐私优先的分析适配器默认关闭。账户激活、公开站点标识及事件参数合同见
docs/operations/analytics.md。 - 生成器为正式页面输出与 canonical 对应的 JSON-LD;搜索引擎验证值默认未配置,后续步骤见
docs/operations/search-engine-registration.md。 - Playwright Smoke 包含主要页面可访问性扫描和性能预算检查。测试范围、人工复核边界与实验室报告分别见
docs/quality/accessibility.md和docs/quality/performance.md。 - 发布包只含显式准入的运行时 JSON;
npm run package:site会扫描_site/中的来源提交、私有路径与维护字段。
dist/ 和 _site/ 都是 CI 产物,不进入主分支。不要直接修改生成文件。
config/brand.json:名称、家族、页面 Brand Mode、正式资产、Social palette 与 Deprecated Naming 的品牌合同;config/site-presentation.json:六项主导航、四项目稳定 ID、展示名称、顺序、职责短句、动作和页脚分组;config/mod-series.json:Freesia Mods 的显式系列归属和展示角色,不复制data/projects.json的项目事实;data/site.json:站点定位、Profile、栏目头图和真实社交入口;data/projects.json:八个公开项目的状态、事实更新时间、复核时间、同步方式、职责、证据、限制与下一步;data/consumer-lab.json:七个独立 Unity 消费项目的站点策展文案与 owner-only 技术快照;该文件用于生成校验,不进入 Pages artifact;data/journal.json:私有研究仓库的站内策展快照,不含仓库地址;data/journal-source.json:由 Journal 固定提交生成的公开摘要与博客清单;content/blogs/:通过安全导入并由 publication 合同选中的 Markdown 正文镜像;config/blog-publication.json:Journal 导入自动收敛的出版投影;既有条目保留站点侧状态、语义 slug 与首次发布日期,标题、摘要、系列、标签、更新日期和正文哈希跟随固定导出;data/blog-taxonomy.json:正式文章使用的系列与标签语义路由;既有策展文案保留,新 ASCII 标签由导入器确定性补齐;data/evidence-chains.json:研究、Framework 采用映射和游戏系统之间的公开证据链与边界;data/framework.json:由 Sakura Framework 权威清单生成的白名单公开快照;data/framework-adoption.json:经人工复核的 Supported 包、稳定路线和真实项目采用映射;data/framework-previous-review.json:跨仓预审过渡期间保留的前一套采用、教程与 Framework 项目事实;生成器按权威快照 hash 选择整套内容;data/framework-quickstart.json:只登记路线 ID 与教程步骤,包名从 adoption 注册表派生,不自行绑定版本。data/iris-engineering.json:Iris Engineering 的公开快照;首次 fixed-commit import 会把当前 legacy v1 迁移为 schema v2,只公开审阅语义和sourceUpdatedAt,source SHA 留在不发布的 owner provenance。
框架同步和维护边界见 docs/maintenance/framework-sync.md。
Iris Engineering 同步、provenance 与五路径 owner scope 见 docs/maintenance/iris-engineering-sync.md。
Iris Shelf 与 UDGAP 的 source-push 项目状态、共享 importer 和三路径 owner scope 见 docs/maintenance/project-status-sync.md。
品牌职责与 Design System 所有权分别见 docs/brand/brand-architecture.md 和 docs/brand/visual-system.md。
项目状态中的 source-push 表示已有源仓推送驱动的公开投影,fixed-snapshot 表示固定提交导入,versioned-review 表示只复核已版本化产品事实,site-curated 表示站点策展。Iris Shelf 与 UDGAP 使用同一 closed-schema importer,但分别拥有源仓 profile、provenance 和 Actions scope;言铸之剑仍是 Plastic/site-curated,不能把本地工作区或未验证输出伪装成自动同步。
作品与通用栏目视觉由 data/site.json 管理;四个项目首屏由 config/site-presentation.json 与 config/brand.json 的项目题图映射共同管理,不需要逐页修改生成后的 HTML。
-
Iris Engineering、SakuraGameFramework、Myosotis 与 Violet Shelf 分别使用
assets/images/brand/site-v2/hero-*.webp,派生记录与源/输出哈希见同目录manifest.json。这些首屏不再叠加data/site.json.pageCovers。 -
home、blog和contact可继续使用纯 CSS 栏目视觉;portfolio与game可以使用已有真实项目图片,并通过position设置焦点:
{
"portfolio": { "image": "assets/images/sword-of-words/room-selection.png", "position": "50% 46%" },
"game": { "image": "assets/images/sword-of-words/combat-room.png", "position": "50% 48%" }
}position 的第一个百分比控制左右焦点,第二个控制上下焦点。framework、journal 和 engineering 的旧 cover 配置只保留兼容数据,不再拥有对应项目首屏。
- 运行
npm run build。构建会检查项目图片并重建页面,同时在 ignored.generated/social/生成每个页面独立的 1200×630 PNG 分享图;npm run package:site再将它们映射到 Pages artifact 的稳定/assets/social/URL。不要手工编辑生成目录,也不要填写本机绝对路径或私有仓库地址。
同步采用由 Journal main 推送触发的公开导出包,个人站不克隆或读取私有 Journal。
需要在本地复现时,先在 Journal 生成导出目录,再导入本站:
npm run journal:import -- --input /path/to/public-export
npm run journal:check -- --input /path/to/public-export策展白名单位于 config/journal-curation.json。游戏设计与框架审计只发布摘要。
Journal 的 blogs/publication.v1.json 是文章进入公开导出和个人站发布的授权边界。导入器会在
同一次操作中收敛 config/blog-publication.json:既有条目保留站点侧 status、语义 slug
和 publishedAt,从固定导出刷新其余 Journal-owned 元数据;新的语义 ID 默认以该 ID 作为 slug,
并以来源更新时间作为首次发布日期。新 ASCII 标签也会同步进入 taxonomy,既有标签和系列文案不被覆盖。
重复 ID、正文哈希不一致、危险内容、非语义 hash ID、未知系列或正文草稿标记仍会失败关闭。
当前公开导出中已移除的来源会同步移出站点出版投影;新系列需要站点维护者提供可读的语义 slug
和说明,导入器不会猜测公开栏目名称。
reviewedJournalCurationHash 只覆盖人工策展的项目文案、知识流和 featured notes,不把每次自动
同步的 publication 数量伪装成人工复审。
导入器同时检查提交 SHA、数量、正文哈希、危险 HTML、本机路径和凭据模式。
Gitea 到 GitHub 的密钥配置、路径所有权和冲突处理见
docs/maintenance/journal-sync.md。
Consumer Lab 当前包含 7 个 Consumer Lab 案例:4 个仓库启用 source-push。
启用 source-push 的消费者仓库会在 main 推送时从固定提交生成脱敏技术投影,并由站点导入器更新
data/consumer-lab.json。源仓只能同步提交、Framework/Unity 版本、包集合和通过计数;项目类型、
摘要与四条核心系统仍由本站策展,且 owner-only 注册表不会打进 Pages artifact。
本地可用以下命令复现单个消费者投影:
npm run consumer:export -- --source /path/to/consumer --commit <consumer-sha> --output /tmp/consumer.json
npm run consumer:import -- --input /tmp/consumer.json
npm run consumer:check -- --input /tmp/consumer.json证据新鲜度、包集合复核、Runner Secret 与并发冲突策略见
docs/maintenance/consumer-lab-sync.md。
Iris Engineering main 的每次更新都会由源仓 workflow 从 exact event commit 生成 closed、脱敏导出;本站 importer 验证 manifest hash/bytes、fixed checkout HEAD 和 ancestry 后,原子更新 owner-only provenance 与公开 Engineering snapshot,再由既有 generator 重建首页、Engineering 页和 Portfolio 页。
本地复现:
npm run engineering:import -- \
--input /absolute/path/to/iris-public-export \
--source-repository /absolute/path/to/fixed-iris-checkout
npm run engineering:check -- \
--input /absolute/path/to/iris-public-export \
--source-repository /absolute/path/to/fixed-iris-checkout站点只允许同步修改 config/iris-engineering-sync.json、data/iris-engineering.json、index.html、pages/engineering.html 和 pages/portfolio.html。source SHA 不进入公开 data/HTML/Pages;同提交篡改、旧提交、旁支、额外文件或范围扩张都会失败关闭。Secret、Runner 与首次真实运行见 docs/maintenance/iris-engineering-sync.md,不能由本地通过推断为已启用。
.github/workflows/site-quality-and-pages.yml 在推送和 PR 时执行构建、测试、浏览器冒烟测试与生成状态检查。main 验证通过后,工作流只把 _site/ 作为 GitHub Pages artifact 发布。
- 规模不等于成熟度;Framework 页面必须同时展示生命周期;
- 原型不等于正式发布;没有 Demo、视频或平台证据时明确标注缺口;
- 私有研究只发布经过策展的摘要;博客必须先通过安全导出,再在站点出版合同中明确批准;
- 联系入口必须真实可访问;
- 新的公共声明需要对应数据、页面证据或验证记录。
代码以 ISC License 发布。项目截图和站点视觉素材的版权归 IrisSakura 所有,除非文件旁另有说明;许可证不自动授予这些素材的再发布权。
Iris Engineering、SakuraGameFramework、Myosotis、Violet Shelf、Freesia Mods 与 Wisteria 使用统一登记的 Six Flower Personas V2 人物素材。公开入口由站点生成器维护;创作者身份与各游戏作品保留各自视觉。
维护说明:Persona V2 调查、迁移映射。