Forge Intelligence

Session and artifact data governance

Policy for FI session projections (sessions/<id>/machine/*.json, derived human/report.md). Sessions are non-authoritative — ForgeRun/Lenses remains system of record for approvals and evidence acceptance (ADR-0002).

Updated

Classification

Label Human report Attach to SoR Default retention
public Full field set Optional 90 days
internal Full field set Recommended 180 days
restricted Redacted per policy Required for decisions 1 year
secret Excluded (summary only) Required + encryption Policy-defined

Envelope sensitivity must align with session classification. Mismatch fails freeze gate.

  • consent extension (see ARTIFACT-ENVELOPE-EXTENSIONS.md) required when payload contains personal data.
  • decision_authority in problem context must name who may act on outputs.
  • Downstream capabilities must not emit without consent scope covering their artifact types.

Redaction (H-wiki)

Human projections apply a sensitivity gate before render:

  1. Drop payload keys listed in redaction.exclude_fields for the session policy.
  2. Mask restricted provenance entries not marked human_visible: true.
  3. Never render secret payload bodies — show type + id + validation status only.

Stub hook: forge_intelligence.wiki.redaction.apply_redactionwired into generate_h.render_human via session.redaction_policy.

Retention and deletion

  • Every retained artifact requires retention.policy_id or session-default TTL.
  • legal_hold: true blocks deletion until cleared.
  • supersession links must be preserved for audit even after TTL expiry of payload body.

Residency and encryption

  • Session roots default to host-local storage; cross-border attach requires explicit policy flag.
  • restricted and secret at rest: encrypt session directory when FI_SESSION_ENCRYPT=1.

SoR attachment

Machine JSON attaches to ForgeRun evidence via Lenses attach API. Attachment record must include:

  • session_id, freeze_gate_status, artifact_count
  • Acknowledgement that FI session is a projection, not authoritative run state