ActorSkillListing actor.skill-listing@1

Generated at from openvibe-contracts v0.419.0 and openvibe-sdk v0.161.0.

An older major, still in the catalog. The current one is actor.skill-listing@2.
Version
1.0.0
Owner
actor
Visibility
public
Status
active
Compatibility
backward
Decision
ADR-058
Schema
https://openvibe.network/contracts/actor/skill-listing.v1.json

actor.skill-listing@1: a skill in the registry, the record every site shows on its card (ADR-058). It carries the document as published (actor.skill@1), the PUBLISHER from the registry's own record (vouched: unlike the document's author, this is who published it), the SCAN (its state and findings travel with the listing), and the CURATOR's state. Install rules every site keeps: a passed skill installs in one tap; a flagged one only after the person reads the findings and confirms; a failed one never; a stale or archived one is not offered. Installing copies the document into the person's agent; it grants nothing (the skill's requires is a declaration).

Fields

FieldTypeRequiredDescriptionConstraints
listingconstyes
  • = "actor.skill-listing@1"
idstringyesThe listing's id.
  • pattern ^skl_[0-9A-HJKMNP-TV-Z]{26}$
skillactor.skill@1yesThe document as published.
publisherobjectyesWho published it, from the registry's own record.
  • no other fields
publisher.kindenumyesOpenVibe's own skills, or a person's.
  • one of "openvibe", "person"
publisher.subjectstringThe person who published it (kind person).
  • pattern ^usr_[0-9A-HJKMNP-TV-Z]{26}$
publisher.namestring
  • minLength 1
  • maxLength 80
scanobjectyesWhat the registry's scan found. It travels with the listing.
  • no other fields
scan.stateenumyes
  • one of "pending", "passed", "flagged", "failed"
scan.scannerstringThe scanner and its version.
  • minLength 1
  • maxLength 80
scan.scanned_atstring
  • format date-time
scan.findingsarray of object
  • maxItems 50
  • items: no other fields
scan.findings[].rulestringyesWhich rule, such as asks.undeclared_kind or text.secret_request.
  • pattern ^[a-z][a-z0-9_.-]{1,63}$
scan.findings[].severityenumyes
  • one of "info", "warn", "block"
scan.findings[].wherestringinstructions, description, or a resource path.
  • maxLength 120
scan.findings[].notestringyesWhat it found, in plain words.
  • minLength 1
  • maxLength 280
curatorobjectyesThe curator ships with the catalogue: what is used stays, what is not goes stale.
  • no other fields
curator.stateenumyes
  • one of "active", "stale", "archived"
curator.last_used_atstring
  • format date-time
curator.near_duplicate_ofstringA listing that does the same job.
  • pattern ^skl_[0-9A-HJKMNP-TV-Z]{26}$
installsinteger
  • minimum 0
listed_atstringyes
  • format date-time
retired_atstring
  • format date-time

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

The fixtures that ship with the package are the current major's.

Validate

const contracts = require('openvibe-contracts');
contracts.validate('actor.skill-listing@1', value);   // { valid, errors: [{ path, message }] }