Pocketbase
pockethost/pockethost
Models PocketBase backends: collections, relations, auth, API rules, migrations, and architecture.
Comprehensive SAP ABAP CDS (Core Data Services) reference for data modeling, view development, and semantic enrichment.
$ npx skills add secondsky/sap-skills --skill sap-abap-cds -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install secondsky/sap-skills sap-abap-cds --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/secondsky/sap-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/sap-abap-cds/skills/sap-abap-cds .claude/skills/sap-abap-cds && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "sap-abap-cds" agent skill from https://github.com/secondsky/sap-skills/tree/main/plugins/sap-abap-cds/skills/sap-abap-cds into .claude/skills/sap-abap-cds/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-abap-cds", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/secondsky/sap-skills/tree/main/plugins/sap-abap-cds/skills/sap-abap-cdsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add secondsky/sap-skills --skill sap-abap-cds -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install secondsky/sap-skills sap-abap-cds --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/secondsky/sap-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/sap-abap-cds/skills/sap-abap-cds .agents/skills/sap-abap-cds && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "sap-abap-cds" agent skill from https://github.com/secondsky/sap-skills/tree/main/plugins/sap-abap-cds/skills/sap-abap-cds into .agents/skills/sap-abap-cds/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-abap-cds", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add secondsky/sap-skills --skill sap-abap-cds -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install secondsky/sap-skills sap-abap-cds --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/secondsky/sap-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/sap-abap-cds/skills/sap-abap-cds .cursor/skills/sap-abap-cds && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "sap-abap-cds" agent skill from https://github.com/secondsky/sap-skills/tree/main/plugins/sap-abap-cds/skills/sap-abap-cds into .cursor/skills/sap-abap-cds/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-abap-cds", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/secondsky/sap-skills.git --path plugins/sap-abap-cds/skills/sap-abap-cds--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add secondsky/sap-skills --skill sap-abap-cds -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install secondsky/sap-skills sap-abap-cds --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/secondsky/sap-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/sap-abap-cds/skills/sap-abap-cds .gemini/skills/sap-abap-cds && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "sap-abap-cds" agent skill from https://github.com/secondsky/sap-skills/tree/main/plugins/sap-abap-cds/skills/sap-abap-cds into .gemini/skills/sap-abap-cds/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-abap-cds", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install secondsky/sap-skills sap-abap-cdsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add secondsky/sap-skills --skill sap-abap-cds -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/secondsky/sap-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/sap-abap-cds/skills/sap-abap-cds .github/skills/sap-abap-cds && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "sap-abap-cds" agent skill from https://github.com/secondsky/sap-skills/tree/main/plugins/sap-abap-cds/skills/sap-abap-cds into .github/skills/sap-abap-cds/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-abap-cds", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add secondsky/sap-skills --skill sap-abap-cds -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install secondsky/sap-skills sap-abap-cds --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/secondsky/sap-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/sap-abap-cds/skills/sap-abap-cds .opencode/skills/sap-abap-cds && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "sap-abap-cds" agent skill from https://github.com/secondsky/sap-skills/tree/main/plugins/sap-abap-cds/skills/sap-abap-cds into .opencode/skills/sap-abap-cds/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-abap-cds", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
sap-abap-cdsComprehensive SAP ABAP CDS (Core Data Services) reference for data modeling, view development, and semantic enrichment.
Sap Abap Cds is an agent skill from secondsky/sap-skills. Comprehensive SAP ABAP CDS (Core Data Services) reference for data modeling, view development, and semantic enrichment. Use when creating CDS views or view entities, defining data models with annotations, working with associations and cardinality, implementing input parameters, using built-in functions, writing CASE expressions, implementing access control with DCL, handling CURR/QUAN data types, troubleshooting CDS errors, querying CDS views from ABAP, or displaying data with SALV IDA. Covers ABAP 7.4+ through…
Its SKILL.md is about 4.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 14 other files, including reference files (for example `README.md`, `agents/openai.yaml` and `references/access-control-reference.md`).
It sits in Databases, covering Authorization and RBAC and Database schema design. It works with SAP. The repository describes itself as: Production-ready plugins for SAP development with AI coding assistants — BTP, CAP, Fiori, ABAP, HANA, Analytics Cloud, Datasphere, and more. The licence is GPL-3.0.
11 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 652a861. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are sql and abap).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
help.sap.comgithub.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Sap Abap Cds loads about 4.2k tokens when it runs, and up to ~19k if it reads all its reference files. Until then it costs about 135 tokens; SKILL.md has 1,049 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from secondsky/sap-skills at commit 652a861, republished under its GPL-3.0 licence (© secondsky). 1,049 words, ~4,221 tokens.
.claude/skills/sap-abap-cds/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.Use this skill when creating ABAP CDS views or view entities, defining associations and cardinalities, adding UI or semantic annotations, implementing DCL access control, handling currency/unit fields, troubleshooting CDS compiler errors, or comparing classic CDS views with newer view entities.
Quick Reference: https://help.sap.com/doc/abapdocu_cp_index_htm/CLOUD/en-US/abencds.html | SAP Cheat Sheets: https://github.com/SAP-samples/abap-cheat-sheets/blob/main/15_CDS_View_Entities.md
This skill covers CDS features from 7.40 SP8 through ABAP Cloud. Key version boundaries:
| Feature | 7.40 SP8 | 7.50 | 7.51 | 7.55+ |
|---|---|---|---|---|
CDS View (DEFINE VIEW) | x | x | x | x |
| CDS associations, parameters, built-in functions | x | x | x | x |
CDS Table Functions (DEFINE TABLE FUNCTION) | x | x | x | |
| CDS Access Control (DEFINE ROLE / pfcg_auth) | x | x | x | x |
| CDS Access Control (implicit evaluation) | x | x | x | |
Session variables ($session.user/client/system_language) | x | x | x | x |
@Environment.systemField annotation | x | x | x | |
UPPER/LOWER functions | x | x | ||
$session.system_date | x | x | ||
CDS Metadata Extensions (ANNOTATE VIEW) | x | x | ||
| Cross Join in CDS | x | x | ||
CDS View Entity (DEFINE VIEW ENTITY) | x | |||
New cardinality syntax (to one/to many) | 7.57+ |
On a 7.40 system: Use DEFINE VIEW (not DEFINE VIEW ENTITY). CDS table functions
are not available before 7.50. Basic DCL (DEFINE ROLE with pfcg_auth) is available
from 7.40 SP08, but implicit role evaluation in ABAP SQL requires 7.50+.
$session.user/client/system_language are available from 7.40 SP08.
The templates in templates/ include both classic CDS View and View Entity variants.
| Type | Syntax | Database View | Since |
|---|---|---|---|
| CDS View | DEFINE VIEW | Yes | 7.4 SP8 |
| CDS View Entity | DEFINE VIEW ENTITY | No | 7.55 |
Recommendation: Use CDS View Entities for new development.
@AbapCatalog.sqlViewName: 'ZCDS_EXAMPLE_V'
@AbapCatalog.compiler.CompareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Example CDS View'
define view ZCDS_EXAMPLE
as select from db_table as t
{
key t.field1,
t.field2,
t.field3 as AliasName
}@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Example View Entity'
define view entity Z_CDS_EXAMPLE
as select from db_table as t
{
key t.field1,
t.field2,
t.field3 as AliasName
}Key Difference: View entities omit @AbapCatalog.sqlViewName - no SQL view generated.
Essential annotations for CDS development:
@AbapCatalog.sqlViewName - SQL view name (max 16 chars)@AbapCatalog.compiler.CompareFilter - Optimize WHERE clauses@AccessControl.authorizationCheck - Set to #NOT_REQUIRED, #CHECK, #MANDATORY, or #NOT_ALLOWED@EndUserText.label - User-facing description@Metadata.allowExtensions - Allow view extensionsComplete Reference: See references/annotations-reference.md for 50+ annotations with examples.
Required for CURR and QUAN data types to avoid error SD_CDS_ENTITY105:
-- Currency fields
@Semantics.currencyCode: true
waers,
@Semantics.amount.currencyCode: 'waers'
amount,
-- Quantity fields
@Semantics.unitOfMeasure: true
meins,
@Semantics.quantity.unitOfMeasure: 'meins'
quantity@UI.lineItem: [{ position: 10 }]
@UI.identification: [{ position: 10 }]
@UI.selectionField: [{ position: 10 }]
field1,
@UI.hidden: true
internal_field@Consumption.valueHelpDefinition: [{
entity: { name: 'I_Currency', element: 'Currency' }
}]
waersFor complete annotation reference, see references/annotations-reference.md.
Simple CASE (single variable comparison):
case status
when 'A' then 'Active'
when 'I' then 'Inactive'
else 'Unknown'
end as StatusTextSearched CASE (multiple conditions):
case
when amount > 1000 then 'High'
when amount > 100 then 'Medium'
else 'Low'
end as AmountCategoryStandard operators: =, <>, <, >, <=, >=
Special operators: BETWEEN x AND y, LIKE, IS NULL, IS NOT NULL
Complete Reference: See references/expressions-reference.md for all operators and expressions.
quantity * price as TotalAmount,
amount / 100 as Percentage,
-amount as NegatedAmountAvailable system variables (SY fields equivalent):
$session.user (SY-UNAME) - Current user [7.40 SP08+]$session.client (SY-MANDT) - Client [7.40 SP08+]$session.system_language (SY-LANGU) - Language [7.40 SP08+]$session.system_date (SY-DATUM) - Current date [7.51+]Note:
$session.user/client/system_languageare available from 7.40 SP08.$session.system_daterequires 7.51+.@Environment.systemFieldrequires 7.50+.
Complete Reference: See references/expressions-reference.md for all system variables.
$session.user as CurrentUser,
$session.system_date as TodayCDS provides comprehensive built-in functions for string, numeric, and date operations.
Note:
upper()andlower()in CDS require 7.51+. On 7.40/7.50, case conversion must be performed in ABAP after selecting (there is no CDS equivalent).
Complete Reference: See references/functions-reference.md for all 50+ functions with examples.
-- String operations
concat(first_name, last_name) as FullName,
upper(name) as UpperName,
substring(description, 1, 10) as ShortDesc
-- Numeric operations
abs(amount) as AbsoluteAmount,
round(value, 2) as RoundedValue,
division(10, 3, 2) as PreciseDivision
-- Date operations
dats_add_days(current_date, 7) as NextWeek,
dats_days_between(start_date, end_date) as Duration
-- Type conversion
cast(field as abap.char(10)) as TextField,
cast(amount as abap.curr(15,2)) as CurrencyField
**ABAP Types**: `abap.char()`, `abap.numc()`, `abap.int4`, `abap.dats`, `abap.tims`, `abap.curr()`, `abap.cuky`, `abap.quan()`, `abap.unit()`
---
## 5. Joins
### Join Types
```sql
-- INNER JOIN (matching rows only)
inner join makt as t on m.matnr = t.matnr
-- LEFT OUTER JOIN (all from left, matching from right)
left outer join marc as c on m.matnr = c.matnr
-- RIGHT OUTER JOIN (all from right, matching from left) -- [7.51+]
right outer join mvke as v on m.matnr = v.matnr
-- CROSS JOIN (cartesian product) -- [7.51+]
cross join t001 as coAssociations define relationships between entities (join-on-demand):
define view Z_ASSOC_EXAMPLE as select from scarr as c
association [1..*] to spfli as _Flights
on $projection.carrid = _Flights.carrid
association [0..1] to sairport as _Airport
on $projection.hub = _Airport.id
{
key c.carrid,
c.carrname,
c.hub,
// Expose associations
_Flights,
_Airport
}Syntax mapping:
[0..1] or [1] → association to one (LEFT OUTER MANY TO ONE)[1..1] → association to one (exact match)[0..*] or [*] → association to many (LEFT OUTER MANY TO MANY)[1..*] → association to many (one or more)Complete Reference: See references/associations-reference.md for detailed cardinality guide.
association to one _Customer on ... -- [0..1]
association to many _Items on ... -- [0..*]-- Expose for consumer use
_Customer,
-- Ad-hoc field access (triggers join)
_Customer.name as CustomerName-- Filter with cardinality indicator
_Items[1: Status = 'A'].ItemNoFor complete association reference, see references/associations-reference.md.
define view Z_PARAM_EXAMPLE
with parameters
p_date_from : dats,
p_date_to : dats,
@Environment.systemField: #SYSTEM_LANGUAGE
p_langu : spras
as select from vbak as v
{
key v.vbeln,
v.erdat,
v.erzet
}
where v.erdat between :p_date_from and :p_date_toUse colon notation :p_date_from or $parameters.p_date_from
Calling from ABAP:
SELECT * FROM z_param_example(
p_date_from = '20240101',
p_date_to = '20241231',
p_langu = @sy-langu
) INTO TABLE @DATA(lt_result).define view Z_AGG_EXAMPLE as select from vbap as i
{
i.vbeln,
sum(i.netwr) as TotalAmount,
avg(i.netwr) as AvgAmount,
max(i.netwr) as MaxAmount,
min(i.netwr) as MinAmount,
count(*) as ItemCount
}
group by i.vbeln
having sum(i.netwr) > 1000@MappingRole: true
define role Z_CDS_EXAMPLE_DCL {
grant select on Z_CDS_EXAMPLE
where (bukrs) = aspect pfcg_auth(F_BKPF_BUK, BUKRS, ACTVT = '03');
}Available values:
#NOT_REQUIRED - No authorization check#CHECK - Warning if no DCL exists#MANDATORY - Error if no DCL exists#NOT_ALLOWED - DCL ignored if existsComplete Reference: See references/access-control-reference.md for detailed DCL patterns.
PFCG Authorization: where (field) = aspect pfcg_auth(AUTH_OBJECT, AUTH_FIELD, ACTVT = '03')
Literal Condition: where status <> 'DELETED'
User Aspect: where created_by ?= aspect user
Combined: where (bukrs) = aspect pfcg_auth(...) and status = 'ACTIVE'
For complete access control reference, see references/access-control-reference.md.
SELECT * FROM zcds_example
WHERE field1 = @lv_value
INTO TABLE @DATA(lt_result).cl_salv_gui_table_ida=>create_for_cds_view(
CONV #( 'ZCDS_EXAMPLE' )
)->fullscreen( )->display( ).Problem: CURR/QUAN fields without reference
Solution: Add semantics annotations
@Semantics.currencyCode: true
waers,
@Semantics.amount.currencyCode: 'waers'
netwrOr import currency from related table:
inner join t001 as c on ...
{
c.waers,
@Semantics.amount.currencyCode: 'waers'
v.amount
}Problem: Cardinality doesn't match actual data
Solution: Define cardinality matching data model
association [0..1] to ... -- Use for optional relationships
association [1..*] to ... -- Use for required one-to-manyFor complete troubleshooting guide, see references/troubleshooting.md.
CL_DD_DDL_ANNOTATION_SERVICE - Programmatic annotation access:
get_annos() - Get all annotationsget_label_4_element() - Get @EndUserText.labelFor detailed guidance, see the reference files in references/:
annotations-reference.md - Complete annotation catalogfunctions-reference.md - All built-in functions with examplesassociations-reference.md - Associations and cardinality guideaccess-control-reference.md - DCL and authorization patternsexpressions-reference.md - Expressions and operatorstroubleshooting.md - Common errors and solutionsFor templates, see templates/:
basic-view.md - Standard CDS view templateparameterized-view.md - View with input parametersdcl-template.md - Access control definitionUpdate this skill by checking:
Last Verified: 2026-04-02
© secondsky, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 11 other files (references) in plugins/sap-abap-cds/skills/sap-abap-cds of secondsky/sap-skills.
Open the folder on GitHubat commit 652a861
Sap Abap Cds next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Sap Abap Cds this skillsecondsky/sap-skills | 462 | — | ~4.2k | Automated safety check: Pass | GPL-3.0 | |
| Pocketbasepockethost/pockethost | 1.4k | — | ~1k | Automated safety check: Pass | MIT | |
| BackendAlexPEClub/ai-coding-starter-kit | 382 | — | ~992 | Automated safety check: Pass | None | |
| Mas SkillsAUTO-MAS-Project/AUTO-MAS | 710 | — | ~3.6k | Automated safety check: Pass | AGPL-3.0 | |
| Postgres Migrationspr-pm/prpm | 122 | 1 repos | ~3.1k | Automated safety check: Pass | MIT | |
| Convex CoreIgorWarzocha/Opencode-Workflows | 122 | — | ~1.3k | Automated safety check: Pass | None |
pockethost/pockethost
Models PocketBase backends: collections, relations, auth, API rules, migrations, and architecture.
AlexPEClub/ai-coding-starter-kit
Build APIs, database schemas, and server-side logic with Supabase.
AUTO-MAS-Project/AUTO-MAS
A skill your agent uses when a task needs AUTO-MAS engineering conventions across frontend, UI, code style, schema naming, module boundaries, function design, API contracts, data modeling, script…
pr-pm/prpm
Comprehensive guide to PostgreSQL migrations - common errors, generated columns, full-text search, indexes, idempotent migrations, and best practices for database schema changes
IgorWarzocha/Opencode-Workflows
Build Convex schemas, queries, mutations, actions, and client usage with strict validators and indexes.
Microck/ordinary-claude-skills
Database schema patterns for InsForge including social graphs, e-commerce, content publishing, and multi-tenancy with RLS policies.
secondsky/sap-skills
SAP-RPT-1-OSS local tabular prediction workflows for FI/CO prototype datasets.
secondsky/sap-skills
Secure dependency upgrades with supply chain protection, cooldowns, and staged rollout.
secondsky/sap-skills
Comprehensive ABAP development skill for SAP systems. An agent skill from secondsky/sap-skills.
secondsky/sap-skills
SAP dependency security and MCP executable trust policy with secure upgrades, cooldowns, staged rollout, and supply-chain protection.
secondsky/sap-skills
Guides development with SAP AI Core and SAP AI Launchpad for enterprise AI/ML workloads on SAP BTP.
secondsky/sap-skills
This skill provides comprehensive guidance for documenting SAP APIs following the SAP API Style Guide standards.
Works with
Categories
Comprehensive SAP ABAP CDS (Core Data Services) reference for data modeling, view development, and semantic enrichment. Sap Abap Cds is an agent skill from secondsky/sap-skills. Comprehensive SAP ABAP CDS (Core Data Services) reference for data modeling, view development, and semantic enrichment.
Sap Abap Cds fits situations like: creating CDS views; defining data models with annotations; working with associations and cardinality; implementing input parameters.
Run `npx skills add secondsky/sap-skills --skill sap-abap-cds -a claude-code`. Or copy the skill folder (plugins/sap-abap-cds/skills/sap-abap-cds in secondsky/sap-skills) into .claude/skills/sap-abap-cds in your project. Claude Code loads it when a task matches its description.
Run `npx skills add secondsky/sap-skills --skill sap-abap-cds -a codex`. Or copy the skill folder (plugins/sap-abap-cds/skills/sap-abap-cds in secondsky/sap-skills) into .agents/skills/sap-abap-cds in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add secondsky/sap-skills --skill sap-abap-cds -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sap-abap-cds, .gemini/skills/sap-abap-cds, .github/skills/sap-abap-cds and .opencode/skills/sap-abap-cds in your project.
SKILL.md names no scripts, command-line tools or credentials: Sap Abap Cds is instructions for the agent only.
SKILL.md names 2 domains. As links in the text: help.sap.com and github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Sap Abap Cds is published under the GPL-3.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.2k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 15k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Sap Abap Cds: Pocketbase (pockethost/pockethost, 1.4k stars), Backend (AlexPEClub/ai-coding-starter-kit, 382 stars), Mas Skills (AUTO-MAS-Project/AUTO-MAS, 710 stars) and Postgres Migrations (pr-pm/prpm, 122 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
secondsky (a GitHub user) maintains it in secondsky/sap-skills, which has 462 GitHub stars. The repository holds 41 skills in this directory. The repository was last updated on October 5, 2026.
Source: secondsky/sap-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.