← 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
A docs/plans/2026-03-30-010-fix-publish-gate-skipped-plan.mdM skills/printing-press/SKILL.md
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 →