Skip to content

Repository files navigation

labz-coder

Coding tools and agentic-dev utilities for labz-style control-plane work. This repo is not the product (labz); it is the tooling bench.

First deliverable: a trial suite of structural code-quality tools (clones, complexity, dead code, import boundaries) — the class of issues prose-scan hinted at on Python, without SonarQube weight.

Goal

  1. Run the suite against /home/prox-admin/repo/labz (or any TARGET).
  2. Read reports under reports/ and decide what is signal.
  3. Once proven, port chosen tools into labz make audit (see labz docs/_uplift/01-MAKE-QUALITY-GATES.md) — not before.

Tools in the trial (no Sonar)

Tool Signal Runner
jscpd Copy-paste / token clones npx jscpd
radon Complexity, maintainability, raw LOC Python
xenon Fail on radon thresholds (trial: soft) Python
lizard Long functions / CCN Python
vulture Likely dead code Python
import-linter Layer contracts (draft contracts for labz) Python
pydeps Dependency graph (optional DOT/SVG) Python

Not in v1 (optional later): CodeScene (SaaS), wily (history), Semgrep doctrine pack (lives better next to product once baseline is clean).

Setup

cd /home/prox-admin/repo/labz-coder
uv venv --python 3.13
source .venv/bin/activate
uv pip install -e ".[dev]"
# jscpd via npx (no global install required); or: npm ci

Run against labz

export LABZ_ROOT=/home/prox-admin/repo/labz   # default if unset
make trial          # full suite → reports/<stamp>/
make trial-quick    # clones + complexity only
make summary        # print last report SUMMARY.md

Or:

./scripts/run_trial.sh /home/prox-admin/repo/labz

Layout

configs/          # tool configs (jscpd, import-linter, xenon)
scripts/          # run_trial.sh, render_summary.py
src/labz_coder/   # future agentic helpers (empty package for now)
reports/          # gitignored outputs (except .gitkeep)

First trial results

See docs/TRIAL-2026-07-22.md and reports/latest/SUMMARY.md after make trial.

Short take: jscpd + radon/xenon + lizard + import-linter are keepers; vulture needs whitelist work (job handlers look “dead”); pydeps optional; no Sonar required.

Promoting into labz make audit

Criteria before folding a tool into labz:

  1. Report is actionable (clones map to real files; not pure noise).
  2. Runtime acceptable on estate host (minutes, not hours).
  3. Thresholds agreed so green is meaningful (or tool stays report-only).
  4. One private Makefile recipe + docs in labz docs/_uplift/.

Until then, this repo is the only place these tools run by default.

License / ownership

Internal tooling for decoded-labs / labz. Not a product surface.

About

Coding tools and agentic-dev utilities for labz-style control-plane work

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages