Skip to content

feat: Leonardo AI tooling (fixes #266)#273

Merged
GarthDB merged 6 commits intomainfrom
feat/leonardo-ai-tooling-266
Feb 20, 2026
Merged

feat: Leonardo AI tooling (fixes #266)#273
GarthDB merged 6 commits intomainfrom
feat/leonardo-ai-tooling-266

Conversation

@GarthDB
Copy link
Copy Markdown
Member

@GarthDB GarthDB commented Feb 20, 2026

Summary

Implements AI tooling for Leonardo (#266) with three deliverables:

Phase 1 — llms.txt (#267)

  • llms.txt at repo root: project overview, monorepo structure, public API summary, colorspaces/output formats, contrast methods (wcag2/wcag3), and a quick usage example so LLMs can orient without reading source.

Phase 2 — Agent Skill (#268)

  • skills/leonardo-colors/ following agentskills.io:
    • SKILL.md: frontmatter + step-by-step instructions (install, Color/BackgroundColor, Theme, output getters, mutating themes, utilities, accessibility recipes, colorspaces).
    • references/api.md: full API reference for all exported classes and functions.

Phase 3 — MCP server (#269)

  • packages/mcp/ published as @adobe/leonardo-mcp:
    • Stdio MCP server using @modelcontextprotocol/sdk and @adobe/leonardo-contrast-colors (workspace).
    • Four tools with zod input validation: generate-theme, check-contrast, convert-color, create-palette.
    • moon.yml with test task; Node --test suite for all four tools.
  • Monorepo: mcp added to .moon/workspace.yml; .cursor/mcp.json for local Cursor MCP dev.
  • Release: changeset leonardo-mcp-initial.md for the new package.

CI/CD

  • CI (.github/workflows/ci.yml): Runs moon ci, which already includes all projects from .moon/workspace.yml. The new mcp project is included; no workflow changes required.
  • Release (.github/workflows/release.yml): Uses changesets + pnpm release; the new package will be published when its changeset is merged to the release branch.
  • Deploy site: Unchanged (still moon run ui:buildSite).

No GitHub Actions or CI/CD config updates were needed.

Made with Cursor

GarthDB and others added 2 commits February 20, 2026 15:02
- Add index.html (Welcome), api.html (Leonardo JS API), articles.html
- Add home_sidenav_links partial with <a href> nav; highlight current page via home.js
- Add home.js for doc pages (dark mode, page loader, nav active state)
- Use header_home and index.css for doc pages; theme/scales/tools unchanged
- Add api, articles to Vite rollup input

Co-authored-by: Cursor <cursoragent@cursor.com>
- Add llms.txt at repo root for LLM context (#267)
- Add Agent Skill skills/leonardo-colors/ for @adobe/leonardo-contrast-colors (#268)
- Add @adobe/leonardo-mcp package with MCP server and four tools (#269)
- Add .cursor/mcp.json for local Cursor MCP integration
- Add mcp project to moon workspace; changeset for release

Co-authored-by: Cursor <cursoragent@cursor.com>
@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Feb 20, 2026

🦋 Changeset detected

Latest commit: 6261ea8

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@adobe/leonardo-mcp Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Feb 20, 2026

Run report for 6261ea81

Total time: 31.3s | Comparison time: 43.7s | Estimated savings: 12.4s (28.4% faster)

Action Time Status Info
⬛️ SetupProto(0.52.3) 0ms Skipped
🟩 SyncWorkspace 7.2ms Passed
🟩 SyncProject(contrast-colors) 0.3ms Passed
🟩 SyncProject(mcp) 0.4ms Passed
🟩 SyncProject(ui) 0.6ms Passed
⬛️ SetupToolchain(node:24.0.0) 1.3s Skipped
🟩 InstallWorkspaceDeps(node:24.0.0) 0.5ms Passed
🟩 RunTask(mcp:test) 2s Passed
🟩 RunTask(ui:lint) 4.2s Passed
🟩 RunTask(contrast-colors:test) 7.7s Passed
🟩 RunTask(contrast-colors:test-types) 6.1s Passed
🟩 RunTask(ui:buildSite) 29.9s Passed
Touched files
.changeset/leonardo-mcp-initial.md
.cursor/mcp.json
.moon/workspace.yml
docs/ui/src/ai-tools.html
docs/ui/src/home.js
docs/ui/src/index.css
docs/ui/src/views/header_home.html
docs/ui/src/views/home_ai_tools.html
docs/ui/src/views/home_sidenav_links.html
docs/ui/vite.config.js
llms.txt
packages/mcp/README.md
packages/mcp/moon.yml
packages/mcp/package.json
packages/mcp/src/cli.js
packages/mcp/src/server.js
packages/mcp/src/tools/check-contrast.js
packages/mcp/src/tools/convert-color.js
packages/mcp/src/tools/create-palette.js
packages/mcp/src/tools/generate-theme.js
packages/mcp/test/tools.test.js
pnpm-lock.yaml
skills/leonardo-colors/SKILL.md
skills/leonardo-colors/references/api.md

Remove hardcoded aria-current and is-selected from header Home tab.
Highlight header tab in home.js from pathname so api/articles
do not announce as current page for assistive tech.

Co-authored-by: Cursor <cursoragent@cursor.com>
@GarthDB GarthDB force-pushed the feat/leonardo-ai-tooling-266 branch from 95f8182 to 94ca3bb Compare February 20, 2026 22:37
GarthDB and others added 2 commits February 20, 2026 15:40
Resolve conflicts keeping PR #273 changes:
- home.js: hljs, highlightHeaderTab, ai-tools page detection
- index.css: #aiToolsContent display rule
- header_home.html: no hardcoded aria-current (set in JS)
- home_sidenav_links: AI tooling nav item
- vite.config: ai-tools.html rollup input

Co-authored-by: Cursor <cursoragent@cursor.com>
- Add try/catch with descriptive errors in all tool handlers; return
  isError MCP responses instead of crashing on invalid input
- Read server version from package.json instead of hardcoding
- Reuse colorDefSchema for backgroundColor input validation
- Expose smooth, shift, fullScale, distributeLightness, sortColor
  options in create-palette tool
- Fix check-contrast JSDoc to include largeText in return type
- Rename test file to tools.test.js to reflect full coverage

Co-authored-by: Cursor <cursoragent@cursor.com>
@GarthDB GarthDB force-pushed the feat/leonardo-ai-tooling-266 branch from 380fb93 to 83c2d34 Compare February 20, 2026 22:59
- Badges, quick start, tools reference (generate-theme, check-contrast,
  convert-color, create-palette)
- Cursor and Claude Desktop config examples
- Links to leonardo-contrast-colors, web app, agent skill
- Contributing and licensing

Co-authored-by: Cursor <cursoragent@cursor.com>
@GarthDB GarthDB merged commit 2cda361 into main Feb 20, 2026
3 checks passed
@GarthDB GarthDB deleted the feat/leonardo-ai-tooling-266 branch February 20, 2026 23:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant