mirror of
https://github.com/anthropics/claude-plugins-official.git
synced 2026-06-19 16:14:03 +00:00
Compare commits
246 Commits
fix-2159-s
...
morganl/co
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ecc5139c30 | ||
|
|
a7e1f99070 | ||
|
|
0c40a74425 | ||
|
|
bec8d7c93a | ||
|
|
8745968186 | ||
|
|
1c4a5cfded | ||
|
|
bbbff6ab54 | ||
|
|
6105eea1c6 | ||
|
|
7a574ede07 | ||
|
|
50507ce03c | ||
|
|
9dbb38fff1 | ||
|
|
0f2b68bec6 | ||
|
|
e408e54811 | ||
|
|
7a5c13e654 | ||
|
|
a0bf1eed49 | ||
|
|
e0825af81b | ||
|
|
318f7c9674 | ||
|
|
60706e7bc3 | ||
|
|
f00d6d8005 | ||
|
|
48bbef8757 | ||
|
|
4d5ccd2968 | ||
|
|
aa6e8702bc | ||
|
|
36046dac80 | ||
|
|
19b7347f82 | ||
|
|
d321de478d | ||
|
|
4a501b5766 | ||
|
|
795d2ba506 | ||
|
|
297568419b | ||
|
|
ed3ff7abb3 | ||
|
|
6046414b87 | ||
|
|
a348b32801 | ||
|
|
c033853393 | ||
|
|
2b08b5b3ca | ||
|
|
0d0478adb9 | ||
|
|
e007f1b979 | ||
|
|
3aa99bd279 | ||
|
|
f5962b8e64 | ||
|
|
1b46aa6d4a | ||
|
|
7cdfbb4cb2 | ||
|
|
13bb250718 | ||
|
|
8f2f03a654 | ||
|
|
e27e302c39 | ||
|
|
50d9d8775d | ||
|
|
f13b8b9fb2 | ||
|
|
84c2cdf3ad | ||
|
|
d136461a6c | ||
|
|
1fb8ee7628 | ||
|
|
093e91b259 | ||
|
|
fc4b52db22 | ||
|
|
d447c246ca | ||
|
|
6cf7e6331e | ||
|
|
139e43d457 | ||
|
|
67f20b04f0 | ||
|
|
18ccde8c37 | ||
|
|
0ea0ddc5cc | ||
|
|
bc00d658e7 | ||
|
|
5ca5306896 | ||
|
|
76d3c7ee37 | ||
|
|
88afc50343 | ||
|
|
ed4e896219 | ||
|
|
ec38e7a881 | ||
|
|
f1e2e3f1e4 | ||
|
|
8b26e9f1c1 | ||
|
|
7562e052d5 | ||
|
|
4b538d5d40 | ||
|
|
3d5017bc1d | ||
|
|
d56b86d462 | ||
|
|
4fe9dd9b4b | ||
|
|
7dc4ed688f | ||
|
|
65a01fafdc | ||
|
|
dcc5a1a8b3 | ||
|
|
0278237073 | ||
|
|
659f9f42ad | ||
|
|
659d30b1f6 | ||
|
|
c7ec509ba6 | ||
|
|
317a14e25e | ||
|
|
22bb99c414 | ||
|
|
7929ae4a4b | ||
|
|
c422aeed0c | ||
|
|
a68871c83b | ||
|
|
08a05826ce | ||
|
|
44fa671ac4 | ||
|
|
303bc792b4 | ||
|
|
13882305d8 | ||
|
|
3fdc816735 | ||
|
|
f3a89dac7c | ||
|
|
330882bb53 | ||
|
|
6fa207be17 | ||
|
|
d50355a54d | ||
|
|
6658696d8f | ||
|
|
71216eb7e0 | ||
|
|
b1e201e422 | ||
|
|
8bb44ef9b8 | ||
|
|
9c0179fb60 | ||
|
|
f2c56408f8 | ||
|
|
4230aea142 | ||
|
|
a60315ae16 | ||
|
|
d46ebdd1eb | ||
|
|
30a7536d0f | ||
|
|
f0fc619c64 | ||
|
|
c770602299 | ||
|
|
89bc907203 | ||
|
|
948295e907 | ||
|
|
9883cde440 | ||
|
|
96d59f53eb | ||
|
|
e4fc76d71f | ||
|
|
ef7eea8a27 | ||
|
|
607793a939 | ||
|
|
2b019efea0 | ||
|
|
983f2789dc | ||
|
|
1f910e18c0 | ||
|
|
908c255afb | ||
|
|
435820146b | ||
|
|
c1f2ebd30c | ||
|
|
bfd6cc4453 | ||
|
|
90a522ac76 | ||
|
|
e01bc27de9 | ||
|
|
0cc28d3f85 | ||
|
|
2a2965bf7d | ||
|
|
2ee946660a | ||
|
|
2b0af2c713 | ||
|
|
285c6086c8 | ||
|
|
64d2239ee3 | ||
|
|
c5a851d162 | ||
|
|
00e70ff764 | ||
|
|
f76697f228 | ||
|
|
7e7fd1e19f | ||
|
|
1084105a18 | ||
|
|
636410d7b4 | ||
|
|
fa09cccba0 | ||
|
|
b41c121fef | ||
|
|
58d3bf4a70 | ||
|
|
e5483762ee | ||
|
|
94d4566c99 | ||
|
|
2346b18566 | ||
|
|
bd7cf41fc8 | ||
|
|
52e0a89d75 | ||
|
|
e4afd8274a | ||
|
|
056ed579e1 | ||
|
|
9b3f5842eb | ||
|
|
0a028a197f | ||
|
|
971bf7f77b | ||
|
|
84a0cba999 | ||
|
|
4ef055161a | ||
|
|
4b4a60ed46 | ||
|
|
f525ab814a | ||
|
|
f7407b0091 | ||
|
|
730d487f4d | ||
|
|
844a06dd94 | ||
|
|
83963ed0f7 | ||
|
|
45b7e6ec36 | ||
|
|
05c4276085 | ||
|
|
fae0d05910 | ||
|
|
26bccc54c1 | ||
|
|
ed56c0d518 | ||
|
|
9ea29a2377 | ||
|
|
1450e35366 | ||
|
|
c1f89408c2 | ||
|
|
790bfbdd95 | ||
|
|
1c23816966 | ||
|
|
b5751f418c | ||
|
|
ddc3437f95 | ||
|
|
4ebb5a75a5 | ||
|
|
0c2a34f802 | ||
|
|
a25353363c | ||
|
|
e316c19f6f | ||
|
|
6a3ae4e747 | ||
|
|
7b0c2ddd17 | ||
|
|
9bccbd173a | ||
|
|
2c5a70bb49 | ||
|
|
25abef4427 | ||
|
|
1bdaa2dcea | ||
|
|
e5a0936496 | ||
|
|
630feb5365 | ||
|
|
7a3f4bdaab | ||
|
|
37a0394791 | ||
|
|
b48886695f | ||
|
|
823b7264c9 | ||
|
|
6cb60f9d47 | ||
|
|
fed4a6b362 | ||
|
|
e23c03def5 | ||
|
|
3f0d0cca4e | ||
|
|
f0800afe0c | ||
|
|
a121f46335 | ||
|
|
e203a236d0 | ||
|
|
dfa29c64bf | ||
|
|
c0a1e1f807 | ||
|
|
e9f40d88f2 | ||
|
|
d997216b9f | ||
|
|
c480548d4a | ||
|
|
5608da5867 | ||
|
|
1653d264d0 | ||
|
|
1be78e5ccc | ||
|
|
abdccf388f | ||
|
|
eb3c22451b | ||
|
|
f3d705ed97 | ||
|
|
f3ee528f2b | ||
|
|
a6bf8efa48 | ||
|
|
328152fe82 | ||
|
|
7efac88777 | ||
|
|
3c5b8d2f9e | ||
|
|
8b7512de3a | ||
|
|
1a20df0d5f | ||
|
|
6f9037182d | ||
|
|
42eb33dcd1 | ||
|
|
ab91f484de | ||
|
|
4979da050c | ||
|
|
66c63c89d2 | ||
|
|
1d93263223 | ||
|
|
d81de2d9ab | ||
|
|
72d0792fe9 | ||
|
|
9f597b4ef2 | ||
|
|
4f16798996 | ||
|
|
1e3d218e11 | ||
|
|
b4a11cf644 | ||
|
|
406fd96219 | ||
|
|
6a38aaef26 | ||
|
|
814ef4af89 | ||
|
|
a070a4dba3 | ||
|
|
cc9a6c8269 | ||
|
|
8fb820f67c | ||
|
|
9b2e502281 | ||
|
|
6e6310b80a | ||
|
|
fdb10ece9e | ||
|
|
bc4d00b957 | ||
|
|
f93710e514 | ||
|
|
8862801139 | ||
|
|
6dd6f9c21e | ||
|
|
a432b3965a | ||
|
|
d6ccaa6ee2 | ||
|
|
b8ccdcc586 | ||
|
|
8f42f64807 | ||
|
|
9ea894cf81 | ||
|
|
db0594acbe | ||
|
|
764574c529 | ||
|
|
baa919e1e0 | ||
|
|
14485f083b | ||
|
|
f41adcdec4 | ||
|
|
defa28f86c | ||
|
|
64d6c18552 | ||
|
|
614fb60707 | ||
|
|
c917011ca6 | ||
|
|
d4d90844a0 | ||
|
|
63457674dd | ||
|
|
7d10ac5f67 | ||
|
|
9bd1e49f2e |
@@ -19,7 +19,7 @@
|
||||
"url": "https://github.com/42Crunch-AI/claude-plugins.git",
|
||||
"path": "plugins/api-security-testing",
|
||||
"ref": "v1.5.5",
|
||||
"sha": "b404d99a3f0bc1f3e74a1638671e2e3319187e2c"
|
||||
"sha": "db2fb7e53e3d93a863930b6f6b7895be5ee01f21"
|
||||
},
|
||||
"homepage": "https://42crunch.com"
|
||||
},
|
||||
@@ -35,7 +35,7 @@
|
||||
"url": "https://github.com/adobe/skills.git",
|
||||
"path": "plugins/creative-cloud/adobe-for-creativity",
|
||||
"ref": "main",
|
||||
"sha": "8d74ee6b6fdce4a1c46b98b5a66706c9393fc369"
|
||||
"sha": "e23271f65aa7572f567d085d6baec5c2408e2ad5"
|
||||
},
|
||||
"homepage": "https://github.com/adobe/skills/tree/main/plugins/creative-cloud/adobe-for-creativity"
|
||||
},
|
||||
@@ -57,7 +57,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/SalesforceAIResearch/agentforce-adlc.git",
|
||||
"sha": "1584dd52f388482db78949456addfa29a4c9d9c3"
|
||||
"sha": "fad761fce6cba119d23792b3a96a3bf33e23c566"
|
||||
},
|
||||
"homepage": "https://github.com/SalesforceAIResearch/agentforce-adlc"
|
||||
},
|
||||
@@ -97,6 +97,22 @@
|
||||
},
|
||||
"homepage": "https://www.airtable.com"
|
||||
},
|
||||
{
|
||||
"name": "airwallex",
|
||||
"description": "Airwallex CLI plugin for Claude — skills for payments, billing, invoicing, beneficiary creation, card provisioning, and cashflow management.",
|
||||
"author": {
|
||||
"name": "Airwallex"
|
||||
},
|
||||
"category": "productivity",
|
||||
"source": {
|
||||
"source": "git-subdir",
|
||||
"url": "https://github.com/airwallex/airwallex-marketplace.git",
|
||||
"path": "plugins/airwallex",
|
||||
"ref": "master",
|
||||
"sha": "a903ab7693a5f6d46f2fab6f895a2f96a879ee0f"
|
||||
},
|
||||
"homepage": "https://www.airwallex.com/docs"
|
||||
},
|
||||
{
|
||||
"name": "alloydb",
|
||||
"description": "Create, connect, and interact with an AlloyDB for PostgreSQL database and data.",
|
||||
@@ -111,6 +127,20 @@
|
||||
},
|
||||
"homepage": "https://cloud.google.com/alloydb"
|
||||
},
|
||||
{
|
||||
"name": "alloydb-omni",
|
||||
"description": "Create, connect, and interact with an AlloyDB Omni database and data.",
|
||||
"author": {
|
||||
"name": "Google LLC"
|
||||
},
|
||||
"category": "database",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/gemini-cli-extensions/alloydb-omni.git",
|
||||
"sha": "fbf2476630629f32ce0029bbd62d225950fdfd6d"
|
||||
},
|
||||
"homepage": "https://github.com/gemini-cli-extensions/alloydb-omni"
|
||||
},
|
||||
{
|
||||
"name": "amazon-location-service",
|
||||
"description": "Guide developers through adding maps, places search, geocoding, routing, and other geospatial features with Amazon Location Service, including authentication setup, SDK integration, and best practices.",
|
||||
@@ -120,7 +150,7 @@
|
||||
"url": "https://github.com/awslabs/agent-plugins.git",
|
||||
"path": "plugins/amazon-location-service",
|
||||
"ref": "main",
|
||||
"sha": "187edde6e122116b43211049195627a5069bda80"
|
||||
"sha": "fc54dfa24a1f05095b9fcbb4baa4750996bb171d"
|
||||
},
|
||||
"homepage": "https://github.com/awslabs/agent-plugins"
|
||||
},
|
||||
@@ -161,7 +191,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/apollographql/skills.git",
|
||||
"sha": "e1d07720e9bcfbf867fa2907192c94ec2ed421e1"
|
||||
"sha": "605089108a198e412f7f0c1926c91eb94a6d1727"
|
||||
},
|
||||
"homepage": "https://www.apollographql.com"
|
||||
},
|
||||
@@ -203,7 +233,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/atlanhq/agent-toolkit.git",
|
||||
"sha": "cda594f40503cd2ae144052237fa2890e024828c"
|
||||
"sha": "789507c02d2495235240d10d67aaac8b2051023a"
|
||||
},
|
||||
"homepage": "https://docs.atlan.com/"
|
||||
},
|
||||
@@ -226,7 +256,7 @@
|
||||
"source": "url",
|
||||
"url": "https://github.com/BrainBlend-AI/atomic-agents.git",
|
||||
"path": "claude-plugin/atomic-agents",
|
||||
"sha": "57d6099f499fe21572bdf943396630bd3d968550"
|
||||
"sha": "324399402b9b5965313de6a34ea09d6bb149a200"
|
||||
},
|
||||
"homepage": "https://github.com/BrainBlend-AI/atomic-agents",
|
||||
"tags": [
|
||||
@@ -245,7 +275,7 @@
|
||||
"url": "https://github.com/auth0/agent-skills.git",
|
||||
"path": "plugins/auth0",
|
||||
"ref": "main",
|
||||
"sha": "c38453f6a99bbfeaf73b5be81db987ec6af982da"
|
||||
"sha": "bdf0dc23f8b17446b2c94bc9f2e5a58d3f1bc114"
|
||||
},
|
||||
"homepage": "https://auth0.com/docs/quickstart/agent-skills"
|
||||
},
|
||||
@@ -261,7 +291,7 @@
|
||||
"url": "https://github.com/aws/agent-toolkit-for-aws.git",
|
||||
"path": "plugins/aws-agents",
|
||||
"ref": "main",
|
||||
"sha": "ba1cc8ca4f063d88ca40c6acf3f670e6321b7a7f"
|
||||
"sha": "55b9acfefdcf0866b6bc6cc56c16e6e18e65bd2b"
|
||||
},
|
||||
"homepage": "https://github.com/aws/agent-toolkit-for-aws"
|
||||
},
|
||||
@@ -274,7 +304,7 @@
|
||||
"url": "https://github.com/awslabs/agent-plugins.git",
|
||||
"path": "plugins/aws-amplify",
|
||||
"ref": "main",
|
||||
"sha": "187edde6e122116b43211049195627a5069bda80"
|
||||
"sha": "fc54dfa24a1f05095b9fcbb4baa4750996bb171d"
|
||||
},
|
||||
"homepage": "https://github.com/awslabs/agent-plugins"
|
||||
},
|
||||
@@ -290,7 +320,7 @@
|
||||
"url": "https://github.com/aws/agent-toolkit-for-aws.git",
|
||||
"path": "plugins/aws-core",
|
||||
"ref": "main",
|
||||
"sha": "ba1cc8ca4f063d88ca40c6acf3f670e6321b7a7f"
|
||||
"sha": "55b9acfefdcf0866b6bc6cc56c16e6e18e65bd2b"
|
||||
},
|
||||
"homepage": "https://github.com/aws/agent-toolkit-for-aws"
|
||||
},
|
||||
@@ -306,7 +336,7 @@
|
||||
"url": "https://github.com/aws/agent-toolkit-for-aws.git",
|
||||
"path": "plugins/aws-data-analytics",
|
||||
"ref": "main",
|
||||
"sha": "ba1cc8ca4f063d88ca40c6acf3f670e6321b7a7f"
|
||||
"sha": "55b9acfefdcf0866b6bc6cc56c16e6e18e65bd2b"
|
||||
},
|
||||
"homepage": "https://github.com/aws/agent-toolkit-for-aws"
|
||||
},
|
||||
@@ -335,13 +365,13 @@
|
||||
"url": "https://github.com/awslabs/agent-plugins.git",
|
||||
"path": "plugins/aws-serverless",
|
||||
"ref": "main",
|
||||
"sha": "187edde6e122116b43211049195627a5069bda80"
|
||||
"sha": "fc54dfa24a1f05095b9fcbb4baa4750996bb171d"
|
||||
},
|
||||
"homepage": "https://github.com/awslabs/agent-plugins"
|
||||
},
|
||||
{
|
||||
"name": "aws-startup-advisor",
|
||||
"description": "Skills for startups building on AWS: an Activate knowledge base (FAQ, credits, programs, partner offers, sample architectures, 277+ learn articles), a prompt library of 29+ copy-paste prompts plus installable agents, and an interactive discovery workflow that scaffolds an AWS architecture.",
|
||||
"description": "Personalized architecture, cost, security, and migration guidance for startups. From day-one account setup and security baselines to production-ready infrastructure, cost optimization, and beyond. Includes AWS Activate Credits eligibility, 60+ exclusive startup offers, and multi-account multi-region support. Built on expertise from AWS Startup Solutions Architects and patterns from 350,000+ startups.",
|
||||
"author": {
|
||||
"name": "Amazon Web Services"
|
||||
},
|
||||
@@ -351,7 +381,7 @@
|
||||
"url": "https://github.com/awslabs/startups.git",
|
||||
"path": "advisor/plugins/aws-startup-advisor",
|
||||
"ref": "main",
|
||||
"sha": "23a4f5eaf74a0f0fcf86f8a05bd36618a3f5faae"
|
||||
"sha": "1dd909352dc228f978c2685724cb38e64efe6be4"
|
||||
},
|
||||
"homepage": "https://github.com/awslabs/startups"
|
||||
},
|
||||
@@ -362,7 +392,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/microsoft/azure-skills.git",
|
||||
"sha": "d3440b8a4f138585a512ecd4e0c54ede13ab1cc2"
|
||||
"sha": "02a614f6ee1f052826f834d65c61e430ad152c8e"
|
||||
},
|
||||
"homepage": "https://github.com/microsoft/azure-skills"
|
||||
},
|
||||
@@ -404,6 +434,20 @@
|
||||
},
|
||||
"homepage": "https://docs.bigdata.com"
|
||||
},
|
||||
{
|
||||
"name": "bigquery-data-analytics",
|
||||
"description": "Connect, query, and generate data insights for BigQuery datasets and data.",
|
||||
"author": {
|
||||
"name": "Google LLC"
|
||||
},
|
||||
"category": "database",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/gemini-cli-extensions/bigquery-data-analytics.git",
|
||||
"sha": "9cee2a03105d74648231ed3a5c4a63c4f194790d"
|
||||
},
|
||||
"homepage": "https://github.com/gemini-cli-extensions/bigquery-data-analytics"
|
||||
},
|
||||
{
|
||||
"name": "box",
|
||||
"description": "Work with your Box content directly from Claude Code — search files, organize folders, collaborate with your team, and use Box AI to answer questions, summarize documents, and extract data without leaving your workflow.",
|
||||
@@ -428,7 +472,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/brightdata/skills.git",
|
||||
"sha": "68651246ad1819b98a1fc15ce10239e55406ff37"
|
||||
"sha": "bd5bd76bc889f54b744bab3db3cbd42751a1e5b0"
|
||||
},
|
||||
"homepage": "https://docs.brightdata.com"
|
||||
},
|
||||
@@ -458,7 +502,7 @@
|
||||
"url": "https://github.com/carta/plugins.git",
|
||||
"path": "plugins/carta-cap-table",
|
||||
"ref": "main",
|
||||
"sha": "49cfc652620672f3e4d4ca31c4ba4c6ebcc568de"
|
||||
"sha": "9eb312908f4a2e2d15e4e935320981433a549f77"
|
||||
},
|
||||
"homepage": "https://carta.com"
|
||||
},
|
||||
@@ -474,7 +518,7 @@
|
||||
"url": "https://github.com/carta/plugins.git",
|
||||
"path": "plugins/carta-crm",
|
||||
"ref": "main",
|
||||
"sha": "49cfc652620672f3e4d4ca31c4ba4c6ebcc568de"
|
||||
"sha": "9eb312908f4a2e2d15e4e935320981433a549f77"
|
||||
},
|
||||
"homepage": "https://carta.com"
|
||||
},
|
||||
@@ -490,7 +534,7 @@
|
||||
"url": "https://github.com/carta/plugins.git",
|
||||
"path": "plugins/carta-investors",
|
||||
"ref": "main",
|
||||
"sha": "e66d331cd8e669ee121c96ee35b0c91acd828970"
|
||||
"sha": "9eb312908f4a2e2d15e4e935320981433a549f77"
|
||||
},
|
||||
"homepage": "https://carta.com"
|
||||
},
|
||||
@@ -506,7 +550,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/cap-js/mcp-server.git",
|
||||
"sha": "9658cea90c782a6ab007ac16278c90fa4feca0ed"
|
||||
"sha": "b78913198fe1021f0d8b36b0e4ba0ca27003452f"
|
||||
},
|
||||
"homepage": "https://cap.cloud.sap/"
|
||||
},
|
||||
@@ -517,7 +561,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/ChromeDevTools/chrome-devtools-mcp.git",
|
||||
"sha": "692b28adac70f6475737ffbc4e6e2a0bb65569db"
|
||||
"sha": "702d3734f276a18efd67561ae00b88ce954cc515"
|
||||
},
|
||||
"homepage": "https://github.com/ChromeDevTools/chrome-devtools-mcp"
|
||||
},
|
||||
@@ -611,7 +655,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/ClickHouse/clickhouse-claude-code-plugin.git",
|
||||
"sha": "bfd22b9ca64288c149a623c45ad933b23f9de019"
|
||||
"sha": "ecbd47627d7e7b3de15b297b91e0abf3e6ebc746"
|
||||
},
|
||||
"homepage": "https://github.com/ClickHouse/clickhouse-claude-code-plugin"
|
||||
},
|
||||
@@ -625,10 +669,24 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/ClickHouse/agent-skills.git",
|
||||
"sha": "46ef08ccf32fa28587b64e0c79106ff437dc8fcb"
|
||||
"sha": "544384f4fab1d6ed59f16a354d1c68296dfa6007"
|
||||
},
|
||||
"homepage": "https://clickhouse.com"
|
||||
},
|
||||
{
|
||||
"name": "cloud-sql-mysql",
|
||||
"description": "Connect and interact with a Cloud SQL for MySQL database and data.",
|
||||
"author": {
|
||||
"name": "Google LLC"
|
||||
},
|
||||
"category": "database",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/gemini-cli-extensions/cloud-sql-mysql.git",
|
||||
"sha": "983c804fe7dc58b3e58021960e7e1831a10e08b9"
|
||||
},
|
||||
"homepage": "https://github.com/gemini-cli-extensions/cloud-sql-mysql"
|
||||
},
|
||||
{
|
||||
"name": "cloud-sql-postgresql",
|
||||
"description": "Create, connect, and interact with a Cloud SQL for PostgreSQL database and data.",
|
||||
@@ -643,12 +701,26 @@
|
||||
},
|
||||
"homepage": "https://cloud.google.com/sql"
|
||||
},
|
||||
{
|
||||
"name": "cloud-sql-sqlserver",
|
||||
"description": "Connect to Cloud SQL for SQL Server",
|
||||
"author": {
|
||||
"name": "Google LLC"
|
||||
},
|
||||
"category": "database",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/gemini-cli-extensions/cloud-sql-sqlserver.git",
|
||||
"sha": "8e1490ec8f659a5711655d2fa4241597a63d4883"
|
||||
},
|
||||
"homepage": "https://github.com/gemini-cli-extensions/cloud-sql-sqlserver"
|
||||
},
|
||||
{
|
||||
"name": "cloudflare",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/cloudflare/skills.git",
|
||||
"sha": "60147cbb773649eadca89cee92b4e0caf02234b4"
|
||||
"sha": "c5b7b06b073fa0b4abbd63964630f97d81da69c4"
|
||||
},
|
||||
"description": "Skills for the Cloudflare developer platform: Workers, Durable Objects, Agents SDK, MCP servers, Wrangler CLI, and web performance.",
|
||||
"category": "deployment",
|
||||
@@ -680,7 +752,7 @@
|
||||
},
|
||||
{
|
||||
"name": "code-modernization",
|
||||
"description": "Modernize legacy codebases (COBOL, legacy Java/C++, monolith web apps) with a structured assess / map / extract-rules / reimagine / transform / harden workflow and specialist review agents",
|
||||
"description": "Modernize legacy codebases (COBOL, legacy Java/C++, monolith web apps) with a structured preflight / assess / map / extract-rules / brief / reimagine / transform / harden workflow, an interactive topology viewer, and specialist review agents",
|
||||
"author": {
|
||||
"name": "Anthropic",
|
||||
"email": "support@anthropic.com"
|
||||
@@ -732,7 +804,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/CodSpeedHQ/codspeed.git",
|
||||
"sha": "f79d57d207f039e44a31a976564715f7731e71b6"
|
||||
"sha": "c6112f168b405df8e7310b12a9b80484cd01ac14"
|
||||
},
|
||||
"homepage": "https://codspeed.io"
|
||||
},
|
||||
@@ -800,7 +872,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/CrowdStrike/foundry-skills.git",
|
||||
"sha": "fb25d60ecdbc0129071802dad210a65168ca55a9"
|
||||
"sha": "c542c932956fd19177a62b94577f288c832d4680"
|
||||
},
|
||||
"homepage": "https://github.com/CrowdStrike/foundry-skills"
|
||||
},
|
||||
@@ -846,7 +918,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/dash0hq/dash0-agent-plugin.git",
|
||||
"sha": "0ec3db6b75d98badccf533597ce9a22fec744f5f"
|
||||
"sha": "5ff7aa5b8e52e10d10e45ea8e2f7cbebc86758bf"
|
||||
},
|
||||
"homepage": "https://dash0.com/"
|
||||
},
|
||||
@@ -871,7 +943,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/gemini-cli-extensions/data-agent-kit-starter-pack.git",
|
||||
"sha": "86eb482b33d943aa4242ae6f06d627ec12064d46"
|
||||
"sha": "fb9086456d5fbc780edf86f0ac413345ba628173"
|
||||
},
|
||||
"homepage": "https://github.com/gemini-cli-extensions/data-agent-kit-starter-pack"
|
||||
},
|
||||
@@ -894,7 +966,7 @@
|
||||
"url": "https://github.com/awslabs/agent-plugins.git",
|
||||
"path": "plugins/databases-on-aws",
|
||||
"ref": "main",
|
||||
"sha": "187edde6e122116b43211049195627a5069bda80"
|
||||
"sha": "fc54dfa24a1f05095b9fcbb4baa4750996bb171d"
|
||||
},
|
||||
"homepage": "https://github.com/awslabs/agent-plugins"
|
||||
},
|
||||
@@ -908,7 +980,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/datadog-labs/claude-code-plugin.git",
|
||||
"sha": "eeb2f746a857f8d97f69cd0968fb63874541c112"
|
||||
"sha": "96c28a8ce6f258ed54c9a17f16ee206deb8e3f28"
|
||||
},
|
||||
"homepage": "https://www.datadoghq.com/"
|
||||
},
|
||||
@@ -926,6 +998,20 @@
|
||||
},
|
||||
"homepage": "https://datahub.com"
|
||||
},
|
||||
{
|
||||
"name": "dataproc",
|
||||
"description": "Manage Dataproc clusters and jobs.",
|
||||
"author": {
|
||||
"name": "Google LLC"
|
||||
},
|
||||
"category": "database",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/gemini-cli-extensions/dataproc.git",
|
||||
"sha": "20eec06eee7683311689f4a1437cbb14ac8cd33e"
|
||||
},
|
||||
"homepage": "https://github.com/gemini-cli-extensions/dataproc"
|
||||
},
|
||||
{
|
||||
"name": "datarobot-agent-skills",
|
||||
"description": "DataRobot skills for AI/ML workflows — model training, deployment, predictions, feature engineering, monitoring, explainability, data preparation, App Framework CI/CD, and external agent monitoring.",
|
||||
@@ -936,7 +1022,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/datarobot-oss/datarobot-agent-skills.git",
|
||||
"sha": "1bef28436b91fc945b8529d1a57b471cde3154ea"
|
||||
"sha": "b5a8f7a4bc4d31a1f139a232efbba6127af0474a"
|
||||
},
|
||||
"homepage": "https://datarobot.com"
|
||||
},
|
||||
@@ -949,7 +1035,7 @@
|
||||
"url": "https://github.com/microsoft/Dataverse-skills.git",
|
||||
"path": ".github/plugins/dataverse",
|
||||
"ref": "main",
|
||||
"sha": "ab906c960db0f2da83c2cb92a3fd162ccaba9cb9"
|
||||
"sha": "2d50cf65f80efc17ac50632222d61fb374115a70"
|
||||
},
|
||||
"homepage": "https://github.com/microsoft/Dataverse-skills"
|
||||
},
|
||||
@@ -962,7 +1048,7 @@
|
||||
"url": "https://github.com/awslabs/agent-plugins.git",
|
||||
"path": "plugins/deploy-on-aws",
|
||||
"ref": "main",
|
||||
"sha": "187edde6e122116b43211049195627a5069bda80"
|
||||
"sha": "fc54dfa24a1f05095b9fcbb4baa4750996bb171d"
|
||||
},
|
||||
"homepage": "https://github.com/awslabs/agent-plugins"
|
||||
},
|
||||
@@ -978,7 +1064,7 @@
|
||||
"url": "https://github.com/wonderwhy-er/DesktopCommanderMCP.git",
|
||||
"path": "plugins/claude",
|
||||
"ref": "main",
|
||||
"sha": "ce4669cca7a07bd5d493cedb01df400790ec9e23"
|
||||
"sha": "7a9b2ff0339a7fdc29c06a9957b323ef478a1dde"
|
||||
},
|
||||
"homepage": "https://desktopcommander.app"
|
||||
},
|
||||
@@ -1040,7 +1126,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/exa-labs/exa-mcp-server.git",
|
||||
"sha": "ad888a188cdefbe832c9feed2c3a97d1cb93cb35"
|
||||
"sha": "f08388256c5806f457fae777b5528eb02a48e703"
|
||||
},
|
||||
"homepage": "https://exa.ai/docs/reference/exa-mcp"
|
||||
},
|
||||
@@ -1064,7 +1150,7 @@
|
||||
"url": "https://github.com/expo/skills.git",
|
||||
"path": "plugins/expo",
|
||||
"ref": "main",
|
||||
"sha": "fdd3df12151a208853fe540ffea9a67773446377"
|
||||
"sha": "c38860242118df93d4ec4381a34f4144fff61928"
|
||||
},
|
||||
"homepage": "https://github.com/expo/skills/blob/main/plugins/expo/README.md"
|
||||
},
|
||||
@@ -1101,7 +1187,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/voxel51/fiftyone-skills.git",
|
||||
"sha": "6c002d680529e35a2e04adc34c03b564a3991728"
|
||||
"sha": "d34365bd643b889d67dafcc120a8c525699fb54c"
|
||||
},
|
||||
"homepage": "https://docs.voxel51.com/"
|
||||
},
|
||||
@@ -1130,10 +1216,24 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/firecrawl/firecrawl-claude-plugin.git",
|
||||
"sha": "81178096fa7ae860285923948b8ba13d03c7fa0c"
|
||||
"sha": "6768fb78185aab9e5b5a04777f84703863fb025b"
|
||||
},
|
||||
"homepage": "https://github.com/firecrawl/firecrawl-claude-plugin.git"
|
||||
},
|
||||
{
|
||||
"name": "firestore-native",
|
||||
"description": "Connect and interact with Firestore databases, collections, and documents.",
|
||||
"author": {
|
||||
"name": "Google LLC"
|
||||
},
|
||||
"category": "database",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/gemini-cli-extensions/firestore-native.git",
|
||||
"sha": "f88103bd0ccfe9e1e7a3a7d849de26d197978c9a"
|
||||
},
|
||||
"homepage": "https://github.com/gemini-cli-extensions/firestore-native"
|
||||
},
|
||||
{
|
||||
"name": "forge-skills",
|
||||
"description": "Forge-focused skills and MCP configuration for Atlassian Forge: scaffold and deploy apps (forge create, templates, dev spaces), build Teamwork Graph connectors for Rovo Search/Rovo Chat, pre-deploy review, systematic debugging, plus Forge docs and Atlassian Design System lookups via MCP.",
|
||||
@@ -1144,7 +1244,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/atlassian/forge-skills.git",
|
||||
"sha": "2014fae5b1529a22629129b1564ae522593eb46d"
|
||||
"sha": "02103cca4addb4c42d64d4e18a9d1a7f186edf6c"
|
||||
},
|
||||
"homepage": "https://developer.atlassian.com/platform/forge/"
|
||||
},
|
||||
@@ -1170,7 +1270,7 @@
|
||||
"source": "github",
|
||||
"repo": "fullstorydev/fullstory-skills",
|
||||
"commit": "1ec5865e7ab1449f9a0859d164c4b6a8c53b6e2f",
|
||||
"sha": "384555c3919a0631a096de1172998c8d855a0f26"
|
||||
"sha": "b20614e2d08d7a7c70775bb62b5af640f60b024b"
|
||||
},
|
||||
"homepage": "https://www.fullstory.com"
|
||||
},
|
||||
@@ -1233,7 +1333,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/huggingface/skills.git",
|
||||
"sha": "49abf82b2ef2ff2bcc6ca072aac0fe8627390a1d"
|
||||
"sha": "d7223848c3895fbd447faf2aec73e0a6cdd7fdcd"
|
||||
},
|
||||
"homepage": "https://github.com/huggingface/skills.git"
|
||||
},
|
||||
@@ -1247,7 +1347,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/hunter-io/claude-plugin.git",
|
||||
"sha": "4eb5fbbcb75e0c4c4f2c0d8aa02756165fdde629"
|
||||
"sha": "494b0bd6ac252c7c8d78402cb51c7f635b1469ad"
|
||||
},
|
||||
"homepage": "https://hunter.io"
|
||||
},
|
||||
@@ -1261,7 +1361,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/heygen-com/hyperframes.git",
|
||||
"sha": "3c7e2f36497de471e5a63ecc6d582522d206b208"
|
||||
"sha": "25420bf4cfc37b179b4efeace9db25a7178b61bf"
|
||||
},
|
||||
"homepage": "https://hyperframes.heygen.com"
|
||||
},
|
||||
@@ -1315,10 +1415,24 @@
|
||||
"source": "github",
|
||||
"repo": "jfrog/claude-plugin",
|
||||
"commit": "259c8e718266c16e99b4f30ae9b1ed0f9f00d98d",
|
||||
"sha": "8324c7fc9a5561398fe57b8a56db53bdbf1e2cda"
|
||||
"sha": "117febaa29cbe9449cfb42d1c39b83b858d801a1"
|
||||
},
|
||||
"homepage": "https://jfrog.com"
|
||||
},
|
||||
{
|
||||
"name": "knowledge-catalog",
|
||||
"description": "Connect to Knowledge Catalog to discover, manage, monitor, and govern data and AI artifacts across your data platform",
|
||||
"author": {
|
||||
"name": "Google LLC"
|
||||
},
|
||||
"category": "database",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/gemini-cli-extensions/knowledge-catalog.git",
|
||||
"sha": "317e96fdd12aa61778b950192aff627efdc21099"
|
||||
},
|
||||
"homepage": "https://github.com/gemini-cli-extensions/knowledge-catalog"
|
||||
},
|
||||
{
|
||||
"name": "kotlin-lsp",
|
||||
"description": "Kotlin language server for code intelligence",
|
||||
@@ -1426,10 +1540,24 @@
|
||||
"url": "https://github.com/pydantic/skills.git",
|
||||
"path": "plugins/logfire",
|
||||
"ref": "main",
|
||||
"sha": "56dadc9c3b4551b7baf01a9a9f728dc72383bd07"
|
||||
"sha": "e412b6d8d4b6199ac577c5ee8653dcff840b3e92"
|
||||
},
|
||||
"homepage": "https://github.com/pydantic/skills/tree/main/plugins/logfire"
|
||||
},
|
||||
{
|
||||
"name": "looker",
|
||||
"description": "Connect to Looker and interact with your data using LookML.",
|
||||
"author": {
|
||||
"name": "Google LLC"
|
||||
},
|
||||
"category": "database",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/gemini-cli-extensions/looker.git",
|
||||
"sha": "e912c0342f1bfd436e9236aaef7cc732239c80f7"
|
||||
},
|
||||
"homepage": "https://github.com/gemini-cli-extensions/looker"
|
||||
},
|
||||
{
|
||||
"name": "lua-lsp",
|
||||
"description": "Lua language server for code intelligence",
|
||||
@@ -1464,6 +1592,20 @@
|
||||
},
|
||||
"homepage": "https://www.ory.sh"
|
||||
},
|
||||
{
|
||||
"name": "lusha",
|
||||
"description": "Prospect, enrich, and build call-ready lead lists using Lusha's B2B intelligence platform — verified phone numbers, company signals, and lookalike targeting.",
|
||||
"author": {
|
||||
"name": "Lusha"
|
||||
},
|
||||
"category": "productivity",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/lusha-oss/lusha-mcp-plugin.git",
|
||||
"sha": "8fc71d5473ea40e01a92001787f0f3caaf5ca30e"
|
||||
},
|
||||
"homepage": "https://www.lusha.com"
|
||||
},
|
||||
{
|
||||
"name": "mapbox",
|
||||
"description": "Mapbox skills and MCP servers for building location-aware applications with AI. Includes geospatial tools, style management, and patterns for web, iOS, Android, and AI agent frameworks.",
|
||||
@@ -1474,7 +1616,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/mapbox/mapbox-agent-skills.git",
|
||||
"sha": "fc705cd9a4f823e10d5d4ee5adad4c6cd16de0a9"
|
||||
"sha": "75ac667cae24c7ad7bdbbac55ac0a64d2df1543e"
|
||||
},
|
||||
"homepage": "https://www.mapbox.com"
|
||||
},
|
||||
@@ -1501,7 +1643,7 @@
|
||||
"url": "https://github.com/modelcontextprotocol/ext-apps.git",
|
||||
"path": "plugins/mcp-apps",
|
||||
"ref": "main",
|
||||
"sha": "7d4434e991516d91286dded5bb10266cd6cddd02"
|
||||
"sha": "ca1d29894fabbd1558885a9ec8620dcb01d7457e"
|
||||
},
|
||||
"homepage": "https://modelcontextprotocol.io"
|
||||
},
|
||||
@@ -1554,6 +1696,22 @@
|
||||
},
|
||||
"homepage": "https://github.com/microsoftdocs/mcp"
|
||||
},
|
||||
{
|
||||
"name": "migration-to-aws",
|
||||
"description": "Plan a migration from Google Cloud Platform (and OpenAI/Gemini AI workloads) to AWS. Analyzes your Infrastructure-as-Code files, app code, and GCP billing data to discover resources, design an AWS architecture, estimate costs, and generate migration artifacts — including AI-provider mapping to Amazon Bedrock. Processing is local; your data stays in your environment.",
|
||||
"author": {
|
||||
"name": "Amazon Web Services"
|
||||
},
|
||||
"category": "development",
|
||||
"source": {
|
||||
"source": "git-subdir",
|
||||
"url": "https://github.com/awslabs/startups.git",
|
||||
"path": "migrate/plugins/migration-to-aws",
|
||||
"ref": "main",
|
||||
"sha": "1dd909352dc228f978c2685724cb38e64efe6be4"
|
||||
},
|
||||
"homepage": "https://github.com/awslabs/startups"
|
||||
},
|
||||
{
|
||||
"name": "mintlify",
|
||||
"description": "Build beautiful documentation sites with Mintlify. Convert non-markdown files into properly formatted MDX pages, add and modify content with correct component use, and automate documentation updates.",
|
||||
@@ -1577,7 +1735,7 @@
|
||||
"url": "https://github.com/miroapp/miro-ai.git",
|
||||
"path": "claude-plugins/miro",
|
||||
"ref": "main",
|
||||
"sha": "da5405f866d823c7121ad6c38256f11c60501dbe"
|
||||
"sha": "9d7c3dc0a9a365b298e3808c741c53e2e80d86d1"
|
||||
},
|
||||
"homepage": "https://miro.com"
|
||||
},
|
||||
@@ -1588,7 +1746,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/mongodb/agent-skills.git",
|
||||
"sha": "bcd651808429ac1ca1e9f294cee61e42028d27de"
|
||||
"sha": "9ea7387c7a1638604542c6efd52e5efc6a7fc393"
|
||||
},
|
||||
"homepage": "https://www.mongodb.com/docs/mcp-server/overview/"
|
||||
},
|
||||
@@ -1612,7 +1770,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/netlify/context-and-tools.git",
|
||||
"sha": "cffaf74f79128620b8200956222aeb819f5f8fd5"
|
||||
"sha": "5f777ba63df12f4eb189be4c58bd35d0c8316505"
|
||||
},
|
||||
"homepage": "https://github.com/netlify/context-and-tools"
|
||||
},
|
||||
@@ -1681,7 +1839,7 @@
|
||||
"url": "https://github.com/NVIDIA/skills.git",
|
||||
"path": "plugins/nvidia-skills",
|
||||
"ref": "main",
|
||||
"sha": "91dbdf239b8af3b4c1511e0cfa5b505235a08ab1"
|
||||
"sha": "0482ebce81bd8f2d39990317bb3cfb07637e39fd"
|
||||
},
|
||||
"homepage": "https://github.com/NVIDIA/skills"
|
||||
},
|
||||
@@ -1697,10 +1855,24 @@
|
||||
"url": "https://github.com/oracle-samples/oracle-aidp-samples.git",
|
||||
"path": "ai/claude-code-plugins/oracle-ai-data-platform-workbench-spark-connectors",
|
||||
"ref": "main",
|
||||
"sha": "6e59f24cd3e8870649e7f9b2e3e106502b43fd5f"
|
||||
"sha": "00cedef34c99d642d969f87965736768de01cbd6"
|
||||
},
|
||||
"homepage": "https://docs.oracle.com/en/cloud/paas/ai-data-platform/index.html"
|
||||
},
|
||||
{
|
||||
"name": "oracledb",
|
||||
"description": "Connect, query, and interact with Oracle Databases and their data.",
|
||||
"author": {
|
||||
"name": "Google LLC"
|
||||
},
|
||||
"category": "database",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/gemini-cli-extensions/oracledb.git",
|
||||
"sha": "56239109760fd8ea838a56c946400347467bfa6d"
|
||||
},
|
||||
"homepage": "https://github.com/gemini-cli-extensions/oracledb"
|
||||
},
|
||||
{
|
||||
"name": "outputai",
|
||||
"description": "Output.ai workflow development toolkit for Claude Code. Adds 5 specialist agents (planner, builder, debugger, prompt writer, quality reviewer), 40+ slash-command skills covering scaffolding, debugging, evaluation, and credential management, plus a SessionStart hook that auto-loads Output SDK conventions so Claude understands the framework before the first prompt.",
|
||||
@@ -1713,7 +1885,7 @@
|
||||
"url": "https://github.com/growthxai/output.git",
|
||||
"path": "coding_assistants/claude/plugins/outputai",
|
||||
"ref": "main",
|
||||
"sha": "5a87ebc13343ce6ebabac0bcc443c1da0bcf2459"
|
||||
"sha": "2cc4685ebadfba9586f01890df48e1b25bd1049a"
|
||||
},
|
||||
"homepage": "https://output.ai"
|
||||
},
|
||||
@@ -1761,7 +1933,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/gopigment/ai-plugins.git",
|
||||
"sha": "abf36e64750d1323a4cc5fe79161597668231224"
|
||||
"sha": "f7bb2190a3f072bd9be5175bde6a0aa9596fcaaa"
|
||||
},
|
||||
"homepage": "https://www.pigment.com"
|
||||
},
|
||||
@@ -1823,7 +1995,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/PostHog/ai-plugin.git",
|
||||
"sha": "1b743cdbc568de81da5f41503e5c7caa35a4b270"
|
||||
"sha": "db4a86632293ca66eec9a6d278786ddb22c1787e"
|
||||
},
|
||||
"homepage": "https://posthog.com/docs/model-context-protocol"
|
||||
},
|
||||
@@ -1878,7 +2050,7 @@
|
||||
"url": "https://github.com/pydantic/skills.git",
|
||||
"path": "plugins/ai",
|
||||
"ref": "main",
|
||||
"sha": "56dadc9c3b4551b7baf01a9a9f728dc72383bd07"
|
||||
"sha": "e412b6d8d4b6199ac577c5ee8653dcff840b3e92"
|
||||
},
|
||||
"homepage": "https://github.com/pydantic/skills/tree/main/plugins/ai"
|
||||
},
|
||||
@@ -1916,7 +2088,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/qdrant/skills.git",
|
||||
"sha": "ea62a9857dabcc169597549da7681bd6d4cd13e9"
|
||||
"sha": "82337ccd4be601e52871f101844d57b2adbac52b"
|
||||
},
|
||||
"homepage": "https://skills.qdrant.tech"
|
||||
},
|
||||
@@ -1955,7 +2127,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/quarkusio/quarkus-agent-mcp.git",
|
||||
"sha": "065b4595cf9116f76bf87323fe29573d72a77a65"
|
||||
"sha": "e711107a1171507212dd0edd17b5a922212c3a97"
|
||||
},
|
||||
"homepage": "https://quarkus.io"
|
||||
},
|
||||
@@ -1968,7 +2140,7 @@
|
||||
"url": "https://github.com/railwayapp/railway-skills.git",
|
||||
"path": "plugins/railway",
|
||||
"ref": "main",
|
||||
"sha": "7718b39037adb6fb33948ff751be7f7086f2da83"
|
||||
"sha": "1df604ebd18f528ff16b84975125ecff944cc036"
|
||||
},
|
||||
"homepage": "https://docs.railway.com/ai/claude-code-plugin"
|
||||
},
|
||||
@@ -1991,7 +2163,7 @@
|
||||
"source": "url",
|
||||
"url": "https://github.com/RevenueCat/rc-claude-code-plugin.git",
|
||||
"path": "revenuecat",
|
||||
"sha": "81262a339601c4b64b909c370225cbd7917ade1f"
|
||||
"sha": "473fd504bf13d25e76bf4a0267b42be3794f6266"
|
||||
},
|
||||
"homepage": "https://www.revenuecat.com"
|
||||
},
|
||||
@@ -2017,7 +2189,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/Digital-Process-Tools/claude-remember.git",
|
||||
"sha": "c2c82ab5fd2f4f5c0cddc9c7d8a749655dec4cb9"
|
||||
"sha": "a4ff96f38622f7c4920dc349d59cc980663336f4"
|
||||
},
|
||||
"homepage": "https://github.com/Digital-Process-Tools/claude-remember"
|
||||
},
|
||||
@@ -2031,7 +2203,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/resend/resend-skills.git",
|
||||
"sha": "376d1c3fb37cc7d22ab21cce836f4d6f323922de"
|
||||
"sha": "0888546d6a69149c8d2402d46f395f5dddb1c720"
|
||||
},
|
||||
"homepage": "https://resend.com"
|
||||
},
|
||||
@@ -2043,7 +2215,7 @@
|
||||
"source": "url",
|
||||
"url": "https://github.com/RevenueCat/rc-claude-code-plugin.git",
|
||||
"path": "revenuecat",
|
||||
"sha": "81262a339601c4b64b909c370225cbd7917ade1f"
|
||||
"sha": "473fd504bf13d25e76bf4a0267b42be3794f6266"
|
||||
},
|
||||
"homepage": "https://www.revenuecat.com"
|
||||
},
|
||||
@@ -2128,7 +2300,7 @@
|
||||
"url": "https://github.com/awslabs/agent-plugins.git",
|
||||
"path": "plugins/sagemaker-ai",
|
||||
"ref": "main",
|
||||
"sha": "187edde6e122116b43211049195627a5069bda80"
|
||||
"sha": "fc54dfa24a1f05095b9fcbb4baa4750996bb171d"
|
||||
},
|
||||
"homepage": "https://github.com/awslabs/agent-plugins"
|
||||
},
|
||||
@@ -2142,7 +2314,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/sanity-io/agent-toolkit.git",
|
||||
"sha": "d7545f5cc6f8fb39554083b52ad074a6d912db9f"
|
||||
"sha": "66f0ec5d9167b3ccb8b3450e5ec34f3b523d4139"
|
||||
},
|
||||
"homepage": "https://www.sanity.io"
|
||||
},
|
||||
@@ -2158,7 +2330,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/cap-js/mcp-server.git",
|
||||
"sha": "92dc99f5ba0c56957ed5d390484693a69ebd1206"
|
||||
"sha": "b78913198fe1021f0d8b36b0e4ba0ca27003452f"
|
||||
},
|
||||
"homepage": "https://cap.cloud.sap/"
|
||||
},
|
||||
@@ -2176,7 +2348,7 @@
|
||||
"url": "https://github.com/SAP/open-ux-tools.git",
|
||||
"path": "packages/fiori-mcp-server",
|
||||
"ref": "main",
|
||||
"sha": "7432d23a7b5c3bd1c0a01cf76696bf0c417ecd1f"
|
||||
"sha": "fbfe8c32fb9fc64583aa72ac03ab64f553c407ee"
|
||||
},
|
||||
"homepage": "https://github.com/SAP/open-ux-tools/tree/main/packages/fiori-mcp-server"
|
||||
},
|
||||
@@ -2208,7 +2380,7 @@
|
||||
"url": "https://github.com/spotify/save-to-spotify.git",
|
||||
"path": "plugin",
|
||||
"ref": "main",
|
||||
"sha": "35527660378c769bcbcfba89d8086d8b9fc4fccb"
|
||||
"sha": "cd4ea68111d96769b09c0b0d2199e692cf00a73c"
|
||||
},
|
||||
"homepage": "https://github.com/spotify/save-to-spotify"
|
||||
},
|
||||
@@ -2243,7 +2415,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/getsentry/sentry-for-claude.git",
|
||||
"sha": "849303a8411c242d250885ffe714235a3bc2f5fe"
|
||||
"sha": "030b01fb76b21f5d7ef6af5a3c3dfa658a9b5024"
|
||||
},
|
||||
"homepage": "https://github.com/getsentry/sentry-for-claude/tree/main"
|
||||
},
|
||||
@@ -2259,7 +2431,7 @@
|
||||
"url": "https://github.com/getsentry/cli.git",
|
||||
"path": "plugins/sentry-cli",
|
||||
"ref": "main",
|
||||
"sha": "5abcacdf8f0b613bceee7aa7aebb9db1d75ed5e2"
|
||||
"sha": "9e9fe0fb6444f18ed109058b2749cced3c21f87e"
|
||||
},
|
||||
"homepage": "https://sentry.io"
|
||||
},
|
||||
@@ -2285,7 +2457,7 @@
|
||||
"url": "https://github.com/ServiceNow/sdk.git",
|
||||
"path": "providers/claude/plugin",
|
||||
"ref": "master",
|
||||
"sha": "06adf37ca78c270a57f93e7b9dfbb7bf16e24611"
|
||||
"sha": "35ef6130d8a49e67b531bde2f987808426273d15"
|
||||
},
|
||||
"homepage": "https://servicenow.github.io/sdk/"
|
||||
},
|
||||
@@ -2324,7 +2496,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/Shopify/Shopify-AI-Toolkit.git",
|
||||
"sha": "859be93bfc858f183ff5eb40183e35a4d91d2950"
|
||||
"sha": "a8e87a7cff153479eb77230d9c232484a1f3062f"
|
||||
},
|
||||
"homepage": "https://shopify.dev"
|
||||
},
|
||||
@@ -2346,7 +2518,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/slackapi/slack-mcp-plugin.git",
|
||||
"sha": "7b9458950d38bb01ddb48b669f9fa89bcdfd98b8"
|
||||
"sha": "38fb959299386a6d2c202511ef7e76909a072663"
|
||||
},
|
||||
"homepage": "https://github.com/slackapi/slack-mcp-plugin/tree/main"
|
||||
},
|
||||
@@ -2362,7 +2534,7 @@
|
||||
"url": "https://github.com/Snowflake-Labs/snowflake-ai-kit.git",
|
||||
"path": "plugins/cortex-code",
|
||||
"ref": "main",
|
||||
"sha": "c3f720020a3b6c8927f97362c2e5884e959acd53"
|
||||
"sha": "6a22eb1ff3b451c35e40468a118bbee54610c9bd"
|
||||
},
|
||||
"homepage": "https://docs.snowflake.com/en/user-guide/cortex-code"
|
||||
},
|
||||
@@ -2376,7 +2548,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/SonarSource/sonarqube-agent-plugins.git",
|
||||
"sha": "c64e09af314406a8d8806d57cd11cda81578ce20"
|
||||
"sha": "712b93281f4e67c16ed9b81dde090e1f73f8bfc8"
|
||||
},
|
||||
"homepage": "https://www.sonarsource.com"
|
||||
},
|
||||
@@ -2402,6 +2574,20 @@
|
||||
},
|
||||
"homepage": "https://sourcegraph.com"
|
||||
},
|
||||
{
|
||||
"name": "spanner",
|
||||
"description": "Connect and interact with Spanner data using natural language.",
|
||||
"author": {
|
||||
"name": "Google LLC"
|
||||
},
|
||||
"category": "database",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/gemini-cli-extensions/spanner.git",
|
||||
"sha": "d4678e2bc04f60f3dfcdb6b916df28e63a0d615f"
|
||||
},
|
||||
"homepage": "https://github.com/gemini-cli-extensions/spanner"
|
||||
},
|
||||
{
|
||||
"name": "spotify-ads-api",
|
||||
"description": "Manage Spotify ad campaigns with natural language. Create campaigns, ad sets, ads, pull reports, and handle OAuth — all through conversation.",
|
||||
@@ -2422,7 +2608,7 @@
|
||||
"url": "https://github.com/stripe/ai.git",
|
||||
"path": "providers/claude/plugin",
|
||||
"ref": "main",
|
||||
"sha": "38cc559cab7eab62f11bc3809b93af45f28063f6"
|
||||
"sha": "b8f6adcb5d05f6ff01334411561ee8cb1ec014c6"
|
||||
},
|
||||
"homepage": "https://github.com/stripe/ai/tree/main/providers/claude/plugin"
|
||||
},
|
||||
@@ -2445,7 +2631,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/supabase-community/supabase-plugin.git",
|
||||
"sha": "3217ac038647f6901a166f3264a32f01833f73ba"
|
||||
"sha": "2ed49769b1ec2f6703a14290af484df651336150"
|
||||
},
|
||||
"homepage": "https://github.com/supabase-community/supabase-plugin"
|
||||
},
|
||||
@@ -2490,7 +2676,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/JetBrains/teamcity-cli.git",
|
||||
"sha": "533c8cb20928be912188fd8ae40fcba24cc720ca"
|
||||
"sha": "67e21f0be908daa7ca1e04c8016d1bc81750baee"
|
||||
},
|
||||
"homepage": "https://www.jetbrains.com/teamcity/"
|
||||
},
|
||||
@@ -2521,7 +2707,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/togethercomputer/skills.git",
|
||||
"sha": "f957e2929edebde0c364e804f8b38a3714db92b4"
|
||||
"sha": "fb94cc1402900eb608c31e7102fc23566f8b0363"
|
||||
},
|
||||
"homepage": "https://www.together.ai"
|
||||
},
|
||||
@@ -2583,7 +2769,7 @@
|
||||
"url": "https://github.com/UI5/plugins-coding-agents.git",
|
||||
"path": "plugins/ui5",
|
||||
"ref": "main",
|
||||
"sha": "7acd8328399a221e161ae5bb04a5675696f92920"
|
||||
"sha": "9b3d7d80356f687725f9584988e4038dbead0d53"
|
||||
},
|
||||
"homepage": "https://github.com/UI5/plugins-coding-agents"
|
||||
},
|
||||
@@ -2601,10 +2787,40 @@
|
||||
"url": "https://github.com/UI5/plugins-coding-agents.git",
|
||||
"path": "plugins/ui5-typescript-conversion",
|
||||
"ref": "main",
|
||||
"sha": "7acd8328399a221e161ae5bb04a5675696f92920"
|
||||
"sha": "9b3d7d80356f687725f9584988e4038dbead0d53"
|
||||
},
|
||||
"homepage": "https://github.com/UI5/plugins-coding-agents"
|
||||
},
|
||||
{
|
||||
"name": "valtown",
|
||||
"description": "Build and deploy on Val Town. Bundles the Val Town MCP server and platform skills (HTTP vals, cron/intervals, SQLite, email, OAuth, React UI, third-party integrations, templates).",
|
||||
"author": {
|
||||
"name": "Val Town"
|
||||
},
|
||||
"category": "deployment",
|
||||
"source": {
|
||||
"source": "git-subdir",
|
||||
"url": "https://github.com/val-town/plugins.git",
|
||||
"path": "plugin",
|
||||
"ref": "main",
|
||||
"sha": "02631f998eda9b88d73d699703b062db059d506b"
|
||||
},
|
||||
"homepage": "https://val.town"
|
||||
},
|
||||
{
|
||||
"name": "vanta",
|
||||
"description": "The Vanta plugin connects Claude Code to Vanta's security and compliance platform through the Vanta MCP server. It combines Vanta's test-specific remediation intelligence with your local repository context to help you fix compliance failures faster.",
|
||||
"author": {
|
||||
"name": "Vanta"
|
||||
},
|
||||
"category": "security",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/VantaInc/vanta-mcp-plugin.git",
|
||||
"sha": "345d86b55faa649e955b7ea5569cf52d8425c2d5"
|
||||
},
|
||||
"homepage": "https://help.vanta.com/en/articles/14094979-connecting-to-vanta-mcp#h_887ce3f337"
|
||||
},
|
||||
{
|
||||
"name": "vanta-mcp-plugin",
|
||||
"description": "The Vanta plugin connects Claude Code to Vanta's security and compliance platform through the Vanta MCP server. It combines Vanta's test-specific remediation intelligence with your local repository context to help you fix compliance failures faster.",
|
||||
@@ -2640,7 +2856,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/explorium-ai/vibeprospecting-plugin.git",
|
||||
"sha": "7ed0c4e2965ee315132c3c714609b46b23b5edc0"
|
||||
"sha": "aa5903f52d79e7f2a5f9c324c6fff7d5a5d92631"
|
||||
},
|
||||
"homepage": "https://www.vibeprospecting.ai/product/claude-plugin"
|
||||
},
|
||||
@@ -2665,7 +2881,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/wix/skills.git",
|
||||
"sha": "2da8231fcdc49a48af64b050ba5e1a85c3968670"
|
||||
"sha": "188ed338f39d70e5aef7f9a2582bbf338f223b78"
|
||||
},
|
||||
"homepage": "https://dev.wix.com/docs/wix-cli/guides/development/about-wix-skills"
|
||||
},
|
||||
@@ -2718,7 +2934,7 @@
|
||||
"url": "https://github.com/zapier/zapier-mcp.git",
|
||||
"path": "plugins/zapier",
|
||||
"ref": "main",
|
||||
"sha": "f34a7854febed415c9ef766eec1c66529ef0668e"
|
||||
"sha": "770167c572deaf74c588b45d88003ddf2145d608"
|
||||
},
|
||||
"homepage": "https://github.com/zapier/zapier-mcp/tree/main/plugins/zapier"
|
||||
},
|
||||
@@ -2758,7 +2974,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/Zoominfo/zoominfo-mcp-plugin.git",
|
||||
"sha": "678c0d1b584b77fb8e0cdc14138fc1afc5a21cf2"
|
||||
"sha": "cfdebda5f3ce24d0d964cc0b3e9e5dd9ea9d507d"
|
||||
},
|
||||
"homepage": "https://www.zoominfo.com"
|
||||
},
|
||||
@@ -2772,7 +2988,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/zscaler/zscaler-mcp-server.git",
|
||||
"sha": "be37fb604a07dc9c5a4c3e009312c4f11acaa6d3"
|
||||
"sha": "f84ce4f0ed48047614a4202ac311cbdf00ea9a10"
|
||||
},
|
||||
"homepage": "https://github.com/zscaler/zscaler-mcp-server"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "code-modernization",
|
||||
"description": "Modernize legacy codebases (COBOL, legacy Java/C++, monolith web apps) with a structured assess → map → extract-rules → brief → reimagine/transform → harden workflow and specialist review agents",
|
||||
"description": "Modernize legacy codebases (COBOL, legacy Java/C++, monolith web apps) with a structured preflight / assess / map / extract-rules / brief / reimagine / transform / harden workflow, an interactive topology viewer, and specialist review agents",
|
||||
"author": {
|
||||
"name": "Anthropic",
|
||||
"email": "support@anthropic.com"
|
||||
|
||||
@@ -7,7 +7,7 @@ A structured workflow and set of specialist agents for modernizing legacy codeba
|
||||
Legacy modernization fails most often not because the target technology is wrong, but because teams skip steps: they transform code before understanding it, reimagine architecture before extracting business rules, or ship without a harness that would catch behavior drift. This plugin enforces a sequence:
|
||||
|
||||
```
|
||||
assess → map → extract-rules → brief → reimagine | transform → harden
|
||||
preflight → assess → map → extract-rules → brief → reimagine | transform → harden
|
||||
```
|
||||
|
||||
The discovery commands (`assess`, `map`, `extract-rules`) build artifacts under `analysis/<system>/`. The `brief` command synthesizes them into an approval gate. The build commands (`reimagine`, `transform`) write new code under `modernized/`. The `harden` command audits the legacy system and produces a reviewable remediation patch. Each step has a dedicated slash command, and specialist agents (legacy analyst, business rules extractor, architecture critic, security auditor, test engineer) are invoked from within those commands — or directly — to keep the work honest.
|
||||
@@ -20,25 +20,36 @@ Commands take a `<system-dir>` argument and assume the system being modernized l
|
||||
mkdir -p legacy && ln -s /path/to/your/legacy/codebase legacy/billing
|
||||
```
|
||||
|
||||
## Optional tooling
|
||||
## What to give Claude
|
||||
|
||||
`/modernize-assess` works best with [`scc`](https://github.com/boyter/scc) (LOC + complexity + COCOMO) or [`cloc`](https://github.com/AlDanial/cloc), and falls back to `find`/`wc` if neither is installed. Portfolio mode also benefits from [`lizard`](https://github.com/terryyin/lizard) (cyclomatic complexity). The commands degrade gracefully without them, but the metrics will be coarser.
|
||||
The commands degrade gracefully, but each of these makes the output meaningfully better — run `/modernize-preflight <system-dir>` to check all of them at once and get a readiness report:
|
||||
|
||||
- **Analysis tools**: [`scc`](https://github.com/boyter/scc) (LOC + complexity + COCOMO) or [`cloc`](https://github.com/AlDanial/cloc); [`lizard`](https://github.com/terryyin/lizard) for portfolio mode. Without them, metrics fall back to `find`/`wc` and get coarser.
|
||||
- **A working build toolchain** for the legacy stack (e.g. GnuCOBOL for COBOL) — required before `/modernize-transform` can prove behavioral equivalence, and verified by preflight with a real smoke compile against your code.
|
||||
- **The whole system in the tree**: deployment descriptors (JCL, CICS definitions, route configs), copybooks/includes, and DDL/schemas. Entry-point detection and data lineage in `/modernize-map` are guesswork without them.
|
||||
- **Production telemetry** (optional): an observability MCP server or batch job logs enable the runtime overlay in `/modernize-assess` and timing annotations on critical paths.
|
||||
|
||||
## Commands
|
||||
|
||||
The commands are designed to be run in order, but each produces a standalone artifact so you can stop, review, and resume.
|
||||
|
||||
### `/modernize-preflight <system-dir> [target-stack]`
|
||||
Environment readiness check, meant to run first: detects the legacy stack, checks analysis tooling, **smoke-compiles a real source file** with the legacy toolchain (the errors this surfaces — missing copybooks, wrong dialect flags — are the ones that otherwise appear mid-transform), inventories missing includes / deployment descriptors / binary-only artifacts, and probes for telemetry. Produces `analysis/<system>/PREFLIGHT.md` with a per-command Ready / Ready-with-gaps / Not-ready verdict.
|
||||
|
||||
### `/modernize-assess <system-dir>` — or — `/modernize-assess --portfolio <parent-dir>`
|
||||
Inventory the legacy codebase: languages, line counts, complexity, build system, integrations, technical debt, security posture, documentation gaps, and a COCOMO-derived effort estimate. Produces `analysis/<system>/ASSESSMENT.md` and `analysis/<system>/ARCHITECTURE.mmd`. Spawns `legacy-analyst` (×2) and `security-auditor` in parallel for deep reads. With `--portfolio`, sweeps every subdirectory of a parent directory and writes a sequencing heat-map to `analysis/portfolio.html`.
|
||||
|
||||
### `/modernize-map <system-dir>`
|
||||
Build a dependency and topology map of the **legacy** system: program/module call graph, data lineage (programs ↔ data stores), entry points, dead-end candidates, and one traced critical-path business flow. Writes a re-runnable extraction script and produces `analysis/<system>/topology.json` (machine-readable), `analysis/<system>/TOPOLOGY.html` (rendered Mermaid + architect observations), and standalone `call-graph.mmd`, `data-lineage.mmd`, and `critical-path.mmd`.
|
||||
|
||||

|
||||
|
||||
Build a dependency and topology map of the **legacy** system: program/module call graph, data lineage (programs ↔ data stores), entry points, dead-end candidates, and 2–4 traced business flows each anchored to a persona (the claimant, the operator, the auditor — not the maintainer). Writes a re-runnable extraction script and produces `analysis/<system>/topology.json` plus `analysis/<system>/TOPOLOGY.html` — an **interactive zoomable map** (circle-pack of domains/modules sized by LOC, dependency edges with per-kind toggles, search, click-for-details sidebar, and a walkthrough mode that plays each persona flow as a numbered path with a plain-language narrative). Built from a template shipped with the plugin, so it works on systems far too dense for a static diagram. Small domain-level `call-graph.mmd`, `data-lineage.mmd`, and `critical-path.mmd` are still exported for docs and PRs.
|
||||
|
||||
### `/modernize-extract-rules <system-dir> [module-pattern]`
|
||||
Mine the business rules embedded in the legacy code — calculations, validations, eligibility, state transitions, policies — into Given/When/Then "Rule Cards" with `file:line` citations and confidence ratings. Spawns three `business-rules-extractor` agents in parallel (calculations, validations, lifecycle). Produces `analysis/<system>/BUSINESS_RULES.md` and `analysis/<system>/DATA_OBJECTS.md`.
|
||||
|
||||
### `/modernize-brief <system-dir> [target-stack]`
|
||||
Synthesize the discovery artifacts into a phased **Modernization Brief** — the single document a steering committee approves and engineering executes: target architecture, strangler-fig phase plan with entry/exit criteria, behavior contract, validation strategy, open questions, and an approval block. Reads `ASSESSMENT.md`, `TOPOLOGY.html`, and `BUSINESS_RULES.md` and **stops if any are missing** — run the discovery commands first. Produces `analysis/<system>/MODERNIZATION_BRIEF.md` and enters plan mode as a human-in-the-loop gate.
|
||||
Synthesize the discovery artifacts into a phased **Modernization Brief** — the single document a steering committee approves and engineering executes: target architecture, strangler-fig phase plan with entry/exit criteria, persona-based business walkthroughs (the section non-technical approvers actually read), behavior contract, validation strategy, open questions, and an approval block. Reads `ASSESSMENT.md`, `TOPOLOGY.html`, and `BUSINESS_RULES.md` and **stops if any are missing** — run the discovery commands first. Produces `analysis/<system>/MODERNIZATION_BRIEF.md` and enters plan mode as a human-in-the-loop gate.
|
||||
|
||||
### `/modernize-reimagine <system-dir> <target-vision>`
|
||||
Greenfield rebuild from extracted intent rather than a structural port. Mines a spec (`analysis/<system>/AI_NATIVE_SPEC.md`), designs a target architecture and has it adversarially reviewed (`analysis/<system>/REIMAGINED_ARCHITECTURE.md`), then **scaffolds services with executable acceptance tests** under `modernized/<system>-reimagined/` and writes a `CLAUDE.md` knowledge handoff for the new system. Two human-in-the-loop checkpoints. Spawns `business-rules-extractor`, `legacy-analyst` (×2), `architecture-critic`, and general-purpose scaffolding agents.
|
||||
@@ -46,6 +57,9 @@ Greenfield rebuild from extracted intent rather than a structural port. Mines a
|
||||
### `/modernize-transform <system-dir> <module> <target-stack>`
|
||||
Surgical, single-module strangler-fig rewrite. Plans first (HITL gate), then writes characterization tests via `test-engineer`, then an idiomatic target implementation under `modernized/<system>/<module>/`, proves equivalence by running the tests, and produces `TRANSFORMATION_NOTES.md` mapping legacy → modern with deliberate deviations called out. Reviewed by `architecture-critic`.
|
||||
|
||||
### `/modernize-status <system-dir>`
|
||||
Read-only progress report: artifact inventory with timestamps per workflow stage, staleness flags (e.g. a brief older than the assessment it was built from), secrets-hygiene checks (quarantine file gitignored and never committed), and the single most useful next command. Run it anytime you come back to a modernization after a break.
|
||||
|
||||
### `/modernize-harden <system-dir>`
|
||||
Security hardening pass on the **legacy** system: OWASP/CWE scan, dependency CVEs, secrets, injection. Spawns `security-auditor`. Produces `analysis/<system>/SECURITY_FINDINGS.md` ranked Critical / High / Medium / Low and a reviewed `analysis/<system>/security_remediation.patch` with minimal fixes for the Critical/High findings. The patch is reviewed by a second `security-auditor` pass before you see it. **Never edits `legacy/`** — you review and apply the patch yourself when ready, then re-run to verify. Useful as a pre-modernization step when the legacy system will keep running in production during the migration.
|
||||
|
||||
@@ -81,17 +95,21 @@ This plugin ships commands and agents, but modernization projects benefit from a
|
||||
"Edit(modernized/**)"
|
||||
],
|
||||
"deny": [
|
||||
"Edit(legacy/**)"
|
||||
"Edit(legacy/**)",
|
||||
"Write(legacy/**)"
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Adjust `legacy/` and `modernized/` to match your actual layout. The key invariants: `Edit` under `legacy/` is denied, and writes are scoped to `analysis/` (for documents) and `modernized/` (for the new code). Every command in this plugin respects this — `/modernize-harden` writes a patch to `analysis/` rather than editing `legacy/` in place.
|
||||
Adjust `legacy/` and `modernized/` to match your actual layout. The key invariants: `Edit`/`Write` under `legacy/` are denied, and writes are scoped to `analysis/` (for documents) and `modernized/` (for the new code). Note this guards the file tools — shell commands that mutate files (`sed -i`, `git apply`) still go through the normal Bash permission prompt, so review those prompts with the same invariant in mind. Every command in this plugin respects this — `/modernize-harden` writes a patch to `analysis/` rather than editing `legacy/` in place.
|
||||
|
||||
## Typical Workflow
|
||||
|
||||
```bash
|
||||
# 0. Check the environment is ready (tools, toolchain, source completeness)
|
||||
/modernize-preflight billing
|
||||
|
||||
# 1. Inventory the legacy system (or sweep a portfolio of them)
|
||||
/modernize-assess billing
|
||||
|
||||
@@ -112,6 +130,9 @@ Adjust `legacy/` and `modernized/` to match your actual layout. The key invarian
|
||||
|
||||
# 6. Security-harden the legacy system that's still in production
|
||||
/modernize-harden billing
|
||||
|
||||
# Anytime: where am I, what's stale, what's next
|
||||
/modernize-status billing
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
BIN
plugins/code-modernization/assets/topology-viewer-screenshot.jpg
Normal file
BIN
plugins/code-modernization/assets/topology-viewer-screenshot.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 223 KiB |
514
plugins/code-modernization/assets/topology-viewer.html
Normal file
514
plugins/code-modernization/assets/topology-viewer.html
Normal file
File diff suppressed because one or more lines are too long
@@ -8,10 +8,19 @@ single document a steering committee approves and engineering executes.
|
||||
|
||||
Target stack: `$2` (if blank, recommend one based on the assessment findings).
|
||||
|
||||
Read `analysis/$1/ASSESSMENT.md`, `analysis/$1/TOPOLOGY.html` (and the `.mmd`
|
||||
files alongside it), and `analysis/$1/BUSINESS_RULES.md` first. If any are
|
||||
missing, say so and stop — they come from `/modernize-assess`, `/modernize-map`,
|
||||
and `/modernize-extract-rules` respectively. Run those first.
|
||||
Read `analysis/$1/ASSESSMENT.md`, `analysis/$1/topology.json` (plus the
|
||||
`.mmd` files alongside it — do NOT read `TOPOLOGY.html`, it's an
|
||||
interactive viewer with the data minified inside), and
|
||||
`analysis/$1/BUSINESS_RULES.md` first. If any are missing, say so and
|
||||
stop — they come from `/modernize-assess`, `/modernize-map`, and
|
||||
`/modernize-extract-rules` respectively. Run those first.
|
||||
|
||||
**Staleness check:** compare modification times. If any input is newer
|
||||
than an existing `MODERNIZATION_BRIEF.md`, the brief is being justifiably
|
||||
regenerated; but if an existing brief is newer than all inputs and the
|
||||
user re-ran this command anyway, ask what changed. Either way, note the
|
||||
input timestamps in the brief's header so reviewers can see what it was
|
||||
built from.
|
||||
|
||||
## The Brief
|
||||
|
||||
@@ -31,28 +40,38 @@ fewest-dependencies first. For each phase:
|
||||
- Scope (which legacy modules, which target services)
|
||||
- Entry criteria (what must be true to start)
|
||||
- Exit criteria (what tests/metrics prove it's done)
|
||||
- Estimated effort (person-weeks, derived from COCOMO + complexity data)
|
||||
- Estimated effort (person-months, same unit as the assessment's COCOMO
|
||||
figure — convert deliberately if you present weeks)
|
||||
- Risk level + top 2 risks + mitigation
|
||||
|
||||
Render the phases as a Mermaid `gantt` chart.
|
||||
|
||||
### 4. Behavior Contract
|
||||
### 4. Business Walkthroughs
|
||||
For each persona flow in `analysis/$1/topology.json` (`flows` — produced
|
||||
by `/modernize-map`), a short narrative table: persona, what happens in
|
||||
business language, which legacy modules implement it today, and which
|
||||
phase from §3 replaces each. This is the section non-technical approvers
|
||||
actually read — it connects "Phase 2" to "what happens when a customer
|
||||
files a claim". If topology.json has no flows, derive 2–3 walkthroughs
|
||||
from the entry points and say they need SME confirmation.
|
||||
|
||||
### 5. Behavior Contract
|
||||
List the **P0 rules** from BUSINESS_RULES.md (the ones tagged `Priority: P0` —
|
||||
money, regulatory, data integrity) that MUST be proven equivalent before any
|
||||
phase ships. These become the regression suite. Flag any P0 rule with
|
||||
Confidence < High as a blocker requiring SME confirmation before its phase
|
||||
starts.
|
||||
|
||||
### 5. Validation Strategy
|
||||
### 6. Validation Strategy
|
||||
State which combination applies: characterization tests, contract tests,
|
||||
parallel-run / dual-execution diff, property-based tests, manual UAT.
|
||||
Justify per phase.
|
||||
|
||||
### 6. Open Questions
|
||||
### 7. Open Questions
|
||||
Anything requiring human/SME decision before Phase 1 starts. Each as a
|
||||
checkbox the approver must tick.
|
||||
|
||||
### 7. Approval Block
|
||||
### 8. Approval Block
|
||||
```
|
||||
Approved by: ________________ Date: __________
|
||||
Approval covers: Phase 1 only | Full plan
|
||||
@@ -60,6 +79,7 @@ Approval covers: Phase 1 only | Full plan
|
||||
|
||||
## Present
|
||||
|
||||
Enter **plan mode** and present a summary of the brief. Do NOT proceed to any
|
||||
transformation until the user explicitly approves. This gate is the
|
||||
human-in-the-loop control point.
|
||||
Present a summary of the brief and **stop — write nothing further until
|
||||
the user explicitly approves** (use plan mode if the session supports
|
||||
it). This gate is the human-in-the-loop control point; "no objection" is
|
||||
not approval.
|
||||
|
||||
@@ -55,50 +55,124 @@ re-run and audited. Have it write a machine-readable
|
||||
`analysis/$1/topology.json` and print a human summary. Run it; show the
|
||||
summary (cap at ~200 lines for very large estates).
|
||||
|
||||
## Render
|
||||
`topology.json` must follow this schema — it feeds the interactive viewer:
|
||||
|
||||
From the extracted data, generate **three Mermaid diagrams** and write them
|
||||
to `analysis/$1/TOPOLOGY.html` as a self-contained page that renders in any
|
||||
browser.
|
||||
|
||||
The HTML page must use: dark `#1e1e1e` background, `#d4d4d4` text,
|
||||
`#cc785c` for `<h2>`/accents, `system-ui` font, all CSS **inline** (no
|
||||
external stylesheets). Load Mermaid from a CDN in `<head>`:
|
||||
|
||||
```html
|
||||
<script type="module">
|
||||
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
|
||||
mermaid.initialize({ startOnLoad: true, theme: 'dark' });
|
||||
</script>
|
||||
```json
|
||||
{
|
||||
"system": "<display name>",
|
||||
"root": {
|
||||
"id": "sys", "name": "<system>", "kind": "system",
|
||||
"children": [
|
||||
{ "id": "dom:<domain>", "name": "<Domain>", "kind": "domain",
|
||||
"children": [
|
||||
{ "id": "<MODULE>", "name": "<MODULE>", "kind": "module",
|
||||
"language": "cobol", "loc": 1234, "file": "src/MODULE.cbl" }
|
||||
] },
|
||||
{ "id": "dom:data", "name": "Data stores", "kind": "domain",
|
||||
"children": [
|
||||
{ "id": "ds:<NAME>", "name": "<NAME>", "kind": "datastore" }
|
||||
] }
|
||||
]
|
||||
},
|
||||
"edges": [
|
||||
{ "source": "<id>", "target": "<id>", "kind": "call" }
|
||||
],
|
||||
"entryPoints": ["<id>", "..."],
|
||||
"deadEnds": ["<id>", "..."],
|
||||
"observations": ["<architect observation>", "..."],
|
||||
"flows": [
|
||||
{ "name": "<business flow>", "persona": "<who experiences it>",
|
||||
"description": "<one sentence, plain language>",
|
||||
"steps": [
|
||||
{ "label": "<business-language step>", "nodes": ["<id>", "<id>"] }
|
||||
] }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Each diagram goes in a `<pre class="mermaid">...</pre>` block. Do **not**
|
||||
wrap diagrams in markdown ` ``` ` fences inside the HTML.
|
||||
- Group leaf modules under `domain` containers (use the domains from
|
||||
`/modernize-assess` if available). Leaf kinds: `module`, `datastore`,
|
||||
`job`, `screen`. `loc` drives circle size — include it for modules.
|
||||
- Edge kinds: `call` (direct), `dispatch` (dynamic/router), `read`,
|
||||
`write`. Every edge endpoint must be a leaf id that exists in the tree.
|
||||
- `deadEnds`: the dead-end candidates from the extraction, rendered with
|
||||
a dashed outline in the viewer. Apply the suppression rules above —
|
||||
anything that could be the target of an unresolved dynamic call does
|
||||
NOT belong here; record that uncertainty in `observations` instead.
|
||||
- **Datastore ids and names must be logical identifiers** — DD name,
|
||||
dataset name, table/schema name, at most host:port. If the resolved
|
||||
config value is a URL or DSN, strip userinfo and credential query
|
||||
params before it goes anywhere in topology.json: the file gets
|
||||
committed and the viewer displays names verbatim. Never copy raw
|
||||
config values into `observations`.
|
||||
- `observations`: 3–7 architect observations — tight coupling clusters,
|
||||
single points of failure, service-extraction candidates, data stores
|
||||
with too many writers, dispatch targets the extraction could not
|
||||
resolve.
|
||||
- `flows` is the **persona walkthrough** section — see below.
|
||||
|
||||
1. **`graph TD` — Module call graph.** Cluster by domain (use `subgraph`).
|
||||
Highlight entry points in a distinct style. Cap at ~40 nodes — if larger,
|
||||
show domain-level with one expanded domain.
|
||||
## Persona flows
|
||||
|
||||
2. **`graph LR` — Data lineage.** Programs → data stores.
|
||||
Mark read vs write edges.
|
||||
Trace **2–4 end-to-end business flows**, each anchored to a persona —
|
||||
the people who experience the system, not the people who maintain it
|
||||
(e.g. for a benefits system: the claimant, the caseworker, the auditor;
|
||||
for billing: the customer, the billing operator). For each flow:
|
||||
|
||||
3. **`flowchart TD` — Critical path.** Trace ONE end-to-end business flow
|
||||
(e.g., "monthly billing run" or "process payment") through every program
|
||||
and data store it touches, in execution order. If production telemetry is
|
||||
available (see `/modernize-assess` Step 4), annotate each step with its
|
||||
p50/p99 wall-clock.
|
||||
- `name` + one-sentence `description` in plain business language —
|
||||
something a steering committee member relates to ("a claimant files a
|
||||
weekly claim"), not a data-flow label ("CLM batch ingest").
|
||||
- `steps`: 3–8 steps, each with a business-language `label` and the
|
||||
`nodes` (programs + data stores) that implement that step, in
|
||||
execution order.
|
||||
|
||||
Also export the three diagrams as standalone `.mmd` files for re-use:
|
||||
`analysis/$1/call-graph.mmd`, `analysis/$1/data-lineage.mmd`,
|
||||
`analysis/$1/critical-path.mmd`.
|
||||
This is the bridge between the technical map and non-technical
|
||||
stakeholders: the same diagram answers "which program does X" for
|
||||
engineers and "what happens when someone files a claim" for everyone else.
|
||||
|
||||
## Annotate
|
||||
## Render
|
||||
|
||||
Below each `<pre class="mermaid">` block in TOPOLOGY.html, add a `<ul>`
|
||||
with 3-5 **architect observations**: tight coupling clusters, single
|
||||
points of failure, candidates for service extraction, data stores
|
||||
touched by too many writers.
|
||||
`analysis/$1/TOPOLOGY.html` is an **interactive map**: a zoomable
|
||||
circle-pack of the whole system (domains as containers, modules sized by
|
||||
LOC) with dependency edges, search, per-node detail sidebar, edge-kind
|
||||
toggles, and a flow-walkthrough mode that plays each persona flow as a
|
||||
numbered path. Build it from the template that ships with this plugin —
|
||||
do not hand-write the viewer:
|
||||
|
||||
```bash
|
||||
python3 - "${CLAUDE_PLUGIN_ROOT}/assets/topology-viewer.html" analysis/$1 <<'EOF'
|
||||
import json, sys
|
||||
tpl_path, out_dir = sys.argv[1], sys.argv[2]
|
||||
tpl = open(tpl_path).read()
|
||||
marker = "/*__TOPOLOGY_DATA__*/ null"
|
||||
assert marker in tpl, f"injection marker not found in {tpl_path}"
|
||||
data = json.dumps(json.load(open(f"{out_dir}/topology.json")))
|
||||
open(f"{out_dir}/TOPOLOGY.html", "w").write(
|
||||
tpl.replace(marker, "/*__TOPOLOGY_DATA__*/ " + data))
|
||||
print(f"wrote {out_dir}/TOPOLOGY.html")
|
||||
EOF
|
||||
```
|
||||
|
||||
The viewer is fully self-contained (the d3 subset it needs is inlined in
|
||||
the template) — it works offline and on air-gapped networks. If the
|
||||
`python3` invocation fails to find the template,
|
||||
`${CLAUDE_PLUGIN_ROOT}` was not substituted — report that rather than
|
||||
hand-writing a viewer.
|
||||
|
||||
Mermaid stays for **small, exportable** diagrams. Generate standalone
|
||||
`.mmd` files for reuse in docs and PRs — but keep each under ~40 edges;
|
||||
collapse to domain level if the full graph is bigger (dense Mermaid
|
||||
becomes unreadable, which is exactly what the interactive map is for):
|
||||
|
||||
- `analysis/$1/call-graph.mmd` — domain-level `graph TD`, entry points
|
||||
highlighted
|
||||
- `analysis/$1/data-lineage.mmd` — `graph LR`, programs → data stores,
|
||||
read vs write marked
|
||||
- `analysis/$1/critical-path.mmd` — `flowchart TD` of the primary flow
|
||||
from `flows`, annotated with p50/p99 wall-clock if telemetry is
|
||||
available (see `/modernize-assess` Step 4)
|
||||
|
||||
## Present
|
||||
|
||||
Tell the user to open `analysis/$1/TOPOLOGY.html` in a browser.
|
||||
Tell the user to open `analysis/$1/TOPOLOGY.html` in a browser, and to
|
||||
try: search for a module, click it to see its connections, and pick a
|
||||
persona flow from the walkthrough dropdown.
|
||||
|
||||
98
plugins/code-modernization/commands/modernize-preflight.md
Normal file
98
plugins/code-modernization/commands/modernize-preflight.md
Normal file
@@ -0,0 +1,98 @@
|
||||
---
|
||||
description: Environment readiness check — analysis tools, build toolchain, source completeness, telemetry access
|
||||
argument-hint: <system-dir> [target-stack]
|
||||
---
|
||||
|
||||
Check whether this environment is ready to analyze — and eventually
|
||||
transform — `legacy/$1`, and tell the user exactly what to fix before the
|
||||
other commands run into it. Modernization sessions fail late and
|
||||
confusingly when this isn't done: assessment metrics silently degrade
|
||||
without analysis tools, characterization tests can't run without a build
|
||||
toolchain, and dependency maps come out wrong when half the source isn't
|
||||
in the tree.
|
||||
|
||||
Run every check even when an early one fails — the point is one complete
|
||||
readiness report, not the first error.
|
||||
|
||||
## Check 1 — Detect the stack
|
||||
|
||||
Fingerprint `legacy/$1` from file extensions and manifests: languages,
|
||||
build system, deployment/config descriptors. This drives which checks
|
||||
below apply. Report what was detected and the rough file split.
|
||||
|
||||
## Check 2 — Analysis tooling
|
||||
|
||||
For each, check availability (`command -v`) and report version, what it's
|
||||
used for, and what degrades without it:
|
||||
|
||||
| Tool | Used by | Without it |
|
||||
|---|---|---|
|
||||
| `scc` (or `cloc`) | assess | LOC/complexity fall back to `find`+`wc`; COCOMO estimate gets coarser |
|
||||
| `lizard` | assess --portfolio | complexity estimated from decision-keyword counts |
|
||||
| `glow` | all | markdown artifacts render as plain text |
|
||||
| `delta` | transform | side-by-side diffs fall back to `diff -y` |
|
||||
|
||||
Include the platform's install one-liner for anything missing
|
||||
(`brew install scc`, `apt install cloc`, `pip install lizard`, …).
|
||||
|
||||
## Check 3 — Build toolchain (smoke test, not just presence)
|
||||
|
||||
Identify the compiler/interpreter for the detected legacy stack — e.g.
|
||||
GnuCOBOL (`cobc`) for COBOL, JDK + Maven/Gradle for Java, `cc`/`make` for
|
||||
C, `dotnet` for .NET. Then **prove it works on this codebase**: pick one
|
||||
representative source file and run a syntax-only compile
|
||||
(`cobc -fsyntax-only`, `javac`, `gcc -fsyntax-only`, …).
|
||||
|
||||
A failed smoke test is the most valuable output of this command — report
|
||||
the actual error and diagnose it: missing copybook/include path, missing
|
||||
dialect flag (`-std=ibm` etc.), fixed vs free format, missing dependency
|
||||
jar. These are the errors that otherwise surface mid-`/modernize-transform`
|
||||
with much less context.
|
||||
|
||||
If the user passed a `[target-stack]`, do the same for it: runtime,
|
||||
package manager, test framework (`mvn -v`, `npm -v`, `pytest --version`, …).
|
||||
|
||||
## Check 4 — Source completeness
|
||||
|
||||
The dependency map is only as good as what's in the tree. Check for the
|
||||
detected stack's equivalents of:
|
||||
|
||||
- **Referenced-but-missing includes** — copybooks (`COPY X` with no
|
||||
`X.cpy`), headers, imports that resolve nowhere. Count and list the top
|
||||
missing names.
|
||||
- **Deployment/config descriptors** — JCL for batch COBOL, CICS CSD
|
||||
definitions, `web.xml`/route configs, cron/scheduler definitions.
|
||||
Without these, entry-point detection and the code↔storage join in
|
||||
`/modernize-map` are guesswork.
|
||||
- **Data definitions** — DDL, schemas, copybook record layouts, ORM
|
||||
mappings.
|
||||
- **Binary-only artifacts** — load modules, jars, DLLs with no matching
|
||||
source. These become unmappable black boxes; flag them now.
|
||||
|
||||
## Check 5 — Optional context
|
||||
|
||||
- **Production telemetry** — is an observability/APM MCP server connected,
|
||||
or are batch job logs / runtime exports available? (Enables the runtime
|
||||
overlay in `/modernize-assess` Step 4 and timing annotations in
|
||||
`/modernize-map`.)
|
||||
- **Version control history** — is `legacy/$1` under git with meaningful
|
||||
history? (Change-frequency data sharpens risk ranking.)
|
||||
|
||||
## Report
|
||||
|
||||
Write `analysis/$1/PREFLIGHT.md`: a status table — one row per check,
|
||||
status ✅ / ⚠️ / ❌, what was found, and the fix for anything not green —
|
||||
followed by a **Ready / Ready-with-gaps / Not ready** verdict per command:
|
||||
|
||||
- `assess` + `map` + `extract-rules` — need Checks 1–2 green-ish and
|
||||
Check 4's missing-include count low
|
||||
- `brief` — needs only the three discovery artifacts; no tooling
|
||||
- `transform` + `reimagine` — additionally need Check 3 green for the
|
||||
**target** stack. A red legacy toolchain downgrades these to
|
||||
Ready-with-gaps, not Not-ready: equivalence testing falls back to
|
||||
recorded traces / golden-master fixtures instead of dual execution
|
||||
(common and expected for CICS/IMS code that has no local runtime)
|
||||
- `harden` — needs Check 2 plus any stack-specific SAST tooling found
|
||||
|
||||
Print the table in the session too, and end with the single most
|
||||
important fix if anything is red.
|
||||
@@ -3,7 +3,11 @@ description: Multi-agent greenfield rebuild — extract specs from legacy, desig
|
||||
argument-hint: <system-dir> <target-vision>
|
||||
---
|
||||
|
||||
**Reimagine** `legacy/$1` as: $2
|
||||
The first token of `$ARGUMENTS` is the system dir (`$1`); **everything
|
||||
after it is the target vision** — it is usually multiple words, so do not
|
||||
truncate it to one token. Below, `<vision>` means that full remainder.
|
||||
|
||||
**Reimagine** `legacy/$1` as: <vision>
|
||||
|
||||
This is not a port — it's a rebuild from extracted intent. The legacy system
|
||||
becomes the *specification source*, not the structural template. This command
|
||||
@@ -19,7 +23,8 @@ Spawn concurrently and show the user that all three are running:
|
||||
2. **legacy-analyst** — "Catalog every external interface of legacy/$1:
|
||||
inbound (screens, APIs, batch triggers, queues) and outbound (reports,
|
||||
files, downstream calls, DB writes). For each: name, direction, payload
|
||||
shape, frequency/SLA if discernible."
|
||||
shape, frequency/SLA if discernible. Mask any credential embedded in
|
||||
endpoints or payload examples per your secret-handling rules."
|
||||
|
||||
3. **legacy-analyst** — "Identify the core domain entities in legacy/$1 and
|
||||
their relationships. Return as an entity list + Mermaid erDiagram."
|
||||
@@ -32,6 +37,9 @@ Collect results. Write `analysis/$1/AI_NATIVE_SPEC.md` containing:
|
||||
- **Non-functional requirements** inferred from legacy (batch windows, volumes)
|
||||
- **Behavior Contract** (the Given/When/Then rules — these are the acceptance tests)
|
||||
|
||||
Credential values are masked everywhere in the spec; connection details
|
||||
appear as env-var placeholders (`${DATABASE_URL}`), never literals.
|
||||
|
||||
## Phase B — HITL checkpoint #1
|
||||
|
||||
Present the spec summary. Ask the user **one focused question**: "Which of
|
||||
@@ -40,20 +48,21 @@ should deliberately drop?" Wait for the answer. Record it in the spec.
|
||||
|
||||
## Phase C — Architecture (single agent, then critique)
|
||||
|
||||
Design the target architecture for "$2":
|
||||
Design the target architecture for "<vision>":
|
||||
- Mermaid C4 Container diagram
|
||||
- Service boundaries with rationale (which rules/entities live where)
|
||||
- Technology choices with one-line justification each
|
||||
- Data migration approach from legacy stores
|
||||
|
||||
Then spawn **architecture-critic**: "Review this proposed architecture for
|
||||
$2 against the spec in analysis/$1/AI_NATIVE_SPEC.md. Identify over-engineering,
|
||||
<vision> against the spec in analysis/$1/AI_NATIVE_SPEC.md. Identify over-engineering,
|
||||
missed requirements, scaling risks, and simpler alternatives." Incorporate
|
||||
the critique. Write the result to `analysis/$1/REIMAGINED_ARCHITECTURE.md`.
|
||||
|
||||
## Phase D — HITL checkpoint #2
|
||||
|
||||
Enter plan mode. Present the architecture. Wait for approval.
|
||||
Present the architecture and **stop — scaffold nothing until the user
|
||||
explicitly approves** (use plan mode if the session supports it).
|
||||
|
||||
## Phase E — Parallel scaffolding
|
||||
|
||||
@@ -65,7 +74,9 @@ in parallel**:
|
||||
and AI_NATIVE_SPEC.md. Create: project skeleton, domain model, API stubs
|
||||
matching the interface contracts, and **executable acceptance tests** for every
|
||||
behavior-contract rule assigned to this service (mark unimplemented ones as
|
||||
expected-failure/skip with the rule ID). Write to modernized/$1-reimagined/<service-name>/."
|
||||
expected-failure/skip with the rule ID). No credential literal from legacy
|
||||
code becomes a test fixture or config default — use fake same-shape values
|
||||
and env-var placeholders. Write to modernized/$1-reimagined/<service-name>/."
|
||||
|
||||
Show the agents' progress. When all complete, run the acceptance test suites
|
||||
and report: total tests, passing (scaffolded behavior), pending (rule IDs
|
||||
@@ -77,7 +88,9 @@ Write `modernized/$1-reimagined/CLAUDE.md` — the persistent context file for
|
||||
the new system, containing: architecture summary, service responsibilities,
|
||||
where the spec lives, how to run tests, and the legacy→modern traceability
|
||||
map. This file IS the knowledge graph that future agents and engineers will
|
||||
load.
|
||||
load — and it gets committed: connection details and credentials appear
|
||||
only as env-var names with a pointer to where they're provisioned, never
|
||||
as values.
|
||||
|
||||
Report: services scaffolded, acceptance tests defined, % behaviors with a
|
||||
home, location of all artifacts.
|
||||
|
||||
54
plugins/code-modernization/commands/modernize-status.md
Normal file
54
plugins/code-modernization/commands/modernize-status.md
Normal file
@@ -0,0 +1,54 @@
|
||||
---
|
||||
description: Where am I in the modernization workflow — artifact inventory, staleness, secrets hygiene, next step
|
||||
argument-hint: <system-dir>
|
||||
---
|
||||
|
||||
Report where the modernization of `$1` stands, in one screen. This is a
|
||||
read-only command — inspect, never modify.
|
||||
|
||||
## 1 — Artifact inventory
|
||||
|
||||
Check `analysis/$1/` and `modernized/$1*/` and build a table — one row per
|
||||
workflow stage, with the artifact's presence and modification time:
|
||||
|
||||
| Stage | Artifacts |
|
||||
|---|---|
|
||||
| preflight | `PREFLIGHT.md` |
|
||||
| assess | `ASSESSMENT.md`, `ARCHITECTURE.mmd` |
|
||||
| map | `topology.json`, `TOPOLOGY.html`, `*.mmd`, `extract_topology.*` |
|
||||
| extract-rules | `BUSINESS_RULES.md`, `DATA_OBJECTS.md` |
|
||||
| brief | `MODERNIZATION_BRIEF.md` (note whether the approval block is signed) |
|
||||
| harden | `SECURITY_FINDINGS.md`, `security_remediation.patch` |
|
||||
| transform / reimagine | each `modernized/$1*/<module>/` dir — note test presence and whether `TRANSFORMATION_NOTES.md` exists |
|
||||
|
||||
## 2 — Staleness
|
||||
|
||||
Flag any artifact older than an upstream artifact it derives from:
|
||||
|
||||
- `MODERNIZATION_BRIEF.md` older than `ASSESSMENT.md`, `topology.json`,
|
||||
or `BUSINESS_RULES.md` → the brief no longer reflects discovery;
|
||||
recommend re-running `/modernize-brief`.
|
||||
- `TOPOLOGY.html` older than `topology.json` → re-run the injection step
|
||||
from `/modernize-map`.
|
||||
- Any `TRANSFORMATION_NOTES.md` older than `BUSINESS_RULES.md` → the
|
||||
module may not implement the latest rule set; list which.
|
||||
|
||||
## 3 — Secrets hygiene
|
||||
|
||||
- Does `analysis/.gitignore` exist and cover `SECRETS.local.md` /
|
||||
`*.local.patch`? (`git check-ignore` when in a git repo.)
|
||||
- If `SECRETS.local.md` exists: confirm it is NOT tracked
|
||||
(`git ls-files --error-unmatch`, expect failure) and has never been
|
||||
committed (`git log --all --oneline -- <path>`, expect empty). If
|
||||
either check fails, say so prominently and recommend rotation plus
|
||||
history scrubbing.
|
||||
|
||||
## 4 — Verdict
|
||||
|
||||
End with three lines:
|
||||
- **Where you are** — the furthest completed stage and roughly how much
|
||||
of the system it covers (e.g. "mapped 100%, 2 of 14 modules
|
||||
transformed").
|
||||
- **What's stale** — or "nothing".
|
||||
- **Next command** — the single most useful next step, with a one-line
|
||||
reason.
|
||||
@@ -9,10 +9,37 @@ equivalence.
|
||||
This is a surgical, single-module transformation — one vertical slice of the
|
||||
strangler fig. Output goes to `modernized/$1/$2/`.
|
||||
|
||||
## Step 0 — Plan (HITL gate)
|
||||
## Step 0a — Toolchain check (fail fast on target, adapt on legacy)
|
||||
|
||||
Verify the build environment **before** planning, not when the tests
|
||||
first run:
|
||||
|
||||
- **Target stack ($3) — required.** Runtime, package manager, and test
|
||||
framework all respond (`java -version` + `mvn -v`, `node -v` + `npm -v`,
|
||||
`python3 -V` + `pytest --version`, …). If any are missing, stop and
|
||||
report what to install — the new code and its tests cannot run without
|
||||
them, so a plan gate now would just defer the failure an hour. Suggest
|
||||
`/modernize-preflight $1 $3` for the full readiness report.
|
||||
- **Legacy stack — advisory, never a blocker.** Try a syntax-only compile
|
||||
of the module being transformed (e.g. `cobc -fsyntax-only`). Legacy
|
||||
code often *cannot* build locally by nature, not by misconfiguration —
|
||||
CICS/IMS programs have no local translator, and the real runtime may be
|
||||
a mainframe you don't have. A failed or impossible legacy compile does
|
||||
**not** stop the transform; it changes the equivalence strategy:
|
||||
- dual-execution proof is off the table — characterization tests
|
||||
assert against **recorded traces / golden-master fixtures** (real
|
||||
production outputs, captured reports/screens, SME-confirmed
|
||||
examples) instead of live legacy runs
|
||||
- say so explicitly in the Step 0b plan and later in
|
||||
TRANSFORMATION_NOTES.md ("equivalence is trace-based; legacy was not
|
||||
executable in this environment"), so reviewers know the strength of
|
||||
the proof they're approving
|
||||
|
||||
## Step 0b — Plan (HITL gate)
|
||||
|
||||
Read the source module and any business rules in `analysis/$1/BUSINESS_RULES.md`
|
||||
that reference it. Then **enter plan mode** and present:
|
||||
that reference it. Then present the plan and **stop — write no code until
|
||||
the user explicitly approves** (use plan mode if the session supports it):
|
||||
- Which source files are in scope
|
||||
- The target module structure (packages/classes/files you'll create)
|
||||
- Which business rules / behaviors this module implements
|
||||
@@ -30,7 +57,9 @@ identify every observable behavior, and encode each as a test case with
|
||||
concrete input → expected output pairs derived from the legacy logic.
|
||||
Target framework: <appropriate for $3>. Write to
|
||||
`modernized/$1/$2/src/test/`. These tests define 'done' — the new code
|
||||
must pass all of them."
|
||||
must pass all of them. Follow your secret-handling rules: no credential
|
||||
literal from legacy code becomes a fixture; substitute fake same-shape
|
||||
values and read anything genuinely live from environment variables."
|
||||
|
||||
Show the user the test file. Get a 👍 before proceeding.
|
||||
|
||||
@@ -68,6 +97,10 @@ Then show a visual diff of one representative behavior, legacy vs modern:
|
||||
```bash
|
||||
delta --side-by-side <(sed -n '<lines>p' legacy/$1/<file>) modernized/$1/$2/src/main/<file>
|
||||
```
|
||||
(Fall back to `diff -y --width=160` if `delta` isn't installed.) Never
|
||||
pick a credential-bearing line range for this diff, and mask any
|
||||
credential-like literal quoted in TRANSFORMATION_NOTES.md — the notes
|
||||
live in `modernized/` and get committed.
|
||||
|
||||
## Step 5 — Architecture review
|
||||
|
||||
|
||||
Reference in New Issue
Block a user