agent-loadout 1.0.3 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@ import {
6
6
  getToolsByIds,
7
7
  getToolsByPreset,
8
8
  validateToolIds
9
- } from "./chunk-JYIPAISH.js";
9
+ } from "./chunk-HDF2R3CI.js";
10
10
  export {
11
11
  PRESETS,
12
12
  TOOLS,
@@ -17,7 +17,13 @@ var PRESETS = [
17
17
  {
18
18
  id: "media",
19
19
  name: "Media",
20
- description: "Image, audio, and video pipeline tools",
20
+ description: "Audio, video, and image pipeline tools",
21
+ defaultOn: false
22
+ },
23
+ {
24
+ id: "design",
25
+ name: "Design",
26
+ description: "Visual asset workflows \u2014 SVG, colour, and image preview",
21
27
  defaultOn: false
22
28
  },
23
29
  {
@@ -359,6 +365,54 @@ var TOOLS = [
359
365
  tags: ["interactive shell", "tui prompt", "user input", "shell script ui", "confirm dialog"],
360
366
  seeAlso: ["fzf", "just"]
361
367
  },
368
+ {
369
+ id: "oha",
370
+ name: "oha",
371
+ description: "HTTP load tester with JSON output",
372
+ preset: "agent",
373
+ verify: "oha --version",
374
+ install: brewScoopCargo("oha", "oha"),
375
+ tags: ["load test", "http benchmark", "stress test", "api performance", "latency"],
376
+ seeAlso: ["xh", "hyperfine"]
377
+ },
378
+ {
379
+ id: "gron",
380
+ name: "gron",
381
+ description: "Flatten JSON for grepping",
382
+ preset: "agent",
383
+ verify: "gron --version",
384
+ install: {
385
+ darwin: [{ method: "brew", package: "gron" }],
386
+ linux: null,
387
+ win32: [{ method: "scoop", package: "gron" }]
388
+ },
389
+ tags: ["json grep", "flatten json", "json search", "json path", "json debug"],
390
+ seeAlso: ["jq", "fx", "duckdb"]
391
+ },
392
+ {
393
+ id: "lychee",
394
+ name: "lychee",
395
+ description: "Fast link checker",
396
+ preset: "agent",
397
+ verify: "lychee --version",
398
+ install: brewScoopCargo("lychee", "lychee"),
399
+ tags: ["link check", "broken links", "url validation", "documentation", "dead links"],
400
+ seeAlso: ["xh", "typos", "vale"]
401
+ },
402
+ {
403
+ id: "vale",
404
+ name: "vale",
405
+ description: "Prose linter for docs",
406
+ preset: "agent",
407
+ verify: "vale --version",
408
+ install: {
409
+ darwin: [{ method: "brew", package: "vale" }],
410
+ linux: null,
411
+ win32: [{ method: "scoop", package: "vale" }]
412
+ },
413
+ tags: ["prose lint", "writing style", "documentation quality", "grammar", "technical writing"],
414
+ seeAlso: ["typos", "lychee", "pandoc"]
415
+ },
362
416
  // ── Media ─────────────────────────────────────────────
363
417
  {
364
418
  id: "ffmpeg",
@@ -392,17 +446,104 @@ var TOOLS = [
392
446
  verify: "magick -version",
393
447
  install: universal("imagemagick"),
394
448
  tags: ["image resize", "image convert", "image transform", "thumbnail", "crop image"],
395
- seeAlso: ["exiftool", "svgo", "ffmpeg"]
449
+ seeAlso: ["exiftool", "vips", "ffmpeg"]
450
+ },
451
+ {
452
+ id: "vips",
453
+ name: "libvips",
454
+ description: "Fast image processing pipeline",
455
+ preset: "media",
456
+ verify: "vips --version",
457
+ install: {
458
+ darwin: [{ method: "brew", package: "vips" }],
459
+ linux: [{ method: "apt", package: "libvips-tools" }],
460
+ win32: null
461
+ },
462
+ tags: ["image processing", "batch images", "resize", "thumbnail", "sharp backend"],
463
+ seeAlso: ["imagemagick", "resvg"]
396
464
  },
465
+ // ── Design ─────────────────────────────────────────────
397
466
  {
398
467
  id: "svgo",
399
468
  name: "svgo",
400
469
  description: "SVG optimiser",
401
- preset: "media",
470
+ preset: "design",
402
471
  verify: "svgo --version",
403
472
  install: npmAll("svgo"),
404
473
  tags: ["svg optimize", "svg compress", "vector graphics", "svg minify", "icon optimize"],
405
- seeAlso: ["imagemagick"]
474
+ seeAlso: ["resvg", "imagemagick"]
475
+ },
476
+ {
477
+ id: "resvg",
478
+ name: "resvg",
479
+ description: "High-fidelity SVG renderer",
480
+ preset: "design",
481
+ verify: "resvg --version",
482
+ install: {
483
+ darwin: [{ method: "brew", package: "resvg" }],
484
+ linux: [{ method: "cargo", package: "resvg" }],
485
+ win32: null
486
+ },
487
+ tags: ["svg render", "svg to png", "vector graphics", "svg rasterize"],
488
+ seeAlso: ["svgo", "vips"]
489
+ },
490
+ {
491
+ id: "chafa",
492
+ name: "chafa",
493
+ description: "Image-to-ANSI art renderer",
494
+ preset: "design",
495
+ verify: "chafa --version",
496
+ install: {
497
+ darwin: [{ method: "brew", package: "chafa" }],
498
+ linux: [{ method: "apt", package: "chafa" }],
499
+ win32: null
500
+ },
501
+ tags: ["image preview", "terminal image", "ansi art", "image in terminal"],
502
+ seeAlso: ["vips", "imagemagick"]
503
+ },
504
+ {
505
+ id: "pastel",
506
+ name: "pastel",
507
+ description: "Color manipulation and palette tool",
508
+ preset: "design",
509
+ verify: "pastel --version",
510
+ install: brewScoopCargo("pastel", "pastel"),
511
+ tags: ["color", "palette", "design tokens", "color convert", "color inspect"],
512
+ seeAlso: ["chafa", "bat"]
513
+ },
514
+ {
515
+ id: "d2",
516
+ name: "d2",
517
+ description: "Declarative diagramming language",
518
+ preset: "design",
519
+ verify: "d2 version",
520
+ install: {
521
+ darwin: [{ method: "brew", package: "d2" }],
522
+ linux: null,
523
+ win32: [{ method: "scoop", package: "d2" }]
524
+ },
525
+ tags: ["diagram", "architecture diagram", "flowchart", "svg generation", "documentation"],
526
+ seeAlso: ["resvg", "svgo", "pandoc"]
527
+ },
528
+ {
529
+ id: "pngquant",
530
+ name: "pngquant",
531
+ description: "Lossy PNG compressor",
532
+ preset: "design",
533
+ verify: "pngquant --version",
534
+ install: universal("pngquant"),
535
+ tags: ["png compress", "image optimize", "lossy compression", "web assets"],
536
+ seeAlso: ["oxipng", "svgo", "imagemagick"]
537
+ },
538
+ {
539
+ id: "oxipng",
540
+ name: "oxipng",
541
+ description: "Lossless PNG optimizer",
542
+ preset: "design",
543
+ verify: "oxipng --version",
544
+ install: brewScoopCargo("oxipng", "oxipng"),
545
+ tags: ["png optimize", "lossless compression", "image optimize", "web assets"],
546
+ seeAlso: ["pngquant", "svgo", "imagemagick"]
406
547
  },
407
548
  // ── DX ────────────────────────────────────────────────
408
549
  {
@@ -587,6 +728,44 @@ var TOOLS = [
587
728
  tags: ["toml", "toml lint", "toml format", "config validation", "cargo toml"],
588
729
  seeAlso: ["yq", "biome"]
589
730
  },
731
+ {
732
+ id: "fx",
733
+ name: "fx",
734
+ description: "Interactive JSON viewer",
735
+ preset: "dx",
736
+ verify: "fx --version",
737
+ install: {
738
+ darwin: [{ method: "brew", package: "fx" }],
739
+ linux: null,
740
+ win32: [{ method: "scoop", package: "fx" }]
741
+ },
742
+ tags: ["json viewer", "interactive json", "json explorer", "json filter"],
743
+ seeAlso: ["jq", "bat"]
744
+ },
745
+ {
746
+ id: "csview",
747
+ name: "csview",
748
+ description: "CSV/TSV viewer with column alignment",
749
+ preset: "dx",
750
+ verify: "csview --version",
751
+ install: brewScoopCargo("csview", "csview"),
752
+ tags: ["csv", "tsv", "tabular data", "spreadsheet", "data viewer"],
753
+ seeAlso: ["duckdb", "jq"]
754
+ },
755
+ {
756
+ id: "asciinema",
757
+ name: "asciinema",
758
+ description: "Terminal session recorder",
759
+ preset: "dx",
760
+ verify: "asciinema --version",
761
+ install: {
762
+ darwin: [{ method: "brew", package: "asciinema" }],
763
+ linux: [{ method: "apt", package: "asciinema" }],
764
+ win32: null
765
+ },
766
+ tags: ["terminal recording", "demo", "screen capture", "documentation"],
767
+ seeAlso: ["bat", "glow"]
768
+ },
590
769
  // ── Security ──────────────────────────────────────────
591
770
  {
592
771
  id: "trivy",
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  getToolsByIds,
6
6
  getToolsByPreset,
7
7
  validateToolIds
8
- } from "./chunk-JYIPAISH.js";
8
+ } from "./chunk-HDF2R3CI.js";
9
9
 
10
10
  // src/index.ts
11
11
  import { Command } from "commander";
@@ -1743,6 +1743,329 @@ Agents verifying domain setups, debugging DNS issues, or checking propagation ge
1743
1743
  - JSON output with \`--json\` is ideal for piping to jq.
1744
1744
  `.trim();
1745
1745
 
1746
+ // src/skills/vips.ts
1747
+ var vips_default = `
1748
+ # libvips \u2014 Fast image processing
1749
+
1750
+ ## When to use
1751
+ Batch-process images with lower memory usage and higher speed than ImageMagick. Powers the Sharp Node.js library.
1752
+
1753
+ ## Trusted commands
1754
+ - Get image info: \`vipsheader image.jpg\`
1755
+ - Resize image: \`vips resize input.jpg output.jpg 0.5\`
1756
+ - Convert format: \`vips copy input.png output.webp\`
1757
+ - Create thumbnail: \`vips thumbnail input.jpg output.jpg 300\`
1758
+ - Extract area: \`vips crop input.jpg output.jpg 0 0 100 100\`
1759
+
1760
+ ## Why it matters for agents
1761
+ Agents processing images in bulk get significantly faster throughput with lower memory overhead than ImageMagick.
1762
+
1763
+ ## Gotchas
1764
+ - Commands use \`vips\` or \`vipsthumbnail\` \u2014 check both are available.
1765
+ - Output format is inferred from the file extension.
1766
+ - Streaming pipeline architecture means memory stays flat even for large images.
1767
+ `.trim();
1768
+
1769
+ // src/skills/resvg.ts
1770
+ var resvg_default = `
1771
+ # resvg \u2014 High-fidelity SVG renderer
1772
+
1773
+ ## When to use
1774
+ Render SVG files to PNG with accurate results. Handles complex SVGs that other tools misrender.
1775
+
1776
+ ## Trusted commands
1777
+ - Render SVG to PNG: \`resvg input.svg output.png\`
1778
+ - Set output width: \`resvg input.svg output.png -w 1024\`
1779
+ - Set output height: \`resvg input.svg output.png -h 768\`
1780
+ - Set DPI: \`resvg input.svg output.png --dpi 300\`
1781
+
1782
+ ## Why it matters for agents
1783
+ Agents generating social images, OG cards, or icons from SVG templates get pixel-perfect PNG output.
1784
+
1785
+ ## Gotchas
1786
+ - Rust-based \u2014 very fast but no interactive mode.
1787
+ - Pairs well with svgo: optimise SVG first, then render with resvg.
1788
+ - Supports most SVG features including filters and gradients.
1789
+ `.trim();
1790
+
1791
+ // src/skills/chafa.ts
1792
+ var chafa_default = `
1793
+ # chafa \u2014 Image-to-ANSI art renderer
1794
+
1795
+ ## When to use
1796
+ Preview images directly in the terminal as coloured text art. Useful when agents need to "see" an image without a GUI.
1797
+
1798
+ ## Trusted commands
1799
+ - Preview image: \`chafa image.png\`
1800
+ - Set output size: \`chafa -s 80x24 image.png\`
1801
+ - Use specific symbols: \`chafa --symbols block image.png\`
1802
+ - ASCII-only output: \`chafa --symbols ascii image.png\`
1803
+ - Preview with transparency: \`chafa --bg white image.png\`
1804
+
1805
+ ## Why it matters for agents
1806
+ Agents can inspect image outputs without leaving the terminal \u2014 verify screenshots, check generated graphics, review thumbnails.
1807
+
1808
+ ## Gotchas
1809
+ - Quality depends on terminal capabilities. Use \`--format symbols\` for widest compatibility.
1810
+ - Works with PNG, JPEG, GIF, WebP, and many other formats.
1811
+ - Pipe support: \`curl -s url | chafa -\`
1812
+ `.trim();
1813
+
1814
+ // src/skills/oha.ts
1815
+ var oha_default = `
1816
+ # oha \u2014 HTTP load tester
1817
+
1818
+ ## When to use
1819
+ Benchmark HTTP endpoints with concurrent requests and get structured JSON results. Complements xh (single requests) with load testing.
1820
+
1821
+ ## Trusted commands
1822
+ - Basic load test: \`oha -n 100 -c 10 http://localhost:3000\`
1823
+ - JSON output: \`oha -n 100 -c 10 --json http://localhost:3000\`
1824
+ - Set duration: \`oha -z 10s -c 50 http://localhost:3000\`
1825
+ - POST with body: \`oha -n 100 -m POST -d '{"key":"val"}' http://localhost:3000/api\`
1826
+ - Custom headers: \`oha -n 100 -H "Authorization: Bearer token" http://localhost:3000\`
1827
+
1828
+ ## Why it matters for agents
1829
+ Agents benchmarking API changes get structured latency percentiles, throughput, and error rates as JSON they can compare programmatically.
1830
+
1831
+ ## Gotchas
1832
+ - \`-n\` = number of requests, \`-c\` = concurrent connections, \`-z\` = duration.
1833
+ - JSON output with \`--json\` is ideal for piping to jq.
1834
+ - Rust-based \u2014 extremely low overhead compared to other load testers.
1835
+ `.trim();
1836
+
1837
+ // src/skills/fx.ts
1838
+ var fx_default = `
1839
+ # fx \u2014 Interactive JSON viewer
1840
+
1841
+ ## When to use
1842
+ Explore and filter JSON data interactively. Complements jq with a visual, navigable interface.
1843
+
1844
+ ## Trusted commands
1845
+ - View JSON file: \`fx data.json\`
1846
+ - Pipe JSON: \`cat data.json | fx\`
1847
+ - Apply JS expression: \`fx data.json '.items.map(x => x.name)'\`
1848
+ - Filter with dot notation: \`fx data.json '.users[0].email'\`
1849
+ - Reduce: \`fx data.json '.items.length'\`
1850
+
1851
+ ## Why it matters for agents
1852
+ Agents exploring unfamiliar API responses or config files can quickly navigate nested structures and extract paths for jq queries.
1853
+
1854
+ ## Gotchas
1855
+ - Accepts JavaScript expressions, not jq syntax.
1856
+ - Interactive mode requires a TTY \u2014 use expressions for scripting.
1857
+ - Reads from stdin or file argument.
1858
+ `.trim();
1859
+
1860
+ // src/skills/pastel.ts
1861
+ var pastel_default = `
1862
+ # pastel \u2014 Color manipulation tool
1863
+
1864
+ ## When to use
1865
+ Generate, convert, inspect, and manipulate colours from the terminal. Ideal for design token generation and palette work.
1866
+
1867
+ ## Trusted commands
1868
+ - Show color info: \`pastel color "#ff6b35"\`
1869
+ - Convert format: \`pastel format hsl "#ff6b35"\`
1870
+ - Generate palette: \`pastel gradient -n 5 "#ff6b35" "#1a1a2e"\`
1871
+ - Lighten colour: \`pastel lighten 0.2 "#ff6b35"\`
1872
+ - Darken colour: \`pastel darken 0.2 "#ff6b35"\`
1873
+ - Complementary: \`pastel complement "#ff6b35"\`
1874
+ - Mix colours: \`pastel mix "#ff6b35" "#1a1a2e"\`
1875
+
1876
+ ## Why it matters for agents
1877
+ Agents generating design tokens, theme files, or CSS variables can programmatically derive entire palettes from brand colours.
1878
+
1879
+ ## Gotchas
1880
+ - Supports hex, RGB, HSL, Lab, and named CSS colours.
1881
+ - Use \`pastel list\` to see all named colours.
1882
+ - Output can be piped \u2014 combine with sd for bulk colour replacement.
1883
+ `.trim();
1884
+
1885
+ // src/skills/csview.ts
1886
+ var csview_default = `
1887
+ # csview \u2014 CSV/TSV viewer
1888
+
1889
+ ## When to use
1890
+ View tabular data (CSV, TSV) with aligned columns and optional styling in the terminal.
1891
+
1892
+ ## Trusted commands
1893
+ - View CSV: \`csview data.csv\`
1894
+ - View TSV: \`csview -t data.tsv\`
1895
+ - Custom delimiter: \`csview -d ';' data.csv\`
1896
+ - No header row: \`csview --no-headers data.csv\`
1897
+ - Pipe from stdin: \`cat data.csv | csview\`
1898
+
1899
+ ## Why it matters for agents
1900
+ Agents inspecting exported data, build reports, or log tables get clean columnar output instead of comma-separated noise.
1901
+
1902
+ ## Gotchas
1903
+ - Rust-based \u2014 handles large files efficiently.
1904
+ - Use \`-t\` flag for TSV files.
1905
+ - For SQL-level queries on CSV, use duckdb instead.
1906
+ `.trim();
1907
+
1908
+ // src/skills/asciinema.ts
1909
+ var asciinema_default = `
1910
+ # asciinema \u2014 Terminal session recorder
1911
+
1912
+ ## When to use
1913
+ Record terminal sessions as lightweight asciicast files for documentation, demos, or bug reports.
1914
+
1915
+ ## Trusted commands
1916
+ - Record session: \`asciinema rec demo.cast\`
1917
+ - Play recording: \`asciinema play demo.cast\`
1918
+ - Record with idle limit: \`asciinema rec --idle-time-limit 2 demo.cast\`
1919
+ - Record specific command: \`asciinema rec --command "pnpm test" demo.cast\`
1920
+ - Upload to asciinema.org: \`asciinema upload demo.cast\`
1921
+
1922
+ ## Why it matters for agents
1923
+ Agents can record their terminal workflows for review, create reproducible demos, or capture test runs for debugging.
1924
+
1925
+ ## Gotchas
1926
+ - Recordings are text-based (not video) \u2014 tiny file sizes and searchable.
1927
+ - Set \`--idle-time-limit\` to trim long pauses.
1928
+ - \`.cast\` files can be embedded in web pages with the asciinema player.
1929
+ `.trim();
1930
+
1931
+ // src/skills/d2.ts
1932
+ var d2_default = `
1933
+ # d2 \u2014 Declarative diagramming language
1934
+
1935
+ ## When to use
1936
+ Generate architecture diagrams, flowcharts, sequence diagrams, and ERDs from text. Output SVG or PNG without a GUI.
1937
+
1938
+ ## Trusted commands
1939
+ - Render to SVG: \`d2 input.d2 output.svg\`
1940
+ - Render to PNG: \`d2 input.d2 output.png\`
1941
+ - Watch mode: \`d2 --watch input.d2 output.svg\`
1942
+ - Set theme: \`d2 --theme 200 input.d2 output.svg\`
1943
+ - Set layout engine: \`d2 --layout elk input.d2 output.svg\`
1944
+
1945
+ ## Why it matters for agents
1946
+ Agents generate architecture and flow diagrams from code analysis \u2014 describe structure in text, get publication-ready SVGs.
1947
+
1948
+ ## Gotchas
1949
+ - D2 files use a simple DSL: \`a -> b: label\`.
1950
+ - Supports sequence diagrams, classes, ERDs, and grid diagrams.
1951
+ - Multiple layout engines: dagre (default), elk, tala.
1952
+ `.trim();
1953
+
1954
+ // src/skills/pngquant.ts
1955
+ var pngquant_default = `
1956
+ # pngquant \u2014 Lossy PNG compressor
1957
+
1958
+ ## When to use
1959
+ Reduce PNG file size by 50-80% with minimal visual quality loss. Ideal for web assets, screenshots, and icons.
1960
+
1961
+ ## Trusted commands
1962
+ - Compress with default quality: \`pngquant image.png\`
1963
+ - Set quality range: \`pngquant --quality=65-80 image.png\`
1964
+ - Overwrite original: \`pngquant --force --ext .png image.png\`
1965
+ - Batch compress: \`pngquant --force --ext .png *.png\`
1966
+ - Output to stdout: \`pngquant - < input.png > output.png\`
1967
+
1968
+ ## Why it matters for agents
1969
+ Agents optimise generated screenshots, OG images, and icon sets \u2014 often cutting 60-70% off PNG sizes before deployment.
1970
+
1971
+ ## Gotchas
1972
+ - Lossy compression \u2014 visually near-identical but not bit-perfect.
1973
+ - Combine with oxipng for lossy + lossless pipeline.
1974
+ - Exit code 99 means quality target can't be met \u2014 widen the range.
1975
+ `.trim();
1976
+
1977
+ // src/skills/oxipng.ts
1978
+ var oxipng_default = `
1979
+ # oxipng \u2014 Lossless PNG optimizer
1980
+
1981
+ ## When to use
1982
+ Reduce PNG file size without any quality loss. Run after pngquant for maximum compression, or standalone for lossless-only workflows.
1983
+
1984
+ ## Trusted commands
1985
+ - Optimize in place: \`oxipng -o 4 image.png\`
1986
+ - Max compression: \`oxipng -o max image.png\`
1987
+ - Batch optimize: \`oxipng -o 4 -r ./images/\`
1988
+ - Strip metadata: \`oxipng -o 4 --strip safe image.png\`
1989
+ - Preserve original: \`oxipng -o 4 --out optimized.png image.png\`
1990
+
1991
+ ## Why it matters for agents
1992
+ Agents run oxipng as a final pass on all PNG assets \u2014 guaranteed size reduction with zero quality loss.
1993
+
1994
+ ## Gotchas
1995
+ - \`-o\` levels: 0 (fast) to max (slow). Level 4 is a good default.
1996
+ - \`--strip safe\` removes metadata without breaking rendering.
1997
+ - Rust-based \u2014 fast even on large batches.
1998
+ `.trim();
1999
+
2000
+ // src/skills/gron.ts
2001
+ var gron_default = `
2002
+ # gron \u2014 Flatten JSON for grepping
2003
+
2004
+ ## When to use
2005
+ Turn nested JSON into greppable assignment statements. Find paths in complex API responses without writing jq expressions.
2006
+
2007
+ ## Trusted commands
2008
+ - Flatten JSON: \`gron data.json\`
2009
+ - Flatten from URL: \`gron https://api.example.com/data\`
2010
+ - Pipe from stdin: \`cat data.json | gron\`
2011
+ - Grep for field: \`gron data.json | grep "name"\`
2012
+ - Unflatten back to JSON: \`gron data.json | grep "users" | gron --ungron\`
2013
+
2014
+ ## Why it matters for agents
2015
+ Agents exploring unfamiliar JSON APIs can grep for field names across deeply nested structures, then reconstruct filtered subsets.
2016
+
2017
+ ## Gotchas
2018
+ - Output format: \`json.users[0].name = "Alice";\` \u2014 each line is a full path.
2019
+ - \`--ungron\` converts flattened output back to valid JSON.
2020
+ - Combine with rg for regex filtering of JSON paths.
2021
+ `.trim();
2022
+
2023
+ // src/skills/lychee.ts
2024
+ var lychee_default = `
2025
+ # lychee \u2014 Fast link checker
2026
+
2027
+ ## When to use
2028
+ Scan documentation, markdown files, and websites for broken links. Catches dead URLs, redirects, and timeouts.
2029
+
2030
+ ## Trusted commands
2031
+ - Check markdown files: \`lychee "**/*.md"\`
2032
+ - Check a URL: \`lychee https://example.com\`
2033
+ - Check with config: \`lychee --config lychee.toml "**/*.md"\`
2034
+ - JSON output: \`lychee --format json "**/*.md"\`
2035
+ - Exclude patterns: \`lychee --exclude "localhost" "**/*.md"\`
2036
+
2037
+ ## Why it matters for agents
2038
+ Agents validate documentation links after edits \u2014 catch broken references before they ship to production.
2039
+
2040
+ ## Gotchas
2041
+ - Rust-based \u2014 extremely fast, checks links concurrently.
2042
+ - Use \`.lycheeignore\` or \`--exclude\` for known-flaky URLs.
2043
+ - Supports markdown, HTML, and plain text files.
2044
+ `.trim();
2045
+
2046
+ // src/skills/vale.ts
2047
+ var vale_default = `
2048
+ # vale \u2014 Prose linter for documentation
2049
+
2050
+ ## When to use
2051
+ Enforce writing style guides on documentation, README files, and technical content. Catches jargon, passive voice, and style violations.
2052
+
2053
+ ## Trusted commands
2054
+ - Lint a file: \`vale README.md\`
2055
+ - Lint a directory: \`vale docs/\`
2056
+ - JSON output: \`vale --output JSON README.md\`
2057
+ - Initialize config: \`vale sync\`
2058
+ - List installed styles: \`vale ls-config\`
2059
+
2060
+ ## Why it matters for agents
2061
+ Agents writing or editing documentation can validate prose quality against style guides \u2014 Google, Microsoft, or custom rules.
2062
+
2063
+ ## Gotchas
2064
+ - Requires a \`.vale.ini\` config file in the project root.
2065
+ - Install styles with \`vale sync\` after configuring packages.
2066
+ - Common styles: Google, Microsoft, write-good, proselint.
2067
+ `.trim();
2068
+
1746
2069
  // src/skills.ts
1747
2070
  var SKILL_CONTENT = {
1748
2071
  rg: rg_default,
@@ -1794,7 +2117,21 @@ var SKILL_CONTENT = {
1794
2117
  taplo: taplo_default,
1795
2118
  semgrep: semgrep_default,
1796
2119
  age: age_default,
1797
- doggo: doggo_default
2120
+ doggo: doggo_default,
2121
+ vips: vips_default,
2122
+ resvg: resvg_default,
2123
+ chafa: chafa_default,
2124
+ oha: oha_default,
2125
+ fx: fx_default,
2126
+ pastel: pastel_default,
2127
+ csview: csview_default,
2128
+ asciinema: asciinema_default,
2129
+ d2: d2_default,
2130
+ pngquant: pngquant_default,
2131
+ oxipng: oxipng_default,
2132
+ gron: gron_default,
2133
+ lychee: lychee_default,
2134
+ vale: vale_default
1798
2135
  };
1799
2136
  function skillFilename(toolId) {
1800
2137
  return `${toolId}.md`;
@@ -2020,7 +2357,7 @@ program.command("verify").alias("doctor").description("Check which tools are ins
2020
2357
  });
2021
2358
  program.command("list").description("Print the tool catalog").option("--json", "Output as JSON").option("--brewfile", "Output macOS Brewfile (darwin only)").action(async (opts) => {
2022
2359
  if (opts.brewfile) {
2023
- const { generateBrewfileFromCatalog } = await import("./catalog-PTLCQEDW.js");
2360
+ const { generateBrewfileFromCatalog } = await import("./catalog-7NB7RALT.js");
2024
2361
  console.log(generateBrewfileFromCatalog());
2025
2362
  return;
2026
2363
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-loadout",
3
- "version": "1.0.3",
3
+ "version": "1.2.0",
4
4
  "description": "One command to load out your terminal for agentic coding",
5
5
  "type": "module",
6
6
  "bin": {
@@ -25,8 +25,16 @@
25
25
  "developer-tools",
26
26
  "loadout"
27
27
  ],
28
- "author": "",
28
+ "author": "cluddy",
29
29
  "license": "MIT",
30
+ "homepage": "https://github.com/conorluddy/agent-loadout#readme",
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "git+https://github.com/conorluddy/agent-loadout.git"
34
+ },
35
+ "bugs": {
36
+ "url": "https://github.com/conorluddy/agent-loadout/issues"
37
+ },
30
38
  "dependencies": {
31
39
  "@inquirer/prompts": "^8.3.0",
32
40
  "chalk": "^5.4.0",