@jaypie/mcp 0.7.4 → 0.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/suites/docs/index.js +1 -1
- package/package.json +1 -1
- package/release-notes/constructs/1.2.27.md +20 -0
- package/release-notes/mcp/0.7.5.md +13 -0
- package/release-notes/mcp/0.7.6.md +13 -0
- package/skills/agents.md +12 -3
- package/skills/cicd-actions.md +337 -0
- package/skills/cicd-deploy.md +332 -0
- package/skills/cicd-environments.md +184 -0
- package/skills/cicd.md +9 -1
- package/skills/development.md +3 -1
- package/skills/infrastructure.md +5 -2
- package/skills/monorepo.md +166 -0
- package/skills/skills.md +2 -2
- package/skills/subpackage.md +219 -0
- package/skills/tools-llm.md +98 -0
- package/skills/tools.md +11 -1
|
@@ -9,7 +9,7 @@ import { gt } from 'semver';
|
|
|
9
9
|
/**
|
|
10
10
|
* Docs Suite - Documentation services (skill, version, release_notes)
|
|
11
11
|
*/
|
|
12
|
-
const BUILD_VERSION_STRING = "@jaypie/mcp@0.7.
|
|
12
|
+
const BUILD_VERSION_STRING = "@jaypie/mcp@0.7.6#2f4ca154"
|
|
13
13
|
;
|
|
14
14
|
const __filename$1 = fileURLToPath(import.meta.url);
|
|
15
15
|
const __dirname$1 = path.dirname(__filename$1);
|
package/package.json
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 1.2.27
|
|
3
|
+
date: 2025-02-01
|
|
4
|
+
summary: Add EC2 and SSM read permissions to JaypieGitHubDeployRole for VPC lookups
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Changes
|
|
8
|
+
|
|
9
|
+
- Add EC2 describe permissions to `JaypieGitHubDeployRole` for CDK VPC lookups:
|
|
10
|
+
- `ec2:DescribeAvailabilityZones`
|
|
11
|
+
- `ec2:DescribeNetworkInterfaces`
|
|
12
|
+
- `ec2:DescribeRouteTables`
|
|
13
|
+
- `ec2:DescribeSecurityGroups`
|
|
14
|
+
- `ec2:DescribeSubnets`
|
|
15
|
+
- `ec2:DescribeVpcs`
|
|
16
|
+
- Add SSM parameter read permissions:
|
|
17
|
+
- `ssm:GetParameter`
|
|
18
|
+
- `ssm:GetParameters`
|
|
19
|
+
|
|
20
|
+
These permissions enable CDK stack synthesis that involves VPC lookups and SSM parameter resolution.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 0.7.5
|
|
3
|
+
date: 2025-01-31
|
|
4
|
+
summary: Add monorepo and subpackage setup skills
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Changes
|
|
8
|
+
|
|
9
|
+
- Add `monorepo` skill for initializing Jaypie monorepo projects
|
|
10
|
+
- Add `subpackage` skill for creating packages within a monorepo
|
|
11
|
+
- Add `tools-llm` skill for LLM tool documentation
|
|
12
|
+
- Update `development` skill to reference new setup skills
|
|
13
|
+
- Update `tools` skill to reference tools-llm and add LLM environment variables
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 0.7.6
|
|
3
|
+
date: 2025-02-01
|
|
4
|
+
summary: Split CI/CD documentation into agent-optimized skills with complete templates
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Changes
|
|
8
|
+
|
|
9
|
+
- Add `cicd-actions` skill with copy-paste composite action templates
|
|
10
|
+
- Add `cicd-deploy` skill with sandbox and production deployment workflows
|
|
11
|
+
- Add `cicd-environments` skill with GitHub Environments configuration guide
|
|
12
|
+
- Update `cicd` skill to serve as overview with links to sub-skills
|
|
13
|
+
- Update `infrastructure` skill with new CI/CD sub-skills
|
package/skills/agents.md
CHANGED
|
@@ -17,12 +17,21 @@ Some tasks should not be listed to avoid suboptimal pathing.
|
|
|
17
17
|
```markdown
|
|
18
18
|
## Jaypie
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Complete stack styles, techniques, and traditions.
|
|
21
|
+
|
|
22
|
+
- Call `mcp__jaypie__skill("skills")` to discover Jaypie development skills and tools available in this repository
|
|
23
|
+
- A `~` before a word or surrounding a word/phrase indicates it can be looked up as in ~skills
|
|
24
|
+
- Check ~tools (`mcp__jaypie__skill("tools")`) for all tools or ~tools-aws, ~tools-datadog, and ~tools-dynamodb individually
|
|
25
|
+
- File bugs, documentation, features, and other issues with `mcp__jaypie__skill("issues")`
|
|
26
|
+
|
|
27
|
+
### Skills
|
|
28
|
+
|
|
29
|
+
`mcp__jaypie__skill(alias: String)`
|
|
21
30
|
|
|
22
31
|
Contents: index, releasenotes
|
|
23
|
-
Development: documentation, errors, logs, mocks, style, tests
|
|
32
|
+
Development: documentation, errors, logs, mocks, monorepo, style, subpackages, tests
|
|
24
33
|
Infrastructure: aws, cdk, cicd, datadog, dns, dynamodb, express, lambda, secrets, streaming, variables, websockets
|
|
25
|
-
Patterns: fabric, models, services, vocabulary
|
|
34
|
+
Patterns: fabric, handlers, models, services, vocabulary
|
|
26
35
|
Meta: issues, jaypie, skills, tools
|
|
27
36
|
```
|
|
28
37
|
|
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Reusable composite actions for GitHub Actions workflows
|
|
3
|
+
related: cicd, cicd-deploy, cicd-environments
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Composite Actions
|
|
7
|
+
|
|
8
|
+
Jaypie projects use composite actions to share common workflow steps. Place these in `.github/actions/`.
|
|
9
|
+
|
|
10
|
+
## Directory Structure
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
.github/
|
|
14
|
+
├── actions/
|
|
15
|
+
│ ├── setup-environment/
|
|
16
|
+
│ │ └── action.yml
|
|
17
|
+
│ ├── configure-aws/
|
|
18
|
+
│ │ └── action.yml
|
|
19
|
+
│ ├── setup-node-and-cache/
|
|
20
|
+
│ │ └── action.yml
|
|
21
|
+
│ ├── npm-install-build/
|
|
22
|
+
│ │ └── action.yml
|
|
23
|
+
│ └── cdk-deploy/
|
|
24
|
+
│ └── action.yml
|
|
25
|
+
└── workflows/
|
|
26
|
+
├── deploy-sandbox.yml
|
|
27
|
+
└── deploy-production.yml
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## setup-environment/action.yml
|
|
31
|
+
|
|
32
|
+
Sets Jaypie environment variables with bash parameter expansion defaults.
|
|
33
|
+
|
|
34
|
+
```yaml
|
|
35
|
+
name: 'Setup Environment'
|
|
36
|
+
description: 'Set environment variables for Jaypie deployment'
|
|
37
|
+
|
|
38
|
+
inputs:
|
|
39
|
+
project-env:
|
|
40
|
+
description: 'Environment name (sandbox, production)'
|
|
41
|
+
required: false
|
|
42
|
+
default: 'sandbox'
|
|
43
|
+
project-key:
|
|
44
|
+
description: 'Project identifier'
|
|
45
|
+
required: true
|
|
46
|
+
project-nonce:
|
|
47
|
+
description: 'Unique resource identifier'
|
|
48
|
+
required: false
|
|
49
|
+
default: ''
|
|
50
|
+
log-level:
|
|
51
|
+
description: 'Log level (trace, debug, info, warn, error)'
|
|
52
|
+
required: false
|
|
53
|
+
default: ''
|
|
54
|
+
project-chaos:
|
|
55
|
+
description: 'Chaos mode (none, partial, full)'
|
|
56
|
+
required: false
|
|
57
|
+
default: ''
|
|
58
|
+
|
|
59
|
+
outputs:
|
|
60
|
+
project-env:
|
|
61
|
+
description: 'Resolved PROJECT_ENV'
|
|
62
|
+
value: ${{ steps.env.outputs.project-env }}
|
|
63
|
+
project-nonce:
|
|
64
|
+
description: 'Resolved PROJECT_NONCE'
|
|
65
|
+
value: ${{ steps.env.outputs.project-nonce }}
|
|
66
|
+
log-level:
|
|
67
|
+
description: 'Resolved LOG_LEVEL'
|
|
68
|
+
value: ${{ steps.env.outputs.log-level }}
|
|
69
|
+
project-chaos:
|
|
70
|
+
description: 'Resolved PROJECT_CHAOS'
|
|
71
|
+
value: ${{ steps.env.outputs.project-chaos }}
|
|
72
|
+
|
|
73
|
+
runs:
|
|
74
|
+
using: 'composite'
|
|
75
|
+
steps:
|
|
76
|
+
- name: Set environment variables
|
|
77
|
+
id: env
|
|
78
|
+
shell: bash
|
|
79
|
+
run: |
|
|
80
|
+
# Resolve PROJECT_ENV
|
|
81
|
+
PROJECT_ENV="${{ inputs.project-env }}"
|
|
82
|
+
echo "project-env=${PROJECT_ENV}" >> $GITHUB_OUTPUT
|
|
83
|
+
echo "PROJECT_ENV=${PROJECT_ENV}" >> $GITHUB_ENV
|
|
84
|
+
|
|
85
|
+
# Resolve PROJECT_KEY
|
|
86
|
+
echo "PROJECT_KEY=${{ inputs.project-key }}" >> $GITHUB_ENV
|
|
87
|
+
|
|
88
|
+
# Resolve PROJECT_NONCE (default: branch name or 'prod')
|
|
89
|
+
NONCE="${{ inputs.project-nonce }}"
|
|
90
|
+
if [ -z "$NONCE" ]; then
|
|
91
|
+
if [ "$PROJECT_ENV" = "production" ]; then
|
|
92
|
+
NONCE="prod"
|
|
93
|
+
else
|
|
94
|
+
NONCE="${GITHUB_REF_NAME//\//-}"
|
|
95
|
+
fi
|
|
96
|
+
fi
|
|
97
|
+
echo "project-nonce=${NONCE}" >> $GITHUB_OUTPUT
|
|
98
|
+
echo "PROJECT_NONCE=${NONCE}" >> $GITHUB_ENV
|
|
99
|
+
|
|
100
|
+
# Resolve LOG_LEVEL (default: trace for sandbox, info for production)
|
|
101
|
+
LOG_LEVEL="${{ inputs.log-level }}"
|
|
102
|
+
if [ -z "$LOG_LEVEL" ]; then
|
|
103
|
+
if [ "$PROJECT_ENV" = "production" ]; then
|
|
104
|
+
LOG_LEVEL="info"
|
|
105
|
+
else
|
|
106
|
+
LOG_LEVEL="trace"
|
|
107
|
+
fi
|
|
108
|
+
fi
|
|
109
|
+
echo "log-level=${LOG_LEVEL}" >> $GITHUB_OUTPUT
|
|
110
|
+
echo "LOG_LEVEL=${LOG_LEVEL}" >> $GITHUB_ENV
|
|
111
|
+
|
|
112
|
+
# Resolve PROJECT_CHAOS (default: none for production, full for sandbox)
|
|
113
|
+
CHAOS="${{ inputs.project-chaos }}"
|
|
114
|
+
if [ -z "$CHAOS" ]; then
|
|
115
|
+
if [ "$PROJECT_ENV" = "production" ]; then
|
|
116
|
+
CHAOS="none"
|
|
117
|
+
else
|
|
118
|
+
CHAOS="full"
|
|
119
|
+
fi
|
|
120
|
+
fi
|
|
121
|
+
echo "project-chaos=${CHAOS}" >> $GITHUB_OUTPUT
|
|
122
|
+
echo "PROJECT_CHAOS=${CHAOS}" >> $GITHUB_ENV
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## configure-aws/action.yml
|
|
126
|
+
|
|
127
|
+
Configures AWS credentials via OIDC.
|
|
128
|
+
|
|
129
|
+
```yaml
|
|
130
|
+
name: 'Configure AWS'
|
|
131
|
+
description: 'Configure AWS credentials via OIDC'
|
|
132
|
+
|
|
133
|
+
inputs:
|
|
134
|
+
role-arn:
|
|
135
|
+
description: 'AWS IAM Role ARN to assume'
|
|
136
|
+
required: true
|
|
137
|
+
region:
|
|
138
|
+
description: 'AWS region'
|
|
139
|
+
required: false
|
|
140
|
+
default: 'us-east-1'
|
|
141
|
+
role-session-name:
|
|
142
|
+
description: 'Session name for assumed role'
|
|
143
|
+
required: false
|
|
144
|
+
default: 'github-actions'
|
|
145
|
+
|
|
146
|
+
runs:
|
|
147
|
+
using: 'composite'
|
|
148
|
+
steps:
|
|
149
|
+
- name: Configure AWS credentials
|
|
150
|
+
uses: aws-actions/configure-aws-credentials@v4
|
|
151
|
+
with:
|
|
152
|
+
role-to-assume: ${{ inputs.role-arn }}
|
|
153
|
+
aws-region: ${{ inputs.region }}
|
|
154
|
+
role-session-name: ${{ inputs.role-session-name }}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## setup-node-and-cache/action.yml
|
|
158
|
+
|
|
159
|
+
Sets up Node.js with multi-layer caching.
|
|
160
|
+
|
|
161
|
+
```yaml
|
|
162
|
+
name: 'Setup Node and Cache'
|
|
163
|
+
description: 'Setup Node.js with npm caching'
|
|
164
|
+
|
|
165
|
+
inputs:
|
|
166
|
+
node-version:
|
|
167
|
+
description: 'Node.js version'
|
|
168
|
+
required: false
|
|
169
|
+
default: '24'
|
|
170
|
+
cache-builds:
|
|
171
|
+
description: 'Cache build outputs'
|
|
172
|
+
required: false
|
|
173
|
+
default: 'true'
|
|
174
|
+
|
|
175
|
+
runs:
|
|
176
|
+
using: 'composite'
|
|
177
|
+
steps:
|
|
178
|
+
- name: Setup Node.js
|
|
179
|
+
uses: actions/setup-node@v4
|
|
180
|
+
with:
|
|
181
|
+
node-version: ${{ inputs.node-version }}
|
|
182
|
+
cache: 'npm'
|
|
183
|
+
|
|
184
|
+
- name: Cache node_modules
|
|
185
|
+
uses: actions/cache@v4
|
|
186
|
+
with:
|
|
187
|
+
path: |
|
|
188
|
+
node_modules
|
|
189
|
+
packages/*/node_modules
|
|
190
|
+
stacks/*/node_modules
|
|
191
|
+
key: ${{ runner.os }}-node-${{ inputs.node-version }}-${{ hashFiles('**/package-lock.json') }}
|
|
192
|
+
restore-keys: |
|
|
193
|
+
${{ runner.os }}-node-${{ inputs.node-version }}-
|
|
194
|
+
|
|
195
|
+
- name: Cache build outputs
|
|
196
|
+
if: inputs.cache-builds == 'true'
|
|
197
|
+
uses: actions/cache@v4
|
|
198
|
+
with:
|
|
199
|
+
path: |
|
|
200
|
+
packages/*/dist
|
|
201
|
+
stacks/*/dist
|
|
202
|
+
stacks/*/.open-next
|
|
203
|
+
key: ${{ runner.os }}-build-${{ github.sha }}
|
|
204
|
+
restore-keys: |
|
|
205
|
+
${{ runner.os }}-build-
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## npm-install-build/action.yml
|
|
209
|
+
|
|
210
|
+
Installs dependencies and builds packages.
|
|
211
|
+
|
|
212
|
+
```yaml
|
|
213
|
+
name: 'NPM Install and Build'
|
|
214
|
+
description: 'Install npm dependencies and build packages'
|
|
215
|
+
|
|
216
|
+
inputs:
|
|
217
|
+
install-command:
|
|
218
|
+
description: 'Install command to run'
|
|
219
|
+
required: false
|
|
220
|
+
default: 'npm ci'
|
|
221
|
+
build-command:
|
|
222
|
+
description: 'Build command to run'
|
|
223
|
+
required: false
|
|
224
|
+
default: 'npm run build'
|
|
225
|
+
skip-build:
|
|
226
|
+
description: 'Skip build step'
|
|
227
|
+
required: false
|
|
228
|
+
default: 'false'
|
|
229
|
+
|
|
230
|
+
runs:
|
|
231
|
+
using: 'composite'
|
|
232
|
+
steps:
|
|
233
|
+
- name: Install dependencies
|
|
234
|
+
shell: bash
|
|
235
|
+
run: ${{ inputs.install-command }}
|
|
236
|
+
|
|
237
|
+
- name: Build packages
|
|
238
|
+
if: inputs.skip-build != 'true'
|
|
239
|
+
shell: bash
|
|
240
|
+
run: ${{ inputs.build-command }}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
## cdk-deploy/action.yml
|
|
244
|
+
|
|
245
|
+
Deploys CDK stack with proper configuration.
|
|
246
|
+
|
|
247
|
+
```yaml
|
|
248
|
+
name: 'CDK Deploy'
|
|
249
|
+
description: 'Deploy CDK stack'
|
|
250
|
+
|
|
251
|
+
inputs:
|
|
252
|
+
stack-name:
|
|
253
|
+
description: 'CDK stack name or pattern'
|
|
254
|
+
required: true
|
|
255
|
+
working-directory:
|
|
256
|
+
description: 'Working directory for CDK commands'
|
|
257
|
+
required: false
|
|
258
|
+
default: 'stacks/cdk'
|
|
259
|
+
require-approval:
|
|
260
|
+
description: 'CDK approval mode (never, any-change, broadening)'
|
|
261
|
+
required: false
|
|
262
|
+
default: 'never'
|
|
263
|
+
extra-args:
|
|
264
|
+
description: 'Additional CDK deploy arguments'
|
|
265
|
+
required: false
|
|
266
|
+
default: ''
|
|
267
|
+
|
|
268
|
+
runs:
|
|
269
|
+
using: 'composite'
|
|
270
|
+
steps:
|
|
271
|
+
- name: Install CDK CLI
|
|
272
|
+
shell: bash
|
|
273
|
+
run: npm install -g aws-cdk
|
|
274
|
+
|
|
275
|
+
- name: CDK Deploy
|
|
276
|
+
shell: bash
|
|
277
|
+
working-directory: ${{ inputs.working-directory }}
|
|
278
|
+
run: |
|
|
279
|
+
cdk deploy "${{ inputs.stack-name }}" \
|
|
280
|
+
--require-approval ${{ inputs.require-approval }} \
|
|
281
|
+
--outputs-file cdk-outputs.json \
|
|
282
|
+
${{ inputs.extra-args }}
|
|
283
|
+
|
|
284
|
+
- name: Upload CDK outputs
|
|
285
|
+
uses: actions/upload-artifact@v4
|
|
286
|
+
with:
|
|
287
|
+
name: cdk-outputs
|
|
288
|
+
path: ${{ inputs.working-directory }}/cdk-outputs.json
|
|
289
|
+
if-no-files-found: ignore
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
## Using Composite Actions
|
|
293
|
+
|
|
294
|
+
Reference actions in workflows:
|
|
295
|
+
|
|
296
|
+
```yaml
|
|
297
|
+
jobs:
|
|
298
|
+
deploy:
|
|
299
|
+
runs-on: ubuntu-latest
|
|
300
|
+
environment: sandbox
|
|
301
|
+
permissions:
|
|
302
|
+
id-token: write
|
|
303
|
+
contents: read
|
|
304
|
+
steps:
|
|
305
|
+
- uses: actions/checkout@v4
|
|
306
|
+
|
|
307
|
+
- uses: ./.github/actions/setup-environment
|
|
308
|
+
with:
|
|
309
|
+
project-key: my-project
|
|
310
|
+
project-env: sandbox
|
|
311
|
+
|
|
312
|
+
- uses: ./.github/actions/configure-aws
|
|
313
|
+
with:
|
|
314
|
+
role-arn: ${{ vars.AWS_ROLE_ARN }}
|
|
315
|
+
region: ${{ vars.AWS_REGION || 'us-east-1' }}
|
|
316
|
+
|
|
317
|
+
- uses: ./.github/actions/setup-node-and-cache
|
|
318
|
+
|
|
319
|
+
- uses: ./.github/actions/npm-install-build
|
|
320
|
+
|
|
321
|
+
- uses: ./.github/actions/cdk-deploy
|
|
322
|
+
with:
|
|
323
|
+
stack-name: 'my-stack-*'
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
## Customization
|
|
327
|
+
|
|
328
|
+
Override defaults as needed:
|
|
329
|
+
|
|
330
|
+
```yaml
|
|
331
|
+
- uses: ./.github/actions/setup-environment
|
|
332
|
+
with:
|
|
333
|
+
project-key: my-project
|
|
334
|
+
project-env: production
|
|
335
|
+
log-level: warn
|
|
336
|
+
project-chaos: none
|
|
337
|
+
```
|