Skip to content

Releases

d-pill 1.6.0

Choose a tag to compare

@github-actions github-actions released this 27 Sep 11:55

The useful release. Findings teach, tokens speak the standard format, and
a release is a tag away.

  • Findings that teach: every finding now carries the registry's fix and
    the reference file behind its rule. The stderr line ends with
    See: references/…; --json (and the MCP critique tool) carry them as
    fix and ref fields, so a hook or a pipeline can point the agent at
    the reading without a lookup. The registry law got stricter to match:
    an entry without a fix, or with a reference that does not resolve, is
    drift — the engine refuses to run it.
  • The DTCG export: references/tokens.dtcg.json is the Design Tokens
    Community Group shape of the token system (85 tokens — color,
    dimension, duration, cubicBezier, fontFamily, number, strokeStyle,
    shadow). Tokens Studio, Style Dictionary, and the Figma plugins that
    speak the standard consume it directly, so a design-tool pipeline and
    the gate read the same numbers. scripts/export-dtcg.py writes it,
    --check verifies it, and the no-silent-omissions law holds: a new
    token nobody mapped fails the export.
  • Release automation: push a vX.Y.Z tag and the release workflow cuts
    the GitHub release from the changelog section for that version. A
    version without a section is not a release. The floating v1 tag
    still moves by hand, on purpose.
  • CONTRIBUTING.md: the four laws, the anatomy of a rule proposal, the
    local loop, and the release procedure — the contributor contract.
  • docs/og.png: the social preview, generated offline from the real
    token colors and the mark; both demo pages carry the og: metadata.
  • New guards in CI: the DTCG check, the changelog-section check in
    check-skill.py, and the MCP smoke test now asserts every finding
    carries its teaching.

v1.5.1 — one deploy path, a stricter gate, a proof page that proves itself

Choose a tag to compare

@srivtx srivtx released this 26 Sep 22:38

The robustness release. The engine is stricter and more honest, the repo verifies more of itself, and the site has one deployment path.

  • The gate refuses a broken invocation: a path that does not exist, or is not HTML/CSS, now exits 1 instead of silently checking nothing and passing.
  • Durations and easings can no longer hide beside a var(): literal ms/s values next to token references are checked, animation shorthand easing is checked, and linear in an animation is treated as constant velocity. The inline-token-bypass rule no longer fires on var() values.
  • The MCP token tool resolves its own documented names — color.light.ink, motion.dur-1, type.ramp.text-lg, bare roles with a theme, color.hue — and reports the resolved path. The server honors a client-requested protocol version.
  • The Soft editorial recipe passes its own gate: ambient loops run on named clocks (--loop-*), the equalizer bars are pills, and the micro-gaps are token-derived. The proof page lives at docs/soft.html — gated in CI and twin-checked against the recipe — and is live on the site.
  • One Pages deployment path: branch main / docs, served as written. The stock Jekyll workflow, which built the repo root and raced the branch deploy on every push, is retired.
  • action.yml passes inputs through the environment, never interpolated into the script.
  • New CI guards: scripts/check-skill.py (spec-legal frontmatter + version agreement) and scripts/mcp-smoke.py (a real JSON-RPC session, including the hallucination refusal).
  • The universal ~/.agents/skills install path; CHANGELOG.md, SECURITY.md, ROADMAP.md, docs/llms.txt; reconciled one-liners across type/direction/mobile/craft/details/sense. Versions agree at 1.5.1 everywhere.

Full notes: CHANGELOG.md. Demo: https://srivtx.github.io/d-pill/

v1.5.0 — the gate

Choose a tag to compare

@srivtx srivtx released this 25 Sep 22:40

The critique is now executable.

The machine half of the gate

scripts/critique.py checks written HTML and CSS against d-pill's own token scales and access floors. Zero dependencies — Python's standard library and nothing else.

  • Findings: file:line:col [dpill/rule] severity: message, on stderr
  • Exit 0 clean, 2 findings, 1 broken invocation — exit 2 with stderr is the Claude Code hook contract
  • --json for pipelines, --allow for written exceptions, --strict, --quiet
  • --selftest proves every rule fires; CI runs it on every push

Rules as data

references/rules.json — the registry: id, severity, what the engine checks, the fix, the reference behind each rule. The engine verifies the registry matches its implementation before every run. The scales it checks are read from tokens.json. No second set of numbers anywhere.

Three shells, one engine

  • CLI — the engine itself
  • MCP — scripts/mcp-server.py, stdio JSON-RPC 2.0 on the standard library: critique, list_rules, token
  • CI — this repository is a GitHub Action: uses: srivtx/d-pill@v1

Adoption

  • Spec-legal frontmatter (closed field set; triggers live in description; off-spec keys are no longer silently dropped)
  • Install: git clone, npx skills add srivtx/d-pill, or /plugin marketplace add srivtx/d-pill
  • llms.txt at the root; demo page in docs/ that passes its own gate
  • Frontmatter follows the Agent Skills spec exactly

Frontier (2026 jury data)

New gated moves: micro-interaction density, scrollytelling, page-transition identity, generative imagery, liquid glass, and the post-2026 native-CSS set. Anti-grid verdict recorded: 3 of ~80 award winners — peaked as a meme, the gates were right.

The number behind the gate: a 2026 audit of 375 production sites found 40.4% average token coverage and 17,731 hardcoded values. Drift is counted. Now it is checked.