Conversation
… and a correction (#57) exit-code-integrity — a pipeline reports the LAST command's status, so `check | tail` turns a failing check into a passing one. Four incidents in one codebase, the last of them printing BUILD OK over a build whose failure text was three lines above the word OK. verify-the-artifact — source is a claim about behaviour; only the running artifact is evidence. A CSS rule was written, commented in its own defence, reviewed and shipped without ever applying once, because a container rule out-specified it. Reading the file cannot answer 'does this rule apply' — that is decided by every other rule. testing-interactions-over-time — ten defects surfaced in the first real human session of a well-tested editor, and none had been found by any test. All were interactions across time. State tests have one actor and one moment; these bugs need two of each, so adding more of them leaves coverage of the class at zero. worktree-isolation gains the bare-primary exception: the skill's own location rule puts worktrees inside the git directory when the primary clone is bare, which makes every go build fail with an error naming VCS stamping rather than anything about worktrees.
… reviewed (v0.1.6) (#58) draft-post's template stamped <!-- DRAFT — produced by /ghost:draft-post. Run /ghost:revise-post to refine. --> as the first line of every draft body. Drafts are reviewed in galley, which REFUSES raw HTML outright — and an HTML comment is raw HTML. So every draft this skill produced was unopenable for review before the author had typed a character: the tool put the blocker in ahead of the writing. Measured rather than reasoned, against a real corpus: 19 of 24 drafts in ghost-site refused, every one on that banner, at lines 7-11. Not scattered content — one generated line, in every file. The provenance moves into front matter as `generator` and `next`. galley parses and skips front matter, and push-draft reads named keys and ignores the rest, so nothing downstream needs teaching and the note survives. Proved both directions with the real binary: the old shape refuses at line 8, the new shape opens. This is the second half of a fix whose first half landed in ghost-site — that repo's style guide and create-blog-post skill now separate a prose-only draft from a publish-prep transform that adds the HTML tables and card markers Ghost wants. Fixing the rules without fixing the generator would have left every new draft broken anyway, which is why this half exists. The comment above the template says not to put an HTML comment back, and why. Claude-Session: https://claude.ai/code/session_01YNgqJnFLD1gunVWy5bHNAT
…sses (#59) Written 2026-07-15 and left uncommitted in the working tree since. Landing it as its own commit rather than folding it into an unrelated fix — it is a complete, deliberate change and deserves its own line in the history. A matched pair, which is why both files move together: draft-post's Phase 5 tell list and revise-post's Axis 2 checklist are the same rules read at two moments, and a rule in one and not the other is a rule the second pass quietly un-applies. The rule: pre-emptive explanation of mechanisms, alternatives, dead ends or edge cases the reader did not need is a cut. One clause of warning is the ceiling for a dead end, and only where the reader would plausibly hit it. A sentence that exists to head off a hypothetical objection goes. Claude-Session: https://claude.ai/code/session_01YNgqJnFLD1gunVWy5bHNAT
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Promotion.
ghost0.1.5 → 0.1.6.The headline is that no draft this plugin produced could be reviewed.
draft-post's template stamped<!-- DRAFT — produced by /ghost:draft-post … -->as the first line of every draft body, and galley — the review surface those drafts go into — refuses raw HTML outright. An HTML comment is raw HTML. Measured against a real corpus: 19 of 24 drafts in ghost-site refused, every one on that banner line. The tool put the blocker in before the author typed a character.Provenance now rides in front matter (
generator,next), which galley parses and skips andpush-draftignores. Proved both directions with the real binary: old shape refuses at line 8, new shape opens.Also in this promotion:
exit-code-integrityamong them), plus a correction. Open since Aug 8, CI green.Companion change, different repo
ghost-siteseparately split its blog workflow so a draft is prose-only markdown and the HTML tables plus<!-- card -->markers are added by a publish-prep transform after review. Neither half works alone: fixing the authoring rules while the generator still wrote HTML into the file would have left every new draft broken anyway. That gap was caught by running galley against the corpus, not by reviewing the spec.https://claude.ai/code/session_01YNgqJnFLD1gunVWy5bHNAT