sync batch-datagen memory L13 to pid-file launch contract
Highlight text on any card (body, plan, or an event) to anchor a comment, or leave a whole-task comment here. Mention @claude to summon a reply.
No comments yet.
Overview / Motivation
Auto-filed by the /daily Step-C parked-candidate routing pass (2026-07-09) from a recursion-guard-parked workflow-fix candidate raised on task #1200.
Goal
Add setsid to the L13 launch recipe and point the pid capture at the launcher-internal echo $$ > / atomic tmp+mv contract forms.
Workflow gap
- Bug observed: L13 ('How to apply' step 1) prescribes a nohup launch recipe lacking setsid and with an unspecified pid-capture method — after #1200 it is the last experimenter memory prescribing a non-trio launch (verified still present on main). #1200's acceptance grep did not catch it (no
echo $! >literal); pre-existing and outside #1200's fenced two-file scope. - Why it is a workflow gap: Agent memories are always-loaded workflow surface steering the experimenter; a memory prescribing a non-setsid launch recipe will be copied verbatim, re-introducing the SIGHUP-reap class the pid-file launch contract (pod-side-reporting.md, #1070) closed.
- Confidence (emitter): medium
Proposed change (candidate diff sketch — refine in planning)
-
- Launch with full
nohup ... < /dev/null > log 2>&1 &, capture the PID, ...
-
- Launch with full
setsid nohup ... < /dev/null > log 2>&1 &, capture the PID per the pid-file launch contract (launcher-internalecho $$ >pre-exec, or atomic tmp+mv), ...
- Launch with full
- Launch with full
Scope / surfaces
- Primary target:
.claude/agent-memory/experimenter/feedback_datagen_anthropic_batch_long_running.md
Constraints / invariants
- Workflow-surface only.
scripts/workflow_lint.py --check-askspasses; ruff on touched files passes. - This session runs under EPM_WORKFLOW_FIX_SESSION=1 semantics (workflow_fix_target Provenance line) — it MUST NOT auto-route its own subagents' workflow-fix candidates.
Provenance
- workflow_fix_target: .claude/agent-memory/experimenter/feedback_datagen_anthropic_batch_long_running.md
- fingerprint: 35e9ec429bb9
Workflow-fix candidate received from Alternatives critic (Phase 2, plan v1 review) — PARKED, NOT ROUTED: this session runs under the workflow-fix recursion guard (task #1200 carries a workflow_fix_target: Provenance line; see .claude/rules/workflow-fix-on-bug.md § Recursion guard). routed: parked: EPM_WORKFLOW_FIX_SESSION. Next human/orchestrator pass may file it. source: prose-followup
target_file: .claude/agent-memory/experimenter/feedback_datagen_anthropic_batch_long_running.md
bug_observed: L13 PRESCRIBES a launch recipe ("Launch with full nohup ... < /dev/null > log 2>&1 &, capture the PID") lacking setsid and with an unspecified pid-capture method — after #1200 lands it is the last experimenter memory prescribing a non-trio launch. No echo $! > literal, so #1200's acceptance grep does not catch it; pre-existing and outside #1200's fenced two-file scope.
why_workflow_gap: Agent memories are always-loaded workflow surface steering the experimenter; a memory prescribing a non-setsid launch recipe will be copied verbatim, re-introducing the SIGHUP-reap class the pid-file launch contract (pod-side-reporting.md, #1070) closed.
proposed_change: Add setsid to the L13 launch recipe and point the pid capture at the launcher-internal echo $$ > / atomic tmp+mv contract forms.
diff_sketch: |
-
- Launch with full
nohup ... < /dev/null > log 2>&1 &, capture the PID, ...
- Launch with full
-
- Launch with full
setsid nohup ... < /dev/null > log 2>&1 &, capture the PID per the pid-file launch contract (launcher-internalecho $$ >pre-exec, or atomic tmp+mv), ... confidence: medium related_task: #1200
- Launch with full