AI Design Slop Index audit engine, schema, CLI, and agent adapters.
Project description
ADSI Agent Kit v3.0
ADSI = AI Design Slop Index. ADSI is a production-oriented product/UI quality gate for detecting observable design slop symptoms: unrealistic data, passive workflows, inconsistent status logic, weak accessibility, generic visual clichés, layout brittleness, and missing production states.
ADSI does not infer whether a UI was made by AI. It scores whether the UI behaves like a real product.
What changed in v3
ADSI v3 upgrades v2 into a broader production stack:
- Python-first ADSI core.
- Static heuristic scanner.
- Browser collector via Playwright: screenshot, DOM, computed styles.
- Contrast checker from computed styles.
- SARIF reporter for code scanning annotations.
- Before/after ADSI diff.
- MCP-compatible stdio server.
- Antigravity
/adsi [do] [target]workflow. - Agent adapters for Antigravity, Cursor, Claude Code, Codex, Hermes-style multi-agent runners, and OpenClaw.
- Optional Node Playwright companion package.
- Stage-by-stage quality audit log.
- 10 unit tests and example reports.
Install locally
cd ADSI-Agent-Kit-v3
python -m pip install -e .
Optional browser capture dependency:
python -m pip install playwright
python -m playwright install chromium
Optional Node browser collector:
cd packages/adsi-browser
npm install
npx adsi-browser-collector --url http://localhost:3000/admin --out artifacts/adsi/admin
Antigravity usage
Install into your workspace:
adsi init /path/to/repo --platform antigravity
Then in Antigravity, use:
/adsi [do] [target]
Examples:
/adsi scan dashboard admin
/adsi fix dashboard admin
/adsi collect http://localhost:3000/admin
/adsi contrast artifacts/adsi/admin/computed-styles.json
/adsi diff reports/before.json reports/after.json
The Antigravity adapter writes:
.agents/workflows/adsi.md
.agents/skills/adsi.md
.agents/skills/adsi/SKILL.md
AGENTS.md
ANTIGRAVITY.md
CLI usage
Scan code or HTML
adsi scan ./src --product "My Product" --screen "Admin Dashboard" \
--output reports/adsi-audit.json \
--report reports/adsi-audit.md \
--sarif reports/adsi-audit.sarif
Capture browser artifacts
adsi collect http://localhost:3000/admin --out artifacts/adsi/admin
Outputs:
artifacts/adsi/admin/screenshot.png
artifacts/adsi/admin/dom.html
artifacts/adsi/admin/computed-styles.json
artifacts/adsi/admin/capture.json
Check contrast
adsi contrast artifacts/adsi/admin/computed-styles.json \
--output reports/adsi-contrast.json \
--fail-on 1
Validate audit JSON
adsi validate reports/adsi-audit.json
Score an existing audit
adsi score examples/corelasi_dashboard_audit.v3.json --breakdown
Use as a release gate
adsi gate reports/adsi-audit.json --max-score 20
Exit code is 1 when the gate fails.
Compare before/after
adsi diff reports/before.json reports/after.json \
--output reports/adsi-diff.json \
--fail-on-regression \
--max-score 20
Run MCP-compatible server
adsi mcp
Exposed tools:
adsi_scanadsi_scoreadsi_validateadsi_diff
Install agent adapters
adsi init /path/to/repo --platform all
Platform options:
antigravitycursorclaudecodexopenclawhermesgenericall
Recommended production workflow
- Run
adsi scanas deterministic first-pass audit. - For running apps, run
adsi collectandadsi contrast. - Ask your coding agent to fix only top ADSI areas.
- Run lint/typecheck/test/build.
- Re-run
adsi scan. - Use
adsi diffto verify improvement. - Use
adsi gate --max-score 20before production claims.
Scoring bands
| Score | Band | Release decision |
|---|---|---|
| 0-19 | low_slop | pass |
| 20-39 | mild_moderate_slop | warn |
| 40-59 | high_slop | block |
| 60-100 | severe_slop | block |
Repository map
| Path | Purpose |
|---|---|
adsi/ |
Python package and CLI engine |
schemas/ |
ADSI audit JSON schema |
rubric/ |
ADSI v3 scoring rubric |
rules/ |
Heuristic rule catalog |
adapters/ |
Platform-specific agent instruction files |
packages/adsi-browser/ |
Optional Node/Playwright collector |
docs/V3_ARCHITECTURE_AND_PACKAGE_STRATEGY.md |
Design and package decision |
docs/STAGE_AUDIT_LOG.md |
Stage-by-stage quality audit |
prompts/ |
Audit and repair prompts |
examples/ |
Example inputs and baseline audit |
reports/ |
Example generated reports |
tests/ |
Unit tests |
Limitations
- Static scan is deterministic but not a substitute for product-context review.
- Browser collection requires Playwright.
- MCP server is a minimal stdio foundation; it intentionally avoids extra SDK dependencies.
- Contrast is computed from captured browser styles, so it is only as accurate as the rendered state you capture.
Publishing
This repository includes publish-ready workflows and scripts. See docs/PUBLISHING.md.
Recommended release flow:
./scripts/prepublish-check.sh
./scripts/build-release.sh
git tag v3.0.0
git push origin v3.0.0
Use PyPI as the primary distribution for adsi-agent-kit; use npm only for the optional adsi-browser-collector Playwright companion.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file adsi_agent_kit-3.0.0.tar.gz.
File metadata
- Download URL: adsi_agent_kit-3.0.0.tar.gz
- Upload date:
- Size: 52.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b8c434dafdac3004ebd218d32ad5023b3fba3199d146c2d8b0fb66351946feb
|
|
| MD5 |
bb2a10afc2c68cd8dee615b9a4e8db84
|
|
| BLAKE2b-256 |
c645331b04df6a6adf9143a60303ff7f87287db60f8149212b0c4671ceae4750
|
File details
Details for the file adsi_agent_kit-3.0.0-py3-none-any.whl.
File metadata
- Download URL: adsi_agent_kit-3.0.0-py3-none-any.whl
- Upload date:
- Size: 34.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1df70310053890803310a443afa52ef3cf49f0a912dcc50f9598ca54c4d291a
|
|
| MD5 |
6875a145df7c048b348bf74b00709380
|
|
| BLAKE2b-256 |
e4dc6e1cb771f1ae950928ad1540f043126ebd47cd3eddc28843df4e9ad8f0ae
|