projects/agent-native/slices/generate-skill-offer/briefs/d3-r1.md
Pre-staged during S2-D2's run; confirm against its report before issuing.
Prove the offer end-to-end under a real pty and return the slice-DoD captures.
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:
loadOrInitializeCommandState writes commands.json
without mkdir -p; a failing write silently suppresses the prompt (reviewer note,
S2-D1).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).
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.y runs S1's installer;
skills land in the scratch project (find listing); outcome: "accepted". Captured.## Verification evidence in your report; code changes only if the
live runs prove something broken (separate commit + report; I12 rules apply).Explicit staging if any commit; no push; heartbeats around the build and each live run.