Docs

Integration

Logging

How the Vinaya process fulfils Dev Process logging: what it supplies, where its events go, the header every event carries, each event type mapped to its generic family, and the generic families it has no event of its own for.

Partial
Fixed event types
Live delivery
Generic mapping
Gaps named

About Vinaya's logging

This page answers the generic Logging for the Vinaya process. Every event, field by field, is in the Vinaya Log event reference.

Vinaya's event types are fixed. Configuration says where events go and lets a team add its own custom events (logs.events); it cannot change Vinaya's. Studio, Telemetry and Self-improvement read these events.

What Vinaya supplies, and what it does not

ConcernWho
Event families and meaningHarness, fixed
Destination (logs: folder or url)The team, in Configuration
Identities and payloads for each eventVinaya
Its own namespaced eventsVinaya: vinaya.planning.*, vinaya.closeout.*
Gate resultsVinaya's 37 checks write gate events, mapped to gate.evaluated

Where events go

  • Every event is delivered live, as it happens, to the destination in logs: a folder or a server. By default, <runtimeDir>/logs/, one file per task.
  • Never to GitHub: no Issue or pull-request comment, no CI artifact.
  • Never control state: the Log never authorizes or resumes a run.
  • A secret-shaped value is redacted, and a home path rewritten, before an event is written. See Redaction and trust.

What every event carries

FieldMeaningGeneric field
meta.ts, meta.seq, event_idWhen, order, identityevent_id, timestamp
meta.run_id, lineage.run, lineage.attempt, lineage.parentRun, attempt, the event it continues (lineage.attempt is the dispatch attempt, from VINAYA_ATTEMPT; lineage.parent is planned)run_id, attempt, correlation_id
flow.id, flow.version, meta.vinaya, meta.doctrineProcess and versions (flow.id is vinaya)process_id, process_version
input_versionsBrief digest, objectives version, ruling ordinal, policy digestintent_version, policy_version
work.ref, subject.issueThe taskintent_id
work.repo, work.change, work.revision, subject.pr, subject.shaRepository, pull request, commit (work.change is the pull request when VINAYA_PR is set; work.revision and subject.sha are the commit, set on gate events only, and in pull-request CI it is the merge commit)change_id, head_revision
subject.role, actor_idWho actedactor
meta.host, runtime, source, meta.machineWhere it ran: hook, CI, CLI or loop; the runtime; a hashed machinesource_system
provenanceparent_attributed, env_correlated, self_reported or unavailable (role dispatch writes parent_attributed for its own events; others write env_correlated or unavailable; self_reported is planned)provenance strength

The event types

Family · eventWhen it firesGeneric family
dev_review_loop · loop_started, resumed, paused, cancelledThe loop starts, resumes, pauses or is cancelledrun.started / resumed / paused / cancelled
dev_review_loop · stop_condition_met, journal_finalized, driver_exitedThe run ends: ready, failed, exhausted; how the driver exitedrun.completed / failed / exhausted
dev_review_loop · driver_heartbeatAt most every five minutes while a loop runsLiveness, for Mission Control
dev_review_loop · round_started, round_endedA revision round starts and endsdecision.recorded (round outcome)
dispatch · dispatched, outcome_received, dispatch_failedA role is dispatched and returns or failsexecution.started / completed / failed
role_attempt · attemptedOne role attempt's normalized outcomeexecution.completed / failed / cancelled
usage · observedTokens used by a dispatched turnexecution.usage
gate · summary, checkedA check run; each check that did not passgate.evaluated
dev_review_loop · gate_result_readThe loop reads the mechanical gate resultevidence.completed
dev_review_loop · verdicts_read, findings_comparedReviewers' verdicts and findings are read and comparedreview.completed, review.finding_recorded
handoff · raised, resolvedA pause needs a decision; the decision is madehandoff.raised / resolved, human.intervened
effect · verifiedA write to the forge ends: success, failure or uncertaineffect.committed / reconciled
operation · completedEvery CLI command (including hook and CI runs), Operator and broker calls, custom-event refusals, sandbox probe failureshuman.intervened (Operator calls only)
dev_review_loop · infrastructure_retryA recovered or exhausted infrastructure hiccuprun detail
dev_review_loop · unpushed_work_resumeThe driver resumes a Developer that stopped without pushingexecution detail
custom · recordedA team's own declared event (logs.events)Namespaced process event

forge_write has a schema but no producer.

Generic families without an event of their own

Generic familyIn Vinaya
intent.created / amendedNo event of its own. Named vinaya.planning.*.
change.produced / revisedNo event of its own; the pull request and commit ride on round events.
evidence.invalidated, review.invalidated, decision.invalidatedNot emitted; staleness is decided by the controller, not logged.
review.requestedCarried by dispatch · dispatched for reviewer roles.
process.version_selectedNo event of its own; flow.version is on every header.
Close-outNo event of its own. Named vinaya.closeout.*.

Studio, Telemetry and Self-improvement derive them from the events above.

Configuration

Set the destination and any custom events under logs in vinaya.config.json. See Log.

What's next