ln-150-presentation-creator by levnikolaevich/claude-code-skills
npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-150-presentation-creator路径说明: 文件路径(
shared/、references/、../ln-*)是相对于技能仓库根目录的。如果在当前工作目录中未找到,请定位此 SKILL.md 文件所在的目录并向上返回一级以找到仓库根目录。如果缺少shared/目录,请通过 WebFetch 从https://raw.githubusercontent.com/levnikolaevich/claude-code-skills/master/skills/{path}获取文件。
此技能可根据现有项目文档创建交互式、自包含的 HTML 演示文稿。它将 Markdown 文档转换为专业的、可导航的网页演示文稿,包含图表、可折叠部分和现代用户界面。
将现有的 Markdown 文档转换为交互式、自包含的 HTML 演示文稿,包含 6 个标签页(概述、需求、架构/C4、技术规格、路线图、指南)并支持 Mermaid 图表。
此技能是一个 L2 WORKER,由 ln-100-documents-pipeline 编排器调用,或独立使用。
在以下情况下使用此技能:
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
工作流的一部分 : ln-100-documents-pipeline → ln-110-project-docs-coordinator → ln-120-reference-docs-creator → ln-130-tasks-docs-creator → ln-140-test-docs-creator (可选) → ln-150-presentation-creator
先决条件 : docs/ 目录中存在现有文档,且包含必需文件:
docs/project/requirements.md (必需)docs/project/architecture.md (必需)docs/project/tech_stack.md (必需)可选文件(增强演示文稿但不阻塞流程):
docs/project/api_spec.md、database_schema.md、design_guidelines.md、infrastructure.md、runbook.mddocs/reference/adrs/*.md (带有 Category: Strategic|Technical 的 ADR)docs/reference/guides/*.md (操作指南)docs/tasks/kanban_board.md (用于路线图的史诗故事计数器)此技能遵循一个7阶段工作流:读取文档 → 验证源文件存在 → 验证源文件质量 → 创建目录 → 复制模板 → 注入内容 → 构建 HTML。
阶段 1: 读取文档 - 从 docs/ 加载所有项目文档 阶段 2: 验证源文件存在 - 检查必需文件是否存在(requirements.md、architecture.md、tech_stack.md),如果可选文件缺失则发出警告 阶段 3: 验证源文件质量 - 检查图表、占位符、内容长度(只读验证) 阶段 4: 创建目录 - 创建 presentation/ 目录 + README.md 导航中心 阶段 5: 复制模板 - 将 HTML/CSS/JS 模板复制到 assets/ 阶段 6: 注入内容 - 解析 MD 文档 → 替换标签页文件中的占位符 → 删除示例块 阶段 7: 构建 HTML - 将模块化组件组装成独立的 presentation_final.html
必读: 加载 references/phases_detailed.md 以获取每个阶段的详细工作流。
目标 : 加载所有项目文档以进行转换。
何时执行 : 始终(第一阶段)
流程 :
使用 docs/ 作为源 :
docs/project/、docs/reference/、docs/tasks/ 目录读取文档读取核心 MD 文档 :
project/requirements.md - 功能需求project/architecture.md - 架构设计,C4 图表project/tech_stack.md - 技术版本,Docker 配置project/api_spec.md - API 端点,认证(如果存在)project/database_schema.md - 数据库模式,ER 图(如果存在)project/design_guidelines.md - UI/UX 设计系统(如果存在)project/infrastructure.md - 基础设施清单(如果存在)project/runbook.md - 操作流程(如果存在)读取 ADR(如果存在):
reference/adrs/adr-001-*.md 到 adr-NNN-*.md读取指南(如果存在):
reference/guides/*.md - 用于“指南”标签页的操作指南读取看板(如果存在):
tasks/kanban_board.md - 用于路线图进度的史诗故事计数器表提取元数据 :
输出 : 已加载的文档数据,准备好进行验证和 HTML 生成
目标 : 在构建演示文稿之前验证必需的源文档是否存在。防止构建不完整的演示文稿。
何时执行 : 阶段 1 之后(文档已加载)
流程 :
必需(必须存在 - 如果缺失则阻塞执行):
docs/project/requirements.mddocs/project/architecture.mddocs/project/tech_stack.md对于每个必需文件:
pattern: "docs/project/{filename}"如果任何必需文件缺失或为空:
❌ 错误:无法构建演示文稿 - 缺少必需的文档:
- docs/project/requirements.md [缺失/为空]
- docs/project/architecture.md [缺失/为空]
建议:运行 ln-111-project-docs-creator 以创建缺失的文件。
停止执行。
可选(增强演示文稿 - 如果缺失则发出警告但继续执行):
docs/project/api_spec.md (用于后端项目)docs/project/database_schema.md (用于有数据库的项目)docs/project/design_guidelines.md (用于前端项目)docs/project/runbook.md (用于运维项目)对于每个可选文件:
pattern: "docs/project/{filename}"如果可选文件缺失:
⚠ 警告:可选文件缺失:[列表]
某些标签页的内容将减少。
继续执行。
可选目录:
docs/reference/adrs/ - 检查是否存在任何 ADR 文件 (adrs/*.md)docs/reference/guides/ - 检查是否存在任何指南文件 (guides/*.md)docs/tasks/kanban_board.md - 检查路线图数据对于每个目录:
ℹ 可选目录为空:{directory} - 相关标签页将显示占位符记录摘要:
✓ 源文档验证完成:
必需文件:
- ✅ requirements.md (已找到,8.5 KB)
- ✅ architecture.md (已找到,15.2 KB)
- ✅ tech_stack.md (已找到,3.1 KB)
可选文件:
- ⚠️ api_spec.md (缺失 - 技术规格标签页内容将减少)
- ✅ database_schema.md (已找到,4.7 KB)
- ⚠️ design_guidelines.md (缺失)
可选目录:
- ✅ adrs/ (找到 5 个 ADR 文件)
- ⚠️ guides/ (为空 - 指南标签页将显示占位符)
- ✅ kanban_board.md (已找到 - 路线图将显示进度)
输出 : 验证通过(所有必需文件都存在)或错误(停止执行)
目标 : 验证源文档包含足够的内容。警告内容不完整但不阻塞执行。
何时执行 : 阶段 2 之后(源文件存在)
执行的检查(仅警告,非阻塞):
{{PLACEHOLDER}}、[Add your ...]、TODO: 等模式自动修复 : 无 - ln-115 是只读的。运行 ln-111-project-docs-creator 来修复问题。
输出 : 包含警告的内容质量报告
📖 详细工作流 : 参见 phases_detailed.md §Phase 3
目标 : 设置演示文稿目录结构和导航中心。
何时执行 : 阶段 3 之后(源验证完成,警告已记录)
流程 :
创建演示文稿目录 :
mkdir -p docs/presentation/
检查 presentation/README.md 是否存在 :
pattern: "docs/presentation/README.md"✓ docs/presentation/README.md 已存在(已保留)从模板创建 presentation/README.md :
references/presentation_readme_template.md → docs/presentation/README.md{{PROJECT_NAME}} — 来自 requirements.md{{LAST_UPDATED}} — 当前日期 (YYYY-MM-DD)通知用户 :
✓ 已创建 docs/presentation/README.md(导航中心)✓ docs/presentation/README.md 已存在(已保留)输出 : docs/presentation/README.md(已创建或已存在)
目标 : 将 HTML/CSS/JS 模板从技能 references/ 复制到演示文稿目录。
何时执行 : 阶段 4 之后(演示文稿目录存在)
流程 :
检查 assets 是否存在 :
pattern: "docs/presentation/assets/"docs/presentation/assets/ 存在:
✓ 演示文稿资源已存在 - 保留用户自定义复制模板文件 :
cp references/presentation_template.html → docs/presentation/assets/
cp references/styles.css → docs/presentation/assets/
cp references/scripts.js → docs/presentation/assets/
cp references/build-presentation.js → docs/presentation/assets/
cp -r references/tabs/ → docs/presentation/assets/tabs/
验证复制的结构 :
docs/presentation/assets/
├── presentation_template.html # 基础 HTML5 + 6 个标签页导航
├── styles.css # ~400-500 行
├── scripts.js # 标签页切换 + Mermaid 初始化
├── build-presentation.js # Node.js 构建脚本
└── tabs/
├── tab_overview.html # 着陆页
├── tab_requirements.html # 功能需求 + ADR
├── tab_architecture.html # C4 图表
├── tab_technical_spec.html # API + 数据 + 部署
├── tab_roadmap.html # 史诗列表
└── tab_guides.html # 操作指南
输出 : 模板文件已复制到 docs/presentation/assets/(如果已存在则跳过)
注意 : 模板包含占位符 ({{VARIABLE_NAME}}),将在阶段 6 中被替换。
目标 : 解析 MD 文档,注入到 HTML 模板中,删除示例块。
何时执行 : 阶段 5 之后(模板存在于 assets/ 中)
流程 :
{{PLACEHOLDER}} 替换为解析后的内容<!-- EXAMPLE START -->...<!-- EXAMPLE END --> 块标签页占位符 : 概述 (5), 需求 (4 + NFR 禁令), 架构 (5), 技术规格 (4), 路线图 (3), 指南 (6)
验证 : 无示例标记,无硬编码的电子商务数据,仅包含项目特定内容
输出 : 干净的、项目特定的标签页文件,准备好进行构建
📖 占位符参考和示例转换: 参见 phases_detailed.md §Phase 6
目标 : 将模块化组件组装成独立的 HTML 文件。
何时执行 : 阶段 6 之后(内容已注入,示例已删除)
流程 :
检查 presentation_final.html 是否存在(用于自动化的自动重建) :
pattern: "docs/presentation/presentation_final.html"ℹ 正在重建 presentation_final.html(生成的文件,安全重建)正在创建 presentation_final.html为何自动重建:
* presentation_final.html 是一个**生成的文件**(单一事实来源:assets/ 目录)
* 重建是安全的 - 不会丢失数据(源文件保留在 assets/ 中)
* 在被 ln-110-documents-pipeline 调用时保持完全自动化的工作流
* 保留 assets/ 中的用户自定义(仅重新生成最终的 HTML)
2. 导航到演示文稿资源目录 :
cd docs/presentation/assets/
3. 运行构建脚本 :
node build-presentation.js
4. 构建脚本流程 :
* **步骤 1** : 读取 presentation_template.html
* **步骤 2** : 读取并内联 styles.css → `<style>` 标签
* **步骤 3** : 读取并内联 scripts.js → `<script>` 标签
* **步骤 4** : 读取所有 6 个标签页文件 → 注入到空的 `<div>` 容器中
* **步骤 5** : 将 {{PLACEHOLDERS}} 替换为实际值
* **步骤 6** : 写入 `../presentation_final.html`
5. 验证输出(仅在文件被构建时执行):
* 检查文件大小(预期约 120-150 KB)
* 验证 Mermaid 图表语法是否有效
* 记录:`✓ 构建成功完成`
6. 通知用户 :
* 如果已重建(文件存在):`✓ 已重建 docs/presentation/presentation_final.html (~120-150 KB)`
* 如果已创建(文件不存在):`✓ 已创建 docs/presentation/presentation_final.html (~120-150 KB)`
* 提醒:`在浏览器中测试:双击打开,或使用 http-server`
输出 : docs/presentation/presentation_final.html(自包含,约 120-150 KB,除 Mermaid.js CDN 外无外部依赖)
⚠️ 重要提示:
presentation_final.html 是一个生成的文件,由 assets/ 中的模块化源文件构建而成。
presentation_final.html — 更改将在下次重建时丢失assets/ 目录中的源文件(模板、标签页、样式、脚本)cd assets/ && node build-presentation.jsdocs/
├── project/ # 源文档(输入)
│ ├── requirements.md
│ ├── architecture.md
│ ├── tech_stack.md
│ ├── api_spec.md (条件性)
│ ├── database_schema.md (条件性)
│ ├── design_guidelines.md (条件性)
│ └── runbook.md (条件性)
├── reference/ # 源文档(输入)
│ ├── adrs/
│ │ └── *.md (Category: Strategic | Technical)
│ └── guides/
│ └── *.md (可选)
├── tasks/ # 源文档(输入)
│ └── kanban_board.md (史诗故事计数器)
└── presentation/ # 输出目录
├── README.md # 导航中心
├── presentation_final.html # 最终独立的 HTML (~120-150 KB)
└── assets/ # 模块化 HTML 结构
├── presentation_template.html # 基础 HTML5 + 6 个标签页
├── styles.css # ~400-500 行
├── scripts.js # 标签页切换 + Mermaid
├── build-presentation.js # Node.js 构建脚本
└── tabs/
├── tab_overview.html # 着陆页
├── tab_requirements.html # 功能需求 + ADR
├── tab_architecture.html # C4 图表
├── tab_technical_spec.html # API + 数据 + 部署
├── tab_roadmap.html # 史诗列表
└── tab_guides.html # 操作指南
注意 : 演示文稿从 docs/project/、docs/reference/、docs/tasks/ 读取,但输出到 docs/presentation/。
幂等操作 : 保留 README.md,保留 assets/(用户自定义),自动重建 presentation_final.html。
各阶段关键规则 :
编辑 assets/styles.css(用于主题化的 CSS 变量)、assets/presentation_template.html(布局/标签页)或 assets/tabs/*.html(标签页内容)。
⚠️ 任何自定义后: 始终重新构建演示文稿:
cd assets/
node build-presentation.js
重要: 切勿直接编辑 presentation_final.html — 它是一个生成的文件,每次构建时都会被覆盖。
编排器 : ln-110-documents-pipeline | 独立使用 : 是(重建/验证现有文档)
必需文件 : requirements.md、architecture.md、tech_stack.md(位于 docs/project/) 可选文件 : api_spec、database_schema、design_guidelines、runbook、adrs/.md、guides/.md、kanban_board.md
依赖项 : Node.js v18+、现代浏览器、互联网(Mermaid CDN)
<!-- EXAMPLE --> 标记,无硬编码数据node build-presentation.js 已执行,presentation_final.html 已创建,已在浏览器中测试输出: docs/presentation/presentation_final.html + assets/ + README.md
<!-- EXAMPLE START -->...<!-- EXAMPLE END -->;输出中无硬编码的电子商务数据references/phases_detailed.mdreferences/presentation_readme_template.mdreferences/presentation_template.htmlreferences/styles.cssreferences/scripts.jsreferences/build-presentation.jsreferences/tabs/tab_overview.html、tab_requirements.html、tab_architecture.html、tab_technical_spec.html、tab_roadmap.html、tab_guides.html版本: 8.0.0 最后更新: 2025-12-12
每周安装次数
150
仓库
GitHub 星标数
245
首次出现
2026年1月24日
安全审计
安装于
opencode134
codex134
claude-code134
gemini-cli133
cursor132
github-copilot128
Paths: File paths (
shared/,references/,../ln-*) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root. Ifshared/is missing, fetch files via WebFetch fromhttps://raw.githubusercontent.com/levnikolaevich/claude-code-skills/master/skills/{path}.
This skill creates an interactive, self-contained HTML presentation from existing project documentation. It transforms Markdown documents into a professional, navigable web presentation with diagrams, collapsible sections, and modern UI.
Transforms existing Markdown documentation into an interactive, self-contained HTML presentation with 6 tabs (Overview, Requirements, Architecture/C4, Tech Spec, Roadmap, Guides) and Mermaid diagram support.
This skill is a L2 WORKER invoked by ln-100-documents-pipeline orchestrator OR used standalone.
Use this skill when:
Part of workflow : ln-100-documents-pipeline → ln-110-project-docs-coordinator → ln-120-reference-docs-creator → ln-130-tasks-docs-creator → ln-140-test-docs-creator (optional) → ln-150-presentation-creator
Prerequisites : Existing documentation in docs/ directory with required files :
docs/project/requirements.md (REQUIRED)docs/project/architecture.md (REQUIRED)docs/project/tech_stack.md (REQUIRED)Optional files (enhance presentation but not blocking):
docs/project/api_spec.md, database_schema.md, design_guidelines.md, infrastructure.md, runbook.mddocs/reference/adrs/*.md (ADRs with Category: Strategic|Technical)docs/reference/guides/*.md (How-to guides)docs/tasks/kanban_board.md (Epic Story Counters for Roadmap)The skill follows a 7-phase workflow : READ DOCS → VALIDATE SOURCE EXISTS → VALIDATE SOURCE QUALITY → CREATE DIR → COPY TEMPLATES → INJECT CONTENT → BUILD HTML.
Phase 1: READ DOCS - Load all project documentation from docs/ Phase 2: VALIDATE SOURCE EXISTS - Check required files exist (requirements.md, architecture.md, tech_stack.md), warn if optional missing Phase 3: VALIDATE SOURCE QUALITY - Check diagrams, placeholders, content length (read-only validation) Phase 4: CREATE DIR - Create presentation/ directory + README.md navigation hub Phase 5: COPY TEMPLATES - Copy HTML/CSS/JS templates to assets/ Phase 6: INJECT CONTENT - Parse MD docs → replace placeholders in tab files → delete example blocks Phase 7: BUILD HTML - Assemble modular components into standalone presentation_final.html
MANDATORY READ: Load references/phases_detailed.md for detailed workflow of each phase.
Objective : Load all project documentation for transformation.
When to execute : Always (first phase)
Process :
Use docs/ as source :
docs/project/, docs/reference/, docs/tasks/ directoriesRead Core MD Documents :
project/requirements.md - Functional Requirementsproject/architecture.md - Architecture design, C4 diagramsproject/tech_stack.md - Technology versions, Docker configurationproject/api_spec.md - API endpoints, authentication (if exists)project/database_schema.md - Database schema, ER diagrams (if exists)Output : Loaded documentation data ready for validation and HTML generation
Objective : Verify that required source documentation exists before building presentation. Prevent building incomplete presentations.
When to execute : After Phase 1 (documentation loaded)
Process :
REQUIRED (must exist - block execution if missing):
docs/project/requirements.mddocs/project/architecture.mddocs/project/tech_stack.mdFor each required file:
pattern: "docs/project/{filename}"If ANY required file missing or empty:
❌ ERROR: Cannot build presentation - missing required documentation:
- docs/project/requirements.md [missing/empty]
- docs/project/architecture.md [missing/empty]
Suggestion: Run ln-111-project-docs-creator to create missing files.
STOP execution.
OPTIONAL (enhance presentation - warn if missing but continue):
docs/project/api_spec.md (for backend projects)docs/project/database_schema.md (for projects with database)docs/project/design_guidelines.md (for frontend projects)docs/project/runbook.md (for operational projects)For each optional file:
pattern: "docs/project/{filename}"If optional files missing:
⚠ WARN: Optional files missing: [list]
Presentation will have reduced content in some tabs.
Continue execution.
OPTIONAL directories:
docs/reference/adrs/ - check if any ADR files exist (adrs/*.md)docs/reference/guides/ - check if any guide files exist (guides/*.md)docs/tasks/kanban_board.md - check for Roadmap dataFor each directory:
ℹ Optional directory empty: {directory} - related tab will show placeholderLog summary:
✓ Source documentation validation completed:
Required files:
- ✅ requirements.md (found, 8.5 KB)
- ✅ architecture.md (found, 15.2 KB)
- ✅ tech_stack.md (found, 3.1 KB)
Optional files:
- ⚠️ api_spec.md (missing - Technical Spec tab will have reduced content)
- ✅ database_schema.md (found, 4.7 KB)
- ⚠️ design_guidelines.md (missing)
Optional directories:
- ✅ adrs/ (5 ADR files found)
- ⚠️ guides/ (empty - Guides tab will show placeholder)
- ✅ kanban_board.md (found - Roadmap will show progress)
Output : Validation passed (all required files exist) OR error (stop execution)
Objective : Verify source docs contain sufficient content. Warn about incomplete content but don't block execution.
When to execute : After Phase 2 (source files exist)
Checks performed (warnings only, non-blocking):
{{PLACEHOLDER}}, [Add your ...], TODO: patternsAuto-fix : None - ln-115 is read-only. Run ln-111-project-docs-creator to fix issues.
Output : Content quality report with warnings
📖 Detailed workflow : per phases_detailed.md §Phase 3
Objective : Setup presentation directory structure and navigation hub.
When to execute : After Phase 3 (source validation complete, warnings logged)
Process :
Create presentation directory :
mkdir -p docs/presentation/
Check if presentation/README.md exists :
pattern: "docs/presentation/README.md"✓ docs/presentation/README.md already exists (preserved)Create presentation/README.md from template :
references/presentation_readme_template.md → docs/presentation/README.mdOutput : docs/presentation/README.md (created or existing)
Objective : Copy HTML/CSS/JS templates from skill references/ to presentation directory.
When to execute : After Phase 4 (presentation directory exists)
Process :
Check if assets exist :
pattern: "docs/presentation/assets/"docs/presentation/assets/ exists:
✓ Presentation assets already exist - preserving user customizationsCopy template files :
cp references/presentation_template.html → docs/presentation/assets/
cp references/styles.css → docs/presentation/assets/
cp references/scripts.js → docs/presentation/assets/
cp references/build-presentation.js → docs/presentation/assets/
cp -r references/tabs/ → docs/presentation/assets/tabs/
Verify copied structure :
docs/presentation/assets/
├── presentation_template.html # Base HTML5 + 6 tab navigation
├── styles.css # ~400-500 lines
├── scripts.js # Tab switching + Mermaid init
├── build-presentation.js # Node.js build script
└── tabs/
├── tab_overview.html # Landing page
├── tab_requirements.html # FRs + ADRs
├── tab_architecture.html # C4 diagrams
├── tab_technical_spec.html # API + Data + Deployment
├── tab_roadmap.html # Epic list
└── tab_guides.html # How-to guides
Output : Template files copied to docs/presentation/assets/ (or skipped if already exist)
Note : Templates contain placeholders ({{VARIABLE_NAME}}) that will be replaced in Phase 6.
Objective : Parse MD docs, inject into HTML templates, remove example blocks.
When to execute : After Phase 5 (templates exist in assets/)
Process :
{{PLACEHOLDER}} in 6 tab files with parsed content<!-- EXAMPLE START -->...<!-- EXAMPLE END --> blocks from all tabsTab placeholders : Overview (5), Requirements (4 + NFR ban), Architecture (5), Technical Spec (4), Roadmap (3), Guides (6)
Validation : No example markers, no hardcoded e-commerce data, only project-specific content
Output : Clean, project-specific tab files ready for build
📖 Placeholder reference & example transformation: per phases_detailed.md §Phase 6
Objective : Assemble modular components into standalone HTML file.
When to execute : After Phase 6 (content injected, examples deleted)
Process :
Check if presentation_final.html exists (Auto-rebuild for automation) :
pattern: "docs/presentation/presentation_final.html"ℹ Rebuilding presentation_final.html (generated file, safe to rebuild)Creating presentation_final.htmlWhy auto-rebuild:
* presentation_final.html is a **generated file** (source of truth: assets/ directory)
* Rebuilding is safe - no data loss (source files preserved in assets/)
* Maintains fully automatic workflow when invoked by ln-110-documents-pipeline
* User customizations in assets/ are preserved (only final HTML is regenerated)
2. Navigate to presentation assets directory :
cd docs/presentation/assets/
3. Run build script :
node build-presentation.js
4. Build Script Process :
* **Step 1** : Read presentation_template.html
* **Step 2** : Read and inline styles.css → `<style>` tag
* **Step 3** : Read and inline scripts.js → `<script>` tag
* **Step 4** : Read all 6 tab files → inject into empty `<div>` containers
* **Step 5** : Replace {{PLACEHOLDERS}} with actual values
* **Step 6** : Write `../presentation_final.html`
5. Validate Output (only if file was built):
* Check file size (~120-150 KB expected)
* Verify Mermaid diagrams syntax is valid
* Log: `✓ Build completed successfully`
6. Notify user :
* If rebuilt (file existed): `✓ Rebuilt docs/presentation/presentation_final.html (~120-150 KB)`
* If created (file NOT existed): `✓ Created docs/presentation/presentation_final.html (~120-150 KB)`
* Remind: `Test in browser: Double-click to open, or use http-server`
Output : docs/presentation/presentation_final.html (self-contained, ~120-150 KB, no external dependencies except Mermaid.js CDN)
⚠️ Important Note:
presentation_final.html is a generated file built from modular source files in assets/.
presentation_final.html directly — changes will be lost on next rebuildassets/ directory (template, tabs, styles, scripts)cd assets/ && node build-presentation.jsdocs/
├── project/ # Source documentation (input)
│ ├── requirements.md
│ ├── architecture.md
│ ├── tech_stack.md
│ ├── api_spec.md (conditional)
│ ├── database_schema.md (conditional)
│ ├── design_guidelines.md (conditional)
│ └── runbook.md (conditional)
├── reference/ # Source documentation (input)
│ ├── adrs/
│ │ └── *.md (Category: Strategic | Technical)
│ └── guides/
│ └── *.md (optional)
├── tasks/ # Source documentation (input)
│ └── kanban_board.md (Epic Story Counters)
└── presentation/ # Output directory
├── README.md # Navigation hub
├── presentation_final.html # Final standalone HTML (~120-150 KB)
└── assets/ # Modular HTML structure
├── presentation_template.html # Base HTML5 + 6 tabs
├── styles.css # ~400-500 lines
├── scripts.js # Tab switching + Mermaid
├── build-presentation.js # Node.js build script
└── tabs/
├── tab_overview.html # Landing page
├── tab_requirements.html # FRs + ADRs
├── tab_architecture.html # C4 diagrams
├── tab_technical_spec.html # API + Data + Deployment
├── tab_roadmap.html # Epic list
└── tab_guides.html # How-to guides
Note : Presentation READS from docs/project/, docs/reference/, docs/tasks/ but OUTPUTS to docs/presentation/.
Idempotent operation : Preserves README.md, preserves assets/ (user customizations), auto-rebuilds presentation_final.html.
Key rules by phase :
Edit assets/styles.css (CSS variables for theming), assets/presentation_template.html (layout/tabs), or assets/tabs/*.html (tab content).
⚠️ After any customization: Always rebuild the presentation:
cd assets/
node build-presentation.js
Important: Never edit presentation_final.html directly — it's a generated file that gets overwritten on each build.
Orchestrator : ln-110-documents-pipeline | Standalone : Yes (rebuild/validate existing docs)
Required files : requirements.md, architecture.md, tech_stack.md (in docs/project/) Optional files : api_spec, database_schema, design_guidelines, runbook, adrs/.md, guides/.md, kanban_board.md
Dependencies : Node.js v18+, Modern browser, Internet (Mermaid CDN)
<!-- EXAMPLE --> markers, no hardcoded datanode build-presentation.js executed, presentation_final.html created, tested in browserOutput: docs/presentation/presentation_final.html + assets/ + README.md
<!-- EXAMPLE START -->...<!-- EXAMPLE END --> must be removed; no hardcoded e-commerce data in outputreferences/phases_detailed.mdreferences/presentation_readme_template.mdreferences/presentation_template.htmlreferences/styles.cssreferences/scripts.jsreferences/build-presentation.jsreferences/tabs/tab_overview.html, tab_requirements.html, , , , Version: 8.0.0 Last Updated: 2025-12-12
Weekly Installs
150
Repository
GitHub Stars
245
First Seen
Jan 24, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
opencode134
codex134
claude-code134
gemini-cli133
cursor132
github-copilot128
Skills CLI 使用指南:AI Agent 技能包管理器安装与管理教程
43,100 周安装
project/design_guidelines.md - UI/UX design system (if exists)project/infrastructure.md - Infrastructure inventory (if exists)project/runbook.md - Operational procedures (if exists)Read ADRs (if exist):
reference/adrs/adr-001-*.md through adr-NNN-*.mdRead Guides (if exist):
reference/guides/*.md - How-to guides for Guides tabRead Kanban Board (if exists):
tasks/kanban_board.md - Epic Story Counters table for Roadmap progressExtract metadata :
{{PROJECT_NAME}} — from requirements.md{{LAST_UPDATED}} — current date (YYYY-MM-DD)Notify user :
✓ Created docs/presentation/README.md (navigation hub)✓ docs/presentation/README.md already exists (preserved)tab_architecture.htmltab_technical_spec.htmltab_roadmap.htmltab_guides.html