Run the ai-detection coding-assessment evidence workbench, train a Python code detector, inspect retained proof, or evaluate code-detection readiness. Use when the user asks for AI code detection, assessment evidence, or ai-detection.
Installs into .claude/skills of the current project.
Are you the author of Ai Detection?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/grahama1970-ai-detection)
---
name: ai-detection
description: >
Run the ai-detection coding-assessment evidence workbench, train a Python code
detector, inspect retained proof, or evaluate code-detection readiness. Use
when the user asks for AI code detection, assessment evidence, or ai-detection.
triggers:
- AI code detection
- coding assessment evidence
- ai-detection
provides:
- coding-assessment-evidence
- code-detection-research
composes:
- setup-project
- agentic-evals
- jev
- ops-huggingface
complies:
- best-practices-python
- best-practices-skills
taxonomy:
- validation
- precision
- evidence
disciplines:
- ml-training
- evaluation-quality
runtime_self_improvement: basic
---
# ai-detection
Read `docs/PROJECT_KNOWLEDGE.md` relative to this skill first. README
explains the developer experience; this contract governs agent operation.
Use `./run.sh doctor`, `./run.sh serve`, `./run.sh analyze <source>`,
`./run.sh qualify-human-provenance <record.json>`, `./run.sh slop-check <source>`,
and `./sanity.sh`. `slop-check` emits concrete
mechanism observations and `$triage-error` commands; it never infers authorship.
`run.sh` uses this skill's own pyproject via uv, not an implicit system Python.
Consult `docs/EVALUATION.md` for full qualification, and `docs/DATASET.md` before
training or importing a Hugging Face benchmark.
## Boundaries
Consent precedes capture. Browser reports are untrusted observations. Never use
paste behavior, typing cadence, or a scalar score as proof of misconduct.
No model means abstain. Synthetic training never earns calibration authority.
Candidate code is parsed, never executed. Assessment inference is local by default;
provider upload is forbidden except for the explicit `jev-shadow` research command
with per-call `--allow-provider-upload`. Jev is advisory only and never changes a
production disposition, Battle score, or release gate. No global monitoring.
Heavy data/weights stay on configured external storage, not in this skill folder.
Hugging Face snapshots may advance external-benchmark research only after pinned
revision and license/provenance review. Public GitHub code can satisfy the human side
of REQ-14 only when attributable provenance supports the immutable goal's
`strong_human_label`; missing AI markers, style, or repository metadata alone do not.
## Battle requirement
A Battle smoke run proves wiring only. It never counts as Battle coverage, project
progress, or an exhausted actionable gap. When the goal calls for `$battle`, the
required artifact is a meaningful adversarial campaign: multiple attack families,
actual Red wins, Blue changes caused by those wins, independent Judge replay,
adaptive-lineage evidence, and a Battle campaign aggregate/report. Replaying one
fixture or campaign id does not count as another Battle. Missing strong-provenance human
data may block authorship-efficacy claims, but it never blocks mechanism Battles
against licensed local opponents, synthetic generators, parser boundaries,
semantic transforms, artifact tampering, or fail-closed behavior. A workflow must
return `iteration_cap_reached`, not `blocked_external`, while this campaign is
missing.
The retained Python mechanism campaign is generated by
`scripts/python_battle.py` and checked by `scripts/check_python_battle.py`.
It uses the frozen synthetic model only to expose score fragility: 104 cases
across eight no-op padding families, networkless Docker behavior replay, causal
Blue repair, independent Judge replay, and adaptive lineage. The retained
checker verifies every red/blue source hash, Docker isolation metadata, runner
hashes, and behavior receipts; its tamper regression proves changed artifacts
are rejected. Its evidence is not real-human efficacy,
authorship attribution, competitor parity, or release qualification.
## Owning skill gates
`./run.sh native-setup` delegates to setup-project and `./run.sh native-evals
--release` delegates to agentic-evals through `AGENT_SKILLS_ROOT` (this
agent-skills checkout works: `export AGENT_SKILLS_ROOT=<repo root>`). A missing
native checkout is BLOCKED_EXTERNAL, not PASS. Do not implement a replacement
agentic runner, forge native receipts, disable the required client-contract gate,
or weaken fixtures to obtain READY.
Project-local Pi workflow: validate with `uv run --project skills/ai-detection
python skills/ai-detection/scripts/check_pi_workflow.py` or `./sanity.sh`. Launch
from the repo root with
`skills/ai-detection/.pi/workflows/ai-detection.workflow.js`; initial mode is
`gate_only`, so a dry run verifies gates and must not repair, land, commit, or
push. Proof boundary: the workflow coordinates existing gates and independent
review only; it does not prove real-human efficacy or satisfy REQ-14 without
strong-provenance human labels and unseen-family evaluation.
Report separate facts: executed checks, assertion outcomes, core mechanisms,
browser proof, real-human efficacy, and release readiness. Retain source hashes
and failures. Real-human detection and native release evidence remain required.