[object Object]

← back to Cli Printing Press

fix(skills): add mandatory publish checkpoint after archive (#88)

dfc20ac02fbad531b80b667ba801bf06c4d5f9b3 · 2026-03-30 20:43:28 -0700 · Matt Van Horn

The LLM printed a summary after archiving and treated the run as done,
never offering Phase 6 (Publish). Same pattern as codex detection and
sniff gate skipping.

Add mandatory checkpoint after Phase 5.5 archive forcing evaluation of
Phase 6. Add reinforcement at top of Phase 6 that it's not optional.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

Files touched

Diff

commit dfc20ac02fbad531b80b667ba801bf06c4d5f9b3
Author: Matt Van Horn <mvanhorn@users.noreply.github.com>
Date:   Mon Mar 30 20:43:28 2026 -0700

    fix(skills): add mandatory publish checkpoint after archive (#88)
    
    The LLM printed a summary after archiving and treated the run as done,
    never offering Phase 6 (Publish). Same pattern as codex detection and
    sniff gate skipping.
    
    Add mandatory checkpoint after Phase 5.5 archive forcing evaluation of
    Phase 6. Add reinforcement at top of Phase 6 that it's not optional.
    
    Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---
 ...2026-03-30-010-fix-publish-gate-skipped-plan.md | 48 ++++++++++++++++++++++
 skills/printing-press/SKILL.md                     |  4 ++
 2 files changed, 52 insertions(+)

diff --git a/docs/plans/2026-03-30-010-fix-publish-gate-skipped-plan.md b/docs/plans/2026-03-30-010-fix-publish-gate-skipped-plan.md
new file mode 100644
index 00000000..2b8b7c3d
--- /dev/null
+++ b/docs/plans/2026-03-30-010-fix-publish-gate-skipped-plan.md
@@ -0,0 +1,48 @@
+---
+title: "fix: Phase 6 (Publish) skipped after shipcheck"
+type: fix
+status: active
+date: 2026-03-30
+---
+
+# fix: Phase 6 (Publish) skipped after shipcheck
+
+## Overview
+
+Add a mandatory checkpoint after Phase 5.5 (Archive) that forces the LLM to evaluate Phase 6 (Publish). The LLM currently prints a summary report after archiving and treats that as the end of the run, never offering to publish.
+
+## Problem Frame
+
+In the Redfin run, the skill executor completed Phase 4 (Shipcheck: 81/100, ship-with-gaps), Phase 5 (skipped live smoke), Phase 5.5 (archived manuscripts), then printed a summary and stopped. Phase 6 (Publish) exists in the skill with clear instructions to offer publish via AskUserQuestion, but the LLM never reached it.
+
+Same pattern as codex detection and sniff gate: after producing a large output (the summary report), the LLM treats the conversation as finished. The publish phase exists in the file but gets silently skipped.
+
+## Requirements Trace
+
+- R1. After archiving, the LLM must evaluate Phase 6 (Publish) for every run with a ship or ship-with-gaps verdict
+- R2. The user must be asked whether to publish via AskUserQuestion - the run should not end silently
+
+## Scope Boundaries
+
+- Only modifying `skills/printing-press/SKILL.md`
+- Not changing publish behavior, just ensuring the offer happens
+
+## Implementation Units
+
+- [ ] **Unit 1: Add mandatory publish checkpoint after archive**
+
+  **Goal:** Force the LLM to evaluate Phase 6 after archiving.
+
+  **Requirements:** R1, R2
+
+  **Files:**
+  - Modify: `skills/printing-press/SKILL.md`
+
+  **Approach:**
+  - After the Phase 5.5 archive bash block (around line 1516), add a bolded mandatory checkpoint:
+    "MANDATORY: After archiving, you MUST proceed to Phase 6 (Publish). Do not print a summary and stop. Do not treat archiving as the end of the run. The run ends when the user has been asked about publishing."
+  - At the top of Phase 6, add reinforcement: "This phase is NOT optional. Every run with a ship or ship-with-gaps verdict MUST reach this point."
+
+  **Verification:**
+  - Mandatory checkpoint text appears between Phase 5.5 and Phase 6
+  - Phase 6 has reinforcement text that it's not optional
diff --git a/skills/printing-press/SKILL.md b/skills/printing-press/SKILL.md
index 7a589155..60a19269 100644
--- a/skills/printing-press/SKILL.md
+++ b/skills/printing-press/SKILL.md
@@ -1515,8 +1515,12 @@ if [ -d "$DISCOVERY_DIR" ]; then
 fi
 ```
 
+**MANDATORY: After archiving, you MUST proceed to Phase 6 (Publish) below. Do not print a summary and stop. Do not treat archiving as the end of the run. The run ends when the user has been asked about publishing (or the verdict is `hold`).**
+
 ## Phase 6: Publish
 
+**This phase is NOT optional.** Every run with a `ship` or `ship-with-gaps` verdict MUST reach this point. Do not skip it.
+
 After archiving, offer to publish the CLI to the library repo.
 
 ### Gate

← d289a892 feat(skills): auto-brainstorm features before absorb gate (#  ·  back to Cli Printing Press  ·  fix(cli): filter crowd-sniff auth env var hints by API name 7f02e107 →