Back to catalogue

Blog Refinement Loop

Content Creator Official v1.1.29

Write, review, and revise a blog post iteratively until it meets your quality criteria

by skrptiq

blogging loops review writing
workflow Updated 18 July 2026 6 nodes 49 downloads

Sign in to import this skrpt into your workspace.

Sign in
What's included 6 nodes
1 workflow 1 skill 3 prompts 1 asset
workflow (1)

Blog Refinement Loop

Write, review, and revise a blog post iteratively until it meets your quality criteria

skill (1)

Revision Synthesis

Produces the final blog post with a summary of revisions made across loop iterations

prompts (3)

Draft Blog Post

Writes or revises a blog post based on the topic brief and any previous review feedback

Review Blog Post

Evaluates a blog post against six quality criteria and produces a structured pass/continue/fail verdict

Synthesize Revisions

Produces the final blog post with a summary of revisions made across iterations

asset (1)

Blog Quality Criteria

Reference card defining the six quality criteria used by the editorial review verifier

Requirements 1 service
Services
  • LLM Service
Security Passed
All checks passed v1.1.29 · scanner v3.3.0

Detected

  • Services: llm-service
  • Permissions:
  • Data Handling:
Version history 21 releases
v1.1.29 latest 18 July 2026

GH#858 (A2, Hub half) — stop the loop from leaking engine internals into the blog post. On the first iteration `{{loop.lastOutput}}`/`{{loop.lastReview}}` have no prior value, and the draft prompt invited the model to reason about whatever appeared there — so it narrated the empty-binding placeholder into the draft ("`__SKRPTIQ_INVALID_INPUT__` does not apply here…"). Hardened `draft-blog-post` to treat an empty/placeholder/system-token value in those slots as genuinely absent (first iteration) and to **never quote, echo, or comment on** the contents of those slots. Also tightened `review-blog-post`: moved the scoring guidance ahead of the output block so no prose trails the JSON, and pinned it to emit a single valid JSON object and nothing else (the run had shown *"verifier output unparseable (treated as continue)"*). No structural/graph change. (The engine-side sentinel-in-output and unparseable-verifier→silent-continue behaviours are tracked separately in #859.)

v1.1.28 16 July 2026

GH#845 — republish with American English (en-US) content, completing the source-only GH#805 flip that never reached the Hub. Copy only — no functional or behaviour change.

v1.1.27 2 July 2026

Fix-forward after Row 3b v1.1.26 publish failure. The v1.1.26 per-skrpt CI's "Register version with Hub API" step failed because the consumer's source `manifest.id` (e3cbad80…) did not match the D1 catalogue row's id (bfb6caea…) — a legacy drift from before Action 6 (`0bcc5ae0`) made publish-skrpt.mjs Step 2 INSERT use `manifest.id` for the D1 id column. v1.1.27 reconciles the source `manifest.id` to the catalogue authoritative value (Row-5-equivalent for consumers) and republishes. Per Adj-1: no re-tag of v1.1.26; the orphaned GitHub release artefact stays inert (no D1 versions row, no consumer pinned it).

v1.1.25 4 June 2026

GH#638 Row 11 cascade — repin dep block to v1.0.1 of all 5 shared deps. Row 11 republished `hub-shared-draft-blog-revision`, `hub-shared-editorial-review`, `hub-shared-language-polish`, `hub-shared-llm-service`, and `hub-shared-polish-language` at v1.0.1 with each dep bundle's `manifest.id` aligned to the Hub catalogue UUID. v1.1.24 was pinned at v1.0.0 of each (pre-K-037 manifest.id, which engine STEP 4d correctly rejected). v1.1.25 pins v1.0.1 with the new checksums from the catalogue. No consumer-side content changes; UUID-version-checksum repin only.

v1.1.24 4 June 2026

GH#638 Row 9 — fix-forward republish after v1.1.23 CI race. v1.1.23 pushed + tagged in the consumer repo, but the per-skrpt CI's `caller-release.yml` `Download CLI` step fetched `/releases/latest` while CLI was still at v0.0.17 (pre-K-037); structural validation rejected the UUID `dependencies[].id` with `dependency.unsupported_id_prefix`. CLI v0.0.18 (K-037-aware) is now live on `releases/latest` as of 2026-06-04 05:02 UTC. No content changes from v1.1.23; identical UUID-pinned dep block; this republish lets CI fetch v0.0.18 and complete the sign+release chain.

v1.1.22 2 June 2026

GH#625 Step 3 (Path B pilot): migrated 5 inline-vendored shared slugs to dep-references against the `hub-shared/*` catalogue. Removed inline copies of: language-polish, llm-service, polish-language, editorial-review, blog-drafting. blog-drafting pivots to `hub-shared/draft-blog-revision` (this bundle's variant of the rename pair from `blog-drafting` slug-collision per audit E2). Internal workflow + prompt edges that referenced `blog-drafting` rewritten to `draft-blog-revision` (5 occurrences).

v1.1.21 22 May 2026

Wave 2: re-signed with canonical engine signing pipeline.

v1.1.18 19 May 2026

Signature fix — RELEASE_NOTES.md now included in integrity checksum.

v1.1.17 19 May 2026

Initial catalogue release with full structural and content-quality validation. All scanner checks pass.

v1.1.16 18 May 2026

Release notes unavailable for this version.

v1.1.15 14 May 2026

Release notes unavailable for this version.

v1.1.14 14 May 2026

Release notes unavailable for this version.

v1.1.13 13 May 2026

Release notes unavailable for this version.

v1.1.12 11 May 2026

Release notes unavailable for this version.

v1.1.11 27 April 2026

Release notes unavailable for this version.

v1.1.10 25 April 2026

Release notes unavailable for this version.

v1.1.9 16 April 2026

Release notes unavailable for this version.

v1.1.8 16 April 2026

Release notes unavailable for this version.

v1.1.7 14 April 2026

Release notes unavailable for this version.

v1.1.6 13 April 2026

Release notes unavailable for this version.

v1.0.0 5 April 2026

Release notes unavailable for this version.

More from Content Creator

View all →

Send feedback

Sign in to send feedback — it lets us follow up and keeps the tracker free of spam.