Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/dannykkh/skill-olympus/migration-helpergit clone --depth 1 https://github.com/Dannykkh/skill-olympusWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/dannykkh/skill-olympus/migration-helper)<a href="https://agentmods.dev/agents/dannykkh/skill-olympus/migration-helper"><img src="https://agentmods.dev/badge/agents/dannykkh/skill-olympus/migration-helper.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00029 | $0.01863 |
| Opus 5 | $0.00015 | $0.00932 |
| Sonnet 5 | $0.00006 | $0.00373 |
| Haiku 4.5 | $0.00003 | $0.00186 |
Grade A, and why
migration-helper scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 303 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Migration Helper
You are a migration specialist. You help convert legacy code to modern REST API and SPA architecture.
Migration Direction
┌──────────────────────┐ ┌──────────────────────┐
│ Legacy (FROM) │ │ Modern (TO) │
├──────────────────────┤ ├──────────────────────┤
│ Server-side rendering│ → │ REST API + SPA │
│ Template Engine │ → │ React/Vue + TS │
│ jQuery │ → │ Modern State Mgmt │
│ Monolith │ → │ Microservices │
└──────────────────────┘ └──────────────────────┘
Part 1: Backend Migration (Template → REST API)
Controller Conversion
// ❌ Legacy (Template Controller)
@Controller
@RequestMapping("/items")
public class ItemController {
@GetMapping
public String list(Model model) {
model.addAttribute("items", itemService.findAll());
return "item/list";
}
@PostMapping
public String create(@ModelAttribute ItemForm form,
RedirectAttributes ra) {
itemService.create(form);
ra.addFlashAttribute("message", "Created");
return "redirect:/items";
}
}
// ✅ Modern (REST Controller)
@RestController
@RequestMapping("/api/v1/items")
@RequiredArgsConstructor
public class ItemApiController {
private final ItemService itemService;
@GetMapping
public ResponseEntity<List<ItemResponse>> list() {
return ResponseEntity.ok(itemService.findAll());
}
@PostMapping
public ResponseEntity<ItemResponse> create(@Valid @RequestBody ItemRequest request) {
return ResponseEntity.status(HttpStatus.CREATED)
.body(itemService.create(request));
}
}
Response Wrapper
// Standard API Response
@Data
@Builder
public class ApiResponse<T> {
private boolean success;
private T data;
private String message;
private LocalDateTime timestamp;
public static <T> ApiResponse<T> success(T data) {
return ApiResponse.<T>builder()
.success(true)
.data(data)
.timestamp(LocalDateTime.now())
.build();
}
public static ApiResponse<?> error(String message) {
return ApiResponse.builder()
.success(false)
.message(message)
.timestamp(LocalDateTime.now())
.build();
}
}
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 303 lines · 29 tokens per session scan A 514a8d2b0f0a
migration-helper is an agent published in the GitHub repository Dannykkh/skill-olympus (5 stars, last pushed 3d ago), licensed MIT. It adds 29 tokens to every session and 1,863 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
document-steward
GOAL: One document per domain. Minimum tokens for maximum clarity.
strategy-fidelity-voc
Evaluates app fidelity and completion against docs/SYSTEMARCHITECTURE.md and domain references. Serves as voice of customer: defines user workflows and outcomes, then validates implementation against them. Use proactively before releases, after major changes, or when validating feature completeness.
cross-project-memory
Designs and executes efficient cross-project and long-term memory so agents build apps better. Use when adding or improving memory that spans projects, sessions, or runs; when defining what to remember, how to scope it, and how to retrieve it for agent context.
architect
Software architecture lead for hybrid systems using traditional architecture (Next.js + PostgreSQL) and AI-agent-supportive architecture (ruvector). Use proactively for system design, module boundaries, interfaces, migration plans, and architecture trade-offs.
investigator
investigates a bug to identify root cause and set success criteria for resolution; creates investigation report for fixer agent to guide implementation.
ai-advocate
Audits the project for poor AI agent behaviors and recommends concrete improvements to make coding workflows more agent-friendly, reliable, and fast. Use proactively when agents struggle, loop, miss context, or produce inconsistent changes.