Commit Graph
114 Commits
Author SHA1 Message Date
0xDarkMatterandGitHub 5f1b6ddc66 feat(line): add slopegraph variant for change between two states (#106) 2026-08-18 22:31:48 -07:00
29917724f8 feat(bar): add dumbbell as a Bar variant (#107)
Documents the dumbbell in type-bar.md's existing Variants section,
alongside grouped and stacked bars. Reference-only, matching the
precedent those two set and the one #100 landed for datalake: no
example assets, no gallery entries.

Not a new visual type. The count stays at 28 and SKILL.md is untouched
-- no selection-table row, no frontmatter hook, no manifest description
change.

Covers layout on the shared 1000x500 composition, an element pattern,
and five honesty rules: no truncated axis, one scale with both endpoints
labelled, the connector is a gap and not a trajectory, a stated row
order, and no imputed or silently dropped endpoints.

Two of those rules live in a formula rather than a drawing, so they ship
as a checker with adversarial fixtures per ADR 0005:

- Domain resolution is exhaustive over sign. A rule phrased as
  "all-positive / all-negative" silently drops data that only touches
  zero, and drops all-zero data entirely -- where floor == ceil == 0 and
  the position formula divides by zero. resolve_domain() partitions the
  space, guarantees ceil > floor, and returns a finite fallback span for
  all-zero input so every dot lands on the floor.
- Non-text contrast is carried by the boundary, not the fill. Accent on
  paper is 2.86:1 skin-wide, and shape redundancy does not waive WCAG
  1.4.11, so the solid endpoint takes a 1px ink stroke (11.82:1) and the
  connector 55% ink on light / 40% on dark (3.19:1 and 3.24:1). The
  checker reads these tokens out of the reference, so prose and
  thresholds cannot drift apart.

scripts/test-verify-dumbbell.py covers both polarities: all-zero,
zero-touching, mixed-sign, empty and non-finite input, observed-extremes
truncation, and the sub-3:1 treatments this replaces. Wired into CI and
CONTRIBUTING alongside the treemap and geometry gates.

Other things the geometry and house style forced: the focal bar pattern
(12% tint plus accent stroke) does not survive at a 6px dot, so the pair
separates by fill weight; a 64px row pitch from y=96 overflows the y=420
plot floor at seven rows, so pitch and origin are tabulated per row
count; rgb(45,49,66) IS the dark paper, so light-theme hairlines
composite to 1.000:1 and must invert; label offsets keyed to start/end
put both labels inside the pair on a decreasing row; a value on the
domain floor collided with its category label; and the value axis was
missing the Geist Mono 7px title every other cartesian type carries.

Co-authored-by: 0xDarkMatter <0xDarkMatter@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 18:49:39 -05:00
Cathryn LaveryandGitHub 0947fdb6e5 fix(drawio): keep import command reference in sync (#109) 2026-08-18 12:38:57 -05:00
Vitalii FiliuchkovandGitHub 7942fa0227 docs(high-level): register datalake examples as unclustered High-Level variants (fixes #55) (#100)
Added descriptions for the shipped datalake examples (example-datalake.html,
-datalake-dark.html, -datalake-full.html) to the High-Level type reference,
categorising the five-phase data stack as an unclustered High-Level variant.
2026-08-18 08:49:01 -07:00
Cathryn LaveryandGitHub 9ec2497b85 fix(drawio): escape untrusted Markdown digest labels (#91)
Fold all line-boundary forms and escape Markdown/HTML syntax in draw.io digest headings, lists, and tables; add adversarial injection coverage; publish synchronized plugin version 2.5.1. Fixes #81.
2026-08-18 01:12:04 -07:00
0xDarkMatterandGitHub de75c0adb5 feat(types): add treemap for part-of-whole by area (#87)
Add Treemap as the 28th visual type with light, dark, and editorial variants; area, label, and information-marker verification; synchronized documentation and manifests; and plugin version 2.5.0.
2026-08-18 00:50:19 -07:00
buildnwriteandGitHub 72f17665cb fix(mermaid): parse compact labeled links (#85)
Recognize compact Mermaid edge labels without phantom nodes while preserving near-miss operators and chained links, with regression coverage and synchronized plugin version 2.4.8. Fixes #80.
2026-08-18 00:29:46 -07:00
buildnwriteandGitHub 86e00063d3 fix(verify-geometry): recognize wider label masks (#84)
Extend the verified label-mask width range to 200px while retaining the 14px height cap, with adversarial and shipped-asset coverage, and publish synchronized plugin version 2.4.7.
2026-08-18 00:24:05 -07:00
buildnwriteandGitHub aebcb5dd24 fix(lint): allow Korean fallback stacks (#83)
Document and validate exact Korean proportional and monospace fallback stacks, with strict regression coverage and synchronized plugin version 2.4.6.
2026-08-18 00:18:33 -07:00
FakeRocket543andGitHub 3fa2820814 docs(readme): fix slash-command names (#82)
Align the documented draw.io import and diagram export commands with the shipped plugin command filenames, and publish synchronized plugin version 2.4.5.
2026-08-18 00:13:54 -07:00
Aaron Roe FulkersonandGitHub aa6cd4e630 fix(lint): restore Python 3.9 compatibility (#58)
Add deferred annotation evaluation, enforce Python 3.9 linter coverage in CI, and publish synchronized plugin version 2.4.4.
2026-08-17 23:35:56 -07:00
e48df3fb1e fix(gallery): add accessible keyboard navigation (#56)
Co-authored-by: Cathryn Lavery <cathryn@bestself.co>
2026-08-17 15:03:34 -07:00
4a769fe3eb fix(mermaid): parse quoted participants, create, and the full sequence arrow vocabulary (#54)
* fix(mermaid): parse quoted participants, create, and the full sequence arrow vocabulary

The shipped sequenceDiagram extractor silently dropped or rejected
Mermaid-valid constructs:

- `participant "Alice Smith"` (quoted name, no alias) vanished from the
  IR because the participant regex only accepted bare [\w.:-]+ ids.
- `participant "Alice Smith" as A` and `actor "Bob Builder" as B`
  lost their quoted display names and aliases.
- `create participant B` directives were ignored.
- Bidirectional messages `A<<->>B` / `A<<-->>B` (Mermaid v11.0+)
  hard-failed with "malformed edge".
- `->` / `-->` (open arrows with no arrowhead per the Mermaid docs)
  were misclassified as filled arrows.
- A message touching a declared `actor` overwrote its shape with
  "lifeline" because endpoints were force-added as lifelines.

The fix expands the participant regex to quoted names (with or without
an `as` alias) plus the `create` prefix, teaches the message regex the
bidirectional and open arrow forms, preserves declared actor shapes, and
classifies open arrows as undirected with no arrowhead. Multi-word
endpoints introduced by quoted declarations resolve correctly while
compact forms like `A-->>B` keep their ids. All forms were verified
against the real Mermaid v11.16.1 parser.

Adds a verification gate covering every form and updates the import
reference to document the supported sequence grammar.

* chore: bump plugin version to 2.4.2

---------

Co-authored-by: Cathryn Lavery <50469282+cathrynlavery@users.noreply.github.com>
Co-authored-by: Cathryn Lavery <cathryn@bestself.co>
2026-08-17 15:00:41 -07:00
AtirnaandGitHub 7ed2b20a5a fix(lint): allow CJK fallback stacks documented in output-spec.md (#75)
Extend lint-skin.py font allowlist with the Hiragino/Noto/Yu Gothic
families from output-spec.md §4 and add adversarial tests including a
Yu Gothic UI rejection case.

Fixes #74
2026-08-17 13:44:37 -07:00
Cathryn LaveryandGitHub 09df49d8d1 Add named client profiles (#61)
* feat: add client profiles

* ci: pin shell to bash for docs_sync step

The docs_sync step runs two commands in a multi-line block. Without a
pinned shell, the windows-latest matrix leg uses pwsh, where a non-zero
exit from the first command may not abort the block, masking a gate
failure. Pin shell: bash to match the icons and summary steps.
2026-08-14 14:28:44 -07:00
Vitalii FiliuchkovandGitHub a5e3978088 docs: unify product naming — diagram/diagram-design instead of Schematic (#50)
Rename remaining "Schematic" references to diagram / diagram-design / Diagram Design across SKILL.md, onboarding.md, and style-guide.md. Rebased onto current main and bumped both plugin manifests to 2.3.5. Thanks @philyuchkoff.
2026-08-13 19:34:14 -07:00
Praveen BishnoiandGitHub e46edf9005 feat(motion): add example-paved-road-animated.html for Semantic Pattern #5 (Secure Paved Road) (#51)
* feat(motion): add base SVG layout and trust boundaries for example-paved-road-animated.html

* feat(motion): add 5-step interactive semantic items for Pattern #5 (Secure Paved Road)

* feat(motion): attach canonical SHA-pinned controller and WCAG AA controls

* docs(gallery): register example-paved-road-animated.html in assets/index.html gallery

* fix(motion): adjust attacker node Y and bypass connector to run cleanly through empty gap without crossing audit service box

* fix(motion): redesign paved road architecture with dedicated firewall node and solid opaque badge chips

* fix(motion): add signature legend bar and route audit connectors clear of firewall node

* docs(motion): add footer legend bar to fan-in queue animated diagram

* fix(motion): implement true SVG visual legend footer with mini-arrows and mini-rects

* fix(motion): correct Security Gate deployment flow, SOC arrow direction, and footer legend labels

* fix(motion): complete footer legend with 4 distinct box types matching diagram elements exactly

* chore(clean): remove queue diff from paved-road branch so diff contains only paved-road example

* chore(release): bump plugin version to 2.3.4 for synchronized version gate
2026-08-13 21:27:39 -05:00
Cathryn LaveryandGitHub e1d47bb0c4 docs(readme): add Trendshift badge (#53) 2026-08-13 19:24:43 -07:00
Praveen BishnoiandGitHub e447ec5ece feat(motion): add example-queue-animated.html for Semantic Pattern #1 (Fan-in Queue / Bottleneck) (#49)
* feat(motion): add example-queue-animated.html for Semantic Pattern #1 (Fan-in Queue / Bottleneck)

* docs(gallery): register example-queue-animated.html in assets/index.html gallery

* fix(motion): adjust queue container height and step 5 box placement to prevent overlap

* fix(motion): expand slot rects and right column nodes to eliminate text overflow

* chore(release): bump plugin version to 2.3.3 for synchronized version gate

* docs(motion): add footer legend bar to fan-in queue animated diagram

* fix(motion): implement true SVG visual legend footer with mini-arrows and mini-rects

* fix(motion): unify queue depth status badge into a single dynamic full-height badge

* fix(motion): refine queue traffic rates and state description for realistic backpressure math
2026-08-13 14:09:38 -07:00
Cathryn Lavery f3622cf66a chore(release): bump plugin version to 2.3.2
Ships the fixes merged in #38, #42, and #46 through the native plugin
auto-update path.
2026-08-12 21:50:36 -07:00
kira-ariakiandGitHub 2d4697446b fix(examples): stop label masks being clipped by node fills (#46)
Moves six clipped labels onto free connector segments and adds scripts/verify-geometry.py with tests, CI wiring, ADR 0005, and SKILL.md rule 6 so the defect cannot recur. Fixes #45.
2026-08-12 21:50:16 -07:00
kabire2014-engandGitHub f928399e20 fix(export): escape ampersands in the injected font import (#38)
A standalone SVG is parsed as strict XML where a bare ampersand is a fatal entity error. Escaping is valid in both SVG and HTML. Fixes #37.
2026-08-12 21:50:09 -07:00
bjmendez76andGitHub 2e2b45e7c9 fix(onboarding): first-run style gate checks the shipped default palette (#42)
The gate compared accent against the wrong default hex, so it never fired on a default install.
2026-08-12 21:50:00 -07:00
Cathryn LaveryandGitHub c238e8ab86 Merge pull request #44 from cathrynlavery/feat/automatic-plugin-updates
feat(plugin): automatic updates via native marketplaces and a version gate
2026-08-12 20:45:21 -07:00
Cathryn Lavery b6cae1e2e6 feat(plugin): automatic updates via native marketplaces and a version gate
Installs previously drifted: a standalone `npx skills add` copy never
followed the repo, and Claude Code disables auto-update for third-party
marketplaces by default. Route every client through its own marketplace so
merged changes reach users through the native update path.

- Add `.agents/plugins/marketplace.json` so Codex resolves the plugin from
  a Git marketplace it refreshes at startup.
- Add `author` to the Claude manifest so both native manifests agree.
- Add `scripts/bump-plugin-version.py` to increment the Claude and Codex
  versions together; it refuses to run when they already differ.
- Add `scripts/verify-plugin-package.py` to gate synchronized, strictly
  increasing semver against the base ref, marketplace paths that stay
  inside the repo root, and the packaged skill.
- Add `scripts/test-plugin-package.py` covering the adversarial cases:
  missing bump, mismatched manifests, malformed semver, and a marketplace
  target that does not exist.
- Add a `plugin-package` CI job running the tests, the version gate against
  the PR base sha, and `claude plugin validate . --strict`.
- Document the per-PR bump requirement, the new gates, and the per-client
  install/update paths, including the one-time migration off standalone
  copies.

Version bumps 2.3.0 -> 2.3.1 to satisfy the new gate.
2026-08-12 20:34:32 -07:00
Cathryn LaveryandGitHub 840f944f08 Merge pull request #41 from cathrynlavery/semantic-diagrams-pr-audit
feat(skill): pre-draw checkpoint, docs-sync gate, packaged self-check, ADRs
2026-08-12 17:05:24 -07:00
Cathryn Lavery dbc4abd965 feat(skill): pre-draw checkpoint, docs-sync gate, packaged self-check, ADRs
- SKILL.md: confirm type/pattern/size/cuts with the user before rendering;
  checklist hooks for the checkpoint and the packaged self-check
- scripts/verify-docs-sync.py: CI now fails when the frontmatter description
  loses a type's lexical hook, the gallery can't reach a shipped example, or
  the README tree names a missing file
- skills/diagram-design/scripts/self_check.py: distilled output checker that
  ships with the skill so installed agents can verify their own diagrams;
  adversarial suite in scripts/test-self-check.py
- assets/index.html: six new tabs (OAuth sequence + five single-variant
  examples with a data-single variant lock) so every shipped example is
  browsable
- docs/adr/0001-0004: settled policies recorded (pinned controller, taxonomy
  freeze, reveal-only autoplay, byte cap + trigger-rich description)
- README: It's-working-if section, new gates documented; CONTRIBUTING: gate
  table, ADR guidance, type-addition invariants; CI: two new steps
2026-08-12 17:00:08 -07:00
Cathryn LaveryandGitHub 064ca26626 Merge pull request #40 from cathrynlavery/feat/semantic-diagrams-motion
feat: add semantic patterns and accessible motion
2026-08-12 16:59:20 -07:00
Cathryn Lavery 8a6623ad88 fix(motion): harden accessible motion contract 2026-08-12 15:31:48 -07:00
Cathryn Lavery e2ed1925c4 [verified] add semantic patterns and accessible motion 2026-08-12 14:08:50 -07:00
Cathryn LaveryandGitHub 3c5c34ba3b Merge pull request #28 from parveen0029/feat/enterprise-matrix-ci
ci: upgrade GitHub Actions to multi-OS matrix testing (Linux, Windows, macOS) and visual failure artifacts
2026-08-12 10:09:46 -07:00
Cathryn Lavery 86dda261a3 ci: align matrix with current verification gates 2026-08-12 10:08:08 -07:00
Cathryn Lavery c492b1d98f Merge remote-tracking branch 'origin/main' into codex/pr28-final 2026-08-12 10:07:10 -07:00
Cathryn LaveryandGitHub 14c63e6a7c Merge pull request #32 from Mr-Neutr0n/fix/icons-quoted-attributes
fix(icons): normalize quoted URL SVG attributes
2026-08-12 10:04:59 -07:00
Cathryn Lavery 2abe978590 build: refresh normalized icon assets 2026-08-12 10:03:24 -07:00
Cathryn Lavery 50b54ef2f6 fix(icons): preserve inline style declarations 2026-08-12 10:01:44 -07:00
Cathryn Lavery 2d9dba47d2 Merge remote-tracking branch 'origin/main' into codex/pr32-final
# Conflicts:
#	.github/workflows/ci.yml
2026-08-12 10:01:44 -07:00
Cathryn LaveryandGitHub 1b078c83dd Merge pull request #31 from Mr-Neutr0n/fix/devicon-viewbox
fix(icons): preserve Devicon source viewBox
2026-08-12 10:00:10 -07:00
Cathryn Lavery 26ca6df028 Merge remote-tracking branch 'origin/main' into codex/pr31-final
# Conflicts:
#	.github/workflows/ci.yml
2026-08-12 09:58:27 -07:00
Cathryn LaveryandGitHub 26796ce272 Merge pull request #30 from Mr-Neutr0n/fix/mojibake-arrow-mapping
fix: repair mojibake arrow directions
2026-08-12 09:57:29 -07:00
Cathryn LaveryandGitHub 13992fefd4 Merge pull request #36 from the-ahuja-lab/feat/gallery-github-pages
ci: deploy live gallery to GitHub Pages and fix README link
2026-08-12 09:55:47 -07:00
Cathryn LaveryandGitHub dc43c34be5 Merge pull request #29 from philyuchkoff/feature/contributing-docs
docs(contributing): add CONTRIBUTING, code of conduct and issue/PR templates
2026-08-12 09:54:52 -07:00
Saveena Solanki 3ef39baba8 ci: deploy live gallery to GitHub Pages and fix README link
The README's "Browse the live gallery" link pointed at the raw HTML blob,
which GitHub renders as source code rather than the gallery. Add a Pages
deployment workflow that publishes skills/diagram-design/assets as a static
site, and point the README at the deployed gallery (closes #33).
2026-08-12 21:20:21 +05:30
Mr-Neutr0n d22686be01 fix(icons): normalize quoted URL SVG attributes
Signed-off-by: Mr-Neutr0n <harikp2002@gmail.com>
2026-08-12 17:15:22 +05:30
Mr-Neutr0n 99bc4cb0be fix(icons): preserve Devicon viewBox dimensions
Signed-off-by: Mr-Neutr0n <harikp2002@gmail.com>
2026-08-12 17:12:33 +05:30
Mr-Neutr0n af6bc62799 fix: repair mojibake arrow directions
Signed-off-by: Mr-Neutr0n <harikp2002@gmail.com>
2026-08-12 15:52:47 +05:30
Praveen Bishnoi 8fed3d26b4 fix(ci): address maintainer review feedback with checkout ordering, dynamic outcomes, and Playwright screenshots 2026-08-12 14:12:06 +05:30
Vitaliy Filyuchkov 02f52986c0 docs(contributing): add CONTRIBUTING, code of conduct and issue/PR templates
Add CONTRIBUTING.md covering all validation gates and contribution
workflows, CODE_OF_CONDUCT.md (Contributor Covenant 2.1), GitHub issue
templates (bug/feature), and a pull request template; add a Contributing
section to the README.
2026-08-12 11:23:48 +03:00
Praveen Bishnoi b337d0fcf4 ci: add GitHub Step Summary table generation for matrix run results 2026-08-12 13:25:34 +05:30
Praveen Bishnoi 5f3aa8fdda fix(ci): enable Python UTF-8 mode globally and enforce utf-8 encoding in subprocess verify scripts for Windows 2026-08-12 13:20:58 +05:30