Skip to content

Commit d8b2973

Browse files
committed
Add CI and improve quickstart docs
1 parent 2412edd commit d8b2973

3 files changed

Lines changed: 154 additions & 15 deletions

File tree

.github/workflows/ci.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
test:
14+
name: Python ${{ matrix.python-version }}
15+
runs-on: ubuntu-latest
16+
strategy:
17+
fail-fast: false
18+
matrix:
19+
python-version:
20+
- "3.11"
21+
- "3.12"
22+
23+
steps:
24+
- name: Check out repository
25+
uses: actions/checkout@v4
26+
27+
- name: Set up Python
28+
uses: actions/setup-python@v5
29+
with:
30+
python-version: ${{ matrix.python-version }}
31+
cache: pip
32+
33+
- name: Install package
34+
run: python -m pip install -e ".[dev]"
35+
36+
- name: Lint
37+
run: python -m ruff check .
38+
39+
- name: Test
40+
run: python -m unittest discover -s tests -v
41+
42+
- name: Compile
43+
run: python -m compileall src tests

README.md

Lines changed: 83 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# chumdump
22

3+
[![CI](https://github.com/m3lixir/chumdump/actions/workflows/ci.yml/badge.svg)](https://github.com/m3lixir/chumdump/actions/workflows/ci.yml)
4+
[![Release](https://img.shields.io/github/v/release/m3lixir/chumdump?include_prereleases&label=release)](https://github.com/m3lixir/chumdump/releases)
5+
36
`chumdump` is a defensive CLI for inspecting AI-readable environments,
47
detecting chum-like content, generating controlled chumbait, and
58
monitoring whether AI crawlers, agents, or retrieval systems consume it.
@@ -11,9 +14,11 @@ obeyed, or leaked.
1114
## Contents
1215

1316
- [What it does](#what-it-does)
17+
- [Status](#status)
18+
- [Install](#install)
19+
- [Quickstart](#quickstart)
1420
- [Evidence model](#evidence-model)
15-
- [Install for development](#install-for-development)
16-
- [Example flow](#example-flow)
21+
- [Workflow](#workflow)
1722
- [Commands](#commands)
1823
- [Safety and scope](#safety-and-scope)
1924

@@ -29,6 +34,81 @@ obeyed, or leaked.
2934
- Generates Markdown, JSON, HTML, or SARIF-style reports.
3035
- Cleans up deployed bait files from a marked destination.
3136

37+
## Status
38+
39+
Current release:
40+
[v0.1.0-alpha](https://github.com/m3lixir/chumdump/releases/tag/v0.1.0-alpha).
41+
42+
`chumdump` is an early alpha. The core local workflow is usable, but
43+
the command surface and report schema may change before a stable
44+
release.
45+
46+
## Install
47+
48+
Install the current alpha from GitHub:
49+
50+
```shell
51+
python3 -m pip install \
52+
"git+https://github.com/m3lixir/chumdump.git@v0.1.0-alpha"
53+
```
54+
55+
Install from a local checkout for development:
56+
57+
```shell
58+
python3 -m pip install -e ".[dev]"
59+
```
60+
61+
Then check the CLI:
62+
63+
```shell
64+
chumdump --help
65+
```
66+
67+
You can also run the CLI directly from a checkout:
68+
69+
```shell
70+
PYTHONPATH=src python3 -m chumdump --help
71+
```
72+
73+
## Quickstart
74+
75+
This creates a local project, generates bait, deploys a small dump,
76+
simulates one crawler-style access log entry, records the bite, and
77+
prints a report.
78+
79+
```shell
80+
chumdump init ai-crawler-test
81+
cd ai-crawler-test
82+
83+
chumdump bait create --type canary --name violet-harbor
84+
chumdump dump build --profile website --count 1
85+
chumdump deploy ./public
86+
87+
bait_file=$(basename "$(find public/bait -name '*.md' | head -n 1)")
88+
cat > access.log <<EOF
89+
203.0.113.10 - - [18/Jun/2026:12:00:00 +0000] "GET /bait/${bait_file} HTTP/1.1" 200 123 "-" "GPTBot/1.0"
90+
EOF
91+
92+
chumdump watch --logs ./access.log
93+
chumdump bites
94+
chumdump report --format markdown --stdout
95+
```
96+
97+
Expected bite summary:
98+
99+
The `GPTBot/1.0` user agent above is a local fixture. No real crawler
100+
visits the quickstart project.
101+
102+
![chumdump terminal demo](assets/terminal-demo.svg)
103+
104+
```text
105+
Detected bites: 1
106+
- accessed bait-canary-violet-harbor-... via /bait/bait-canary-violet-harbor-....md (GPTBot)
107+
108+
TYPE TIME ACTOR BAIT
109+
accessed 18/Jun/2026:12:00:00 GPTBot bait-canary-violet-harbor-...
110+
```
111+
32112
## Evidence model
33113

34114
`chumdump` should not merely generate bait. It should preserve evidence
@@ -61,19 +141,7 @@ The bite model is the heart of the tool. Without evidence, chumdump is
61141
only a bait generator. With evidence, it becomes a small forensic
62142
record for AI ingestion and agent-behavior testing.
63143

64-
## Install for development
65-
66-
```shell
67-
python3 -m pip install -e ".[dev]"
68-
```
69-
70-
You can also run the CLI directly from a checkout:
71-
72-
```shell
73-
PYTHONPATH=src python3 -m chumdump --help
74-
```
75-
76-
## Example flow
144+
## Workflow
77145

78146
```mermaid
79147
flowchart TD

assets/terminal-demo.svg

Lines changed: 28 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)