integrations-lifecycle
The pipeline that turns source metadata into the integration pages, the umbrella pages, and the in-app catalog. This
skill owns the mechanics and the delivery rules; what a collector metadata.yaml field should say is
.agents/skills/collectors-metadata-yaml/, and config_schema.json is
.agents/skills/collectors-go-design/config-schema.md.
Apply AGENTS.md#skill-selection. For review, select the affected pipeline or artifact contract below and inspect
source plus existing validation evidence. Loading recipes does not require regeneration, dependency installation,
commits or publication. Authorized validation uses current inputs and preserves existing outputs through isolation.
Shared delivery facts:
metadata.yaml is the input. Hand-authored for most integrations; generated for ibm.d modules (from contexts.yaml,
config.go, module.yaml) and for the NPM catalog (from SNMP profiles by integrations/gen_npm_catalog.py). Edit
the authoritative source, never a generated file.
- Every
<dir>/integrations/<slug>.md, every README that is a symlink or whose <!--startmeta block carries a
message: "DO NOT EDIT..." line (a <!--startmeta block alone is not the marker; hand-authored Learn pages have one
too), and the umbrella pages src/collectors/COLLECTORS.md, SECRETS.md, SERVICE-DISCOVERY.md (no banner) are
generated. Do not edit them.
- Source PRs carry sources; generated documentation arrives through the post-merge
integrations-regen PR. Validate
with gen_integrations.py and the tests during authorized changes; preview pages in isolation using
how-tos/preview-collector-page.md (selected collectors or its non-collector route). Preserve existing generated-file edits and keep them out of the source commit.
The one place this boundary is written out, with its ibm.d runtime-output exception, is consistency.md.
- The collector taxonomy (
taxonomy.yaml, gen_taxonomy.py) is a dormant early implementation kept for later work;
nothing runs it. Do not author, extend, or seed taxonomy content (consistency.md, "The dormant collector taxonomy").
You edit metadata or a collector and need to validate and deliver
| Read |
For |
consistency.md |
which artifacts move together, the delivery boundary, what CI enforces, the review checklist, the dormant taxonomy |
integrations/README.md |
dependencies and the command list for a local run |
how-tos/preview-collector-page.md |
selected collector prose; its non-collector route covers flows and other types in an isolated source copy |
description-authoring.md |
the catalog sentence and the generated page meta description (the two cross-type description contracts) |
recipes/add-go-collector.md, recipes/update-collector.md |
step-by-step for a new or changed go.d collector |
ibm-d.md |
the ibm.d generation chain |
how-tos/INDEX.md |
retiring a collector, tracing a missing published section, auditing Learn links, Prometheus profiles and the catalog |
You change the generators, schemas, templates, or CI
| Read |
For |
pipeline.md |
stages, sources per integration type, validation and rendering, outputs and banners, page locations and learn_rel_path, umbrella pages, both workflows |
schema-reference.md |
what each schema validates and the behavior the schema file does not show |
gotchas.md |
dead code, silent behaviors, validation traps, the MDX incident |
in-app-contract.md |
how cloud-frontend consumes integrations.js and what it treats as a contract |
how-tos/INDEX.md |
adding an integration type, the NPM catalog generator |
Citations in this skill name files and symbols, never line numbers; open the file and search for the symbol.
Live how-to rule
Capture timing and authorization follow AGENTS.md#knowledge-capture. Pipeline recipes live in how-tos/ and are
listed in ./how-tos/INDEX.md; prefer updating an existing guide when it already covers most of the question.
Path discipline
.agents/sensitive-data-discipline.md applies: repository files repo-relative, sibling Netdata-org repositories as
${NETDATA_REPOS_DIR}/<repo>/..., no workstation paths.
Related skills
collectors-authoring: read first when authoring a brand-new collector; this skill covers the integration side.
collectors-metadata-yaml: the words on the page, field by field.
collectors-go-design/config-schema.md: the DynCfg form.
docs-learn-site-structure: how the generated pages reach learn.netdata.cloud (docs/.map/map.yaml, ingest,
redirects).
collectors-prometheus-profiles: the profile side of the Prometheus catalog.
1---2name: integrations-lifecycle-23description: Change or review the Netdata integrations pipeline, collector artifact consistency, metadata validation, generated docs/catalogs and source-versus-runtime delivery. Covers ibm.d and NPM producers, schemas, generators and dormant taxonomy. Metadata field prose uses collectors-metadata-yaml.4---56# integrations-lifecycle78The pipeline that turns source metadata into the integration pages, the umbrella pages, and the in-app catalog. This9skill owns the mechanics and the delivery rules; what a collector `metadata.yaml` field should say is10`.agents/skills/collectors-metadata-yaml/`, and `config_schema.json` is11`.agents/skills/collectors-go-design/config-schema.md`.1213Apply `AGENTS.md#skill-selection`. For review, select the affected pipeline or artifact contract below and inspect14source plus existing validation evidence. Loading recipes does not require regeneration, dependency installation,15commits or publication. Authorized validation uses current inputs and preserves existing outputs through isolation.1617Shared delivery facts:1819- `metadata.yaml` is the input. Hand-authored for most integrations; generated for ibm.d modules (from `contexts.yaml`,20 `config.go`, `module.yaml`) and for the NPM catalog (from SNMP profiles by `integrations/gen_npm_catalog.py`). Edit21 the authoritative source, never a generated file.22- Every `<dir>/integrations/<slug>.md`, every README that is a symlink or whose `<!--startmeta` block carries a23 `message: "DO NOT EDIT..."` line (a `<!--startmeta` block alone is not the marker; hand-authored Learn pages have one24 too), and the umbrella pages `src/collectors/COLLECTORS.md`, `SECRETS.md`, `SERVICE-DISCOVERY.md` (no banner) are25 generated. Do not edit them.26- Source PRs carry sources; generated documentation arrives through the post-merge `integrations-regen` PR. Validate27 with `gen_integrations.py` and the tests during authorized changes; preview pages in isolation using28 `how-tos/preview-collector-page.md` (selected collectors or its non-collector route). Preserve existing generated-file edits and keep them out of the source commit.29 The one place this boundary is written out, with its ibm.d runtime-output exception, is `consistency.md`.30- The collector taxonomy (`taxonomy.yaml`, `gen_taxonomy.py`) is a dormant early implementation kept for later work;31 nothing runs it. Do not author, extend, or seed taxonomy content (`consistency.md`, "The dormant collector taxonomy").3233## You edit metadata or a collector and need to validate and deliver3435| Read | For |36|---|---|37| `consistency.md` | which artifacts move together, the delivery boundary, what CI enforces, the review checklist, the dormant taxonomy |38| `integrations/README.md` | dependencies and the command list for a local run |39| `how-tos/preview-collector-page.md` | selected collector prose; its non-collector route covers flows and other types in an isolated source copy |40| `description-authoring.md` | the catalog sentence and the generated page meta description (the two cross-type description contracts) |41| `recipes/add-go-collector.md`, `recipes/update-collector.md` | step-by-step for a new or changed go.d collector |42| `ibm-d.md` | the ibm.d generation chain |43| `how-tos/INDEX.md` | retiring a collector, tracing a missing published section, auditing Learn links, Prometheus profiles and the catalog |4445## You change the generators, schemas, templates, or CI4647| Read | For |48|---|---|49| `pipeline.md` | stages, sources per integration type, validation and rendering, outputs and banners, page locations and `learn_rel_path`, umbrella pages, both workflows |50| `schema-reference.md` | what each schema validates and the behavior the schema file does not show |51| `gotchas.md` | dead code, silent behaviors, validation traps, the MDX incident |52| `in-app-contract.md` | how cloud-frontend consumes `integrations.js` and what it treats as a contract |53| `how-tos/INDEX.md` | adding an integration type, the NPM catalog generator |5455Citations in this skill name files and symbols, never line numbers; open the file and search for the symbol.5657## Live how-to rule5859Capture timing and authorization follow `AGENTS.md#knowledge-capture`. Pipeline recipes live in `how-tos/` and are60listed in `./how-tos/INDEX.md`; prefer updating an existing guide when it already covers most of the question.6162## Path discipline6364`.agents/sensitive-data-discipline.md` applies: repository files repo-relative, sibling Netdata-org repositories as65`${NETDATA_REPOS_DIR}/<repo>/...`, no workstation paths.6667## Related skills6869- `collectors-authoring`: read first when authoring a brand-new collector; this skill covers the integration side.70- `collectors-metadata-yaml`: the words on the page, field by field.71- `collectors-go-design/config-schema.md`: the DynCfg form.72- `docs-learn-site-structure`: how the generated pages reach `learn.netdata.cloud` (`docs/.map/map.yaml`, ingest,73 redirects).74- `collectors-prometheus-profiles`: the profile side of the Prometheus catalog.