General (GI) Messages
The General shorthands cover messages not tied to a specific state change.
GI expands across the note lifecycle and the actor-suggestion handshake; the occasion table below lists each wire activity it covers.
Occasions
| When… | Send | Send to | Sent by | Distinguished by | Details |
|---|---|---|---|---|---|
| a Participant suggests an actor that the case should include | Offer(Actor)[target=VulnerabilityCase] |
the case manager | a participant | sender is not the case owner | Suggest actor to case |
| the Case Owner decides to invite an actor to the case | Offer(Actor)[target=VulnerabilityCase] |
the case manager | a participant | sender is the case owner | Ask the Case Manager to invite an actor |
| the Case Manager presents a suggested actor to the Case Owner | Offer(CaseParticipant)[target=VulnerabilityCase] |
a participant | the case manager | — | Offer case participant |
| the Case Owner approves a suggested actor | Accept(Offer(CaseParticipant)[target=VulnerabilityCase]) |
the case manager | the case owner | — | Accept case participant offer |
| the Case Owner declines a suggested actor | Reject(Offer(CaseParticipant)[target=VulnerabilityCase]) |
the case manager | the case owner | — | Reject case participant offer |
| the Case Manager tells a recommender that the actor it suggested will be invited | Accept(Offer(Actor)[target=VulnerabilityCase]) |
a participant | the case manager | — | Accept actor recommendation |
| the Case Manager tells a recommender that the Case Owner declined the actor it suggested | Reject(Offer(Actor)[target=VulnerabilityCase]) |
a participant | the case manager | — | Reject actor recommendation |
| a Participant posts a note to the case | Add(Note)[target=VulnerabilityCase] |
the case manager | an active participant | — | Add note to case |
| a note's author or the Case Owner withdraws a note from the case | Remove(Note)[target=VulnerabilityCase] |
the case manager | the case owner or the note's author | — | Remove note from case |
GI — General Inquiry
- Protocol role: Communicates non-state-change information — asking or answering a question, requesting a status update or a draft review, suggesting a Participant for a case, or resolving a loss of state synchronization.
- Triggering transition: none (any time).
- Wire activities:
GIexpands across the actor-suggestion handshake and the note lifecycle, one section each below. Suggesting a Participant is aGIinquiry, not a case-management message. - Formal definition: Message Types.
Suggest actor to case
Recommends an actor to the Case Manager for the case named by the target.
- When… a Participant suggests an actor that the case should include
- Send:
Offer(Actor)[target=VulnerabilityCase] - Send to: the case manager
- Sent by: a participant
- Distinguished by: sender is not the case owner
- Seen in: How to Suggest an Actor for a Case
- Formal definition: General Inquiry (GI)
- Mapping status: expansion
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Offer",
"id": "urn:uuid:7b332742-48a9-489f-a2ee-c289d6a52cc4",
"name": "https://vultron.example/users/finndervul Offer Coordinator LLC to urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"context": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"content": "I'm recommending we add Coordinator LLC to the case.",
"to": "https://vultron.example/case-actors/vendorco-case-actor",
"actor": "https://vultron.example/users/finndervul",
"target": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"object": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Organization",
"id": "https://vultron.example/organizations/coordinator",
"name": "Coordinator LLC",
"published": "2026-10-23T20:17:06+00:00",
"updated": "2026-10-23T20:17:06+00:00",
"inbox": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "OrderedCollection",
"id": "https://vultron.example/organizations/coordinator/inbox",
"items": []
},
"outbox": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "OrderedCollection",
"id": "https://vultron.example/organizations/coordinator/outbox",
"items": []
}
}
}
Ask the Case Manager to invite an actor
Asks the Case Manager to invite the actor named by the object to the case named by the target, with the roles in suggestedRoles. For an actor with no record on the case, or an invitee that has not answered, the Case Manager answers with the Stub Invite to that actor, not with an offer to the Case Owner.
- When… the Case Owner decides to invite an actor to the case
- Send:
Offer(Actor)[target=VulnerabilityCase] - Send to: the case manager
- Sent by: a participant
- Distinguished by: sender is the case owner
- Seen in: How to Invite an Actor to a Case
- Mapping status: expansion
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Offer",
"id": "urn:uuid:2a094315-f22c-4af7-97b0-9c4403fd36e3",
"name": "https://vultron.example/organizations/vendorco Offer Coordinator LLC to urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"context": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"to": "https://vultron.example/case-actors/vendorco-case-actor",
"actor": "https://vultron.example/organizations/vendorco",
"target": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"object": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Organization",
"id": "https://vultron.example/organizations/coordinator",
"name": "Coordinator LLC",
"published": "2026-10-23T20:17:06+00:00",
"updated": "2026-10-23T20:17:06+00:00",
"inbox": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "OrderedCollection",
"id": "https://vultron.example/organizations/coordinator/inbox",
"items": []
},
"outbox": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "OrderedCollection",
"id": "https://vultron.example/organizations/coordinator/outbox",
"items": []
}
},
"suggestedRoles": [
"coordinator"
]
}
For an actor with no record on the case, or an invitee that has not answered (CM-11-015), the CASE_MANAGER sends the Stub Invite directly, because the Case Owner who would decide on a suggestion is the sender (CM-17-007). An actor already on the case or already awaiting the Case Owner's decision gets the same answer a suggestion gets (CM-16-008, CM-16-009).
Offer case participant
Forwards the recommendation as a proposed participant record, carrying the original recommendation's ID and the default roles it assigned.
- When… the Case Manager presents a suggested actor to the Case Owner
- Send:
Offer(CaseParticipant)[target=VulnerabilityCase] - Send to: a participant
- Sent by: the case manager
- Seen in: How to Suggest an Actor for a Case
- Formal definition: General Inquiry (GI)
- Mapping status: expansion
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Offer",
"id": "urn:uuid:e9e8d16e-6893-4762-adfb-6aa8d8a03d58",
"name": "https://vultron.example/case-actors/vendorco-case-actor Offer https://vultron.example/organizations/coordinator from urn:uuid:982f15f8-2c06-403f-9fac-d9ad509ff26b to urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"context": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"content": "Recommending Coordinator LLC for case participation (roles: VENDOR). Origin: urn:uuid:982f15f8-2c06-403f-9fac-d9ad509ff26b",
"to": [
"https://vultron.example/organizations/vendorco"
],
"actor": "https://vultron.example/case-actors/vendorco-case-actor",
"target": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"origin": "urn:uuid:982f15f8-2c06-403f-9fac-d9ad509ff26b",
"object": {
"id": "https://vultron.example/organizations/coordinator#participant",
"type": "CaseParticipant",
"name": "https://vultron.example/organizations/coordinator",
"published": "2026-10-23T20:17:38+00:00",
"updated": "2026-10-23T20:17:38+00:00",
"attributedTo": "https://vultron.example/organizations/coordinator",
"caseRoles": [
"vendor"
],
"participantStatuses": [
{
"id": "urn:uuid:7fc66215-82ac-4783-bf14-cd10742ec61f",
"type": "ParticipantStatus",
"name": "START vf",
"context": "https://vultron.example/organizations/coordinator#participant",
"published": "2026-10-23T20:17:38+00:00",
"updated": "2026-10-23T20:17:38+00:00",
"attributedTo": "https://vultron.example/organizations/coordinator",
"rmState": "START",
"vfState": "vf",
"caseEngagement": true,
"cvdRole": [
"VENDOR"
],
"@context": "https://certcc.github.io/Vultron/ns/context.jsonld"
}
],
"embargoConsents": [],
"joined": true,
"@context": "https://certcc.github.io/Vultron/ns/context.jsonld"
}
}
The original recommendation's ID is carried in the Offer's origin.
Accept case participant offer
Accepts the proposed participant record. The Case Manager then invites the suggested actor.
- When… the Case Owner approves a suggested actor
- Send:
Accept(Offer(CaseParticipant)[target=VulnerabilityCase]) - Send to: the case manager
- Sent by: the case owner
- Seen in: How to Suggest an Actor for a Case
- Formal definition: General Inquiry (GI)
- Mapping status: expansion
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Accept",
"id": "urn:uuid:64446af5-ac7d-4f81-a6f3-43085d8b9f78",
"name": "https://vultron.example/organizations/vendorco Accept https://vultron.example/case-actors/vendorco-case-actor Offer https://vultron.example/organizations/coordinator from urn:uuid:da2e0255-f698-4a6c-997c-d85f1c15c542 to urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0 to urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"context": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"content": "Accepting recommendation to add Coordinator LLC to the case.",
"to": [
"https://vultron.example/case-actors/vendorco-case-actor"
],
"actor": "https://vultron.example/organizations/vendorco",
"target": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"object": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Offer",
"id": "urn:uuid:8522da20-f871-449b-bfcb-6a9a81884872",
"name": "https://vultron.example/case-actors/vendorco-case-actor Offer https://vultron.example/organizations/coordinator from urn:uuid:da2e0255-f698-4a6c-997c-d85f1c15c542 to urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"context": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"published": "2026-10-23T20:17:38+00:00",
"updated": "2026-10-23T20:17:38+00:00",
"content": "Recommending Coordinator LLC for case participation (roles: VENDOR). Origin: urn:uuid:da2e0255-f698-4a6c-997c-d85f1c15c542",
"to": [
"https://vultron.example/organizations/vendorco"
],
"actor": "https://vultron.example/case-actors/vendorco-case-actor",
"target": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"origin": "urn:uuid:da2e0255-f698-4a6c-997c-d85f1c15c542",
"object": {
"id": "https://vultron.example/organizations/coordinator#participant",
"type": "CaseParticipant",
"name": "https://vultron.example/organizations/coordinator",
"published": "2026-10-23T20:17:38+00:00",
"updated": "2026-10-23T20:17:38+00:00",
"attributedTo": "https://vultron.example/organizations/coordinator",
"caseRoles": [
"vendor"
],
"participantStatuses": [
{
"id": "urn:uuid:65aac841-1068-4640-b13e-e8c916ad6688",
"type": "ParticipantStatus",
"name": "START vf",
"context": "https://vultron.example/organizations/coordinator#participant",
"published": "2026-10-23T20:17:38+00:00",
"updated": "2026-10-23T20:17:38+00:00",
"attributedTo": "https://vultron.example/organizations/coordinator",
"rmState": "START",
"vfState": "vf",
"caseEngagement": true,
"cvdRole": [
"VENDOR"
],
"@context": "https://certcc.github.io/Vultron/ns/context.jsonld"
}
],
"embargoConsents": [],
"joined": true,
"@context": "https://certcc.github.io/Vultron/ns/context.jsonld"
}
}
}
The Case Owner's decision goes back to the CASE_MANAGER, which relays the outcome to the recommender.
Reject case participant offer
Rejects the proposed participant record. The Case Manager tells the recommender.
- When… the Case Owner declines a suggested actor
- Send:
Reject(Offer(CaseParticipant)[target=VulnerabilityCase]) - Send to: the case manager
- Sent by: the case owner
- Seen in: How to Suggest an Actor for a Case
- Formal definition: General Inquiry (GI)
- Mapping status: expansion
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Reject",
"id": "urn:uuid:1abd2dae-17c5-4666-b1fc-f531089ce202",
"name": "https://vultron.example/organizations/vendorco Reject https://vultron.example/case-actors/vendorco-case-actor Offer https://vultron.example/organizations/coordinator from urn:uuid:6888e8e4-58ac-48b1-acc4-313a639d7ed2 to urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0 to urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"context": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"content": "Declining recommendation to add Coordinator LLC to the case.",
"to": [
"https://vultron.example/case-actors/vendorco-case-actor"
],
"actor": "https://vultron.example/organizations/vendorco",
"target": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"object": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Offer",
"id": "urn:uuid:3645b7b2-29d1-4d86-a346-986b242ff3da",
"name": "https://vultron.example/case-actors/vendorco-case-actor Offer https://vultron.example/organizations/coordinator from urn:uuid:6888e8e4-58ac-48b1-acc4-313a639d7ed2 to urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"context": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"published": "2026-10-23T20:17:38+00:00",
"updated": "2026-10-23T20:17:38+00:00",
"content": "Recommending Coordinator LLC for case participation (roles: VENDOR). Origin: urn:uuid:6888e8e4-58ac-48b1-acc4-313a639d7ed2",
"to": [
"https://vultron.example/organizations/vendorco"
],
"actor": "https://vultron.example/case-actors/vendorco-case-actor",
"target": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"origin": "urn:uuid:6888e8e4-58ac-48b1-acc4-313a639d7ed2",
"object": {
"id": "https://vultron.example/organizations/coordinator#participant",
"type": "CaseParticipant",
"name": "https://vultron.example/organizations/coordinator",
"published": "2026-10-23T20:17:38+00:00",
"updated": "2026-10-23T20:17:38+00:00",
"attributedTo": "https://vultron.example/organizations/coordinator",
"caseRoles": [
"vendor"
],
"participantStatuses": [
{
"id": "urn:uuid:01bcf9ff-c1da-40a7-9cca-2a08b8c79142",
"type": "ParticipantStatus",
"name": "START vf",
"context": "https://vultron.example/organizations/coordinator#participant",
"published": "2026-10-23T20:17:38+00:00",
"updated": "2026-10-23T20:17:38+00:00",
"attributedTo": "https://vultron.example/organizations/coordinator",
"rmState": "START",
"vfState": "vf",
"caseEngagement": true,
"cvdRole": [
"VENDOR"
],
"@context": "https://certcc.github.io/Vultron/ns/context.jsonld"
}
],
"embargoConsents": [],
"joined": true,
"@context": "https://certcc.github.io/Vultron/ns/context.jsonld"
}
}
}
Accept actor recommendation
Accepts the recommender's suggestion, with inReplyTo naming it. The Case Manager sends it once the Case Owner approves, or at once when the suggested actor is already invited or has joined.
- When… the Case Manager tells a recommender that the actor it suggested will be invited
- Send:
Accept(Offer(Actor)[target=VulnerabilityCase]) - Send to: a participant
- Sent by: the case manager
- Seen in: How to Suggest an Actor for a Case
- Formal definition: General Inquiry (GI)
- Mapping status: expansion
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Accept",
"id": "urn:uuid:c3137c55-a548-49e0-93d3-2ddb1043505d",
"name": "https://vultron.example/case-actors/vendorco-case-actor Accept https://vultron.example/users/finndervul Offer Coordinator LLC to urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0 to urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"context": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"inReplyTo": "urn:uuid:5a2b6932-62b4-48e3-acec-ea7f9139db62",
"content": "We're accepting your recommendation to add Coordinator LLC to the case. We'll reach out to them shortly.",
"to": "https://vultron.example/users/finndervul",
"actor": "https://vultron.example/case-actors/vendorco-case-actor",
"target": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"object": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Offer",
"id": "urn:uuid:5a2b6932-62b4-48e3-acec-ea7f9139db62",
"name": "https://vultron.example/users/finndervul Offer Coordinator LLC to urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"context": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"published": "2026-10-23T20:17:38+00:00",
"updated": "2026-10-23T20:17:38+00:00",
"content": "I'm recommending we add Coordinator LLC to the case.",
"to": "https://vultron.example/case-actors/vendorco-case-actor",
"actor": "https://vultron.example/users/finndervul",
"target": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"object": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Organization",
"id": "https://vultron.example/organizations/coordinator",
"name": "Coordinator LLC",
"published": "2026-10-23T20:17:06+00:00",
"updated": "2026-10-23T20:17:06+00:00",
"inbox": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "OrderedCollection",
"id": "https://vultron.example/organizations/coordinator/inbox",
"items": []
},
"outbox": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "OrderedCollection",
"id": "https://vultron.example/organizations/coordinator/outbox",
"items": []
}
}
}
}
Reject actor recommendation
Declines the recommender's suggestion, with inReplyTo naming it. The suggested actor is not invited.
- When… the Case Manager tells a recommender that the Case Owner declined the actor it suggested
- Send:
Reject(Offer(Actor)[target=VulnerabilityCase]) - Send to: a participant
- Sent by: the case manager
- Seen in: How to Suggest an Actor for a Case
- Formal definition: General Inquiry (GI)
- Mapping status: expansion
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Reject",
"id": "urn:uuid:ae590869-3a15-4e36-af8d-299ea9416645",
"name": "https://vultron.example/case-actors/vendorco-case-actor Reject https://vultron.example/users/finndervul Offer Coordinator LLC to urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0 to urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"context": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"inReplyTo": "urn:uuid:1d44c750-3086-4855-ba70-2bded4620678",
"content": "We're declining your recommendation to add Coordinator LLC to the case. Thanks anyway.",
"to": "https://vultron.example/users/finndervul",
"actor": "https://vultron.example/case-actors/vendorco-case-actor",
"target": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"object": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Offer",
"id": "urn:uuid:1d44c750-3086-4855-ba70-2bded4620678",
"name": "https://vultron.example/users/finndervul Offer Coordinator LLC to urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"context": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"published": "2026-10-23T20:17:38+00:00",
"updated": "2026-10-23T20:17:38+00:00",
"content": "I'm recommending we add Coordinator LLC to the case.",
"to": "https://vultron.example/case-actors/vendorco-case-actor",
"actor": "https://vultron.example/users/finndervul",
"target": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"object": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Organization",
"id": "https://vultron.example/organizations/coordinator",
"name": "Coordinator LLC",
"published": "2026-10-23T20:17:06+00:00",
"updated": "2026-10-23T20:17:06+00:00",
"inbox": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "OrderedCollection",
"id": "https://vultron.example/organizations/coordinator/inbox",
"items": []
},
"outbox": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "OrderedCollection",
"id": "https://vultron.example/organizations/coordinator/outbox",
"items": []
}
}
}
}
The recommender archives either answer and changes nothing on receipt. The CASE_MANAGER ledgered the answer when it sent it, and the recommender's replica takes it from the ledger.
This handshake is a GI inquiry rather than a role offer.
For the CVDRole delegation that uses a dedicated object type, see Offer case participant role.
Add note to case
Posts the note to the case named by the target, with the note carried inline as the object: the Case Manager stores the note, attaches it to the case and records the attachment in the case ledger. It is the one message that attaches a note: a received Create of a note is not a protocol message.
- When… a Participant posts a note to the case
- Send:
Add(Note)[target=VulnerabilityCase] - Send to: the case manager
- Sent by: an active participant
- Seen in: How to Post a Status Update or a Case Note
- Formal definition: General Inquiry (GI)
- Mapping status: expansion
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Add",
"id": "urn:uuid:eef9575b-9aa1-43fc-8ea7-d2634c921f2a",
"name": "https://vultron.example/users/finndervul Add Note to urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"context": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"actor": "https://vultron.example/users/finndervul",
"target": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"object": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Note",
"id": "https://vultron.example/notes/1",
"name": "Note",
"context": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"published": "2026-06-01T19:12:00+00:00",
"updated": "2026-06-01T19:12:00+00:00",
"content": "This is a note."
}
}
- What the CASE_MANAGER refuses: an
Add(Note)whose note id it already holds, whatever the carried note says, and a note whosecontextis not the target case. A change to a stored note would be anUpdate(Note), not a secondAdd, and this implementation does not handleUpdate(Note)yet (HP-08-006, HP-08-007). A redelivery of anAdd(Note)the case ledger already records changes nothing.
Remove note from case
Removes the note from the case named by the target.
- When… a note's author or the Case Owner withdraws a note from the case
- Send:
Remove(Note)[target=VulnerabilityCase] - Send to: the case manager
- Sent by: the case owner or the note's author
- Seen in: How to Post a Status Update or a Case Note
- Formal definition: General Inquiry (GI)
- Mapping status: expansion
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Remove",
"id": "urn:uuid:050bf5de-477f-4b7d-b9b3-f45ce62fc04d",
"name": "https://vultron.example/users/finndervul Remove Note to urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"actor": "https://vultron.example/users/finndervul",
"target": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"object": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Note",
"id": "https://vultron.example/notes/1",
"name": "Note",
"context": "urn:uuid:d483d06d-400e-47fd-9b8a-9a2643e3a4b0",
"published": "2026-06-01T19:12:00+00:00",
"updated": "2026-06-01T19:12:00+00:00",
"content": "This is a note."
}
}
- Who may send: the CASE_MANAGER admits
Remove(Note)[target=VulnerabilityCase]from the note's author while that author is an active participant, or from the Case Owner. Any other sender is refused, and the note stays in the case. A participant replica accepts it only from the CASE_MANAGER, because replicas learn of the change from the ledger entry the CASE_MANAGER fans out.
Formal messages with no dedicated wire activity
GK — General Acknowledgment
- Protocol role: Acknowledges receipt of a
GImessage. - Triggering transition: any valid
GImessage. - Wire activity: none dedicated. Acknowledgment of ledger-replicated state is cumulative and implicit through hash-chain continuity (ADR-0083).
- Formal definition: Message Types.
GE — General Error
- Protocol role: Indicates a general error has occurred.
- Triggering transition: any unexpected
GImessage. - Wire activity: none dedicated. Faults are conveyed by
Create(ProcessingFault),as:Reject, orAdd(Note), partitioned by failure mode (ADR-0083). - Formal definition: Message Types.