Skip to content

Commit d15efb4

Browse files
aditya-klarityintelligenceAditya Thiruvengadamclaude
authored
ci: add GitHub Actions workflow for tests + manifest drift check (#2)
* ci: add GitHub Actions workflow for tests + manifest drift check Runs on push to main and on every PR. Mirrors the local invocation exactly: install dev deps, run `python -m klarity_mcp --check` to catch manifest drift, then run pytest. Single Python version (3.12) keeps the job fast; can expand to a matrix later if 3.11 / 3.13 support actually needs validating in CI. Once this lands and runs green once, the `test` check name will be available to add as a required status check on main if desired. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * ci: swap pip → uv for faster dependency install uv pip install is roughly 5-10x faster than pip and the action's built-in cache is keyed on pyproject.toml. Drops cold install from ~15s to ~2s and warm install from ~3s to ~1s. Uses --system to install into the Python provided by setup-python (no venv layer needed). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * assets: add Microsoft Copilot + multi-vendor logo, hero, and screenshot assets Generated from logo.png (1092x1092) at all sizes required by Microsoft Partner Center, OpenAI, and Anthropic. Includes app-package/ icons (color.png 192x192, outline.png 32x32 transparent white) for the M365 manifest.json package zip. The outline.png uses a dedicated white-on- transparent K mark (~/Downloads/K-White.png) rather than the full-color logo, so it reads cleanly at 32x32 against the Teams left rail. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * release: bump version 0.1.0 → 1.0.0 Microsoft Teams store validator rejects manifests whose version starts with '0' (verbatim: "App version should not start with '0'. Ex: 0.0.1 or 0.1 are not valid app versions and 1.0 / 1.5.1 / 1.0.0 / 2.5.0 are valid app versions"). Bump to 1.0.0 ahead of M365 submission. Cascades through all three public manifests via build_manifest_payloads: - .claude-plugin/plugin.json - .mcp.json (no version field — unchanged) - gemini-extension.json Architect-api's M365 manifest also reads plugin_version from this metadata, so the next regen of private/microsoft-copilot-manifest.json picks up 1.0.0. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Aditya Thiruvengadam <aditya@klaritylaw.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent d799072 commit d15efb4

20 files changed

Lines changed: 107 additions & 3 deletions

.claude-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
33
"name": "klarity",
4-
"version": "0.1.0",
4+
"version": "1.0.0",
55
"description": "Bring your organization's processes and operational knowledge into your AI assistant. The Klarity MCP connects to your Klarity workspace so you can query your organization's processes, explore the process index knowledge graph linking processes to systems and teams, and ground answers in how your business actually runs \u2014 not generic guesses.",
66
"author": {
77
"name": "Klarity Intelligence, Inc.",

.github/workflows/ci.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v4
14+
15+
- name: Set up Python
16+
uses: actions/setup-python@v5
17+
with:
18+
python-version: "3.12"
19+
20+
- name: Install uv
21+
uses: astral-sh/setup-uv@v3
22+
with:
23+
enable-cache: true
24+
cache-dependency-glob: pyproject.toml
25+
26+
- name: Install dev dependencies
27+
run: uv pip install --system -e ".[dev]"
28+
29+
- name: Verify manifests are in sync
30+
run: python -m klarity_mcp --check
31+
32+
- name: Run tests
33+
run: pytest -v

assets/README.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# assets/
2+
3+
Marketing and submission assets for Klarity MCP across vendor app stores.
4+
5+
## Layout
6+
7+
```
8+
assets/
9+
logos/ # square brand logo at multiple sizes (master + downscaled)
10+
hero/ # hero/banner image for store listings
11+
screenshots/ # product screenshots (vendor-neutral filenames)
12+
app-package/ # Microsoft 365 app-package icons (filenames pinned to manifest)
13+
```
14+
15+
## Naming convention
16+
17+
`klarity-{kind}-{WIDTH}x{HEIGHT}.{ext}` — sortable, self-describing, vendor-neutral.
18+
19+
Exception: `app-package/color.png` and `app-package/outline.png` use Microsoft's
20+
required filenames so they match the `icons` block in `manifest.json`.
21+
22+
## Vendor mapping
23+
24+
**Microsoft 365 Copilot — Partner Center listing**
25+
- `logos/klarity-logo-48x48.png` (small)
26+
- `logos/klarity-logo-90x90.png` (medium)
27+
- `logos/klarity-logo-216x216.png` (large)
28+
- `hero/klarity-hero-815x378.png`
29+
- `screenshots/klarity-screenshot-1-1366x768.png`
30+
- `screenshots/klarity-screenshot-2-1366x768.png`
31+
32+
**Microsoft 365 Copilot — app-package zip** (filenames must match `manifest.json`)
33+
- `app-package/color.png` (192x192, full color)
34+
- `app-package/outline.png` (32x32, transparent + white only, dedicated K-mark)
35+
36+
**OpenAI / Anthropic / general listings**
37+
- `logos/klarity-logo-512x512.png`
38+
- `screenshots/klarity-screenshot-{1,2}-original.png` (706x557, 706x478)
39+
40+
## Sources
41+
42+
- Master logo (1092x1092): `~/Downloads/klarity-logo-1092x1092.png`, identical
43+
(sha256-matched) to `klarity-mcp/logo.png` at the repo root.
44+
- Outline source (white K on transparent): `~/Downloads/K-White.png` (243x292).
45+
Distinct from the full-color logo — used only for `app-package/outline.png`.
46+
Cleaned + archived at `logos/klarity-logo-mark-white-243x292.png`.
47+
- Hero source: `~/Downloads/klarityai_cover.jpeg` (1128x191 banner).
48+
Letterboxed onto extended-edge gradient to fit 815x378.
49+
- Screenshot sources: `~/Desktop/klarity-chatgpt-app-screenshot-{1,2}.png`.
50+
Renamed to vendor-neutral `klarity-screenshot-{1,2}-*` and letterboxed onto
51+
the matching dark-gray background (#212121) to fit 1366x768.
52+
53+
## Regeneration
54+
55+
All assets derive from the master `logo.png` plus the source files above.
56+
To regenerate logos at new sizes (requires Pillow in the active env):
57+
58+
```bash
59+
poetry run python3 - <<'PY'
60+
from PIL import Image
61+
master = Image.open("logo.png")
62+
for s in (1092, 512, 216, 192, 90, 48):
63+
out = f"assets/logos/klarity-logo-{s}x{s}.png"
64+
img = master if s == 1092 else master.resize((s, s), Image.LANCZOS)
65+
img.save(out, "PNG", optimize=True)
66+
PY
67+
```
68+
69+
The Microsoft `app-package/outline.png` is not derived from `logo.png`; see
70+
the recipe in the original asset-generation task — it uses the dedicated
71+
white-on-transparent K mark and force-whitens any non-transparent pixels.

assets/app-package/color.png

3.71 KB
Loading

assets/app-package/outline.png

789 Bytes
Loading
68.6 KB
Loading
26.2 KB
Loading
13.3 KB
Loading
3.71 KB
Loading
4.21 KB
Loading

0 commit comments

Comments
 (0)