Skip to content

Commit 34afdf5

Browse files
AlexmTsangAlex Tsang
andauthored
feat: sync aws-transform skill from internal mainline; bump to 1.5.0 (#247)
Update the aws-transform continuous-modernization reference docs and bump the plugin version from 1.4.0 to 1.5.0. Reference doc changes: - Restore CLI-first schedule skill corrected to the shipped surface: cadence is --recurrence (not raw cron), --type is singular, scheduled remediations removed, schedule delete also removes the anchor analysis, and adds the anchor/shared-child record model. - Update security-agent skill for CFN-native agent space: new stack prefix (AtxSecurityAgentStack-), bucket prefix (atx-security-agent-), remove manual policy/SSM/config steps, simplify executor flow. - Singular --type + per-job cancel in batch/EC2 execution skills. - Route scheduling intent in SKILL.md and guide so agent never denies or offers local cron as a substitute. Version bump applied in: - plugins/aws-transform/.claude-plugin/plugin.json - plugins/aws-transform/.codex-plugin/plugin.json - .claude-plugin/marketplace.json Co-authored-by: Alex Tsang <tsangale@amazon.com>
1 parent 089861a commit 34afdf5

10 files changed

Lines changed: 219 additions & 1266 deletions

.claude-plugin/marketplace.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@
133133
"transform",
134134
"continuous modernization"
135135
],
136-
"version": "1.4.0"
136+
"version": "1.5.0"
137137
},
138138
{
139139
"category": "development",

plugins/aws-transform/.claude-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,5 @@
3131
"license": "Apache-2.0",
3232
"name": "aws-transform",
3333
"repository": "https://github.com/awslabs/agent-plugins",
34-
"version": "1.4.0"
34+
"version": "1.5.0"
3535
}

plugins/aws-transform/.codex-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "aws-transform",
3-
"version": "1.4.0",
3+
"version": "1.5.0",
44
"description": "Migrate, modernize, and upgrade codebases to AWS. Transforms .NET Framework to .NET 8/10, mainframe COBOL to Java, VMware VMs to EC2, SQL Server to Aurora, and upgrades Java/Python/Node.js versions and AWS SDKs. AWS Transform - continuous modernization analyzes codebases for tech debt, security issues, and upgrade opportunities, then remediates them.",
55
"author": {
66
"name": "Amazon Web Services",

plugins/aws-transform/skills/aws-transform/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ If the user's workload-unspecified request matches any of these intents, route t
8888

8989
7. Ensure a supported region has been selected (see [continuous-modernization-setup.md](references/continuous-modernization-setup.md) "Choose your region") and prefixed inline (`AWS_REGION=$ATX_REGION`) on every `atx ct` command.
9090

91-
8. Then use the appropriate continuous modernization skill — see [continuous-modernization](references/continuous-modernization.md)
91+
8. Then use the appropriate continuous modernization skill — see [continuous-modernization](references/continuous-modernization.md). Recurring/scheduled intent ("weekly scan", "every Monday", "on a schedule", "cron") routes to [continuous-modernization-schedule](references/continuous-modernization-schedule.md): scheduling is a real, shipped capability (`atx ct schedule create/list/get/enable/disable/delete`) that runs on remote infrastructure ONLY — never claim it doesn't exist, and never offer a local cron/systemd/launchd entry as a substitute or fallback.
9292

9393
**When in doubt for a workload-unspecified request → continuous modernization.** This default applies ONLY after Step B has cleared — VMware, SQL, and mainframe never fall through to continuous modernization regardless of how the question is phrased; .NET only routes to continuous modernization after the user picks "analyze for tech debt / security / CVEs" in Step B's intent question (both "modernize" and "assessment for modernization" stay in the .NET workload). Once routed, do NOT manually read source files to find issues — that's what `atx ct analysis run` does.
9494

plugins/aws-transform/skills/aws-transform/references/continuous-modernization-batch-execution.md

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
---
22
name: remote-batch
3-
description: Run analysis or remediation at scale on AWS Batch (Fargate) using `atx ct remote` CLI commands. One container per (type x repo). Covers provisioning, job submission, status, cancel, and teardown.
3+
description: Run analysis or remediation at scale on AWS Batch (Fargate) using `atx ct remote` CLI commands. Exactly one --type per run; one container per repo. Covers provisioning, job submission, status, cancel, and teardown.
44
---
55

66
# Remote Batch Execution
77

8-
Run analysis or remediation at scale on AWS Batch (Fargate). Each job runs in its own container — fan-out is `types x repos = N containers`. All orchestration is handled by the CLI (`atx ct remote ...`); no raw AWS commands needed.
8+
Run analysis or remediation at scale on AWS Batch (Fargate). Each job runs in its own container — one container per repo (exactly one --type per run). All orchestration is handled by the CLI (`atx ct remote ...`); no raw AWS commands needed.
99

1010
## Telemetry
1111

@@ -23,7 +23,7 @@ If the user explicitly opts out of telemetry, omit `--telemetry` for the rest of
2323
## When to Use
2424

2525
- Analyzing or remediating many repos in parallel (one container per repo)
26-
- Running multiple analysis types across sources (fan-out: types x repos)
26+
- Analyzing one type across many sources or repos in a single run (to run multiple types, submit once per type)
2727
- One-shot batch jobs with no persistent infrastructure between runs
2828
- Customer wants AWS-managed compute (no EC2 instance to manage)
2929

@@ -142,11 +142,11 @@ Without `--execute`, the command prints the CFN template (dry-run preview).
142142

143143
### 3. Submit Analysis
144144

145-
Requires Executor credentials. One container per (type x repo).
145+
Requires Executor credentials. Exactly one --type per run; one container per repo.
146146

147147
```bash
148148
atx ct remote analysis \
149-
--types rapid-techdebt-analysis \
149+
--type rapid-techdebt-analysis \
150150
--sources <src> \
151151
--mode batch \
152152
--stack-name <stack> \
@@ -156,11 +156,11 @@ atx ct remote analysis \
156156

157157
Fan-out options:
158158

159-
- `--types type1,type2`multiple analysis types (rapid-techdebt-analysis, tech-debt-comprehensive, security, agentic-readiness, modernization-readiness, custom)
159+
- `--type <type>`exactly ONE analysis type per run (rapid-techdebt-analysis, tech-debt-comprehensive, security, agentic-readiness, modernization-readiness, custom); to run multiple types, submit once per type
160160
- `--sources src1,src2` — multiple sources
161161
- `--repos src::repo1,src::repo2` — specific repos (fully qualified)
162162
- `--labels java,spring` — filter repos by labels (AND semantics)
163-
- `--transformation-name <name>` — required when `--types custom`
163+
- `--transformation-name <name>` — required when `--type custom`
164164
- `-g key=value` — configuration for custom transformations
165165

166166
Stack targeting (choose one):
@@ -198,10 +198,12 @@ Re-submits only the non-completed jobs from the original batch.
198198
# Cancel all jobs in a batch
199199
atx ct remote cancel --batch <batch-name> --stack-name <stack>
200200

201-
# Cancel a single job
202-
atx ct remote cancel --job <job-id> --stack-name <stack>
201+
# Cancel a single job (jobName, Batch job id, or remediation id from `remote status`)
202+
atx ct remote cancel --batch <batch-name> --job <job-id> --stack-name <stack>
203203
```
204204

205+
`--job` requires `--batch`. It kills only that job's container and marks only that repo's slot cancelled — sibling repos sharing the analysis id keep running, and the aggregate settles once every slot is terminal.
206+
205207
### 7. Submit Remediation
206208

207209
Requires completed analysis with findings.
@@ -265,7 +267,7 @@ S3 buckets (source code, outputs) and Secrets Manager tokens are preserved. VPC/
265267
| ---------------------------------------------- | ----------------------------------------- | ---------------------------------------------------------------------------------------------- |
266268
| `Stack not deployed` | No Batch infra | Run `atx ct remote provision --mode batch ...` |
267269
| `Token invalid for source` | Expired/revoked SCM token | Run `atx ct remote credentials --source <src> --token <new> --ack` |
268-
| `Job count exceeds Lambda batch limit of 250` | Too many type x repo combinations | Split into multiple submissions |
270+
| `Job count exceeds Lambda batch limit of 250` | Too many repos in one run | Split into multiple submissions |
269271
| `Batch name already exists` | Duplicate batch name | Use a unique `--batch-name` or omit for auto-generated |
270272
| `No repos resolved` | Source has no repos or labels don't match | Check `atx ct repository list --source <src>` |
271273
| `No deployed stack found for tags` | `--tags` matched no deployed stack | Verify tags with `atx ct remote detect --mode batch --tags <k=v>`, or target by `--stack-name` |

plugins/aws-transform/skills/aws-transform/references/continuous-modernization-ec2-execution.md

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,13 @@ atx ct discovery scan --source <src>
7676

7777
EC2 supports 1-5 parallel workers (containers) on a single instance. Jobs are distributed round-robin across workers.
7878

79-
| Customer intent | Workers | Instance type |
80-
| ---------------------------- | ----------------- | ------------- |
81-
| Single analysis / default | 1 | m5.2xlarge |
82-
| 2 analysis types in parallel | 2 | m5.4xlarge |
83-
| 3-4 parallel jobs | 3-4 | m5.4xlarge |
84-
| 5 parallel jobs (max) | 5 | m5.8xlarge |
85-
| 6+ parallel jobs | Use Batch instead ||
79+
| Customer intent | Workers | Instance type |
80+
| --------------------------------------------- | ----------------- | ------------- |
81+
| Single analysis / default | 1 | m5.2xlarge |
82+
| 2 parallel analyses (e.g. 2 repos, or 2 runs) | 2 | m5.4xlarge |
83+
| 3-4 parallel jobs | 3-4 | m5.4xlarge |
84+
| 5 parallel jobs (max) | 5 | m5.8xlarge |
85+
| 6+ parallel jobs | Use Batch instead ||
8686

8787
WorkerCount is fixed at stack-create time. Changing it requires a destructive redeploy (`teardown` + `provision`).
8888

@@ -162,7 +162,7 @@ Requires Executor credentials. Jobs are distributed round-robin across workers.
162162

163163
```bash
164164
atx ct remote analysis \
165-
--types rapid-techdebt-analysis \
165+
--type rapid-techdebt-analysis \
166166
--sources <src> \
167167
--mode ec2 \
168168
--stack-name <stack-name> \
@@ -171,11 +171,11 @@ atx ct remote analysis \
171171

172172
Fan-out options:
173173

174-
- `--types type1,type2`multiple analysis types
174+
- `--type <type>`exactly ONE analysis type per run (to run multiple types, submit once per type)
175175
- `--sources src1,src2` — multiple sources
176176
- `--repos src::repo1,src::repo2` — specific repos (fully qualified)
177177
- `--labels java,spring` — filter repos by labels (AND semantics)
178-
- `--transformation-name <name>` — for `--types custom`
178+
- `--transformation-name <name>` — for `--type custom`
179179
- `-g key=value` — configuration for custom transformations
180180

181181
Stack targeting (choose one):
@@ -204,10 +204,12 @@ Shows per-job status with completion counts.
204204
# Cancel all jobs in a group
205205
atx ct remote cancel --group <ec2-group-id>
206206

207-
# Cancel a single job
207+
# Cancel a single job (a job key `repo#type` / `repo#findingId`, or its result ULID)
208208
atx ct remote cancel --group <ec2-group-id> --job <repo#type>
209209
```
210210

211+
`--job` kills only that job's in-container process and marks only that repo's slot cancelled — sibling repos sharing the analysis id keep running, and the aggregate settles once every slot is terminal.
212+
211213
### 6. Submit Remediation
212214

213215
Requires completed analysis with findings.
@@ -267,7 +269,7 @@ Use an existing customer-owned EC2 instance instead of provisioning a new stack.
267269

268270
```bash
269271
atx ct remote analysis \
270-
--types rapid-techdebt-analysis \
272+
--type rapid-techdebt-analysis \
271273
--sources <src> \
272274
--mode ec2 \
273275
--existing-instance <instance-id> \

plugins/aws-transform/skills/aws-transform/references/continuous-modernization-guide.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -181,12 +181,13 @@ Use the `/remediation` skill for the exact commands. After execution, show summa
181181

182182
### Scheduling Selected
183183

184-
Scheduling requires Infrastructure mode. If user is in Local mode, explain: "Scheduling requires Infrastructure mode (S3 + Fargate/EC2). Local mode runs on-demand only — no background jobs. Switch to Infrastructure mode to enable continuous analysis, continuous remediation, and team notifications."
184+
Scheduled analyses run on **remote infrastructure only** — EventBridge Scheduler dispatching to a provisioned EC2 or Batch stack, managed entirely through `atx ct schedule` commands. Route to [continuous-modernization-schedule.md](continuous-modernization-schedule.md).
185185

186-
If already in Infrastructure mode:
186+
If the user has no remote stack, explain: "Recurring analyses require remote infrastructure (EC2 or Batch). Local mode runs on-demand only — no background jobs. I can provision it with `atx ct remote provision`." Then follow the schedule skill.
187187

188-
- **Recurring analysis** — ask cadence (Daily / Weekly / Custom cron). Sets up an EventBridge rule.
189-
- **Continuous remediation** — monitors for new findings and auto-fixes them. Requires recurring analysis and GitHub write access. Offers severity thresholds (high → auto-fix immediately; medium → auto-fix batched daily; low → log only).
188+
**Never suggest, write, or offer a local cron entry** (`crontab`, `cron.d`, `launchd`, a systemd timer, Task Scheduler, or a shell loop) to drive `atx ct` on a cadence — not even as a fallback, a "simpler option", or with caveats, and not when the user explicitly asks for one or pushes back on provisioning. A local cron job depends on the laptop being awake and authenticated, leaves no schedule the CLI can list/enable/disable, and creates no anchor analysis. Hold the line and route to `atx ct remote provision` + `atx ct schedule create`.
189+
190+
Scheduled remediations are not supported — schedules run analyses only (see the schedule skill).
190191

191192
## When User Wants to Exit Onboarding
192193

0 commit comments

Comments
 (0)