cognis-digital/taskforge
GitHub: cognis-digital/taskforge
一个零依赖的纯 Python 声明式任务运行器,通过 YAML 定义带依赖关系和矩阵展开的构建/测试/发布流水线。
Stars: 0 | Forks: 0
# taskforge
**一个纯 Python 实现的声明式任务运行器。** 在一个小巧的 `taskforge.yaml` 中定义
构建/测试/发布任务,支持依赖、变量插值、fan-out
矩阵、文件包含以及 dry-run 命令计划。
它是 **Cognis Neural Suite** 的一部分。仅使用标准库 —— 无需 pip 安装,无需
下载二进制文件,只要能运行 Python 的地方就能运行(包括物理隔离的 CI 环境)。
## 任务文件
```
vars:
app: hello-edge
registry: localhost:5000
tasks:
build:
desc: Build the app.
deps: [clean]
cmds:
- echo building ${app}
test:
deps: [build]
matrix:
py: ["3.10", "3.12"]
cmds:
- echo testing ${app} on python ${py}
release:
deps: [test]
cmds:
- echo publishing ${app} to ${registry}
```
## 命令
```
# 运行一个任务及其 dependencies。
python -m taskforge run release
# 预览确切的 command plan(deps + matrix + interpolation),不执行。
python -m taskforge run release --dry-run
# 列出任务;显示一个任务的已解析 run order。
python -m taskforge list
python -m taskforge graph release
# 作为本地 MCP server 运行(stdio JSON-RPC)。
python -m taskforge mcp
```
## taskforge 的独特之处
- **矩阵 fan-out。** 任务会针对命名值列表的每个组合运行一次 —
无需复制粘贴的任务变体。
- **可组合。** `includes:` 会合并任务文件;后置的定义会覆盖
先前的名称,因此团队可以共享基础配置并进行特化。
- **默认安全。** 依赖循环和未知任务会在任何操作运行前被捕获;
执行采用快速失败机制。
- **原生支持 MCP**(`list` / `plan` / `run`)以及可选开启的本地集群 AI 钩子
(默认关闭),可以从简单的英文 pipeline 草拟任务文件。
- **零依赖。**
## 测试
```
python -m pytest -q # or: python -m unittest discover -s tests
```
## 互操作性
`taskforge` 可与包含 300+ 工具的 Cognis 套件组合使用 —— 统一的 JSON 输入/输出以及共享的
兼容 OpenAI 的 `/v1` 主干。请参阅 **[INTEROP.md](INTEROP.md)** 了解
套件图谱、组合模式以及参考技术栈。
## 集成
通过
[`cognis-connect`](https://github.com/cognis-digital/cognis-connect) 将 `taskforge` 的发现结果转发到 STIX/MISP/Sigma/Splunk/Elastic/Slack/webhooks。请参阅 **[INTEGRATIONS.md](INTEGRATIONS.md)**。
## 许可证
Cognis Open Collaboration License (COCL) 1.0 —— 请参阅 [`LICENSE`](LICENSE)。
© 2026 Cognis Digital LLC。原创的 Cognis 作品;不包含任何第三方代码、名称或
品牌标识。
## 领域
**主要领域:** Cyber & Security · **JTF MERIDIAN 部门:** NULLBYTE · SPECTER
**主题:** `cognis` `security` `infosec` `cybersecurity` `blue-team`
作为 **Cognis Neural Suite** 的一部分 —— 这是一个包含 300+ 源代码可用工具的集合,组织在 JTF MERIDIAN 指挥结构下的 12 个领域中。请参阅 [GitHub 上的套件](https://github.com/cognis-digital) 和 [jtf-meridian](https://github.com/cognis-digital/jtf-meridian) 了解各部分是如何相互配合的。
## 用法 —— 逐步指南
`taskforge` 通过带有依赖、变量插值、fan-out 矩阵和 dry-run 计划的 `taskforge.yaml` 运行声明式任务。
1. **安装**(纯标准库,Python 3.10+):
pip install "git+https://github.com/cognis-digital/taskforge.git"
2. **列出并校验** 文件中定义的任务(`-f` 指向非默认路径;`validate` 会检查依赖和循环):
taskforge list
taskforge validate
3. **预览命令计划** —— 包括依赖 + 矩阵 + 插值,不执行任何实际操作:
taskforge run release --dry-run
taskforge graph release # 仅展示解析后的运行顺序
4. **运行它**(依赖会首先运行),并以最高优先级覆盖变量:
taskforge run release --var registry=ghcr.io/cognis
5. **在 CI 中自动化** —— `run` 会在遇到第一个失败的步骤时以非零状态码退出;`--format json` 可将结果提供给其他工具:
taskforge run test --format json
或者将其作为本地 MCP 服务器运行(stdio JSON-RPC):`taskforge mcp`。
标签:MCP, Python, 任务执行器, 无后门, 逆向工具