Skip to content

Commit 3bff226

Browse files
committed
docs: add no-video demo proof path
1 parent 2b3864c commit 3bff226

5 files changed

Lines changed: 158 additions & 11 deletions

File tree

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: IntentProbe action smoke
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
branches: ["main"]
7+
paths:
8+
- "action.yml"
9+
- ".github/workflows/intentprobe-action-smoke.yml"
10+
- "docs/GITHUB_ACTION.md"
11+
- "docs/DEMO_SCRIPT.md"
12+
- "docs/V0_2_DEMO_PACK.md"
13+
pull_request:
14+
paths:
15+
- "action.yml"
16+
- ".github/workflows/intentprobe-action-smoke.yml"
17+
- "docs/GITHUB_ACTION.md"
18+
- "docs/DEMO_SCRIPT.md"
19+
- "docs/V0_2_DEMO_PACK.md"
20+
21+
jobs:
22+
action-smoke:
23+
runs-on: ubuntu-latest
24+
steps:
25+
- uses: actions/checkout@v6
26+
27+
- name: Safe fixture passes
28+
uses: ./
29+
with:
30+
paths: |
31+
research/fixtures/scan_path/safe-weather-package
32+
fail-on: block
33+
34+
- name: Poisoned fixture blocks
35+
id: poisoned
36+
uses: ./
37+
continue-on-error: true
38+
with:
39+
paths: |
40+
research/fixtures/scan_path/poisoned-skill
41+
fail-on: block
42+
local-files-only: "true"
43+
44+
- name: Assert poisoned fixture was blocked
45+
if: steps.poisoned.outcome != 'failure'
46+
run: |
47+
echo "Expected poisoned fixture to fail with a block verdict."
48+
exit 1

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@ jobs:
8282
See [docs/GITHUB_ACTION.md](docs/GITHUB_ACTION.md) for target paths, inputs,
8383
and exit behavior.
8484
85+
Want the quickest proof without a video? Run the
86+
[demo script](docs/DEMO_SCRIPT.md).
87+
8588
---
8689
8790
## How it works

ROADMAP.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Backed by research: a 60-rule regex scanner catches **0 / 485** on the MCPTox be
2424
- [x] **10. Public launch hygiene.** Honest README with benchmark table, local privacy note, sample reporting guide, GitHub issue templates, SECURITY policy, package build gate, and Reddit launch draft.
2525
- [x] **11. CI gate preview.** Root `action.yml` lets a repo run IntentProbe from GitHub Actions with `uses: mcpware/IntentProbe@main`; docs live in `docs/GITHUB_ACTION.md`.
2626
- [ ] **12. First public feedback loop.** Post publicly, ask users to scan real MCP servers / skills / packages, triage missed detections and false positives into the next data curriculum.
27-
- [ ] **13. v0.2 demo pack.** Follow `docs/V0_2_DEMO_PACK.md`: demo repo, short scan video, runtime receipt demo, action verification, and buyer-grade evidence packet.
27+
- [ ] **13. v0.2 demo pack.** Follow `docs/V0_2_DEMO_PACK.md`: action smoke, no-video demo script, demo repo, runtime receipt demo, and buyer-grade evidence packet.
2828

2929
## Key technical facts (do not relearn these)
3030

@@ -42,6 +42,7 @@ Backed by research: a 60-rule regex scanner catches **0 / 485** on the MCPTox be
4242
- Scanner runtime: `intentprobe/scanner/core.py`, `intentprobe/scanner/cli.py`, and `intentprobe/scanner/hook.py`.
4343
- Filesystem target extraction: `intentprobe/scanner/targets.py`.
4444
- GitHub Action metadata: `action.yml`.
45+
- No-video demo script: `docs/DEMO_SCRIPT.md`.
4546
- v0.2 demo pack living plan: `docs/V0_2_DEMO_PACK.md`.
4647
- Default shipped probe artifact: `intentprobe/scanner/artifacts/qwen-pooled-curated-core-l13-15-v2/`.
4748
- Research compatibility wrappers: `research/activation_scanner_core.py`, `research/activation_scanner_cli.py`, and `research/activation_scanner_hook.py`.

docs/DEMO_SCRIPT.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# Demo Script
2+
3+
This is the no-video demo. It gives people the same proof a terminal video
4+
would show, but it is easier to reproduce and harder to dismiss as editing.
5+
6+
## Local CLI demo
7+
8+
```bash
9+
python3 -m pip install intentprobe
10+
git clone https://github.com/mcpware/IntentProbe.git
11+
cd IntentProbe
12+
```
13+
14+
Scan the safe package fixture:
15+
16+
```bash
17+
intentprobe scan-path research/fixtures/scan_path/safe-weather-package \
18+
--format summary \
19+
--fail-on block
20+
```
21+
22+
Expected result: both candidate files are `allow`.
23+
24+
Scan the poisoned skill fixture:
25+
26+
```bash
27+
intentprobe scan-path research/fixtures/scan_path/poisoned-skill \
28+
--format summary \
29+
--fail-on block
30+
```
31+
32+
Expected result: `SKILL.md` is `block`, and the command exits with code `2`.
33+
The evidence should mention both the activation score and static findings for
34+
private keys plus exfiltration.
35+
36+
## GitHub Action demo
37+
38+
Use this workflow in a repo that contains MCP configs, skills, or tool
39+
manifests:
40+
41+
```yaml
42+
name: IntentProbe scan
43+
44+
on:
45+
pull_request:
46+
workflow_dispatch:
47+
48+
jobs:
49+
scan-ai-tools:
50+
runs-on: ubuntu-latest
51+
steps:
52+
- uses: actions/checkout@v4
53+
- uses: mcpware/IntentProbe@main
54+
with:
55+
paths: |
56+
.
57+
fail-on: block
58+
```
59+
60+
For a narrower scan:
61+
62+
```yaml
63+
paths: |
64+
.mcp.json
65+
mcp.json
66+
mcp/**/*.json
67+
skills/**
68+
packages/**/package.json
69+
```
70+
71+
## What this proves
72+
73+
- The scanner can be installed by a stranger.
74+
- Safe MCP-style package docs pass.
75+
- A poisoned skill that reads private keys and uploads them gets blocked.
76+
- The same scanner can run as a GitHub Action gate before a pull request
77+
merges.
78+
- Scan targets and results stay inside the local machine or GitHub runner.
79+
80+
## What this does not prove
81+
82+
- It does not prove every poisoned tool will be caught.
83+
- It does not replace sandboxing, permissions, code review, or runtime controls.
84+
- It does not prove enterprise readiness without more deployment calibration.
85+
86+
The point of v0.2 is product proof: CLI, CI gate, runtime hook, reproducible
87+
benchmarks, and a clean feedback loop for missed detections.

docs/V0_2_DEMO_PACK.md

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,24 +33,25 @@ Done:
3333
- Public README, FAQ, evidence packet, operator decision docs, and competitive
3434
landscape.
3535
- GitHub Action metadata and workflow docs added for CI gating.
36+
- No-video demo script added for copy-paste CLI and Action proof.
3637

3738
Not done yet:
3839

3940
- No broad external user feedback loop yet.
4041
- No public demo repo showing a poisoned MCP pull request being blocked.
41-
- No short video that a non-research person can understand in 60 seconds.
4242
- No GitHub Action Marketplace listing yet.
4343
- No calibrated enterprise policy pack for allow/warn/redact/block/review.
4444
- No public download or usage dashboard.
45+
- No short video yet. This is deliberately optional, not a v0.2 blocker.
4546

4647
## v0.2 milestones
4748

4849
| Milestone | Status | Evidence target |
4950
|---|---|---|
5051
| M0. One-command install | Done | PyPI package installs and scans locally. |
5152
| M1. CI gate | In progress | `action.yml`, docs, and one green action run. |
52-
| M2. Demo repo | Next | A tiny MCP repo with one safe PR and one poisoned PR. |
53-
| M3. 60-second demo | Next | GIF/video: install, scan, block, JSON evidence. |
53+
| M2. No-video demo | In progress | `docs/DEMO_SCRIPT.md` plus action smoke workflow. |
54+
| M3. Demo repo | Next | A tiny MCP repo with one safe PR and one poisoned PR. |
5455
| M4. Runtime receipt demo | Next | `serve-jsonl` demo showing allow/warn/block receipts. |
5556
| M5. Public challenge loop | Open | Issues convert misses and false positives into labeled samples. |
5657
| M6. v0.2 release page | Open | Release notes with action usage, demo links, and benchmark links. |
@@ -59,21 +60,22 @@ Not done yet:
5960
## Immediate build sequence
6061

6162
1. Finish the GitHub Action and README/docs entrypoint.
62-
2. Push and verify the action metadata is visible from GitHub.
63-
3. Create a tiny demo repository or fixture workflow:
63+
2. Add and run an action smoke workflow:
64+
safe fixture passes, poisoned fixture blocks.
65+
3. Push and verify the action metadata is visible from GitHub.
66+
4. Create a tiny demo repository or fixture workflow:
6467
`safe-weather-mcp` passes, `credential-health-check` blocks.
65-
4. Record the exact command/output as a short terminal demo.
66-
5. Add a `docs/DEMO_SCRIPT.md` that anyone can follow without knowing
67-
activation probing.
68+
5. Record exact command/output in a text demo script anyone can follow without
69+
knowing activation probing.
6870
6. Cut a v0.2 release once the action, demo script, and smoke evidence are all
6971
in one place.
7072

7173
## Next 72 hours
7274

7375
- Make the CI install path copy-pasteable.
7476
- Add a "scan this repo in GitHub Actions" section to README.
75-
- Produce a 60-second demo: clone, install, scan safe, scan poisoned, show
76-
block, show JSON.
77+
- Produce no-video proof: clone, install, scan safe, scan poisoned, show block,
78+
show JSON, and link the green action smoke.
7779
- Reply to technical comments with concrete product behavior, not research
7880
abstraction.
7981
- Track every external comment, star burst, install question, and failure case
@@ -128,6 +130,11 @@ integration example.
128130
Do not spend a week polishing wording while the product surface stands still.
129131
The repo needs fresh proof more than perfect prose.
130132

133+
Video is optional. For scanners, a terminal video is weaker than a runnable
134+
workflow because most scanner demos look the same. Prioritize reproducible proof
135+
first: green CI, expected block, expected allow, clear JSON, and public issue
136+
loop.
137+
131138
## Claim boundaries
132139

133140
Safe to say:
@@ -151,3 +158,4 @@ Do not say:
151158
|---|---|---|
152159
| 2026-06-08 | Build GitHub Action before more posting. | CI turns IntentProbe from "try this CLI" into an admission gate people can wire into repos. |
153160
| 2026-06-08 | Keep the public pack framed as a demo/evidence pack. | It still serves the acquisition path, but reads better to users, partners, and buyers. |
161+
| 2026-06-08 | Defer video and prioritize runnable proof. | Security scanner videos are low-signal; action smoke, demo script, and reproducible commands create stronger trust. |

0 commit comments

Comments
 (0)