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 skills add marcellourbani/vscode_abap_remote_fs --skill clean-abapgit clone --depth 1 https://github.com/marcellourbani/vscode_abap_remote_fsWrote 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/skills/marcellourbani/vscode_abap_remote_fs/clean-abap)<a href="https://agentmods.dev/skills/marcellourbani/vscode_abap_remote_fs/clean-abap"><img src="https://agentmods.dev/badge/skills/marcellourbani/vscode_abap_remote_fs/clean-abap/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/marcellourbani/vscode_abap_remote_fs/clean-abap"><img src="https://agentmods.dev/badge/skills/marcellourbani/vscode_abap_remote_fs/clean-abap.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.1 | $0.00069 | $0.03526 |
| Opus 5 | $0.00034 | $0.01763 |
| Sonnet 5 | $0.00014 | $0.00705 |
| Haiku 4.5 | $0.00007 | $0.00353 |
Grade A, and why
clean-abap 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 10d 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 — 418 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Clean ABAP — AI-Optimized Rules
Distilled from the SAP Clean ABAP Style Guide. Licensed under Creative Commons BY 3.0. © SAP SE. Attribution preserved per license terms.
Apply ALL rules below when writing or reviewing ABAP code. Every rule is mandatory unless explicitly marked "consider".
Names
- Use descriptive names that convey meaning.
customizing_entriesnotce_tab. - Prefer solution domain terms (queue, tree) in technical layers, problem domain terms (account, ledger) in business layers.
- Use plural for collections:
materialsnotmaterial_tab. - Use pronounceable names:
detection_object_typesnotdobjt. - Use
snake_case. When hitting length limits, abbreviate the least important words.DATA max_response_time_in_millisec TYPE i. - Avoid abbreviations. Use the same abbreviation everywhere for the same concept.
- Use nouns for classes/interfaces, verbs for methods. Prefix boolean methods with
is_orhas_.CLASS /clean/account. METHODS read_entries. IF is_empty( table ). - Avoid noise words:
accountnotaccount_data;user_preferencesnotuser_info. - Pick one word per concept: always
read_*, never mixread_thiswithretrieve_that. - Use pattern names (factory, singleton) only if the class actually implements that pattern.
- No Hungarian notation or prefixes. Drop
iv_,rv_,lt_, etc." good result = a + b. " bad rv_result = iv_a + iv_b. - Do not shadow built-in functions (
condense,lines,strlen, etc.) with method names.
Language
- Verify modern syntax is supported on the target release before using it.
- Do not optimize prematurely. Write clean code first, profile later.
- Prefer OO over procedural. Wrap function modules as thin shells around classes.
FUNCTION check_business_partner [...]. DATA(validator) = NEW /clean/biz_partner_validator( ). result = validator->validate( business_partners ). ENDFUNCTION. - Prefer functional constructs:
DATA(variable) = 'A'. " not MOVE DATA(uppercase) = to_upper( str ). " not TRANSLATE index += 1. " not ADD 1 TO DATA(obj) = NEW /clean/cls( ). " not CREATE OBJECT - Use modern table expressions:
DATA(line) = value_pairs[ name = 'A' ]. - Avoid obsolete elements. Use
@-escaped host variables in SQL:SELECT * FROM spfli WHERE carrid = @carrid INTO TABLE @itab. - Use design patterns only where they provide clear benefit.
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.
- 10d ago First seen · 418 lines · 69 tokens per session scan A e54b651d5d73
clean-abap is a skill published in the GitHub repository marcellourbani/vscode_abap_remote_fs (388 stars, last pushed yesterday), licensed MIT. It adds 69 tokens to every session and 3,526 once invoked, about $0.0003 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-30.
Other skills, from other repositories
no-bare-casts
Writing as in TypeScript or TSX production code, modifying a file that contains a bare as cast, silencing a type error with a cast, encountering as unknown as, or reviewing a cast site.
ast-grep
Guide for writing ast-grep rules to perform structural code search and analysis. Use when users need to search codebases using Abstract Syntax Tree (AST) patterns, find specific code structures, or perform complex code queries that go beyond simple text search. This skill should be used when users ask to search for…
solid-principles
SOLID principles checklist with Java examples. Use when a class has too many responsibilities, an abstraction leaks, or a dependency points the wrong way, and when the user asks about Single Responsibility, Open/Closed, Liskov, Interface Segregation or Dependency Inversion. For naming, duplication and method length…
go-concurrency-safety
L1 supplement - audits Go-specific concurrency hazards in node client code: map iteration non-determinism, goroutine leaks, mutex ordering, panic boundaries, context cancellation.
code-review
Review the changed lines of a single file in a pull request for bugs, correctness, error handling, security, and maintainability, and return structured findings.
ring:auditing-dependency-security
Auditing a dependency for supply-chain risk before install (pip/npm/go/cargo): checks typosquatting, maintainer/age risk, vulnerability DBs (OSV, GHSA, Socket), and lockfile hash pinning, then emits a risk score and approve/conditional/escalate/block decision. Use when adding or updating a dependency, reviewing a…