stripkit
stripkit enthält 11 gesammelte Skills von Vybecode-LTD, mit Repository-Berufsabdeckung und Skill-Detailseiten auf SkillsMP.
Skills in diesem Repository
Define and consume a JSON manifest that binds exported control filmstrips to plugin parameters for a GUI skinning engine. Use when wiring StripKit or KnobMan output into a JUCE LookAndFeel or a VybeForge-style skin, when designing a skin.json that maps each control to its asset, frame count, geometry and parameter, when a skinning system must auto-load knobs, faders, sliders, buttons and meters without hard-coded paths, or when versioning a skin so a loader stays compatible. Covers the manifest schema, relative-path and HiDPI conventions, a JSON Schema with a worked example, and how a loader picks the frame from a normalized value. Triggers on skin manifest, skin.json, plugin asset manifest, bind filmstrip to parameter, LookAndFeel from JSON, asset manifest schema, frame count, HiDPI at2x asset, skin versioning.
Guard a release so its git tag can always rebuild its own artifact. Many release scripts make a "Release vX.Y.Z" commit that stages ONLY the bumped version files plus the built installer/binary — so if the feature SOURCE was not committed first, it is orphaned: the tag and the shipped binary exist, but the source behind them is missing from history and the tag cannot be rebuilt. Use when cutting a release, when writing or reviewing a release/publish script, or when a tag's tree does not match what shipped. Covers the clean-tracked-tree pre-flight check (allow untracked strays, block modified/staged tracked files), the commit-source-then-release ordering, and how to recover an already-orphaned release by committing the source as-is before fixing forward. Triggers on release integrity, orphaned source, tag cannot rebuild, release commit only version files, commit before release, reproducible release, release script guard.
Composite a control filmstrip (sprite sheet) from layers: a static body plus a separately-animated overlay (a rotating pointer, a sliding cap, an opacity-ramped glow), so only the moving part transforms while the body stays crisp and re-renderable at any size. Use when building or extending a filmstrip / knob / sprite generator (e.g. StripKit), when a baked single-image knob looks soft or can't be re-skinned, or when adding a base+pointer or layered PSD/SVG input mode. Covers the render-lib-free layer model (behaviour + per-layer pivot), contain-fit + supersample-once compositing, the N-1 per-frame angle law, the pivot-is-the-knob-axis-not-the-overlay-centre rule, and gating so empty layers stay byte-identical to single-source output. Triggers on layered knob, base plus pointer, only the pointer rotates, layer-aware animation, filmstrip compositing, sprite-sheet layers, pointer pivot, per-layer behaviour.
Wire file drag-and-drop into an Avalonia 11 view so users can drop files onto a window or control. Use when adding a drop a file here zone to an Avalonia app, when a drop handler never fires, when migrating from Avalonia 10 drag-drop, when reading the local paths of dropped files, when filtering dropped files by extension, or when showing visual feedback while dragging over a target. Covers enabling AllowDrop, handling the DragOver and Drop routed events, why DragOver must set DragEffects or Drop will not fire, reading dropped items via DataFormats.Files and IStorageItem.TryGetLocalPath (replacing the removed FileNames API), handling multiple files, and delegating to the view model so logic stays out of code-behind. Triggers on Avalonia drag and drop, drop files, AllowDrop, DragDrop.DropEvent, DragOver, DataFormats.Files, GetFiles, TryGetLocalPath, drop handler not firing, drag drop not working, drop a file onto the window.
Render with SkiaSharp inside an Avalonia 11 app and move pixels between SkiaSharp and Avalonia correctly. Use when drawing custom visuals on the Avalonia Skia canvas, when an SKBitmap or SKImage must be shown in an Image control, when building a live preview that updates many times per second, when rotated or scaled images look jagged, when colours look wrong or edges show dark fringing, or when a heavy render blocks the UI thread. Covers the ICustomDrawOperation lease pattern for zero-copy drawing, SKBitmap to Avalonia Bitmap via PNG round-trip versus a reused WriteableBitmap pixel copy, SkiaSharp 3.x SKSamplingOptions and supersampling, premultiplied-alpha and Bgra8888 versus Rgba8888 matching, disposal, and off-thread rendering. Triggers on SkiaSharp Avalonia, SKBitmap to Bitmap, WriteableBitmap, ICustomDrawOperation, SKSamplingOptions, premultiplied alpha, jagged rotation, render off UI thread.
Detect the frame layout of an existing control filmstrip (sprite sheet) and split, re-slice, or re-stack it. Use when importing a KnobMan export or a purchased plugin-asset pack, when you have a filmstrip PNG of unknown frame count, when extracting a single frame from a strip, when converting a vertical strip to horizontal or changing frame count, or when adding a filmstrip importer to a tool like StripKit. Covers the frame-count detection algorithm (test plausible counts, height or width divisibility, aspect-ratio classification into knob vs vertical fader vs horizontal slider), confidence and ambiguity handling, single-frame extraction, and clean re-export. Triggers on filmstrip import, sprite sheet detect frames, KnobMan strip, how many frames, frame count detection, split filmstrip, re-slice filmstrip, extract one frame, knob strip, fader strip, purchased asset pack, detect frame height.
Lock down the pixel output of rendering code with golden-image (snapshot) tests and perceptual diffing, so a refactor cannot silently change what gets drawn. Use when testing a renderer, an image exporter, a thumbnail or chart generator, a filmstrip or sprite tool, or any code whose output is an image, when a change altered output and you must catch it, when deciding how to store and update baselines, or when pixel comparisons go flaky on anti-aliasing or platform differences. Covers capturing a baseline PNG, tolerant pixel diff with a per-pixel and fraction budget, determinism tips, baseline storage and an approve-baseline workflow, and emitting a visual diff on failure. Triggers on golden image test, snapshot test image, visual regression, pixel diff, image comparison test, baseline image, perceptual diff, SSIM, render output changed, anti-alias tolerance.
Wire a responsive, settings-driven live preview into a desktop app so dragging a control updates the rendered result smoothly without freezing the UI or redrawing redundantly. Use when building a tool with a live preview pane (image, audio waveform, chart, document), when a preview stutters or the window freezes during render, when many settings should each trigger a re-render, when scrubbing or auto-playing through a value, or when an expensive render must be debounced and run off the UI thread. Covers a single refresh funnel, suppressing redundant refreshes during bulk updates, debouncing, off-thread rendering with stale-result dropping, capping preview quality while exporting full, and keeping the scrub or play loop in the view. Triggers on live preview, preview not updating, UI freezes while rendering, debounce render, off-thread render, scrub preview, re-render on settings change, stale render result, MVVM preview.
Package a design system (colours, accent, typography, spacing, control styles) as a shared reusable Avalonia 11 resource set so every app starts wearing the house style. Use when standardizing the look across several Avalonia tools, when defining brand tokens like an accent colour or app font in one place, when building a dark theme, when control styles should be centralized rather than copied per window, or when extracting scattered inline colours and fonts into named resources. Covers organizing Colors, SolidColorBrushes and a font family as keyed resources, merging a ResourceDictionary into App.Resources, control Styles and selectors, theme variants and the Fluent SystemAccentColor override, StaticResource versus DynamicResource, and sharing the token file across projects. Triggers on Avalonia theme, design tokens, ResourceDictionary, accent colour, app font, dark theme, control styles, SystemAccentColor, DynamicResource, shared styles.
Bind numeric entry controls in Avalonia 11 to a view model correctly, including the nullable trap that bites NumericUpDown. Use when adding a NumericUpDown or numeric TextBox to a settings panel, when a numeric value will not two-way bind or resets to zero, when a NumericUpDown bound to an int or double misbehaves, when you need min/max clamping, step increment, decimal-place formatting, or per-field validation with error display, or when deciding between NumericUpDown and a TextBox plus converter. Covers NumericUpDown.Value being a nullable decimal and how it binds to int and double, FormatString and Increment, Minimum and Maximum, validation via ObservableValidator, and a TextBox-plus-converter fallback. Triggers on Avalonia NumericUpDown, numeric binding, decimal versus int binding, value not updating, NumericUpDown resets, FormatString, Minimum Maximum, spinner increment, numeric validation, ObservableValidator, numeric TextBox.
Wrap an existing C#/.NET engine or library as a headless command-line tool with System.CommandLine, so the logic that powers a GUI can run in batch or CI without a UI. Use when adding a CLI front end to a library, when building a console app that parses options and arguments, when you need subcommands, exit codes, piping, or progress output, when running a renderer or processor over many files unattended, or when packaging a tool as a dotnet global tool. Covers keeping the engine pure and the CLI a thin shell, the System.CommandLine model of RootCommand, Option and Argument and a handler, parsing and validation, non-zero exit codes on failure, progress to stderr while results go to stdout, and packaging with PackAsTool. Triggers on System.CommandLine, build a CLI, console app, dotnet tool, command line parser, RootCommand, headless, batch processing tool, subcommands, exit codes, wrap a library as a CLI.