Skill Tracer
Skills › Compound Engineering › ce-product-pulse › report-template.md

report-template.md

89 lines · skills/ce-product-pulse/references/report-template.md at 3449230

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1# Pulse Report Template
2
3Loaded by `SKILL.md` at Phase 2.3 after queries have returned. Fill the template using the query results. Target total length: 30-40 lines.
4

Pulse Report Template

Loaded by SKILL.md at Phase 2.3 after queries have returned. Fill the template using the query results. Target total length: 30-40 lines.

Raw lines 1 to 4
5## Rules for filling in
6
7- Use real numbers, not ranges or hedges. If a number is uncertain, note the source inline.
8- Percent deltas compare the current window to the previous equal-length window (e.g., for `24h`, compare to the prior `24h`). If no comparison is possible, omit the delta rather than inventing one.
9- No hardcoded thresholds. Do not label things "high" or "low" or color anything red unless the reader asked for threshold-based annotation at setup.
10- No PII. No emails, no account IDs, no message content.
11- Headlines are the top of the page. If a reader only reads the first 3 lines, they should know the most important thing that happened.
12- Resolve the strategy doc the same way setup does - `STRATEGY.md`, else the first of `VISION.md`, `PRODUCT.md` that exists - and if one exists re-read the key metrics before assembling the report: `## Key metrics` when `ce-strategy` wrote it, otherwise the section listing the success measures by meaning, and the legacy sibling `STRATEGY.md` points to when it defers them there. For each strategy metric, decide what to render:
13 - If the metric name appears in `pulse_excluded_metrics`, omit it from the report.
14 - If the metric name appears in `pulse_pending_metrics`, include it in the Usage section marked `no data (instrumentation pending)`.
15 - Otherwise, resolve the source for this metric: look it up in `pulse_metric_sources` (CSV of `metric=source` pairs); if present, use that source. If absent, fall back to `pulse_analytics_source` and append `(default source)` to the metric line so the implicit routing is visible. Then query and render the metric with its current value and delta. If the query returns no value, include it anyway and mark it `no data`.

Rules for filling in

  • Use real numbers, not ranges or hedges. If a number is uncertain, note the source inline.
  • Percent deltas compare the current window to the previous equal-length window (e.g., for 24h, compare to the prior 24h). If no comparison is possible, omit the delta rather than inventing one.
  • No hardcoded thresholds. Do not label things "high" or "low" or color anything red unless the reader asked for threshold-based annotation at setup.
  • No PII. No emails, no account IDs, no message content.
  • Headlines are the top of the page. If a reader only reads the first 3 lines, they should know the most important thing that happened.
  • Resolve the strategy doc the same way setup does - STRATEGY.md, else the first of VISION.md, PRODUCT.md that exists - and if one exists re-read the key metrics before assembling the report: ## Key metrics when ce-strategy wrote it, otherwise the section listing the success measures by meaning, and the legacy sibling STRATEGY.md points to when it defers them there. For each strategy metric, decide what to render:
  • If the metric name appears in pulse_excluded_metrics, omit it from the report.
  • If the metric name appears in pulse_pending_metrics, include it in the Usage section marked no data (instrumentation pending).
  • Otherwise, resolve the source for this metric: look it up in pulse_metric_sources (CSV of metric=source pairs); if present, use that source. If absent, fall back to pulse_analytics_source and append (default source) to the metric line so the implicit routing is visible. Then query and render the metric with its current value and delta. If the query returns no value, include it anyway and mark it no data.
Raw lines 5 to 16
Names a skill ce-strategy :12
17## Template
19The block below is the literal content to write. Replace every `{{placeholder}}` with query output. Delete lines whose data isn't available for this run.
21~~~markdown
22# {{product_name}} Pulse - {{window}} - {{YYYY-MM-DD HH:MM}} {{TZ}}

Template

The block below is the literal content to write. Replace every {{placeholder}} with query output. Delete lines whose data isn't available for this run.

~~~markdown

{{product_name}} Pulse - {{window}} - {{YYYY-MM-DD HH:MM}} {{TZ}}

Raw lines 17 to 23
Uses an outside tool ~~markdown :21
24## Headlines
26- {{one-line headline capturing the most notable thing in the window}}
27- {{optional second headline}}
28- {{optional third headline}}

Headlines

  • {{one-line headline capturing the most notable thing in the window}}
  • {{optional second headline}}
  • {{optional third headline}}
Raw lines 24 to 29
30## Usage
32- **Primary engagement:** {{N events}} ({{delta vs prior window}})
33- **Value realization:** {{N events}} ({{delta}}) - {{ratio vs engagement}}
34- **Completions / conversions:**
35 - {{conversion event 1}}: {{N}} ({{delta}})
36 - {{conversion event 2}}: {{N}} ({{delta}})
37- **Strategy metrics (if carried forward):**
38 - {{metric name}}: {{value}} ({{delta}})
39- **Quality sample (if configured):** {{distribution e.g. "8x 5, 1x 4, 1x 2"}}

Usage

  • Primary engagement: {{N events}} ({{delta vs prior window}})
  • Value realization: {{N events}} ({{delta}}) - {{ratio vs engagement}}
  • Completions / conversions:
  • {{conversion event 1}}: {{N}} ({{delta}})
  • {{conversion event 2}}: {{N}} ({{delta}})
  • Strategy metrics (if carried forward):
  • {{metric name}}: {{value}} ({{delta}})
  • Quality sample (if configured): {{distribution e.g. "8x 5, 1x 4, 1x 2"}}
Raw lines 30 to 40
41## System performance
43- **Latency:** p50 {{ms}}, p95 {{ms}}, p99 {{ms}} ({{delta vs prior window}})
44- **Top errors** (top 5 by count, descending):
45 1. **{{error signature}}** - {{N occurrences}} - {{one-line context, no PII}}
46 2. **{{error signature}}** - {{N occurrences}} - {{one-line context}}
47 3. **{{error signature}}** - {{N occurrences}} - {{one-line context}}
48 4. **{{error signature}}** - {{N occurrences}} - {{one-line context}}
49 5. **{{error signature}}** - {{N occurrences}} - {{one-line context}}

System performance

  • Latency: p50 {{ms}}, p95 {{ms}}, p99 {{ms}} ({{delta vs prior window}})
  • Top errors (top 5 by count, descending):
  • {{error signature}} - {{N occurrences}} - {{one-line context, no PII}}
  • {{error signature}} - {{N occurrences}} - {{one-line context}}
  • {{error signature}} - {{N occurrences}} - {{one-line context}}
  • {{error signature}} - {{N occurrences}} - {{one-line context}}
  • {{error signature}} - {{N occurrences}} - {{one-line context}}
Raw lines 41 to 50
51## Followups
53- {{One thing worth investigating next - specific enough to act on}}
54- {{Another thing worth investigating}}
55- {{3-5 items max; trim if thin}}
57---
58_Source windows: analytics [{{start}} -> {{end}}], tracing [{{start}} -> {{end}}], payments [{{start}} -> {{end}}]. Trailing buffer: 15m. Saved to `<root>/pulse-reports/{{YYYY-MM-DD}}_{{HH-MM}}.md`._
59~~~

Followups

  • {{One thing worth investigating next - specific enough to act on}}
  • {{Another thing worth investigating}}
  • {{3-5 items max; trim if thin}}

_Source windows: analytics [{{start}} -> {{end}}], tracing [{{start}} -> {{end}}], payments [{{start}} -> {{end}}]. Trailing buffer: 15m. Saved to <root>/pulse-reports/{{YYYY-MM-DD}}_{{HH-MM}}.md._ ~~~

Raw lines 51 to 60
61## Variations
63- **No system performance tool configured:** omit the entire `## System performance` section. The report stays Headlines / Usage / Followups.
64- **Quality scoring not opted in:** omit the quality sample line.
65- **Single-source setup (analytics only):** omit the tracing and payments source windows from the footer.
66- **Error count customized at setup** (e.g., top 3 instead of top 5): follow the configured count. Do not pad or trim beyond what the query returned.

Variations

  • No system performance tool configured: omit the entire ## System performance section. The report stays Headlines / Usage / Followups.
  • Quality scoring not opted in: omit the quality sample line.
  • Single-source setup (analytics only): omit the tracing and payments source windows from the footer.
  • Error count customized at setup (e.g., top 3 instead of top 5): follow the configured count. Do not pad or trim beyond what the query returned.
Raw lines 61 to 67
68## Post-write checklist
70Before saving and surfacing to chat:
72- [ ] Total length is 30-40 lines (give or take 5).
73- [ ] Headlines exist and lead with the most notable item.
74- [ ] No hardcoded thresholds ("high error rate", "low conversion").
75- [ ] No PII. Scan error signatures and followups for user emails, IDs, or message snippets.
76- [ ] Top 5 errors (or the configured count), not top 10. Trim if the query returned more.
77- [ ] Strategy metrics carried forward from config are rendered in Usage, or marked `no data`.
78- [ ] Followups are specific - each one should be actionable as a sentence.
79- [ ] Filename and in-file timestamp use the same wall-clock time.

Post-write checklist

Before saving and surfacing to chat:

  • [ ] Total length is 30-40 lines (give or take 5).
  • [ ] Headlines exist and lead with the most notable item.
  • [ ] No hardcoded thresholds ("high error rate", "low conversion").
  • [ ] No PII. Scan error signatures and followups for user emails, IDs, or message snippets.
  • [ ] Top 5 errors (or the configured count), not top 10. Trim if the query returned more.
  • [ ] Strategy metrics carried forward from config are rendered in Usage, or marked no data.
  • [ ] Followups are specific - each one should be actionable as a sentence.
  • [ ] Filename and in-file timestamp use the same wall-clock time.
Raw lines 68 to 80
81## What to surface in chat
83After writing the file, post back:
85- The Headlines section verbatim
86- The top Followup, if action looks urgent
87- The saved file path so the user can open the full report
89Do not paste the full report into chat - the file is the artifact.

What to surface in chat

After writing the file, post back:

  • The Headlines section verbatim
  • The top Followup, if action looks urgent
  • The saved file path so the user can open the full report

Do not paste the full report into chat - the file is the artifact.

Raw lines 81 to 89