diff options
| author | Craig Jennings <c@cjennings.net> | 2026-07-16 16:30:37 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-07-16 16:30:37 -0500 |
| commit | 0cc12564e89e977d849c6423b1218201e69ba15c (patch) | |
| tree | b9fe3361df860cac8ce2f657c8a4b57c133f91c7 /docs/specs/2026-07-14-sentry-workflow-spec.org | |
| parent | bd76d98b871bda74ff790da609c16c5404e31f65 (diff) | |
| download | rulesets-0cc12564e89e977d849c6423b1218201e69ba15c.tar.gz rulesets-0cc12564e89e977d849c6423b1218201e69ba15c.zip | |
Decision 10 was sitting at the bottom of Review findings. It's written in Context/Decision/Consequences shape, unlike the Resolved-notes around it, and the finding at "Per-pass commits skip the pre-commit suite run" points at it by name, so the pointer was there and the target was in the wrong section.
That one misfiling made both cookies lie. Decisions read [10/10] by hand while org would have computed [9/9]. Review findings read [/], uncomputed, and would have resolved to 13, which was 12 findings plus the stray decision. Moving it and letting org recompute gives [10/10] and [12/12], both live.
Nothing was lost. Every decision and finding was present and resolved. But the readiness gate reads those cookies, and a spec about to be graded on them shouldn't carry one that's stale and one that's dead.
Diffstat (limited to 'docs/specs/2026-07-14-sentry-workflow-spec.org')
| -rw-r--r-- | docs/specs/2026-07-14-sentry-workflow-spec.org | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/docs/specs/2026-07-14-sentry-workflow-spec.org b/docs/specs/2026-07-14-sentry-workflow-spec.org index a3d5a89..fe1c155 100644 --- a/docs/specs/2026-07-14-sentry-workflow-spec.org +++ b/docs/specs/2026-07-14-sentry-workflow-spec.org @@ -164,7 +164,12 @@ In the morning you review the sentry/<date>-<host> branch (a stack of small unpu - Decision: We will open every pass with a cheap existence probe and skip with one digest line when the target is absent. - Consequences: easier — zero config, passes self-activate when targets appear. Harder — an intentionally-unwanted pass needs a vNext exclusion marker if that ever becomes real. -* Review findings [/] +** DONE Suite policy: entry run plus conditional fire-end run, no per-pass runs +- Context: the verification discipline requires a full suite run before every commit, but sentry commits per pass, hourly, mostly touching org files the suite doesn't exercise; a per-commit run would turn a seconds-long fire into minutes, all night. +- Decision: We will run the suite once at entry (the green baseline the gates require) and again at fire-end only when a pass modified files outside the org/spine set. No per-pass runs. The deviation is justified by the unpushed branch and the morning review gating everything before push. +- Consequences: easier — idle fires stay cheap and the rare code-touching pass is still caught before its commits age. Harder — a suite break introduced by an org-only edit (possible via fixtures) surfaces at morning review rather than at the offending commit. + +* Review findings [12/12] ** DONE Overnight working-tree ownership is undefined Resolved 2026-07-14 (Craig): launch contract with in-place checkout. Launching sentry hands the repo to sentry until the morning merge; reclaiming it mid-night means stopping the loop first. The entry gate (clean tree, Craig present) fronts the handoff, the unattended dirty-skip backstops anything that slips, and the workflow documents the Emacs buffer-revert caveat at launch and after the morning merge. Worktree isolation was rejected because untracked inbox drops exist only in the main tree, which blinds the inbox pass; plumbing commits were rejected as fragile. @@ -202,11 +207,6 @@ Resolved 2026-07-14 (Craig): adopted. After the entry gates pass, sentry runs th ** DONE Multi-day unmerged branch stalls hygiene silently Resolved 2026-07-14 (Craig): adopted. After the second consecutive fire skipped for the unmerged-branch reason, sentry sends one persistent desktop notification naming the project and branch ("sentry stalled: <branch> unmerged — merge or delete to resume"), then repeats at most daily. Persistent notify matches the paging convention: it stays on screen until dismissed. -** DONE Suite policy: entry run plus conditional fire-end run, no per-pass runs -- Context: the verification discipline requires a full suite run before every commit, but sentry commits per pass, hourly, mostly touching org files the suite doesn't exercise; a per-commit run would turn a seconds-long fire into minutes, all night. -- Decision: We will run the suite once at entry (the green baseline the gates require) and again at fire-end only when a pass modified files outside the org/spine set. No per-pass runs. The deviation is justified by the unpushed branch and the morning review gating everything before push. -- Consequences: easier — idle fires stay cheap and the rare code-touching pass is still caught before its commits age. Harder — a suite break introduced by an org-only edit (possible via fixtures) surfaces at morning review rather than at the offending commit. - * Implementation phases ** Phase 1 — agent-lock helper |
