Back to Prisma

Brief: S2-D3 — live TTY evidence

projects/agent-native/slices/generate-skill-offer/briefs/d3-r1.md

7.9.0-dev.172.5 KB
Original Source

Brief: S2-D3 — live TTY evidence

Pre-staged during S2-D2's run; confirm against its report before issuing.

Task

Prove the offer end-to-end under a real pty and return the slice-DoD captures.

Environment setup (load-bearing — two silent-suppression traps)

Isolate persistence per run by overriding the config dir (XDG_CONFIG_HOME on Linux is what env-paths('prisma') reads). Then, in that isolated dir:

  1. Pre-create the directoryloadOrInitializeCommandState writes commands.json without mkdir -p; a failing write silently suppresses the prompt (reviewer note, S2-D1).
  2. Seed commands.json with an old firstCommandTimestamp (e.g. 30 days ago) — the daysSinceFirstCommand >= 1 gate would otherwise see a fresh timestamp and silently suppress the prompt.

Also ensure the scratch project has a generated-client setup that lets prisma generate succeed (built CLI from the worktree; minimal schema + config as in S1's captures), and that the env doesn't trip the CI/container gates (env -i with a curated PATH/HOME as before — note isInContainer checks /.dockerenv etc.; if the sandbox itself trips it, capture that fact and surface — do not fake the gate away silently).

Completed when

  • Under script -qec (real pty): first prisma generate in the scratch project prints the offer; answering n writes skills-offer.json with outcome: "declined"; a second run prompts nothing. Captured: commands, trimmed output, the acknowledgement file's content.
  • Accept path once (fresh isolated config dir): answering y runs S1's installer; skills land in the scratch project (find listing); outcome: "accepted". Captured.
  • Non-TTY run (no pty, e.g. plain pipe): no prompt, generate output otherwise normal. Captured.
  • NPS mutual exclusion observed: in the run where the offer prompted, no NPS survey question appeared (note: the NPS remote-timeframe fetch may make NPS a no-op anyway — state what was observed either way).
  • All captures under ## Verification evidence in your report; code changes only if the live runs prove something broken (separate commit + report; I12 rules apply).

Constraints (terse)

Explicit staging if any commit; no push; heartbeats around the build and each live run.

  • Time-box: 35 minutes.
  • Halt conditions: a gate mis-fires in ways the spec didn't anticipate (I12 — surface with evidence, do not patch gates to make the demo pass); network unavailable for the accept path.