microsoft / microsoft/amplifier-bundle-attractor
Upstream observation: session:start records no invocation provenance (argv/mode/isatty/launched_by) — human-vs-agent classification is heuristic-only
- Dominant language
- Python
- Stars
- 8
- Forks
- 5
- Avg merge
- 28m
- Merged PRs (30d)
- 49
Description
## Observation (vision-observation class; foundation-level, filed here per the #256 precedent — the foundation tracker is disabled)
Two independent forensic investigations of a real local corpus (46,715 sessions; CI-graph + local-file), run while building attractor-scout's session-provenance layer (PR #307), converged on this finding:
**No positive human marker exists in recorded session data.** The `session:start` payload carries only `{parent_id, redaction, session_id, timestamp}` — no `argv`, no `--mode`, no `stdin.isatty()`, no `launched_by_session_id`. A harness-fired `amplifier run --mode single` root session is byte-indistinguishable from a human typing at a keyboard: same event shapes, same `prompt:submit` events, empty `parent_id` by design.
## Why it matters
Any tool that mines a user's own session history (attractor-scout is the first; personalization/onboarding tooling generally will follow) cannot distinguish "work the human did" from "work an agent did on their behalf" except by heuristics. PR #307 ships a measured classification ladder (definitive agent signals: parent linkage, composite sid shape, first-event `session:fork`, orchestration events; then workspace/cadence heuristics) — but its named residual bypass is structural: **a harness that paces its prompts like a human in a stable workspace is indistinguishable in today's data.** The HOME-workspace one-shot band measured ~21–29% agent-contaminated and had to be classified UNKNOWN.
## The fix shape (one boolean collapses the whole heuristic tier)
Record at `session:start` (foundation/app-cli seam):
- `argv` / invocation mode (`interactive` vs `single`/batch)
- `stdin.isatty()`
- `launched_by_session_id` when a session is programmatically driven by another
Downstream consumers then get a definitive test instead of a ladder of measured heuristics.
## Provenance
Investigation and measured accuracies: `docs/designs/2026-08-20-scout-session-provenance.md` (this repo). Consumer that needs it today: `skills/attractor-scout/scripts/attractor_scout/provenance.py`.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with docs/designs/2026-08-20-scout-session-provenance.md and skills/attractor-scout/scripts/attractor_scout/provenance.py, then trace the foundation/app-cli seam where session:start is emitted. Review the existing payload and entry points; done means invocation context and programmatic launch provenance are recorded for downstream consumers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, cli
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100