Event Types

All event types are defined in foundry-core/src/event.rs as the EventType enum. The string representation uses snake_case.

Every event carries these common fields:

FieldTypeDescription
idstringDeterministic SHA-256 derived ID, prefixed evt_
event_typestringSnake-case event type name
projectstringProject this event relates to
occurred_atRFC 3339 timestampWhen the event happened
recorded_atRFC 3339 timestampWhen the event was logged
throttlestringfull, audit_only, or dry_run
payloadJSON objectEvent-type-specific fields (see below)

Hello-World (engine validation)

TypeDescription
greet_requestedRequest to compose and deliver a greeting
greeting_composedGreeting message has been composed
greeting_deliveredGreeting has been delivered (side effect)

greet_requested payload

FieldTypeDescription
namestringName to greet

greeting_composed payload

FieldTypeDescription
greetingstringComposed greeting text

Vulnerability Remediation

TypeDescription
scan_requestedRequest to scan a project for known vulnerabilities
vulnerability_detectedA vulnerability was found (or injected externally)
release_tag_auditedLatest release tag scanned for the vulnerability
main_branch_auditedMain branch checked for the same vulnerability
remediation_startedAutomated fix attempt initiated
remediation_completedFix attempt finished (success or failure)

vulnerability_detected payload

FieldTypeDescription
cvestringCVE or advisory ID (e.g. "CVE-2026-1234")
vulnerableboolWhether the project is affected
dirtybool (optional)Whether the main branch still contains the vulnerability

release_tag_audited payload

FieldTypeDescription
cvestringCVE from the scan or forwarded from the trigger
vulnerableboolWhether the release tag is affected
dirtybool (optional)Forwarded from the upstream trigger for downstream routing

main_branch_audited payload

FieldTypeDescription
cvestringCVE identifier
dirtybooltrue if the vulnerability is still present on main

remediation_completed payload

FieldTypeDescription
cvestringCVE that was remediated
successboolWhether the fix was applied successfully

Release Lifecycle

TypeDescription
release_requestedDecision made to cut a patch release
release_completedRelease tag created and pushed
release_pipeline_completedGitHub Actions build/publish workflow finished

release_completed payload

FieldTypeDescription
cvestringCVE that prompted the release
releasestringRelease type (e.g. "patch")
new_tagstring or nullSemver tag extracted from Claude CLI output
successboolWhether the Claude CLI invocation succeeded

release_pipeline_completed payload

FieldTypeDescription
statusstring"success" or "failure"
conclusionstring (optional)GitHub Actions conclusion label

Project Lifecycle

TypeDescription
project_validation_completedPre-flight checks for a maintenance run
project_iteration_completedIterate workflow finished
project_maintenance_completedMaintain workflow finished
project_changes_committedGit commit created
project_changes_pushedChanges pushed to remote

project_validation_completed payload

FieldTypeDescription
statusstring"ok", "error", or "skipped"
reasonstring (optional)Human-readable explanation when status is not "ok"
has_gatesbool (optional)Whether .hone-gates.json is present (only on "ok")

project_iteration_completed payload

FieldTypeDescription
projectstringProject name
workflowstring"iterate"
successboolWhether the iterate workflow succeeded
summarystringHuman-readable summary of the result
changesbool (optional)Whether code changes were made

project_maintenance_completed payload

FieldTypeDescription
projectstringProject name
workflowstring"maintain"
successboolWhether the maintain workflow succeeded
summarystringHuman-readable summary of the result
changesbool (optional)Whether code changes were made

project_changes_committed payload

FieldTypeDescription
cvestringCVE or "unknown" (from remediation path)
messagestringGit commit message used

project_changes_pushed payload

FieldTypeDescription
cvestringCVE or "unknown" (from remediation path)

Local Install

TypeDescription
local_install_completedLocal tool reinstallation finished

Maintenance Workflow

TypePayloadDescription
iteration_requested{ project }Triggers the iterate sub-workflow for a validated project
maintenance_requested{ project }Triggers the maintain sub-workflow for a validated project

Gate Orchestration

TypeDescription
gate_resolution_completedGate definitions loaded from .hone-gates.json
preflight_completedGates passed/failed on unmodified codebase
execution_completedCode changes applied (emitted by future execution blocks)
gate_verification_completedGates passed/failed after execution
retry_requestedGate failure triggers bounded retry

gate_resolution_completed payload

FieldTypeDescription
projectstringProject name
workflowstring"iterate", "maintain", or "validate"
gatesarrayGate definitions (name, command, required, timeout_secs)
actionsobject (optional)Forwarded actions from the trigger event

preflight_completed payload

FieldTypeDescription
projectstringProject name
workflowstringWorkflow that triggered the preflight
all_passedboolWhether every gate passed
required_passedboolWhether all required gates passed
resultsarrayPer-gate results (name, passed, required, output, exit_code)

gate_verification_completed payload

FieldTypeDescription
projectstringProject name
workflowstringOriginating workflow
all_passedboolWhether every gate passed
required_passedboolWhether all required gates passed
retry_countnumberCurrent retry count (0 on first attempt)
resultsarrayPer-gate results

retry_requested payload

FieldTypeDescription
projectstringProject name
workflowstringOriginating workflow
retry_countnumberIncremented retry count
failure_contextstringGate output from the failed verification
actionsobject (optional)Forwarded actions

Validation

TypeDescription
validation_requestedRequest to validate a project's gate health
validation_completedTerminal event with per-gate pass/fail results

validation_requested payload

FieldTypeDescription
projectstringProject name

validation_completed payload

FieldTypeDescription
projectstringProject name
successboolWhether all required gates passed
resultsarrayPer-gate results (name, passed, required, output snippet)

Maintenance Run Lifecycle

TypeDescription
maintenance_run_startedA maintenance run was triggered for a project
maintenance_run_completedAll projects processed, summary available

maintenance_run_started payload

FieldTypeDescription
projectstringProject name this run covers

maintenance_run_completed payload

FieldTypeDescription
totalnumberTotal number of projects processed
succeedednumberProjects that completed successfully
failednumberProjects that encountered an error
skippednumberProjects that were skipped (already active or skip=true)
projectsarrayPer-project result objects (name, status, duration_secs)

Release Tag Audit

TypeDescription
release_tag_auditedLatest release tag scanned (see payload above)