lost-rob0t/starintel-gpt-auto-dig

GitHub: lost-rob0t/starintel-gpt-auto-dig

该项目是一个基于严格 schema 规范和 Git 的 JSON 文档数据库框架,用于证据驱动的结构化情报收集、验证与版本化管理。

Stars: 0 | Forks: 0

# StarIntel GPT 自动化挖掘 基于证据的研究包,以及使用仓库本地 **`starintel_doc` v0.9.0 分支**作为唯一文档规范的、由 Git 支持的 JSON 数据库。 ## 规范规则 `starintel_doc/` 是唯一的 schema 实现。脚本、技能、验证、迁移、递归目标选择、导入、静态资源浏览器以及生成的 JSON Schema 都直接导入它。不要创建第二个 schema、仅用于提示的“风格”或未记录的字段。 每个文档都使用 v0.9.0 信封(envelope): ``` _id, dataset, dtype, schema_version, version, date_added, date_updated, title, summary, description, status, language, tags, labels, aliases, keywords, identifiers, sources, evidence, temporal, provenance, assessment, verification, handling, lineage, quality, workflow, geospatial, attachments, related_ids, notes, data, extensions ``` `data` 由 `dtype` 严格筛选。`extensions` 是已声明、带命名空间的逃生舱,用于处理在不丢失数据的情况下尚无法表示的元数据。未声明的顶层字段和未声明的 `data` 字段将无法通过验证。 ## 仓库布局 ``` starintel_doc/ Canonical v0.9.0 schema fork and runtime schemas/ Generated JSON Schema skills/ Auto-dig operating skills scripts/starintel.py Unified CLI scripts/create-db-document.py Transactional canonical DB writer scripts/validate-db.py Strict corpus validator scripts/validate-for-merge.py Mandatory pre-merge gate scripts/migrate-starintel-v0.9.py Full-corpus migration scripts/search-db.py JSON database search scripts/select-targets.py Recursive target selection db//<_id>.ndjson One compact document per file digs///starintel-documents.jsonl manifests/ Corpus and migration manifests ``` ## 必需的文档创建方式 Agent 和自动化工具不得手动编写 `db/` 下的文件。 使用以下命令创建一个规范化记录: ``` python3 scripts/create-db-document.py org \ --dataset example \ --id starintel:org:example \ --title "Example Org" \ --data '{"name":"Example Org","org_type":"company"}' ``` 该脚本会在写入前验证 schema,仅写入 `db//<_id>.ndjson`,并在写入后验证整个仓库,失败时进行回滚。 对于批处理,请在 `db/` 外部创建 JSONL 并将其导入: ``` python3 scripts/starintel.py import records.jsonl ``` 仅在进行有意的修正或更新版本时使用 `--replace`。仅对旧版输入使用 `--migrate`。 `scripts/starintel.py create` 可以生成或检查草稿文档,但绝不能用于直接写入 `db/`。 ## 数据库规范 每个规范化文档必须确切存在于: ``` db//<_id>.ndjson ``` 目录必须等于 `dtype`;字面量 `_id`(包括冒号)必须等于文件名;`_id` 中禁止使用路径分隔符;每个文件必须仅包含一个紧凑的 JSON 对象和一个终止换行符。重复的规范化 ID 是无效的。关系端点 ID 必须解析为规范化记录,除非表示为明确未解析的 schema 端点。 ## CLI ``` python3 scripts/starintel.py types python3 scripts/starintel.py schema --dtype relation python3 scripts/starintel.py schema --output schemas/starintel-doc-v0.9.0.schema.json python3 scripts/starintel.py validate python3 scripts/starintel.py search palantir --dtype org --with-location python3 scripts/starintel.py select-targets \ --query palantir \ --limit 10 \ --emit-documents \ --output recursive-targets.jsonl ``` ## 全面迁移 ``` python3 scripts/migrate-starintel-v0.9.py --write python3 scripts/validate-for-merge.py --site ``` 迁移过程会遍历每个规范化的 DB 记录和挖掘包,将旧的元数据转换为 v0.9.0 信封,在 `extensions.legacy.v0` 下保留无法识别的旧值,将数据包重写为普通的规范 JSONL,移除旧的压缩传输片段,并生成迁移清单。 ## 强制合并关卡 在标记 pull request 为 ready、批准它、启用自动合并或合并它之前,必须运行: ``` python3 scripts/validate-for-merge.py --site ``` 该关卡会检查 Python 编译、所有单元测试、生成的 schema 的可重现性、对每个 DB 和数据包记录的严格验证、规范路径、每文件单记录格式、重复 ID、关系端点、站点生成以及 `git diff --check`。 除非本地关卡和所有必需的 GitHub 检查都针对当前 head commit 通过,否则不得合并文档 PR。失败、挂起、跳过、取消、不可用、陈旧或结果不确定的检查均不算作成功。在修复之前,请将 PR 保持为草稿状态。 绝不要以“以后再修复”为承诺合并无效文档。绝不要为了强行接纳无效数据而削弱 schema、放宽 `additionalProperties` 或滥用 `extensions`。 ## Git 流程 1. 从 `main` 开始。 2. 创建 `agent/`。 3. 提交一个逻辑连贯的 schema、工具或研究事务。 4. 运行 `python3 scripts/validate-for-merge.py --site`。 5. 开启一个向 `main` 提交的草稿 pull request。 6. 仅在当前 head 通过所有检查后才标记为 ready。 7. 仅在验证完全通过(全绿)时才执行 Squash-merge(压缩合并)。 请勿将研究包直接发布到 `main`。
标签:JSON数据库, Python, 人工智能代理, 命令控制, 数据模式验证, 数据采集, 无后门, 网络安全研究, 自动化信息收集, 逆向工具