Borrowing it
Nothing to install: this file belongs to mckinsey/agents-at-scale-ark. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/mckinsey/agents-at-scale-ark/main/.claude/skills/ark-sdk-development/SKILL.mdgit clone --depth 1 https://github.com/mckinsey/agents-at-scale-arkWrote 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/mckinsey/agents-at-scale-ark/ark-sdk-development)<a href="https://agentmods.dev/skills/mckinsey/agents-at-scale-ark/ark-sdk-development"><img src="https://agentmods.dev/badge/skills/mckinsey/agents-at-scale-ark/ark-sdk-development/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/mckinsey/agents-at-scale-ark/ark-sdk-development"><img src="https://agentmods.dev/badge/skills/mckinsey/agents-at-scale-ark/ark-sdk-development.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.00081 | $0.01112 |
| Opus 5 | $0.00041 | $0.00556 |
| Sonnet 5 | $0.00016 | $0.00222 |
| Haiku 4.5 | $0.00008 | $0.00111 |
Grade A, and why
ark-sdk-development 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 6d 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 — 115 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ARK SDK and Type Development
Type Generation Pipeline
Types flow through the ARK stack:
CRD YAML (ark/config/crd/)
↓ make ark-sdk-build (automatic)
ark-sdk Python types + overlay utilities
↓
ark-api Pydantic models (manual updates if exposing new fields)
↓ make ark-api-build → generates openapi.json
ark-dashboard TypeScript types
↓ npm run generate:api → generates types.ts
ark-sdk: Automatic Type Generation
CRD types are automatically generated from Kubernetes CRD YAML files.
make ark-sdk-build
This runs:
crd_to_openapi.py- converts CRDs to OpenAPI schemaopenapi-generator-cli- generates Python types from schema- Copies overlay files on top of generated code
- Builds wheel package
Adding Custom SDK Functionality (Overlays)
The lib/ark-sdk/gen_sdk/overlay/python/ark_sdk/ directory contains custom Python modules that are copied on top of generated code. This is how utilities like client.py, k8s.py, and executor.py are added.
To add custom SDK functionality:
- Add Python files to
lib/ark-sdk/gen_sdk/overlay/python/ark_sdk/ - Run
make ark-sdk-build
ark-api: Manual Model Updates
The ark-api has manually written Pydantic models in services/ark-api/ark-api/src/ark_api/models/.
When to update ark-api models:
- When exposing new CRD fields via the HTTP API
- When adding new API response types
make ark-api-build
This generates services/ark-api/openapi.json from FastAPI routes and Pydantic models.
Pydantic Model Naming (CRITICAL)
Pydantic model class names MUST be globally unique across all model files. When multiple files define classes with the same name (e.g., ConfigMapKeyRef, Header, ValueFrom), FastAPI generates non-deterministic OpenAPI schema names like ark_api__models__agents__Header-Input. These names depend on import order and cause CI failures when types.ts differs between environments.
Solution: Prefix class names with their domain context:
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.
- 6d ago First seen · 115 lines · 81 tokens per session scan A f24586e762bb
ark-sdk-development is a skill published in the GitHub repository mckinsey/agents-at-scale-ark (422 stars, last pushed today), licensed Apache-2.0. It adds 81 tokens to every session and 1,112 once invoked, about $0.0004 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-09-03.
Other skills, from other repositories
fastapi-templates
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
langgraph-docs
Fetches and references LangGraph Python documentation to build stateful agents, create multi-agent workflows, and implement human-in-the-loop patterns. Use when the user asks about LangGraph, graph agents, state machines, agent orchestration, LangGraph API, or needs LangGraph implementation guidance.
stripe-projects
Use after E2B sandbox/API access has been provisioned through Stripe Projects and the user needs to use the resulting E2B API key with the E2B CLI, JavaScript SDK, Python SDK, or Code Interpreter SDK.
node-modern
Use this skill when writing, reviewing, or refactoring Node.js >= 22 TypeScript code in WrongStack. Triggers: ESM imports, fetch usage, AbortSignal, node: protocol, Web Streams, or any async patterns.
fastapi
Use when building, reviewing, testing, securing or shipping a FastAPI / async Python service — routers, Pydantic v2 schemas, dependency injection, async SQLAlchemy 2.0, OAuth2/JWT, ASGITransport tests, production wiring. NOT language-level Python or packaging (that is python), NOT engine-level SQL (that is…
django
Use when building, reviewing, securing, testing or shipping a Django app — models, migrations, QuerySets/managers, FBV/CBV views, forms, the admin, settings split, and Django REST Framework (serializers, ModelViewSet, permissions). NOT async FastAPI/Pydantic services (that is fastapi), NOT Postgres schema/index work…