Skip to content

Parallelize webjs-blog-write's dogfood verification and de-dup sweep #1165

Description

@vivek7405

Problem

webjs-blog-write mandates two verifications that run serially in the main session. The de-duplication check reads every existing post under blog/ before writing. The dogfood verification (step 3, L94) scaffolds a real app, boots it on Node AND Bun for runtime-sensitive claims, and probes every factual claim with curl or a browser before a feature post ships. The boots and probes are independent processes and the claim list is independent checks, yet the skill implies one serial pass, which in practice makes the mandatory verification feel expensive enough to shortcut, and an unverified claim shipping is the exact failure the step exists to prevent.

Design / approach

Two amendments to .claude/skills/webjs-blog-write/SKILL.md:

  1. The de-dup check fans out as a single read-only Explore agent over blog/ returning per-post topic summaries (one agent, since the corpus is small; the win is keeping the main context clean, not parallelism).
  2. Step 3's dogfood verification runs its independent parts as one batch of background Bash tasks: the Node boot and the Bun boot in parallel, and the per-claim probes against whichever boot they need, with EVERY task's result collected before the post is declared verified. A claim that needs a browser probe stays in the main session (the browser MCP is not shareable across background tasks).

Implementation notes (for the implementing agent)

  • Where to edit: .claude/skills/webjs-blog-write/SKILL.md, the de-dup convention (grep "de-duplication check against every existing post" in the frontmatter description and its body section) and step 3 (grep "verify every factual claim by dogfooding", L94).
  • Landmine: step 3's "Node AND Bun where the claim is runtime-sensitive" is load-bearing (Support both Bun and Node runtimes (first-class create + run) #508 parity); the parallel shape must keep both boots mandatory, not let one satisfy the other.
  • Landmine: the skill's prose rules (no em-dashes, no internal issue/PR numbers in posts) apply to the POSTS, while invariant 11 applies to the skill's own prose; keep the two rule sets distinct when editing near them.
  • Landmine: mirror to ~/.claude/skills/webjs-blog-write/SKILL.md in the same change, diff -q afterwards.
  • Tests / docs: node --test test/hooks/route-skills.test.mjs still passes; no other surface.

Acceptance criteria

  • The de-dup sweep is delegated to a read-only Explore agent returning per-post summaries
  • Step 3 boots Node and Bun as parallel background tasks and runs claim probes against them, collecting every result before the post is called verified
  • Browser-dependent probes are explicitly kept in the main session
  • The Node-AND-Bun mandate is unchanged in force
  • Both copies identical (diff -q)

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions