58 Commits
Author SHA1 Message Date
648c2a5978 feat(scatter): add bubble variant for three-value comparisons (#141)
* feat(scatter): add bubble variant for three-value comparisons

Bubble chart as a Scatter variant per the issue #62 triage: x and y on
shared zero-based linear scales, bubble AREA proportional to the third
value (r = K*sqrt(size)), one accent bubble, ink-opacity ramp as ink-mass
compensation, largest-first paint order.

scripts/verify-bubble.py derives both axis scales and the area constant
from the set itself (Theil-Sen, leave-one-out) and holds every bound
label and tick against the mark it describes; test-verify-bubble.py
exercises both polarities. Bindings are bubble-specific (data-size,
data-name, data-tick) rather than data-series, so verify-slopegraph.py
never claims a bubble file and neither checker needs scope carve-outs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(bubble): report a bubble whose peers cannot describe a scale

A bubble holding the only distinct value on an axis was skipped by the
leave-one-out residual test — its own fit is degenerate, and the full-set
fit passes through wherever it was drawn, so a wrong coordinate shipped
clean. Report it as unverifiable instead of skipping it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore: bump to 2.6.3 and register bubble gates

Ridgeline (#143) landed on 2.6.2, colliding with this branch's bump, so
re-bump past it. Also add the bubble gate commands to the maintainer
policy's local_commands, matching what ridgeline registered.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* chore: bump to 2.6.5

The mermaid fix (#131) landed on 2.6.4, colliding with this branch's
bump again. Re-bump past it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: 0xDarkMatter <0xDarkMatter@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 17:26:23 -05:00
c79585edb4 fix(mermaid): parse compact multidirectional labels (#131)
* fix(mermaid): parse compact multidirectional labels

* fix(mermaid): preserve source ids ending in markers

* chore: bump plugin version to 2.6.2

* chore: bump plugin version to 2.6.4

* fix: preserve single-character Mermaid source IDs

* fix: preserve chained Mermaid marker IDs

---------

Co-authored-by: Cathryn Lavery <cathryn@bestself.co>
2026-08-21 14:31:30 -05:00
ddaeae936e feat(line): add ridgeline as a Line variant (#143)
* feat(line): add ridgeline as a Line variant

One distribution per series, stacked at a fixed pitch on a single shared
amplitude. Ships three static examples (light, dark, full editorial),
the type-line.md spec, and a geometric gate.

verify-ridgeline.py derives the figure's one amplitude and its baseline
pitch from the figure itself, then holds every vertex to both. It also
checks the drawn baseline rules, the shared bin scale, absolute M/L/Z
only, the overlap ceiling, the focus pairing and every label binding.
test-verify-ridgeline.py proves each check in both polarities and pins
the scope treaty with the sibling Line gates.

The contract binds data-bins on a <path>, which no other chart in the
repo declares, so verify-slopegraph and this gate never claim the same
file.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(verify-ridgeline): read exponent coordinates as numbers, not commands

parse_d scanned for [A-Za-z] independently of the numbers, so the `e` in a
valid scientific-notation coordinate such as 4.4e2 was counted as a path
command. The explicit-command rule then rejected a correct ridgeline with a
message about command counts.

Tokenise the d attribute left to right with the number branch tried first,
so an exponent is consumed as part of its number. A letter that survives
that branch is a real command and still faces the M/L/Z vocabulary check;
anything else leaves the path unreadable, which stays a finding.

Adds both polarities: a shipped coordinate rewritten as 4.4e2 must verify,
and a falsified one written the same way must not.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: 0xDarkMatter <0xDarkMatter@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 12:23:44 -05:00
Cathryn LaveryandGitHub 5538b35116 fix(gallery): preserve mobile preview height (#135)
* fix(gallery): preserve mobile preview height

* test(gallery): report routing failures directly
2026-08-20 12:42:26 -07:00
b827385a17 feat: consolidate reviewed Diagram Design 2.6.0 release (#134)
* fix(commands): stop hardcoding the visual-type count

Integrates the final reviewed diff from PR #112.

* docs(high-level): correct effective width checklist

Integrates the final reviewed diff from PR #105.

* fix(commands): quote profile argument hint

Integrates the final reviewed diff from PR #126.

* test(sankey): gate conservation and ribbon geometry

Integrates the final reviewed diff from PR #103.

* feat(tooling): add doctor diagnostics gate

Integrates the final reviewed diff from PR #132.

* feat(scripts): lint diagrams as rendered

Integrates the final reviewed diff from PR #18.

* feat(types): add quantitative polar chart

Integrates the final reviewed diff from PR #101.

* chore(release): consolidate reviewed changes in 2.6.0

Documents every combined gate and synchronizes Claude, Codex, and Factory metadata for the 39-type release.

* fix(doctor): support installed-skill projects

---------

Co-authored-by: mysoniw <soniw1@gmail.com>
Co-authored-by: thang <76550342+thangldw@users.noreply.github.com>
Co-authored-by: YinShaokun <yinshaokun@didiglobal.com>
Co-authored-by: 0xDarkMatter <0xDarkMatter@users.noreply.github.com>
Co-authored-by: Rupam Pal <rupam.pal@euromonitor.com>
Co-authored-by: Yuvraj3905 <yuvraj202001@gmail.com>
2026-08-20 12:21:43 -07:00
Cathryn LaveryandGitHub b132fa5d7a fix(packaging): make skill references bundle-safe (#125)
* fix(packaging): make skill references bundle-safe

* test(packaging): normalize scanner paths portably

* fix(packaging): bundle required runtime helpers
2026-08-19 20:31:56 -07:00
e011b04af8 fix(treemap): verify every cell share (#124)
* fix(treemap): verify every cell's area, including cells too small to label

Closes #89.

The area check derived its basis from in-cell labels, so a cell with no
label was excluded from it. That is precisely the sliver -- the cell a
4px grid distorts most, and the one that shipped 24% undersized during
review of #87. On current main, widening Oceania from 16px to 24px, a
50% area distortion, still reports OK.

Every cell now declares `data-share`, its percentage of the whole, and
the verifier checks all of them against it. Cells without it are
reported rather than skipped: a treemap whose cells cannot be parsed is
not a passing treemap, it is an unchecked one, and answering OK to it is
the defect. The label and the metadata are also cross-checked, because
two statements of one fact is a new way for the picture to lie while the
gate stays green.

Adversarial tests gain the oversized and undersized unlabelled sliver
(both pass on current main and fail here), a fail-closed case for
missing metadata, and a label/metadata divergence case.

SKILL.md `metadata.version` said 2.4 against 2.5.0 manifests. The
manifests are bumped by a script and that field is hand-maintained, so
nothing read both numbers and nothing could notice. verify-plugin-package
now asserts it tracks the manifest MAJOR.MINOR. The package test's
fixture gains the field with it -- a SKILL.md without one is not a valid
package, and a fixture missing it would only prove the gate can be
tripped by its own test data.

The examples regained the `PARTS ROUNDED, MAY NOT SUM` disclosure the
type reference requires: displayed parts round up to 8.10B against a
stated 8.09B. It was dropped when the examples were rebuilt around the
legend block. The anti-pattern list, which still forbade outright what
the honest-data rule permits once disclosed, now agrees with it.

Also nudges the info mark onto the label row of its neighbours rather
than the vertical centre of its own cell, so the bottom row reads as one
row.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(treemap): reject ambiguous share metadata

---------

Co-authored-by: 0xDarkMatter <0xDarkMatter@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-19 22:02:02 -05:00
Cathryn LaveryandGitHub cc2f51f3fd fix(import): emit extractor output as UTF-8 on Windows (#122)
* fix(import): emit extractor digests as UTF-8

* fix(import): limit UTF-8 setup to CLI entrypoints

* test(import): normalize cross-platform newline parity
2026-08-19 17:49:34 -07:00
Cathryn LaveryandGitHub 8154ec97bf feat(factory): add native Droid plugin packaging (#120)
* feat(factory): add native Droid plugin packaging

* test(factory): guard documented install contract

* fix(factory): enforce install command order
2026-08-19 17:46:46 -07:00
Cathryn LaveryandGitHub bf49fb408a fix(treemap): fail closed for CJK label widths (#121)
* Fix CJK treemap label width verification

* Strengthen CJK treemap width regressions
2026-08-19 19:35:06 -05:00
4691a2f40c feat(types): ship ten editorial diagram types in one release (#118)
Adds ten editorial diagram types with light, dark, and full-editorial examples; updates the taxonomy, gallery, descriptions, references, and synchronized plugin version; and adds maintainer/visual-proof contribution gates.

Co-authored-by: Jacopo Vendramin <vendraminjacopo@gmail.com>
2026-08-19 15:49:27 -07:00
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 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
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
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
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
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 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 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 Lavery 2abe978590 build: refresh normalized icon assets 2026-08-12 10:03:24 -07:00
Cathryn Lavery af7fadb7ed ci: verify Mermaid imports 2026-08-11 21:38:11 -07:00
Cathryn Lavery 1387e57bf8 fix(import): support current Mermaid syntax 2026-08-11 21:37:11 -07:00
Cathryn Lavery 8e1276a6ec Merge remote-tracking branch 'origin/main' into codex/pr24-final 2026-08-11 21:37:11 -07:00
Matt Van Horn a4be5bed0d fix: parse class suffixes, labeled dotted/thick links, and frontmatter 2026-08-11 19:31:39 -07:00
Matt Van Horn 9e50da6d67 fix: address self-review findings 2026-08-11 19:25:40 -07:00
Matt Van Horn 19561779c6 fix: address self-review findings 2026-08-11 19:25:07 -07:00
Matt Van Horn 615633712f docs(a11y): note the slug placeholder in each template 2026-08-11 16:47:13 -07:00
Matt Van Horn 410e2f6627 fix: address self-review findings 2026-08-11 16:44:04 -07:00
Matt Van Horn 9e336ad538 fix: address self-review findings 2026-08-11 16:42:51 -07:00
Cathryn Lavery 6508d2e43e fix(import): harden draw.io extraction 2026-08-11 13:55:37 -07:00
ClaudeandCathryn Lavery ced802198d feat(import): redraw draw.io files at a chosen format, size, and detail level
Adds a draw.io import path to the skill. Points at a .drawio file and
produces an editorial diagram fitted to where it's going — not a
format conversion.

- scripts/drawio_extract.py: decodes all four containers draw.io writes
  (raw XML, deflate+base64 payloads, PNG tEXt chunks, SVG content attrs),
  flattens mxGraphModel into absolute-positioned nodes/edges, and reports
  structural signals: hubs, containers, depth, cycles, collapsible leaf
  groups, budget flags. Deterministic half — makes no design decisions.
- references/output-spec.md: the three dials. Nine size presets with
  per-size-class type ramps and safe areas; faithful/balanced/simplified
  detail levels with a fixed degrade ladder; engineer/mixed/executive
  audience wording; fidelity ledger; CJK font fallback.
- references/import-drawio.md: the redraw procedure — extract, set dials,
  pick type, build the semantic model, redraw on the grid. Includes the
  draw.io palette/shape → semantic role mappings, multi-page handling,
  edge cases, and anti-patterns.
- commands/import-drawio.md: /diagram-design:import slash command.
- SKILL.md: new §11 (import + output dials), taste-gate entries, §12 output.
- export.md: sizing section — scale factors and exact-pixel targets.
- assets/example-import-drawio.html: worked import of the checked-in
  fixture at balanced/doc-inline, lint-clean.
- scripts/verify-drawio-import.py: drives the real extractor against the
  fixture in all four containers and checks the references stay in sync.

faithful is the one documented exemption from the §7 complexity budget,
and it's conditional: zoned above 9 nodes, split above 24. The §6
connector rules never relax for imported content.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M5f1aK1zNcgnQUnXZgG2LU
2026-08-11 13:51:30 -07:00
Cathryn LaveryandGitHub 9fe1339f14 Merge pull request #19 from daanmlab/feat/pi-support
Pi support
2026-08-11 13:50:35 -07:00
Cathryn Lavery 7717d68c85 docs(pi): tighten support guidance 2026-08-11 13:44:19 -07:00
Daan Balm 81cb965267 feat: add native Pi package support 2026-08-11 16:15:13 +02:00
Praveen Bishnoi f49a0cbc7e fix(scripts): replace blocked svgrepo URL for SAS icon in build-icons.py 2026-08-11 11:37:53 +05:30
ActArtechandGitHub c5805a0c7f fix(sequence): dash OAuth returns and align type-sequence docs (#14)
Polish after #13: 401 and retry 200 use dashed return strokes on all
three OAuth examples; first API activation bar covers the happy-path
return; type-sequence return rules no longer contradict the message table;
README quickstart names bearer+refresh rather than a full OAuth handshake.
verify-sequence-oauth.py now checks dashed returns and activation height.
2026-08-10 23:24:51 -05:00
8827b27739 feat(sequence): combined fragments (alt/opt/loop) + OAuth example (#13)
Expand type-sequence.md with fragment frames, async open arrowheads,
complexity budget, and anti-patterns. Add bearer+refresh special examples
(light/dark/full) without changing the cold-cache trio. Wire README/SKILL
budget and a verify script that drives lint-skin.py.

Co-authored-by: wolf10drc <alaa@golead.io>
2026-08-10 11:44:04 -07:00