Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .claude/skills/pagekit-claim-check/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,11 @@ A strong claim-check pass:
- separates claim types (overclaim / vague / unsupported / outrun proof map / editorial voice / unsourced quantitative / clinical drift / ai-slop tell)
- proposes replacements that are sharper and more accurate than the originals — not simply softer
- ends with a recurring-patterns summary so upstream constraints can absorb them

## Next
Do not stop at claim-check. Continue:

1. Write `runs/<name>/evaluation.md` — the run's own honest read of what worked, what stayed thin, where outputs drifted generic.
2. Invoke **`pagekit-evaluator-pass`** to produce the adversarial second read.
3. Ensure `runs/<name>/working-log.md` has real entries per step (replace all scaffold `*[Fill in]*` placeholders).
4. Invoke **`pagekit-run-check`** — it must return `tier: FULLY LOGGED` or `tier: PUBLISHABLE` before the run is done.
3 changes: 3 additions & 0 deletions .claude/skills/pagekit-first-page-decision/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,6 @@ If the chosen page is "homepage," the rationale must explain why homepage actual
## When to escalate to the user
- The decision is genuinely close between two candidates: surface both, ask for input.
- Mechanism / proof / comparison briefs are missing for a trust-heavy object: ask for them before deciding.

## Next
After the decision is in place, invoke **`pagekit-page-argument-shape`** (step 04). Do not stop here.
12 changes: 12 additions & 0 deletions .claude/skills/pagekit-first-page-draft/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,15 @@ A strong draft:
- passes `scripts/slop-check.sh` clean before being handed to step 07

If the draft is weak: stop, ask what upstream artifact is too thin. Rarely fix at the draft level — fix at the source.

## Next
**The draft is not the deliverable. The logged run is.** After the draft is clean, do not stop. Continue the chain:

1. Invoke **`pagekit-slop-check`** on the draft. Resolve any flags.
2. Invoke **`pagekit-claim-check`** (step 07) at a severity you choose and log. This produces `claim-check.md` and, if any line was rewritten, `first-page-draft-corrected.md`.
3. Write `evaluation.md` — the run's own honest read of what worked and what stayed thin.
4. Invoke **`pagekit-evaluator-pass`** to produce `evaluator-pass.md` — the adversarial second read.
5. Fill in `working-log.md` across every step (not the scaffold `*[Fill in]*` placeholders).
6. Invoke **`pagekit-run-check`** — it must return `tier: FULLY LOGGED` or `tier: PUBLISHABLE`.

Only once run-check reports FULLY LOGGED (or PUBLISHABLE) is the run done. Stopping at this step leaves the run at ARTIFACT-ONLY, which does not count.
3 changes: 3 additions & 0 deletions .claude/skills/pagekit-message-spine/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,6 @@ If the spine sounds like the signal doc rephrased, the reduction did not happen.

## Anti-slop
Watch for "comprehensive solution," "powerful platform," and other category-default phrases sneaking into the spine. The spine should be in the product's own voice as much as possible.

## Next
After the spine is in place, invoke **`pagekit-first-page-decision`** (step 03). Do not stop here.
3 changes: 3 additions & 0 deletions .claude/skills/pagekit-page-argument-shape/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,6 @@ A strong page argument shape:

## Anti-slop
The shape's drafting-constraints section is where slop prevention starts. If those constraints are missing or watered down, every step downstream is weaker.

## Next
After the shape is in place, invoke **`pagekit-proof-map`** (step 05). Do not stop here.
3 changes: 3 additions & 0 deletions .claude/skills/pagekit-proof-map/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,6 @@ If the proof map is "we have testimonials" and not much more, the upstream proof

## Hard rule
Do not invent proof. If the page wants to say something that the proof map cannot support, the draft step will mark it with `*[verification flag: ...]*` — this map is where those gaps are surfaced first.

## Next
After the proof map is in place, invoke **`pagekit-first-page-draft`** (step 06). Do not stop here.
3 changes: 3 additions & 0 deletions .claude/skills/pagekit-signal-doc/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,6 @@ If the doc is too generic or too category-level, **do not advance to step 02.**

## Anti-slop
Signal docs themselves rarely produce slop, but if the output uses confident-sounding empty words ("comprehensive," "deeply understands," "transforms"), strip them. Real signal is specific.

## Next
After this step's artifact is in place, invoke **`pagekit-message-spine`** (step 02). Do not stop here. The signal doc is not the deliverable; the draft is, and the chain must run to completion (see the orchestrator's self-check).
23 changes: 23 additions & 0 deletions .claude/skills/pagekit/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,34 @@ Tell the user:

## Hard rules (do not violate)

- **Do not declare the run done until `scripts/run-check.sh runs/<name>` returns `tier: FULLY LOGGED` (or `PUBLISHABLE`).** This is the only completion signal. Step 06 producing a nice-looking draft is NOT completion. If run-check reports ARTIFACT-ONLY or SUMMARY LOGGED, the run is incomplete and you must keep working.
- **Do not default to homepage.** Step 03 must consider alternatives.
- **Do not invent proof.** Use `*[verification flag: ...]*` for unverified product-specific claims.
- **Do not skip slop-check before the claim-check step.** The script catches the obvious cases; the claim-check catches the rest.
- **Do not skip the evaluator pass** at the fully-logged tier.
- **Do not edit the canonical prompts** in `prompts/` to fit a single run. They are shared.
- **Do not delete or leave blank the scaffolded placeholder files** (`claim-check.md`, `evaluation.md`, `evaluator-pass.md`, `working-log.md`). They are structural; fill them in or commit them as-is until filled.

## Are you done? Self-check

Before handing the run back to the user, walk this checklist. Every item must be YES. If any is NO, you are not done — go finish that item.

- [ ] `runs/<name>/signal-doc.md` is filled with real content (not the scaffold placeholder)
- [ ] `runs/<name>/message-spine.md` is filled
- [ ] `runs/<name>/first-page-decision.md` is filled AND lists candidates considered with a paragraph case FOR each
- [ ] `runs/<name>/page-argument-shape.md` is filled
- [ ] `runs/<name>/proof-map.md` is filled
- [ ] `runs/<name>/first-page-draft.md` is filled
- [ ] `runs/<name>/outputs/NN-*-output.md` exists for every step 01 through 07
- [ ] `runs/<name>/claim-check.md` is filled (not the `*[Filled in by step 07]*` placeholder)
- [ ] `runs/<name>/first-page-draft-corrected.md` exists if claim-check flagged any line
- [ ] `runs/<name>/working-log.md` has real entries per step (not the scaffold `*[Fill in]*` placeholders)
- [ ] `runs/<name>/evaluation.md` is filled
- [ ] `runs/<name>/evaluator-pass.md` is filled (use the `pagekit-evaluator-pass` skill/subagent)
- [ ] `bash scripts/slop-check.sh runs/<name>/first-page-draft.md` exits 0 clean
- [ ] `bash scripts/run-check.sh runs/<name>` returns `tier: FULLY LOGGED` or `tier: PUBLISHABLE`

Only after every box is checked do you report completion to the user.

## When to ask the user

Expand Down
28 changes: 28 additions & 0 deletions scripts/new-run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,13 @@ EOF

# ----- working-log.md -----------------------------------------------------
cat > "$RUN_DIR/working-log.md" <<EOF
<!--
DO NOT DELETE. This file is required for the fully-logged tier per
frameworks/run-logging.md. Fill in the entries as you work through the
steps; do not leave the \`*[Fill in]*\` placeholders intact at the end.
The orchestrator skill's "Are you done?" self-check requires real log
entries across every step, not just the scaffold.
-->
# Working Log

Chronological notes. Each entry marks a step transition or a mid-step decision.
Expand Down Expand Up @@ -212,6 +219,13 @@ cat > "$RUN_DIR/first-page-draft.md" <<EOF
EOF

cat > "$RUN_DIR/claim-check.md" <<EOF
<!--
DO NOT DELETE. This file is required for the PUBLISHABLE tier per
frameworks/run-logging.md. Fill it in when you run step 07 (claim-check).
Use the \`pagekit-claim-check\` skill — it delegates to the
\`pagekit-claim-checker\` subagent which will replace this placeholder
content with the real audit.
-->
# Claim Check

## Severity
Expand All @@ -222,6 +236,13 @@ EOF

# ----- evaluation.md -----------------------------------------------------
cat > "$RUN_DIR/evaluation.md" <<EOF
<!--
DO NOT DELETE. This file is required for the fully-logged tier per
frameworks/run-logging.md. Fill it in after step 07. This is the run's
own honest read of what worked, what stayed thin, where outputs drifted
generic. The adversarial voice goes in evaluator-pass.md (written
afterward via the pagekit-evaluator-pass skill).
-->
# Evaluation

## Logging level
Expand Down Expand Up @@ -252,6 +273,13 @@ EOF

# ----- evaluator-pass.md -------------------------------------------------
cat > "$RUN_DIR/evaluator-pass.md" <<EOF
<!--
DO NOT DELETE. This file is required for the fully-logged tier per
frameworks/run-logging.md. It carries the adversarial second read of
the run. Produce it by invoking the \`pagekit-evaluator-pass\` skill,
which delegates to the \`pagekit-evaluator-pass\` subagent and replaces
this placeholder with real content.
-->
# Evaluator Pass

Skeptical second read of the run. Not the same voice as \`evaluation.md\`; this pass is deliberately adversarial.
Expand Down
Loading