← ClaudeAtlas

dhpk-opsx-post-observationlisted

Post a session observation to claude-mem from opsx-apply-resume Save Phase — builds a JSON payload and runs post-obs.sh as a non-blocking background post (the caller collects the result before the handoff write, so the POST overlaps Save-Phase Steps 4–6). Use when: opsx-apply-resume Save Phase Step 3b, right after compact-save extracts L0/session_goal/completed/key_decisions. Not for: loading Resume context (use dhpk-opsx-load-context) or goal generation (use dhpk-opsx-apply-goal). Output: OBS_PID + OBS_RESULT_FILE path for the caller to wait on.
hmj1026/dhpk · ★ 2 · Data & Documents · score 71
Install: claude install-skill hmj1026/dhpk
# opsx-post-obs Non-blocking background observer for `opsx-apply-resume` Save Phase — the POST overlaps Steps 4–6 and the caller collects its result before the handoff write (it is *not* truly fire-and-forget: the obs_id feeds the handoff frontmatter). Called with compact-save output fields; posts an observation to the claude-mem worker without blocking the main Save Phase flow. ## When NOT to Use - Loading Resume Phase context → use `dhpk-opsx-load-context` - Generating a `/goal` condition for a fresh session → use `dhpk-opsx-apply-goal` - Outside Save Phase Step 3b (do not post observations mid-implementation) ## Inputs | Variable | Source | Description | |----------|--------|-------------| | `title` | L0 from extract-compact | One-liner session headline | | `content` | Concatenation of compact fields | session_goal + in_progress[].task + key_decisions[].decision + reason + failed_approaches[].lesson;各欄位以 `\n` 分隔,組成單一字串 | | `concepts` | Caller provides | Array: `[<change_id>, <stage>, <wave>, "opsx-apply-resume"]` — stage 和 wave 從 L0 解析(見下方 Notes) | ### Notes:從 L0 解析 stage / wave L0 格式範例:`Phase 7 Stage S9c.8.8 Wave C: saveReceipt_new record_mo support` - `stage` = 正則抓取 `Stage (S[\w.]+)` → 小寫化加前綴,例如 `stage-s9c.8.8` - `wave` = 正則抓取 `Wave ([A-Z])` → 小寫化加前綴,例如 `wave-c` - 解析失敗時省略 stage / wave,保留 `[<change_id>, "opsx-apply-resume"]`(見 Guardrails) ## Step 1 — Build payload JSON Compose a JSON object: ```json { "title": "<title>", "content": "<content — multi-line OK