# Pentest Blackboard

CyberStrikeAI 项目黑板：跨会话 Fact 图（SQLite）+ upsert_project_fact/record_vulnerability...

- Repository: https://github.com/AIPentest/CyberStrikeAI (8302 stars)
- Category: Writing
- License: Apache-2.0
- Last updated: 2026-10-31
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add AIPentest/CyberStrikeAI --skill pentest-blackboard -g -a claude-code -y`
Codex: `npx skills add AIPentest/CyberStrikeAI --skill pentest-blackboard -g -a codex -y`
Cursor: `npx skills add AIPentest/CyberStrikeAI --skill pentest-blackboard -g -a cursor -y`
Gemini CLI: `npx skills add AIPentest/CyberStrikeAI --skill pentest-blackboard -g -a gemini-cli -y`

## Description

CyberStrikeAI 项目黑板：跨会话 Fact 图（SQLite）+ upsert_project_fact/record_vulnerability 边渗透边记录节奏、关系边 links、confidence、与多代理协调落库。Use when managing project facts, blackboard index, writing evidence, or avoiding context-loss after compression.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 项目黑板（与本产品对齐）

> 状态落在**已绑定项目**的 SQLite 黑板，不依赖对话上下文，也不使用 `.pentest/` 目录。
> 系统自动注入「项目黑板索引」（仅 `fact_key` + summary）；**摘要不足必须 `get_project_fact`，禁止凭摘要臆造细节。**

## 原语与分工（产品模型）

| 概念 | 产品落点 | 规则 |
|------|----------|------|
| **Fact** | `project_facts`（`upsert_project_fact`） | 同 `fact_key` **覆盖更新**；非正式漏洞条目。`confidence`: `confirmed` \| `tentative` \| `deprecated` |
| **关系边** | `project_fact_edges`（upsert 的 `links`） | 结构化攻击图；finding/chain/exploit/poc **必须**带 links |
| **可交付漏洞** | `record_vulnerability` | 与 Fact **可各记一次**：Fact=复现上下文，漏洞=正式 finding |
| **探索方向** | 本轮计划 / 协调者委派 / plantask（若启用） | **不是**独立 Intent 表；待验证方向用 `confidence=tentative` 的 `note/` 或先不落库、验证后再写 |
| **人类注入** | 用户消息 / HITL 审批 | 直接吸收进决策；不必写成 Hint 原语 |

### Fact vs 漏洞

- **环境/目标/认证等认知** → 只写 Fact（`target/` `auth/` `infra/` `business/`）
- **发现与利用上下文** → Fact（`finding/` `chain/` `exploit/` `poc/`）+ body 填满攻击链
- **可交付 findings** → `record_vulnerability`（标题、严重程度、类型、目标、POC、影响、修复）；记前可用 `list_vulnerabilities` 查重

## 强制节奏：边渗透边记录

勿等会话结束再批量写入。

1. 每**确认**一条新认知（开放端口/服务版本、入口路径、认证态或凭据特征、可利用点或攻击面变化）→ **立即** `upsert_project_fact`（同 key 覆盖）。
2. 每**验证**出一条可复现漏洞（含 POC/影响）→ **立即** `record_vulnerability`；与事实可各记一次。
3. 继续下一步前优先落库，避免上下文压缩丢细节。
4. **未绑项目**：说明无法写黑板，仍在本轮保留证据摘要。
5. **协调者**：子任务返回新认知/漏洞时由协调者写入，勿假定子代理已记。
6. **子代理无工具时**：交付物末尾给「待落库」条目（建议 `fact_key`、summary、body/POC 要点），供协调者立即写入。

## 工具速查

| 工具 | 用途 |
|------|------|
| `upsert_project_fact` | 写入/更新事实（含 body、confidence、links） |
| `get_project_fact` | 按 key 取完整 body（索引不够时必调） |
| `list_project_facts` / `search_project_facts` | 检索黑板 |
| `deprecate_project_fact` / `restore_project_fact` | 误报废弃 / 恢复 |
| `record_vulnerability` | 可交付漏洞 |
| `list_vulnerabilities` / `get_vulnerability` | 查重与详情 |

前置：**当前对话已绑定项目**（否则工具报错）。

## 写入规范

### fact_key / category

- 格式：小写 `category/slug`（如 `target/primary_domain`、`finding/sqli-login`）
- 环境：`target` \| `auth` \| `infra` \| `business`
- 发现利用：`finding` \| `chain` \| `exploit` \| `poc`（另可用 `note`）
- **同一发现保持同一 `fact_key` 覆盖**，勿拆成多个 key 导致上下文丢失

The rest: https://github.com/AIPentest/CyberStrikeAI/blob/HEAD/skills/pentest-blackboard/SKILL.md
