NanAquarius/Glassroom

GitHub: NanAquarius/Glassroom

一个结构化情报分析的工作流核心与共享案例对象系统,解决从原始来源到可复用分析产出的组织与管理问题。

Stars: 1 | Forks: 0

[English](./README.md) | [简体中文](./README.zh-CN.md) # Glassroom [![License](https://img.shields.io/badge/License-MIT-22C55E?style=flat-square)](./LICENSE) [![Python](https://img.shields.io/badge/Python-≥3.11-3776AB?style=flat-square&logo=python&logoColor=white)](#quick-start) [![Markdown](https://img.shields.io/badge/Markdown-Docs-111827?style=flat-square&logo=markdown&logoColor=white)](#what-glassroom-is) [![Node.js CLI](https://img.shields.io/badge/Node.js-CLI-339933?style=flat-square&logo=node.js&logoColor=white)](#installation) [![Shell](https://img.shields.io/badge/Shell-Bash-4EAA25?style=flat-square&logo=gnubash&logoColor=white)](#module-families) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/14a504276a232322.svg)](https://github.com/NanAquarius/Glassroom/actions/workflows/ci.yml) Glassroom 是一个用于结构化情报分析的 CLI 和工作流核心。 它帮助将原始来源转化为可重用的输出,例如源包、偏差分析、结构化分析、共享案例对象,以及下游教学或写作产物。 ## 安装 ``` npx glassroom install openclaw npx glassroom install project ``` 当前可用命令: - `glassroom install openclaw` - `glassroom install project` - `glassroom list-skills` - `glassroom assemble case` 版本命令: - `glassroom --version` - `glassroom version` 仅安装选定的技能: ``` npx glassroom install openclaw --skills glassroom-router,glassroom-source-intake ``` 列出可用技能: ``` npx glassroom list-skills ``` 组装一个共享案例对象: ``` glassroom assemble case \ --base-case examples/base-case.json \ --source-card examples/source-card.json \ --bias-analysis examples/bias-analysis.json \ --mitigation-pack examples/mitigation-pack.json \ --structured-analysis examples/structured-analysis.json \ --out-json /tmp/glassroom-case.json \ --out-md /tmp/glassroom-case.md ``` 如果 npm 不可用,请参见 [安装指南](#installation) 获取 GitHub 和手动备用路径。 ## ✨ 什么是 Glassroom Glassroom 不仅仅是一个智能体提示包,也不只是一个单一技能。 它是一个包含两个层次的项目: - 一个工作流核心 - 共享案例对象 - 中间产物 - 可重用分析模块 - 集成层 - 可挂载的 OpenClaw 技能 - CLI 界面 - 公开安全的文档与模板 当你需要一个能够将: - 将碎片化分析输出转化为共享案例对象 - 保持来源、偏差、缓解和结构化分析层相互关联 - 支持下游 HTML 教学页面或写作交付物 - 暴露可重用的模式而非将逻辑困在一次性提示中 - 保留教学模式,使其超越单个课堂产物 的工作流时,请使用 Glassroom。 ## 🚫 Glassroom 不是 它并非试图成为: - 一个通用文章生成器 - 一堆无关的课堂提示 - 一个课堂拥有产物的直接发布渠道 - 在核心工作流契约稳定之前,就成为一个完整的终端用户平台 开源规则很简单:先发布可移植的骨干,然后添加可独立存在的公开安全模块。 ## ⚡ 快速开始 目前最快的路径是从公开安全的示例输入组装一个共享案例对象。 ### CLI 路径 ``` glassroom assemble case \ --base-case examples/base-case.json \ --source-card examples/source-card.json \ --bias-analysis examples/bias-analysis.json \ --mitigation-pack examples/mitigation-pack.json \ --structured-analysis examples/structured-analysis.json \ --out-json /tmp/glassroom-case.json \ --out-md /tmp/glassroom-case.md ``` ### 包脚本路径 ``` python3 packages/case-assembler/assemble_case.py \ --base-case examples/base-case.json \ --source-card examples/source-card.json \ --bias-analysis examples/bias-analysis.json \ --mitigation-pack examples/mitigation-pack.json \ --structured-analysis examples/structured-analysis.json \ --out-json /tmp/glassroom-case.json \ --out-md /tmp/glassroom-case.md ``` 你也可以直接运行公开分析模块: ``` python3 packages/cognitive-bias/build_bias_analysis.py \ --input examples/bias-input.json \ --out-json /tmp/bias-analysis.json \ --out-md /tmp/bias-analysis.md python3 packages/structured-analysis/build_structured_analysis.py \ --input examples/structured-analysis-input.json \ --out-json /tmp/structured-analysis.json \ --out-md /tmp/structured-analysis.md python3 packages/source-intake/fetch_source_bundle.py \ --input examples/source-input.json \ --out-json /tmp/source-bundle.json \ --out-md /tmp/source-bundle.md ``` ## 📦 安装 Glassroom 自带一个安装器 CLI。 首选安装路径是 npm。 ### 从 npm 安装 安装到 OpenClaw 工作区: ``` npx glassroom install openclaw ``` 安装到当前项目工作区: ``` npx glassroom install project ``` 仅安装选定的技能: ``` npx glassroom install openclaw --skills glassroom-router,glassroom-source-intake ``` 列出可用的 Glassroom 技能: ``` npx glassroom list-skills ``` ### GitHub 备用方案 如果 npm 不可用,你可以直接从 GitHub 运行 Glassroom: ``` npx github:NanAquarius/Glassroom install openclaw npx github:NanAquarius/Glassroom install project npx github:NanAquarius/Glassroom list-skills ``` ### AI CLI 的单句安装提示 适用于 Claude Code、OpenCode 或类似的编码代理 CLI: ``` Run `npx glassroom install project` in this workspace and tell me which Glassroom skills are now available. ``` 如果该工具可以访问你的 OpenClaw 工作区: ``` Run `npx glassroom install openclaw` and tell me which Glassroom skills were installed into ~/.openclaw/workspace/skills/. ``` ### 手动安装备用方案 如果你希望使用手动路径而非安装器 CLI,可以克隆仓库并将 `skills/` 文件夹复制或链接到以下任一位置: - `~/.openclaw/workspace/skills/` - `./skills/` 安装器的作用是使这一过程更短、更干净、更易重复。 ## 🧩 当前公开范围 本次公开发布包括: - 一个共享的 Glassroom 案例模式(包含必需的 `caseId` 和 `title` 字段) - 描述模块如何丰富该模式的工作流契约 - `case-assembler` - `cognitive-bias` - 现在包含一个扩展的内置偏差目录,带有基于技艺的缓解步骤 - `structured-analysis` - 现在包含方法参数验证 - `source-intake` - 现在包含 URL 方案验证(SSRF 预防)和网络特定错误处理 - 共享工具层(`packages/shared/`),消除所有 Python 模块间的代码重复 - 所有模块加固的错误处理(窄异常、JSON 解析错误、返回类型注解) - 覆盖所有核心模块、共享工具和源包提取的 135 个单元测试 - 通过 GitHub Actions 的 CI — ruff 格式检查、mypy 类型检查、覆盖率报告、Python 3.11–3.13、Node.js 18/20/22 - 带有项目元数据、ruff 校验、mypy 和覆盖率配置的 `pyproject.toml` - 作为 `packages/` 委托的薄包装器技能脚本(单一事实来源) - 一个去标识化的 UI 模板参考库 - 一个可挂载的开源 `skills/` 层 - 一个带有安装命令和首个真实分析命令 `assemble case` 的 CLI 目标是并非一次性倾倒所有内容,而是先开放稳定的骨干,再从那里扩展。 ## 🗺 工作流工件映射 当前核心流程如下: ``` partial analysis artifacts → shared case object → reusable intermediate outputs → HTML pages / writing deliverables / teaching artifacts ``` 一个更具体的流程版本是: ``` base-case.json + source-card.json + bias-analysis.json + mitigation-pack.json + structured-analysis.json → glassroom-case.json → glassroom-case.md ``` 这个结构为你带来的好处: - 一个可重用的工作单元,而非多个分散的输出 - 模块之间更清晰的手动交接 - 更易渲染为多种下游格式 - 减少被困在单一位置的一次性提示中的逻辑 ## 🔧 共享工作单元 Glassroom 使用共享的 **案例对象** 作为默认工作单元。 参见: - [`schemas/glassroom-case.schema.json`](./schemas/glassroom-case.schema.json) - [`docs/workflow-contract.md`](./docs/workflow-contract.md) 并非每个模块都需要所有字段。 但共享模式是骨干,使来源摄入、偏差分析、结构化分析、缓解、渲染和写作输出能够相互通信。 ## 🧱 模块家族 ### 包层 - [`packages/shared/`](./packages/shared/) - 共享工具(`load_json`、`write_json`、`uniq` 等),供所有分析模块使用 - [`packages/case-assembler/`](./packages/case-assembler/) - 将部分输出合并为一个可重用的案例对象 - [`packages/cognitive-bias/`](./packages/cognitive-bias/) - 将候选偏差和摘录转化为可重用的偏差分析产物 - 偏差目录外部化为 `bias_catalog.json`,便于维护和扩展 - [`packages/structured-analysis/`](./packages/structured-analysis/) - 将策略问题、假设、证据转化为结构化分析产物 - [`packages/source-intake/`](./packages/source-intake/) - 获取、分类并结构化源材料,提供考虑提供者意识的检索以增强上游证据 - 自动重试并采用退避策略处理瞬态网络错误 ### 测试层 - [`tests/`](./tests/) - 135 个单元测试,覆盖共享工具、案例组装器、认知偏差、源卡片、源包提取和结构化分析模块 - 使用 `python -m unittest discover -s tests -v` 运行 ### 集成层 - [`skills/glassroom-router/`](./skills/glassroom-router/) - [`skills/glassroom-source-intake/`](./skills/glassroom-source-intake/) - [`skills/glassroom-case-assembler/`](./skills/glassroom-case-assembler/) - [`skills/glassroom-cognitive-b/`](./skills/glassroom-cognitive-bias/) - [`skills/glassroom-structured-analysis/`](./skills/glassroom-structured-analysis/) - [`bin/glassroom.js`](./bin/glassroom.js) 这些集成层位于包层之上。 技能脚本是薄包装器,将所有分析逻辑委托给 `packages/`,保持单一事实来源。`bin/` 层提供面向 CLI 的入口点。 ## 🎨 UI 模板库 Glassroom 还包含一个公开安全 UI 模板库的起点: - [`docs/ui-template-library/README.md`](./docs/ui-template-library/README.md) - [`docs/ui-template-library/templates/`](./docs/ui-template-library/templates/) - [`docs/ui-template-library/reference-pages/`](./docs/ui-template-library/reference-pages/) 该库用于在去标识化后保留可重用的教学页面结构。 它并非课堂拥有页面的转储。 规则是:在移除个人、讲师、课程所有者和来源特定身份标记的同时,保留教学流程、信息架构和可重用 UI 逻辑。 ## 🗂 仓库布局 ``` Glassroom/ ├── .github/ │ └── workflows/ │ └── ci.yml ├── bin/ ├── docs/ │ └── ui-template-library/ ├── examples/ ├── packages/ │ ├── shared/ ← shared utilities (load_json, write_json, uniq …) │ ├── case-assembler/ │ ├── cognitive-bias/ │ ├── source-intake/ │ └── structured-analysis/ ├── schemas/ ├── skills/ ← thin wrappers delegating to packages/ │ ├── glassroom-router/ │ ├── glassroom-source-intake/ │ ├── glassroom-case-assembler/ │ ├── glassroom-cognitive-bias/ │ └── glassroom-structured-analysis/ ├── tests/ │ ├── conftest.py │ ├── test_shared_utils.py │ ├── test_bias_analysis.py │ ├── test_case_assembler.py │ ├── test_fetch_source_bundle.py │ ├── test_source_card.py │ └── test_structured_analysis.py ├── package.json ├── pyproject.toml ├── CHANGELOG.md ├── CONTRIBUTING.md ├── SECURITY.md ├── .gitignore ├── LICENSE ├── README.md └── README.zh-CN.md ``` ## 🧪 测试 运行完整测试套件: ``` python -m unittest discover -s tests -v ``` CI 在推送到 `main` 和拉取请求时自动运行: 1. **Lint** — ruff 检查 + 格式验证 2. **类型检查** — mypy 静态类型分析 3. **Python 测试** — unittest 覆盖率测试,覆盖 Python 3.11/3.12/3.13 4. **CLI 冒烟测试** — 版本、帮助和跨 Node.js 18/20/22 的 list-skills ## 🛣 路线图方向 近期优先事项: 1. 强化围绕真实分析命令的 CLI 2. 扩展来源摄入覆盖范围 3. 暴露更多可重用渲染器和交付层 4. 保持 OpenClaw 集成轻薄且基于包 计划中的公开模块家族仍包括: - OSINT 陷阱与缓解 - 案例 HTML 渲染 - 课程写作输出 ## 📐 设计原则 - 优先稳定结构而非巧妙推断 - 使中间产物可重用 - 保持共享模式可在各模块间恢复 - 分离工作流编排与表示层 - 仅公开安全、可移植、可维护的内容 ## 📌 状态 Glassroom 仍处于早期提取阶段。 但它已超越“仅文档”阶段:核心契约是公开的,第一个分析模块是公开的,第一个去标识化的 UI 参考模式是公开的,CLI 现在包含安装流程和首个真实分析命令 `assemble case`。 随着更多本地 Glassroom 系统被公开,模式、示例、模块边界和公开安全渲染层将持续改进。 自 v0.3.1 起,项目已全面优化:所有正则表达式模式在模块级别预编译,输入验证防止格式错误的 JSON 字段,URL 获取包含带退避的重试机制,偏差目录已外部化为 JSON 以便更轻松维护,测试套件从 78 个增长到 135 个并覆盖源包提取。CI 现在包含 mypy 类型检查和覆盖率报告,以及 ruff 校验。 ## 参考书籍 以下两本书现已作为工作参考集的一部分: - *OSINT Techniques: Resources for Uncovering Online Information* — Michael Bazzell, Jason Edison (2024) - *Structured Analytic Techniques for Intelligence Analysis* — CQ Press (2020) ## 许可证 MIT ## 更新日志 参见 [CHANGELOG.md](./CHANGELOG.md)。 ## 贡献指南 参见 [CONTRIBUTING.md](./CONTRIBUTING.md)。 ## 安全信息 参见 [SECURITY.md](./SECURITY.md)。
*如果 Glassroom 对你的教学、分析或工作流设计有帮助,请考虑给它一个 Star、打开一个 Issue 或分享你如何使用它。* Star  ·  🐛 Issue  ·  🤝 PR
标签:CI持续集成, GNU通用公共许可证, Markdown文档, MITM代理, Node.js, Python, Shell脚本, 下游教学, 二进制发布, 偏见分析, 写作辅助, 可重用案例, 安装技能, 工作流核心, 应用安全, 开源工具, 情报分析, 技能管理, 无后门, 智能分析, 案例对象, 案例组装, 源码摄入, 结构化分析, 结构化输出, 网络诊断, 路由模块, 逆向工具