add-discovery-type SKILL.md skillA

add-discovery-type from runwhen-contrib/runwhen-local is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.

Install it, pinned
mdr add runwhen-contrib/runwhen-local/add-discovery-type@git:20260630.d9e89df

Pins git:20260630.d9e89df in mdr.lock. Pin the fingerprint instead.

Audit grade
A, 17 of 17 checks passed
Kind
SKILL.md skill
Repository
runwhen-contrib/runwhen-local
Path
.cursor/skills/add-discovery-type/SKILL.md
Versions recorded
1
Latest version
git:20260630.d9e89df, committed Jun 30, 2026
Size
7,950 bytes
Repository stars
163
License
Apache-2.0

Stand up a brand-new RunWhen Local discovery platform / indexer from scratch (a new cloud or resource source) following the native SDK pattern used by azureapi and gcpapi. Use when asked to add a new platform, new cloud provider, or new top-level discovery source. Covers the parity registry, indexer modules, platform handler, tag/hierarchy templates, pipeline wiring, tests, and docs.

Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.

What the file says

# Add a new discovery type

Use this to add a **new platform** (a new cloud provider or discovery source).
To add a single resource type to an existing indexer, use the
`extend-discovery-type` skill instead.

`gcpapi` is the most recent end-to-end example — read
`docs/architecture/gcp-indexer-internals.md` first; it documents every piece you
are about to replicate. `azureapi` is the second reference. The mandate is to
build native SDK indexers so CloudQuery can eventually be removed entirely.

## Architecture (what you are building)

```
scripts/<platform>/
├── <platform>_cloudquery_tables.txt        # parity source (CloudQuery hub table list)
├── <platform>_resource_type_overrides.yaml # hand-curated overrides
└── sync_<platform>_resource_type_registry.py  # registry generator

src/indexers/
├── <platform>_resource_type_registry.yaml  # GENERATED catalog (never hand-edit)
├── <platform>_resource_type_registry.py     # read-only loader
├── <platform>_common.py                      # credentials + scope resolution + tag filters
├── <platform>api_normalizers.py              # raw SDK/API -> CloudQuery-shaped dict
…

Read the whole file at its exact version.

How to install

The exact contents, by fingerprint
mdr add runwhen-contrib/runwhen-local/add-discovery-type@sha256:75bd42c3d575f679

The line at the top of this page pins the label git:20260630.d9e89df, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.

Badge

mdr badge

[![mdr](https://markdownregistry.com/badge/art_swvkr6lljthfpmhp.svg)](https://markdownregistry.com/a/art_swvkr6lljthfpmhp)

2 badge image fetches in 30 days. What the badge shows.

Versions

The registry has recorded 1 version of this file, committed on Jun 30, 2026.

versioncommittedcommitsizeaudit
git:20260630.d9e89df latest2026-06-30 d9e89df 7,950 BA view

Audit of the latest version

A  17 of 17 checks passed. Fixed automatic checks with no AI involved, so the same checks give the same answer every run.
  • pass: Frontmatter block present
  • pass: Frontmatter declares a name
  • pass: Frontmatter declares a description
  • pass: Size between 200 bytes and 200 KB (7950 bytes)
  • pass: No zero-width or bidi control characters
  • pass: No instruction hidden inside an HTML comment
  • pass: No link to an exfiltration or paste host
  • pass: No credential-shaped string
  • pass: No instruction to send local credentials anywhere
  • pass: No text hidden with inline styles
  • pass: No prompt-injection phrasing
  • pass: No curl or wget piped into a shell
  • pass: No recursive delete of root, home or parent
  • pass: No instruction to read or print local credentials
  • pass: No base64 blob over 200 characters
  • pass: No link to a raw IP address
  • pass: No script tag

Source

GitHub

runwhen-contrib/runwhen-local · 163 stars · license Apache-2.0 · pushed 2026-10-21 · branch main

API

GET https://markdownregistry.com/api/v1/artifacts/art_swvkr6lljthfpmhp
GET https://markdownregistry.com/api/v1/resolve?ref=runwhen-contrib/runwhen-local/add-discovery-type
GET https://markdownregistry.com/api/v1/blob/75bd42c3d575f6795e6aed4c197b04f76da45c2a51c622972d9ef347010fd3ea

Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.

Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.

More from runwhen-contrib/runwhen-local

discovery-indexers Cursor rule
runwhen-contrib/runwhen-local · .cursor/rules/discovery-indexers.mdc · Contract for RunWhen Local discovery indexers (native SDK + CloudQuery). Enforces registry parity, collector…
git:20260630.d9e89df · audit A · 163 stars
resource-type-registry Cursor rule
runwhen-contrib/runwhen-local · .cursor/rules/resource-type-registry.mdc · Guardrail for generated resource-type registry YAMLs and their sync scripts. Edit overrides + re-run sync; never…
git:20260630.d9e89df · audit A · 163 stars
template-tags-hierarchy Cursor rule
runwhen-contrib/runwhen-local · .cursor/rules/template-tags-hierarchy.mdc · Conventions for platform tag and hierarchy Jinja templates (src/templates/*-tags.yaml, *-hierarchy.yaml)
git:20260327.f66c93f · audit A · 163 stars
author-generation-rules SKILL.md skill
runwhen-contrib/runwhen-local · .cursor/skills/author-generation-rules/SKILL.md · Write generation rules using bundled references in this repo (airgap). Full skill body lives in runwhen-platform-mcp.
git:20260707.101a57d · audit A · 163 stars
extend-discovery-type SKILL.md skill
runwhen-contrib/runwhen-local · .cursor/skills/extend-discovery-type/SKILL.md · Add or enrich a resource type in an existing RunWhen Local discovery indexer (Azure azureapi, GCP gcpapi, AWS, or…
git:20260630.d9e89df · audit A · 163 stars

Every file in runwhen-contrib/runwhen-local

Browse by kind, by grade A, or by owner.