Generated from
cat-harness/skills/authoring/content-lifecycle/ig-publisher-service-contract.md— do not edit here.
IG publisher + validator — the role’s contract
ig-publisher-service in scenarios/roles.json is played by a
mechanical actor (actorKinds: ["system"]; today
scenarios/actors/ig-publisher-service.json, which runs in the
folio-assistant-smart-guidelines image). A role played by a machine is
still a role, and its skills are its contract: the responsibilities it
must perform, which a test can hold it to (owner, 2026-10-16). Each line below
is read off what the repository already says.
What it must do
- Build a FHIR Implementation Guide and report its QA — the actor’s
description (“FHIR IG Publisher build and QA reporting”), and the
qa-reportingaction ODRL grants it inpolicies/folio-defaults.jsonld. - Complete the IG Publisher build with no errors in
qa.html, after SUSHI has compiled the FSH —req:fhir-validation#ig-publisher-qa, which depends on#sushi-compileand which theig-publishercapability (scenarios/capabilities/ig-publisher.json) declares it satisfies. - Validate individual resources and profiles against a package between
builds — the
fhir-validatorcapability, distinct from a whole-IG build. - Be detectable: each capability’s
detectioncommand answers--version/-versionon a machine with a Java runtime (requires: ["java-runtime"]).
What it is not asked
- To judge. The role is “external in behaviour, internal in configuration” (its description): it reports what the publisher found; whether a warning matters is the QC reviewer’s or the FHIR modeller’s call.
No test in this repository runs the services — they run in a folio’s build,
not here. The test in tested-by: holds lines 1–4 to what this repository
declares: the actor and its ODRL grant, the two capabilities and their
detection, and the requirement statement the publisher satisfies.