fix(pstack): create-verification-skill readiness means the app is usable

Merged
PO
6d ago
+3-3

Supersedes #501. Thanks to @sidneyvanness for finding and measuring this. The commit credits them with a Co-authored-by: trailer.

Why

create-verification-skill lists "a port answering" as a sign that the app is ready. In #501, a database socket was up at 3 s, but init finished at 19 s. A generated verification skill can start to drive the app 16 s too early and fail on state that does not exist yet.

What changes

One file: pstack/skills/create-verification-skill/SKILL.md. The rules come from #501, in shorter sentences.

  • Step 2, Launch: launch must reach a usable state from an empty data dir, including any migrations and seed data. Ready means usable, not just that a process answers. "a port answering" is removed from the ready examples, because it contradicts this rule.
  • Step 3: if the seed data cannot satisfy a journey, the journey reports a failure, and the reason goes in that feature's Gotchas. Do not weaken the journey to make it pass.
  • Step 4: if the proof ran in a stand-in for the real target, list the setup steps that the stand-in did and the target will not do. Those steps stay unverified until a run on the real target covers them.

Differences from #501

  • Removes "a port answering" from the Launch ready examples.
  • Puts the seed-data sentence in step 3, next to the Gotchas H2 of the feature map. In #501 it is a Gotchas bullet in the step 2 list of SKILL.md sections, so generators would add an extra section to the generated SKILL.md.
  • In that rule, "Never weaken the journey until it passes" became "Never weaken the journey to make it pass", as its own sentence. The old text can mean that weakening is acceptable after the journey passes.
  • Splits the added sentences so each carries one rule, with no semicolons or mid-sentence colons.
  • No version bump.

Verification

  • node scripts/validate-plugins.mjs passes.
  • rg "port answering" pstack/ finds nothing.
  • The added text is plain ASCII. The added text has no em dashes and no mid-sentence colons.
Open in Web Open in Cursor