开发路线图
KISS 架构:Knowledge · Isolated · Semantic · Static — 从 PoC 到 v1.0
里程碑概览
| 阶段 |
名称 |
核心目标 |
状态 |
| Phase 0 |
PoC |
技术可行性验证 |
完成 |
| Phase 1 |
Alpha |
核心插件包可用 |
完成 |
| Phase 2 |
工程化补齐 |
P0/P1 修复 + 架构重构 |
完成 |
| Phase 3 |
文档整合 |
docs-site → docs |
完成 |
| Phase 4 |
KISS Architecture 落地 |
K·I·S·S 四约束 + Jamstack 对齐 |
完成 |
| Phase 5 |
UI 革命与生态验证 |
@kissjs/ui + 设计系统 |
完成 |
| Phase 6 |
架构审计与修复 |
P0/P1 问题清零 + Dogfooding |
完成 |
| Phase 7 |
文档站自举 |
docs 站使用自研 kiss-ui 组件 |
完成 |
Phase 5:UI 革命与生态验证(已完成)
5A: 品牌视觉 + 设计系统页面
- 首页风格改造 — 纯黑背景、高对比度
- 品牌色统一 — Logo/Nav hover/Sidebar active 全局统一
- UI 设计系统页面 — /ui 路由,展示 Design Tokens
- 导航栏添加 UI 标签 — Docs | UI | JSR | GitHub
- 自定义域名修复 — base path 从 /kiss/ 改为 /
5B: @kissjs/ui 组件库实现
- @kissjs/ui 重构 — 基于 Lit 构建自有 Web Components
- 核心组件:kiss-button, kiss-card, kiss-input, kiss-code-block, kiss-layout
- 文档站用 @kissjs/ui 重写 — dogfooding
- 迁移示例文件 — examples/minimal-blog + examples/hello 迁移到 static properties
- 发布 @kissjs/ui@0.1.4 — JSR 发布
Phase 6:架构审计与修复(已完成)
6A: P0 Bug 修复
- allNoExternal 未使用 — 修复 Vite SSR 模块解析
- userResolveAlias 类型不匹配 — 支持 Record 和 Alias[] 两种格式
- Island 扫描配置错误 — 移动到正确目录,文件名匹配 tag name
6B: P1 问题清理
- code-block Island 主题适配 — CSS 变量替换硬编码颜色
- kiss-layout 导航补全 — 添加 Examples + Project sections
- hydrationStrategy 选项移除 — 删除未实现选项
- 测试覆盖扩展 — kiss-rpc + kiss-ui 测试集成
- kiss-docs-kit 空壳删除 — 移除未使用包
- logger.ts 删除 — 移除未使用模块
- README 版本更新 — core 0.1.6, rpc 0.1.3, ui 0.1.4
6C: 体验优化
- docs 站 dogfooding — 25 个路由使用 kiss-layout
- 组件导入统一 — @kissjs/ui/kiss-layout 替代本地组件
- 构建验证通过 — 25 pages, 3 islands detected
- deno fmt/lint 通过 — 代码风格统一
Phase 7:文档站自举(已完成)
- docs 站完全使用 @kissjs/ui 组件 — dogfooding 验证
- Island 检测验证 — code-block, counter-island, theme-toggle
- SSG 构建成功 — 所有页面静态生成,交互隔离
- K·I·S·S 四约束落地 — Knowledge/Isolated/Semantic/Static
已解决的技术债
| 问题 |
状态 |
| hono-entry.ts 全字符串拼接 |
已重构为 EntryDescriptor + renderEntry |
| 8 插件闭包共享可变状态 |
已提取 KissBuildContext |
| SSR 运行时模式 |
已移除 |
| GLOBAL_BUILT 模块级变量 |
已移除 |
| Island 正则检测 |
已改为构建时 map |
| DIA → KISS Architecture |
已重定义(K·I·S·S 四约束) |
仍存在的技术债
| 问题 |
状态 |
| entry-renderer.ts 字符串拼接(非 MagicString) |
中 |
| packageIslands 客户端构建依赖 Vite alias,包内 Island 必须从 @kissjs/core 导入 |
中 |
| kiss-docs-kit 空壳(无 exports,用途不明) |
中 |
| 部分 guide 页面仍有硬编码颜色值 |
低 |
| 无 packageIslands 集成测试 |
中 |
架构概览
用户视角:vite.config.ts
┌─────────────────────────────────────┐
│ import { kiss } from '@kissjs/core' │
│ export default defineConfig({ │
│ plugins: [kiss()] │
│ }) │
└──────────┴──────────────────────────────┘
│
┌─────────┴──────────────────────────┐
│ @kissjs/core (6 子插件) │
│ │
│ 1. kiss:core — 路由扫描 (K) │
│ 2. kiss:virtual-entry — 虚拟模块 │
│ 3. @hono/vite-dev-server — dev only │
│ 4. island-transform — AST 标记 (I) │
│ 5. html-template — HTML 注入 (预留) │
│ 6. kiss:build — 元数据 (K+S) │
└──────────┴──────────────────────────┘
│
┌───────┴─────┐
│ 两个独立部署目标 │
│ │
│ dist/ (静态前端) │ ← K+I+S 约束
│ API Routes (Serverless) ← S 约束
└─────────────────────┘