capture follow-up: harvest adapters (transcript-parse / chat-reconstruct / agent-runlog) #64
Open
opened 2026-06-23 05:45:02 +00:00 by mathias
·
1 comment
No Branch/Tag Specified
main
fix/pipeline-writes-158
fix/edit-path-io-192
fix/create-regular-188
fix/guard-special-179
fix/linkcheck-keeps-write-178
fix/write-dir-redirect-173
fix/tunnel-detect-174
fix/pipeline-root-157
w3/154-mcp-auth-wiring
fix/tunnel-traversal
test/in-brain-targets-171
fix/brain-scan-root-157
fix/graph-wiki-root-157
fix/vectorstore-root-157
fix/notes-root-157
fix/search-root-157
fix/brainwide-root-157
fix/raw-symlinks-153
feat/symlink-tripwire-157
fix/rest-auth-149
fix/123-brain-edit-envelope-check
feat/106-page-aware-extraction
fix/105-source-drift-on-main
fix/104-surface-merge-conflicts-on-main
agent/b1-compile-on-ingest
agent/104-surface-merge-conflicts
agent/105-source-drift
agent/107-loud-unconfigured-alerting
feat/brain-read-edit
fix/capture-i1-refusal-names-target
renovate/configure
feat/consolidate-single-harness
icebox/cmd-routing
feat/brain-pending-promote
fix/close-session-classification-refresh
fix/capture-summarywriter
v0.24.0
v0.23.1
v0.23.0
v0.22.0
v0.21.1
v0.21.0
v0.20.1
v0.20.0
v0.19.1
v0.19.0
v0.18.4
v0.18.3
v0.18.2
v0.18.1
v0.18.0
v0.17.0
v0.16.1
v0.16.0
v0.15.0
v0.14.0
v0.13.2
v0.13.1
v0.13.0
v0.12.1
v0.12.0
v0.11.2
icebox/cmd-routing-2026-07-01
v0.11.1
v0.11.0
v0.10.0
v0.9.0
v0.8.0
v0.7.0
v0.6.0
v0.5.0
v0.4.1
v0.4.0
v0.3.0
v0.2.0
v0.1.0
Labels
Clear labels
agent/ready
blocked/client
blocked/supplier
blocked/upstream
risk/high
risk/low
risk/medium
size/l
size/m
size/s
size/xs
status:dispatch
status:dispatched
status:review
status:reviewing
type/chore
type/decision
type/docs
type/feat
type/fix
type/ops
type/research
type/test
Meets the agent-ready contract; authorizes unattended execution
Waiting on the client
Waiting on a supplier
Waiting on an upstream project or vendor
Irreversible, security-relevant, or control plane
Reversible, local, test-covered
Touches shared state, deploys or data
Too big - split it
Under two days
Under half a day
Under an hour
Maintenance, no behaviour change
Human decision required; never agent/ready
Documentation only
New capability
Corrects broken behaviour
Infrastructure, deploy, runtime
Investigate; output is a finding, not code
Test coverage only
Milestone
No items
No Milestone
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: mathias/hyperguild#64
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Parent epic: #49 (capture, complete, v0.11.0) · deferred follow-up
Scope
Build the per-harness harvest adapters that assemble
capturearguments (insights,tickets,summary,context) from whatever a given environment exposes as "the session."captureitself is uniform and shipped; harvest is the deliberately-non-uniform front half (the "acceptable per-harness quirk" from #49 — only how args are assembled varies, never what persistence does).The three fidelity tiers
Each harness has a different notion of "the session," yielding different
fidelity:.jsonl/ run-log transcript on disk. Reuse the existingai-sessionsextractors (extract_claude_sessions.py,extract_crush_sessions.py,extract_pi_sessions.py) to parse, then map tocaptureargs. Highest fidelity → its summary supersedes a thinner one for the samesession_ref(server-enforced collision rule).fidelity: live-capture.fidelity: agent-runlog.What to do
capturerequest.ai-sessionsextractors; map their output toinsights/summary.insights(the durable, brain-worthy learnings) are distinguished from raw session content at harvest time — the SKIP-bias / "generalizable learning vs project status" filter (cf. brain-weekly-ingest design).fidelity+session_refare set so the supersession/collision rule works across re-captures of the same session at improving fidelity.Acceptance
fidelity/session_refset so a richer re-capture supersedes a thinner onecaptureRelated
extract_*_sessions.py(the transcript-parse reuse path)DECISION NEEDED — not implemented this sprint.
Question: What's the concrete insight-extraction filter algorithm/schema for harvest-time capture, distinguishing "durable, generalizable learning" from "raw session noise"?
Why this blocks starting: the issue's own acceptance criteria require the filter to be defined and applied before any adapter can emit valid
captureinsightsarguments — without it, an adapter either never fires (a permissive placeholder that never filters) or invents an arbitrary threshold with no product spec behind it. The issue points tobrain-weekly-ingest's SKIP-bias heuristic as precedent but doesn't specify whether that heuristic should be reused as-is, redesigned for harvest-time's different input shape, or deferred.Additional scope note found during research: this issue also spans two repos not present in
mathias/hyperguild— the actualcapturepipeline lives inmathias/brain, and the transcript extractors it's meant to reuse (extract_claude_sessions.pyetc.) live inmathias/ai-sessions. Verifying current extractor signatures/output shape against what a harvest adapter needs has to happen in those repos, not here — a second reason this wasn't attempted blind in this sprint.Options:
brain-weekly-ingest's SKIP-bias heuristic as-is (fastest, but it was designed for a different input shape — weekly digest text, not raw transcripts — verify the underlying "is this generalizable" heuristic actually transfers).Blocks: starting any of the three adapters (transcript-parse, chat-reconstruct, agent-runlog) that must call this filter before emitting
insights.🤖 Generated with Claude Code
Created via git-mcp on behalf of @mathias