-
Notifications
You must be signed in to change notification settings - Fork 0
pause update
Status: Draft, 2026-05-24.
progress.md is policy-blocked from upstream push (per :document: "per-session diary is too noisy for the durable record"). But :pause and :update currently write substantive reasoning — mental context, open questions, decisions, dead-ends — into progress.md, where it is trapped locally.
This document restructures both skills so:
-
progress.mdkeeps only operational state (reproducible fromgit,pwd,date). - Substantive prose moves to
findings.md, which:documentalready pushes upstream as a ticket comment at archive time.
No new upstream-write code paths. The fix uses existing chokepoints.
The ticket-* skills audit identified two skills writing substantive reasoning into progress.md:
-
:pause— appendsLast completed,Next step,Open questions, andMental context worth preserving(3-5 bullets of hypotheses, decisions, dead-ends). -
:update— appendsCompleted since last snapshot,Current state,Next step.
progress.md is explicitly excluded from upstream push by :document. Result: the most reasoning-dense output from :pause is also the most thoroughly trapped locally — the opposite of the traceability policy.
Re-charter the two files to match their actual purpose without creating new upstream-write paths. :document remains the sole chokepoint to Linear / JIRA / GitHub.
-
progress.md= operational state only. Per-session, noisy, never durable. Fully reproducible fromgit status,git log,pwd,date, and short-term memory. -
findings.md= substantive prose. Already pushed upstream by:documentas a ticket comment at archive time. Already correctly named.
- Adding any new upstream-write path.
:documentstays the sole writer to Linear / JIRA / GH. - Backfilling existing
progress.mdfiles. The change applies to new invocations only. - Restructuring
:document,:archive,:plan,:start,:merge, or:pr. They are downstream of this change but unaffected.
Two SKILL.md files only:
slopstop/skills/pause/SKILL.mdslopstop/skills/update/SKILL.md
## Pause $TS
**Branch:** $BRANCH (HEAD: $HEAD)
**cwd:** $PWD
**Working tree:** clean | dirty: N files modified
**Last completed:** <one-line>
**Next step:** <one-line, filename:line if applicable, or "unclear — review last commit">One line per field. No prose subsections. Reproducible from git + short-term memory.
Append a content-titled section (noun-phrase title, not session-titled) only if substantive new context emerged:
## <Short noun-phrase describing the finding / decision / question>
<2–5 sentences. Hypothesis, decision rationale, dead-end and why, or open question.>Skip entirely if nothing substantive emerged. The discipline rule, embedded in the skill body:
"If it would still matter to a future engineer who never saw this session, it's a finding — write it. Otherwise it's diary — leave it out."
Per the multi-ticket design, :pause always prompts:
"What's blocking you on
$TICKET? (Enter 'none' if just stopping.)"
- Answer
none(case-insensitive) or empty: leavestate.tomlunchanged. - Other text: write
state = "blocked",blocked_on = <text>,blocked_since = $TStostate.toml.
After file writes, POST the current findings.md body to the RAG service at /local/sync (per the RAG service design). On connection failure, print a one-line warning and continue — never block the pause.
## Update $TS
**Branch:** $BRANCH (HEAD: $HEAD)
**Working tree:** clean | dirty: N files modified
**Completed since last snapshot:** <one-line>
**Current state:** <one sentence>
**Next step:** <one-line>Same conditional + content-titled rule as :pause.
Same as :pause.
In the ## Rules section:
- Do NOT write reasoning, hypotheses, decisions, or open questions to
progress.md. Those go tofindings.mdas content-titled sections. - If unsure whether something is a finding or a diary entry, prefer findings —
:documentcan decide what to push at archive time; trapped diary is unrecoverable.
- A typical
:pauseinvocation writes ~6 lines toprogress.mdand zero-or-more content-titled sections tofindings.md. - A
:pausethat surfaced no new reasoning produces aprogress.mdentry and nofindings.mdchange. - Reading
progress.mdstandalone tells you where the work was paused. Readingfindings.mdstandalone tells you what was learned. -
:document's existing push logic requires no change — new findings ride the existing path. - Neither skill calls Linear / JIRA directly. The local-sync POST is to the RAG service only, and tolerates failures gracefully.
No backfill. New invocations follow the new template; existing entries in progress.md files stay as-is. The next :archive pushes whatever findings.md currently holds — the right behavior.
If a project has existing progress.md files with reasoning trapped in them, the user can manually move those sections into findings.md before the next archive. No automation provided.
-
Multi-ticket design —
:pauseno longer clearsCURRENT-$PREFIX(the file no longer exists); selection lives in the git branch. The blocker prompt rule comes from this doc. -
RAG service design — the
/local/syncpush relies on the RAG endpoint; calls degrade gracefully.
Neither prerequisite blocks this restructure. The restructure can ship in isolation; without the RAG running, the /local/sync call simply warns and returns.