Skip to content

Auditors: Running make vocabulary-drift-check Across 13 Providers

FCC's 13 VocabularyProviderPlugin instances expose sibling-project dataclasses through a class_map. The drift sentinel compares each live class_map against the packaged YAML it targets under src/fcc/data/objectmodel/. These five prompts walk an auditor through the check.

Personas Used

Persona ID Full Name Role
aud Compliance Auditor Runs the check
dal Data Analyst Lead Interprets results
tr Technical Reviewer Patches drifts

Prompt 1: Enumerate Providers

Personas: aud

Prompt

Produce a 13-row table of the shipped VocabularyProviderPlugins.
For each row: plugin name, namespace, target YAML file under
src/fcc/data/objectmodel/, expected class_map size, and sibling
repo (if any).

Order alphabetically by namespace.

Expected Output

  • 13-row provider table
  • Target YAML mapping
  • Sibling column

Prompt 2: Run the Check

Personas: aud

Prompt

Run `make vocabulary-drift-check` from the FCC repo root.
Capture stdout. For each provider report:

- OK: class_map matches YAML
- DRIFT: classes present in one but not the other
- DEGRADED: sibling import raises; class_map is empty {}

Present as an ASCII table with per-provider verdict column.

Expected Output

  • Captured stdout
  • Per-provider verdict
  • Count of OK / DRIFT / DEGRADED

Prompt 3: Triage a Drift

Personas: dal, tr

Prompt

Pick one DRIFT provider. Show the symmetric diff between its
live class_map keys and its YAML concept IDs. For each diff
entry decide:

- New in sibling, missing in YAML: propose a YAML entry.
- New in YAML, missing in sibling: warn maintainers of the
  sibling to restore the class.
- Rename: propose an entry-point migration note.

Keep the triage under 10 lines per diff entry.

Expected Output

  • Symmetric diff
  • Per-entry triage
  • Proposed YAML patches

Prompt 4: Degraded-Mode Behaviour

Personas: aud

Prompt

For the DEGRADED providers, document the expected degraded
behaviour: empty class_map, health() == "ok" (because empty is
still valid), downstream consumers see "no coverage for this
namespace." Confirm no crashes occur and no events are emitted
on the error bus.

Expected Output

  • Degraded behaviour doc
  • Health() confirmation
  • No-emit assertion

Prompt 5: Publish Findings

Personas: aud

Prompt

Assemble a Markdown finding report for the next I&A workshop:
scope, method, per-provider verdicts, top-3 drifts by impact,
and a follow-up backlog item per drift. Flag anything that
crosses ecosystem boundaries for the federation council.

Expected Output

  • Markdown report
  • Top-3 impactful drifts
  • Backlog entries
  • Federation flags

See Also

  • src/fcc/data/objectmodel/
  • docs/tutorials/sample-prompts/plugin-dev-vocabulary-provider-prompts.md
  • Notebook 38 — Knowledge engineer vocab