`, `| `, ` `, ``, and ``.
+- Embedded `
+ ```
+2. Transparent logos must have a subtle outer glow/stroke or live in a defined background box so they do not become invisible on inverted dark backgrounds.
+
+### I. Size Limit and Deliverability
+- **Keep total HTML file size under 100 KB.** Gmail clips emails at 102 KB, hiding content behind a `[Message clipped] View entire message` link and breaking unsubscribe tracking.
+- Every marketing/newsletter email **must** include a compliant footer:
+ - Organization legal name
+ - Valid physical postal address
+ - Clear, functional Unsubscribe link (`Unsubscribe`)
+ - Optional: Preferences link (`Manage Preferences`)
+
+### J. Plain-Text Twin
+Always accompany an HTML email with a clean, formatted plain-text alternative (`.txt`):
+- Maintain clean vertical spacing with blank lines.
+- Format links directly below CTA text or inline in brackets.
+- Retain the legal footer and unsubscribe link.
+
+---
+
+## 4. Verification Checklist Before Delivery
+
+Before delivering any email markup, verify every item:
+- [ ] Tested width: Max 600px, centers cleanly on desktop and scales to 100% on mobile.
+- [ ] No `div` containers for column layout (all table-cell based in raw HTML; React Email / MJML components if using an email framework).
+- [ ] All colors are 6-digit hex codes (`#xxxxxx`).
+- [ ] All spacing is on ` | ` padding or dedicated spacer rows (no `margin`).
+- [ ] CTA button uses table cell padding with Outlook VML/padding fix.
+- [ ] Preheader included with ZWNJ anti-spill characters.
+- [ ] All images have `display:block`, explicit width/height, and styled `alt` text.
+- [ ] Total HTML payload is strictly under 100 KB (no bloated inline base64 images).
+- [ ] Paired plain-text version provided.
diff --git a/skills/impeccable/reference/routing.md b/skills/impeccable/reference/routing.md
index 470a8bd..e0b9ae4 100644
--- a/skills/impeccable/reference/routing.md
+++ b/skills/impeccable/reference/routing.md
@@ -1,4 +1,18 @@
-# No-argument routing: the context-aware menu
+# Command guidance
+
+## Workflow questions
+
+Give advice without executing commands; the menu below is only for bare invocations. Consult relevant command references as needed for prerequisites and scope. If the user asks general design workflow or staging questions, answer directly; if the user also requests execution, follow that request.
+
+## Email and newsletter routing
+
+When the user asks to design, draft, code, critique, or polish an email, newsletter, transactional receipt, or broadcast:
+- Direct immediately to [email.md](email.md).
+- Do not attempt web UI components, flexbox, CSS Grid, or shadcn components.
+- Do not generate Tailwind or external CSS stylesheets.
+- Enforce the 6 email archetypes and strict client-safe table markup (or React Email/MJML framework components if configured).
+
+## No-argument routing: the context-aware menu
Read this when the user invokes `/impeccable` with no argument. They are asking "what should I do?" Make the menu context-aware instead of static.
diff --git a/skills/impeccable/reference/ui-hub.md b/skills/impeccable/reference/ui-hub.md
index 98812d4..23b2187 100644
--- a/skills/impeccable/reference/ui-hub.md
+++ b/skills/impeccable/reference/ui-hub.md
@@ -6,6 +6,7 @@ Load this after the visual world is settled and before installing a catalog comp
- `components.json` in cwd: search the hub.
- React + Tailwind, no `components.json`: offer `npx shadcn@ init`. Do not run it silently.
+- HTML email templates, newsletters, or email marketing: do not call the hub; route to [email.md](email.md). Email clients do not support shadcn/web UI component libraries.
- GrokBestFriend itself, backend, Python, or a non-UI tree: do not init and do not call the hub.
- Context7 is documentation. Web search is not an installer.
diff --git a/tests/fixtures/codebase-memory-mcp b/tests/fixtures/codebase-memory-mcp
index cff381d..9ab0d09 100755
--- a/tests/fixtures/codebase-memory-mcp
+++ b/tests/fixtures/codebase-memory-mcp
@@ -1,2 +1,2 @@
#!/bin/sh
-echo "codebase-memory-mcp 0.9.0"
+echo "codebase-memory-mcp 0.11.0"
diff --git a/tests/test_doctor.py b/tests/test_doctor.py
index f46e713..be3b199 100644
--- a/tests/test_doctor.py
+++ b/tests/test_doctor.py
@@ -57,13 +57,18 @@ def test_path_line_does_not_downgrade_connected(self):
● ✓ context7 connected
│ https://mcp.context7.com/mcp
● ✓ shadcn connected
-│ npx -y shadcn@4.18.0 mcp
+│ npx -y shadcn@4.21.0 mcp
"""
out = parse_mcp_list(text)
self.assertEqual(out["codebase-memory-mcp"], "CONNECTED")
self.assertEqual(out["context7"], "CONNECTED")
self.assertEqual(out["shadcn"], "CONNECTED")
+ def test_shadcn_mcp_subcommand_probe(self):
+ text = "● ✓ shadcn connected\n│ npx -y shadcn@4.21.0 mcp\n"
+ out = parse_mcp_list(text)
+ self.assertEqual(out["shadcn"], "CONNECTED")
+
class AgentsBlockTests(unittest.TestCase):
def test_owned_block_ignores_foreign_text(self):
diff --git a/tests/test_install.py b/tests/test_install.py
index b0ab44b..68bf55c 100644
--- a/tests/test_install.py
+++ b/tests/test_install.py
@@ -29,6 +29,7 @@
cmd_ui_skills_disable,
cmd_ui_skills_enable,
cmd_uninstall,
+ download_codebase_memory,
)
from lib.doctor import cmd_doctor, cmd_skills_verify, isolation_check # noqa: E402
from lib.design_v2.bootstrap import BootstrapError # noqa: E402
@@ -618,6 +619,46 @@ def test_install_quarantines_legacy_v1_plugin(self):
self.assertTrue(qfile.is_file())
self.assertTrue(user_plugin.is_file())
+ def test_cbm_pins_and_checksum_verification(self):
+ sources = jsonc.load_path(ROOT / "vendor" / "sources.json")["sources"]["codebase-memory"]
+ self.assertEqual(sources["version"], "0.11.0")
+ self.assertEqual(sources["artifactSha256"], "1f9e8293eb2bc5c05cfa27a7e8fc033da6d729ffad525ccfcdaa3fd606306683")
+ self.assertEqual(sources["innerBinarySha256"], "ce11c141431aeadd788506c3a7e6942db8fd438dec369d0707a39ec9fd8c6510")
+
+ with patch.dict(os.environ, {"OPENCODE_HE_TEST_CBM": ""}, clear=False):
+ os.environ.pop("OPENCODE_HE_TEST_CBM", None)
+ with patch("lib.install.urllib.request.urlretrieve"), \
+ patch("lib.install.sha256_file", return_value="mismatched_archive_sha"), \
+ self.assertRaises(SystemExit) as ctx:
+ download_codebase_memory()
+ self.assertEqual(ctx.exception.code, 1)
+
+ def test_cbm_inner_binary_checksum_verification(self):
+ with patch.dict(os.environ, {"OPENCODE_HE_TEST_CBM": ""}, clear=False):
+ os.environ.pop("OPENCODE_HE_TEST_CBM", None)
+ sources = jsonc.load_path(ROOT / "vendor" / "sources.json")["sources"]["codebase-memory"]
+ expected_archive_sha = sources["artifactSha256"]
+
+ import io
+ import tarfile
+
+ def fake_fetch(url, archive_path):
+ Path(archive_path).parent.mkdir(parents=True, exist_ok=True)
+ with tarfile.open(archive_path, "w:gz") as tf:
+ content = b"fake-cbm-binary"
+ ti = tarfile.TarInfo(name="codebase-memory-mcp")
+ ti.size = len(content)
+ ti.mode = 0o755
+ tf.addfile(ti, io.BytesIO(content))
+
+ with patch("lib.install.urllib.request.urlretrieve", side_effect=fake_fetch), \
+ patch("lib.install.sha256_file") as mock_sha, \
+ self.assertRaises(SystemExit) as ctx:
+ mock_sha.side_effect = [expected_archive_sha, "mismatched_binary_sha"]
+ download_codebase_memory()
+ self.assertEqual(ctx.exception.code, 1)
+
+
if __name__ == "__main__":
unittest.main()
diff --git a/tests/test_license_audit.py b/tests/test_license_audit.py
index d574a38..114a158 100644
--- a/tests/test_license_audit.py
+++ b/tests/test_license_audit.py
@@ -38,6 +38,25 @@ def test_every_skill_is_audited(self):
self.assertTrue(grok.is_file())
self.assertIn("GrokBestFriend contributors", grok.read_text(encoding="utf-8"))
+ def test_sources_license_files_exist(self):
+ sources = json.loads((ROOT / "vendor" / "sources.json").read_text(encoding="utf-8"))["sources"]
+ pinned = []
+ for name, spec in sources.items():
+ rel = spec.get("licenseFile")
+ if not rel:
+ continue
+ path = ROOT / rel
+ self.assertTrue(path.is_file(), f"{name} licenseFile missing: {rel}")
+ text = path.read_text(encoding="utf-8")
+ self.assertGreater(len(text.strip()), 40, rel)
+ pinned.append(rel)
+ self.assertIn("vendor/licenses/IMPECCABLE-APACHE2.txt", pinned)
+ self.assertIn("vendor/licenses/EMILKOWALSKI-MIT.txt", pinned)
+ apache = (ROOT / "vendor/licenses/IMPECCABLE-APACHE2.txt").read_text(encoding="utf-8")
+ mit = (ROOT / "vendor/licenses/EMILKOWALSKI-MIT.txt").read_text(encoding="utf-8")
+ self.assertIn("Copyright 2025 Paul Bakaus", apache)
+ self.assertIn("Copyright (c) 2026 Emil Kowalski", mit)
+
def test_provenance_version_matches_product(self):
prov = json.loads((ROOT / "vendor" / "provenance.json").read_text(encoding="utf-8"))
self.assertEqual(prov["productVersion"], product_version())
diff --git a/tests/test_v2_schema.py b/tests/test_v2_schema.py
index b243fa3..81130a1 100644
--- a/tests/test_v2_schema.py
+++ b/tests/test_v2_schema.py
@@ -23,6 +23,19 @@ def test_owned_mcp_is_v2(self):
self.assertIn("disabled", entry)
self.assertNotIn("enabled", entry)
+ def test_shadcn_mcp_invocation_and_pin(self):
+ spec = owned_mcp_spec(Path("/tmp/codebase-memory-mcp"))
+ self.assertIn("shadcn", spec)
+ shadcn = spec["shadcn"]
+ self.assertEqual(shadcn["type"], "local")
+ self.assertEqual(shadcn["command"], ["npx", "-y", "shadcn@4.21.0", "mcp"])
+ self.assertIn("mcp", shadcn["command"])
+ self.assertFalse(shadcn["disabled"])
+
+ sources = jsonc.load_path(ROOT / "vendor" / "sources.json")["sources"]["shadcn"]
+ self.assertEqual(sources["version"], "4.21.0")
+ self.assertEqual(sources["via"], "npx")
+
def test_installer_rejects_opencode_1(self):
prev = os.environ.get("OPENCODE_HE_MOCK_OPENCODE")
with tempfile.TemporaryDirectory() as td:
diff --git a/vendor/licenses/EMILKOWALSKI-MIT.txt b/vendor/licenses/EMILKOWALSKI-MIT.txt
new file mode 100644
index 0000000..57b46f1
--- /dev/null
+++ b/vendor/licenses/EMILKOWALSKI-MIT.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2026 Emil Kowalski
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/vendor/licenses/IMPECCABLE-APACHE2.txt b/vendor/licenses/IMPECCABLE-APACHE2.txt
new file mode 100644
index 0000000..bb3f6d2
--- /dev/null
+++ b/vendor/licenses/IMPECCABLE-APACHE2.txt
@@ -0,0 +1,191 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to the Licensor for inclusion in the Work by the copyright
+ owner or by an individual or Legal Entity authorized to submit on
+ behalf of the copyright owner. For the purposes of this definition,
+ "submitted" means any form of electronic, verbal, or written
+ communication sent to the Licensor or its representatives, including
+ but not limited to communication on electronic mailing lists, source
+ code control systems, and issue tracking systems that are managed by,
+ or on behalf of, the Licensor for the purpose of discussing and
+ improving the Work, but excluding communication that is conspicuously
+ marked or otherwise designated in writing by the copyright owner as
+ "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ Copyright 2025 Paul Bakaus
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/vendor/mcp-policy.json b/vendor/mcp-policy.json
index f3598ea..18f4193 100644
--- a/vendor/mcp-policy.json
+++ b/vendor/mcp-policy.json
@@ -15,7 +15,7 @@
"enabled": true,
"transport": "stdio",
"command": "npx",
- "args": ["-y", "shadcn@4.18.0", "mcp"]
+ "args": ["-y", "shadcn@4.21.0", "mcp"]
},
"exa": {
"enabled": false,
diff --git a/vendor/mcp-wanted.json b/vendor/mcp-wanted.json
index 4b19bbd..e245084 100644
--- a/vendor/mcp-wanted.json
+++ b/vendor/mcp-wanted.json
@@ -22,7 +22,7 @@
"scope": "user",
"transport": "stdio",
"command": "npx",
- "args": ["-y", "shadcn@4.18.0", "mcp"]
+ "args": ["-y", "shadcn@4.21.0", "mcp"]
},
"exa": {
"wanted": false,
diff --git a/vendor/sources.json b/vendor/sources.json
index 2f1f5ab..cf51055 100644
--- a/vendor/sources.json
+++ b/vendor/sources.json
@@ -12,15 +12,16 @@
"sources": {
"codebase-memory": {
"repository": "https://github.com/DeusData/codebase-memory-mcp",
- "version": "0.9.0",
+ "version": "0.11.0",
"platform": "linux-x86_64",
- "artifactUrl": "https://github.com/DeusData/codebase-memory-mcp/releases/download/v0.9.0/codebase-memory-mcp-linux-amd64-portable.tar.gz",
- "artifactSha256": "8459d5c9d1457f2c82de3de307ffc7641ecbba2dde893427be1e62eca8ef9b25"
+ "artifactUrl": "https://github.com/DeusData/codebase-memory-mcp/releases/download/v0.11.0/codebase-memory-mcp-linux-amd64-portable.tar.gz",
+ "artifactSha256": "1f9e8293eb2bc5c05cfa27a7e8fc033da6d729ffad525ccfcdaa3fd606306683",
+ "innerBinarySha256": "ce11c141431aeadd788506c3a7e6942db8fd438dec369d0707a39ec9fd8c6510"
},
"shadcn": {
"repository": "https://github.com/shadcn-ui/ui",
"package": "shadcn",
- "version": "4.18.0",
+ "version": "4.21.0",
"via": "npx",
"engines": {
"node": ">=20.18.1"
@@ -42,7 +43,7 @@
},
"serena": {
"repository": "https://github.com/oraios/serena",
- "version": "1.6.1",
+ "version": "1.7.0",
"package": "serena-agent",
"status": "optional-on-demand"
},
@@ -54,6 +55,7 @@
},
"reticle": {
"package": "@reticlehq/server",
+ "version": "3.1.0",
"transport": "stdio",
"via": "npx",
"license": "FSL-1.1-ALv2",
@@ -68,8 +70,8 @@
},
"markitdown": {
"repository": "https://github.com/microsoft/markitdown",
- "version": "0.1.7",
- "commit": "945314a45ddbe02935f2fd287b797dc0ba4a01e4",
+ "version": "0.1.8",
+ "commit": "b8f79c57ebc0044be41323d89b2a45d3fda8460e",
"license": "MIT",
"package": "markitdown-mcp",
"via": "uvx",
@@ -79,13 +81,15 @@
},
"browser-act": {
"repository": "https://github.com/browser-act/skills",
+ "commit": "11c057b03f92101642cadc9f840564574120d184",
"version": "1.3.0",
"package": "browser-act-cli",
- "status": "optional-host"
+ "status": "optional-host",
+ "note": "Three supported execution modes (chrome, stealth-fresh, stealth-fixed). Never chrome-direct. Host CLI pinned 1.3.0."
},
"semgrep": {
"package": "semgrep",
- "version": "1.171.0",
+ "version": "1.177.0",
"status": "optional-host"
},
"gitleaks": {
@@ -95,9 +99,59 @@
},
"osv-scanner": {
"repository": "https://github.com/google/osv-scanner",
- "version": "2.4.0",
+ "version": "2.6.0",
"status": "optional-host"
},
+ "impeccable": {
+ "repository": "https://github.com/pbakaus/impeccable",
+ "tag": "skill-v4.3.1",
+ "commit": "cd12f8660e2d",
+ "verifiedMainCommit": "e0881d2de397d5e9761d7b35ff5017d8f5ebf69b",
+ "license": "Apache-2.0",
+ "copyright": "Copyright 2025 Paul Bakaus",
+ "licenseFile": "vendor/licenses/IMPECCABLE-APACHE2.txt",
+ "note": "Adapted reference set with strict overlay gates (Design V2 atom shortlisting, taste-guard 4-tier, found-this-design world pin, BANK_MISS != generate, email design merge). No runtime plugin download."
+ },
+ "emil-design-eng": {
+ "repository": "https://github.com/emilkowalski/skills",
+ "commit": "85e8e2363b71",
+ "license": "MIT",
+ "copyright": "Copyright (c) 2026 Emil Kowalski",
+ "licenseFile": "vendor/licenses/EMILKOWALSKI-MIT.txt",
+ "note": "Emil Kowalski design engineering principles and motion doctrines merged into single specialist without catalog bloat (motion, apple-principles, native-motion, interface-feel)."
+ },
+ "email-design-sources": {
+ "sources": [
+ "https://github.com/CosmoBlk/email-design (commit c56bfe0, MIT)",
+ "https://github.com/jayesh-bansal/email-pro-max (commit 6a28b31, MIT)",
+ "https://github.com/chunkydotdev/email-skills (commit dca18fc, MIT)",
+ "https://github.com/Olshansk/agent-skills (commit d43745c, MIT)"
+ ],
+ "note": "Merged into skills/impeccable/reference/email.md; zero new allowlist names."
+ },
+ "axi": {
+ "repository": "https://github.com/kunchenguid/axi",
+ "commit": "85a8723276ca",
+ "license": "MIT",
+ "note": "Surfaces for gh-axi and chrome-devtools-axi under 4-door browser hierarchy."
+ },
+ "hyperframes": {
+ "repository": "https://github.com/heygen-com/hyperframes",
+ "commit": "ed75203cb6aa",
+ "version": "0.8.64",
+ "license": "Apache-2.0"
+ },
+ "diagram-design": {
+ "repository": "https://github.com/cathrynlavery/diagram-design",
+ "commit": "dc1ace47b99a",
+ "version": "2.6.33",
+ "license": "MIT"
+ },
+ "humanizer": {
+ "repository": "https://github.com/blader/humanizer",
+ "version": "3.0.0",
+ "license": "MIT"
+ },
"matt-pocock-skills": {
"repository": "https://github.com/mattpocock/skills",
"commit": "9c9f36ccd3995266cd675468af71639c8dde1ec5",
|