Files
zlareb1 ed01c97609 Drop Slack framing in SKILL.md and report_templates.md content
Companion to the prior rename commit (`e140a0ac655`), which only
moved the file but didn't catch the content edits I'd made. This
commit drops the actual Slack-isms inside both files:

- `SKILL.md`: 6 cross-references updated (`slack_templates.md` โ†’
  `report_templates.md`); "Make a Slack summary of Keeper stress
  runs" โ†’ "Give me a summary report of Keeper stress runs";
  "Slack message" / "Slack post" framing in the deliverable table,
  references list, Example 3, and the closing "output discipline"
  paragraph all replaced with neutral wording. The frontmatter
  `description` (the trigger surface) drops "Slack-ready summary"
  in favour of "summary report".
- `references/report_templates.md`: title and section heading
  ("Slack message templates", "Slack rendering tips") become
  "Monospace report templates" and "Monospace rendering tips";
  the `#keeper-dev` channel framing in Template 1's heading
  becomes "release-readiness or broad audience"; the "Slack's
  monospace handles them well" rendering tip becomes
  "handles consistently across terminal, GitHub PR comments, and
  chat code blocks".

Template content (the actual ASCII boxes, placeholders, emoji
section markers) is unchanged. The skill is invoked via the
Claude Code CLI; the templates produce monospace text that
renders the same in any monospace consumer.
2026-05-06 10:10:35 +00:00

8.4 KiB
Raw Permalink Blame History

Monospace report templates

Three templates depending on report scope. Pick whichever matches the audience. Each renders cleanly in any monospace context โ€” terminal output, code-fenced markdown (PR comments, design docs), team-chat code blocks, etc.

Template 1 โ€” Full validation report (release-readiness or broad audience)

Use this for comprehensive validation reports. Replace placeholders in {{double-curly}}.

๐Ÿ” Keeper Stress-Test Validation โ€” {{n_prs}} PRs reviewed
   Window: {{date_from}} โ†’ {{date_to}} ยท {{n_nightlies}} nightly stress runs ยท {{n_scenarios}} scenario/backend combos

โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
  โœ… SHIP-READINESS โ€” every PR landed clean
โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

   โ€ข 0 server-side failures across all stress runs
     (KeeperCommitsFailed = 0, KeeperSnapshot{Creations,Applys}Failed = 0,
      KeeperRequestRejectedDueToSoftMemoryLimit = 0)
   โ€ข 0 regressions above the ยฑ3-5% measurement noise floor
   โ€ข Per-PR smoke stress (3 scenarios) ran clean for every Keeper-touching PR before merge

โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
  ๐Ÿ“Š PERFORMANCE GAINS โ€” what these PRs delivered (median-of-3 baseline โ†’ current)
โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

   โ”Œโ”€ Read throughput
   โ”‚     {{TABLE: scenario | default ฮ”% | rocks ฮ”% }}
   โ”‚
   โ”œโ”€ Read tail latency (p99)
   โ”‚     {{TABLE: scenario | default ฮ”% | rocks ฮ”% }}
   โ”‚
   โ”œโ”€ Write throughput
   โ”‚     {{summary: flat / improved / regressed and by how much}}
   โ”‚
   โ”œโ”€ Write tail latency
   โ”‚     {{TABLE: scenario | default ฮ”% | rocks ฮ”% }}
   โ”‚
   โ””โ”€ Memory (Keeper-reported state, not cgroup)
       {{e.g. write-multi[default]: KeeperApproximateDataSize 5.04 โ†’ 4.83 GB (-4.2%)}}

โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
  ๐Ÿš€ PERF COHORT โ€” N PRs that drove the gains
โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

   No single PR moved metrics by >5% individually. The improvements are
   cumulative across many small changes:

   โ”Œโ”€ Lock contention reduction
   โ”‚   {{PR list with one-line descriptions}}
   โ”‚
   โ”œโ”€ Read-path parallelism / fast-path
   โ”‚   {{PR list}}
   โ”‚
   โ”œโ”€ Memory footprint reduction
   โ”‚   {{PR list}}
   โ”‚
   โ””โ”€ Hot-path microoptimisations
       {{PR list}}

โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
  โœ… CORRECTNESS / ๐Ÿ”ง TOOLING / ๐Ÿงน REFACTOR / โช NET-ZERO PRS
โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

   {{categorized lists}}

โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
  ๐Ÿ“‹ COUNTS
โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

   {{counts table summing to total}}

โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
  โš ๏ธ  CAVEATS
โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

   โ€ข Per-PR attribution at <5% rps precision is below the noise floor.
   โ€ข {{any known confound that landed in window โ€” see known_confounds.md}}
   โ€ข Best-day nightlies show larger gains than median-of-3; +X% headline is conservative.

๐ŸŽฏ Bottom line:
   {{2-3 line summary based on actual deltas}}

Template 2 โ€” Tight version (for general engineering channels)

Use this for quick status updates. Single paragraph + one-liner per category.

Keeper PRs validation โ€” {{n_prs}} PRs, {{verdict_one_word}}.
Window: {{date_from}} โ†’ {{date_to}}.

๐Ÿ“Š Read paths: +X% rps median, -Y% read p99 on heavy scenarios
โœ๏ธ  Writes: throughput flat (within ยฑ3-5% noise); -Z% write p99 on default backend
๐Ÿง  Memory: +/- N% Keeper-state on {{scenario}} (cgroup deltas excluded โ€” those are bench artifacts)
โœ… 0 server-side failures across {{n_nightlies}} nightlies ร— {{n_scenarios}} scenarios
๐Ÿš€ Top contributors: {{top 3-4 PRs}}
๐Ÿ”ง Plus N correctness fixes + M tooling features

Full report: {{path}}

Template 3 โ€” One-liner (for status / standup)

โœ… Keeper {{n_prs}}-PR validation: shipped clean. +{{X}}% read rps, -{{Y}}% write p99, 0 server-side failures across {{n_nightlies}} nightlies. Report in {{path}}.

Filling in templates

The skill's pipeline produces these artefacts from which to extract values:

Need Source artefact Field
Headline rps ฮ”% cumulative_gains_summary.tsv rps_pct per read-no-fault[default] etc.
Headline p99 ฮ”% cumulative_gains_summary.tsv read_p99_pct, write_p99_pct
Per-PR table per_pr_summary.tsv + pr_to_nightly.tsv one row per PR
Server-failure count merged_metrics.tsv filter on *Failed_max > 0 across CommitsFailed_max, SnapshotApplysFailed_max, SnapshotCreationsFailed_max, RejectedSoftMemLimit_max (should be empty). The raw staging/prom_gauges.tsv exposes these as rows with name = ClickHouseProfileEvents_Keeper*Failed* and value in max_value; filter there if you haven't built merged_metrics.tsv yet.
Nightly count merged_metrics.tsv count(distinct sha8)
Scenario+backend count merged_metrics.tsv count(distinct (scenario,backend))
Memory verification both container.tsv AND prom_gauges.tsv (look at KeeperApproximateDataSize) confirm Keeper-reported memory matches the claimed ฮ”

Monospace rendering tips

  • Wrap the whole block in triple backticks for monospace alignment
  • Prefer ASCII box drawing (โ•, โ”‚, โ”Œ, โ””) over Unicode tables โ€” handles consistently across terminal, GitHub PR comments, and chat code blocks
  • Keep line width โ‰ค 95 chars to avoid wrapping in narrower viewers
  • Don't use markdown tables (|---|---|) inside code blocks; they render as literal text, not as a table
  • Emojis at section markers (โœ… ๐Ÿ“Š ๐Ÿš€ โœ๏ธ ๐Ÿง  ๐Ÿงน โช โš ๏ธ ๐ŸŽฏ) are fine and improve scannability