Skip to content

Wire burn hook-based Claude Code ingest into harness-kit #25

Description

@willwashburn

Follow-up from burn#7 (shipped in @relayburn/*@0.8.0).

What to do

Burn now exports a pure spawner primitive from @relayburn/ledger:

import { buildClaudeHookSettings, stamp } from '@relayburn/ledger';

const { sessionId, settings } = buildClaudeHookSettings();
await stamp({ sessionId }, { workflowId, agentId, persona, tier });

// Pass sessionId + settings through to the spawn args.

Extend buildInteractiveSpec at packages/harness-kit/src/harness.ts:69-153 to append --session-id and --settings when the harness is claude. The spawn site to verify against is packages/cli/src/cli.ts:579.

Acceptance

  • buildInteractiveSpec({ harness: 'claude', ... }) returns args containing --session-id <uuid> and --settings <json>.
  • Other harnesses (codex, opencode, etc.) are unaffected.
  • Stamp metadata is applied against the pre-assigned UUID before spawn so burn attributes turns correctly.
  • Smoke: workforce can spawn a Claude Code session and burn summary --since 1h shows the turn with stamped workflow/agent attribution.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions