Skip to content

5.6: .konveyor/ file contract (result.json, handoff.md) #43

Description

@savitharaghunathan

5.6: .konveyor/ file contract (result.json, handoff.md)

Part of Stream 5: Harness → AgentPlaybookRun alignment

ADR-0001 specifies a file contract between the harness, skills, and controller for communicating stage results and cross-stage context. The current harness uses a custom session.json format with pipeline-specific fields that doesn't match the ADR spec.

Tasks

  • Define result.json schema — array of {"stage": "<name>", "status": "succeeded|failed", "reason": "<optional>"} entries
  • Skills append their result entry to .konveyor/result.json after completion
  • Harness reads final entry in result.json to determine exit code (0 = succeeded, 1 = failed)
  • Harness commits .konveyor/handoff.md on exit — summary of what was accomplished and what remains (for the next stage's agent to read)
  • Harness commits .konveyor/session.json on exit — session metadata (ADR-aligned format, not the old pipeline-status format)
  • Playbook guide is committed as .konveyor/guide.md before stage 1 (by controller or harness)
  • Controller reads result.json from completed pod to update AgentRun status
  • Remove old internal/handoff/ package with pipeline-specific format

Acceptance Criteria

  • Each skill writes a structured result entry to .konveyor/result.json
  • Harness exit code reflects the skill's reported status
  • .konveyor/handoff.md exists in the branch after each stage completes — the next stage's agent can read it for context
  • .konveyor/guide.md exists before stage 1 when running as part of a playbook
  • Controller can determine AgentRun success/failure from the pod's result.json

References

  • ADR-0001 §Git-as-persistence steps 6–8
  • ADR-0001 §AgentPlaybook execution model ("handoff files", "playbook guide")
  • PR ✨ Harness init #33

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

Status
🏗 In progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions