Skip to content

leadership weekly report: restructure Studio section header and lock TL;DR scope to enterprise#62

Open
Assaf Hay Eden (AssafHayEden) wants to merge 3 commits into
aheden/tldr-ban-active-orgs-ratiofrom
aheden/leadership-report-studio-section-scope-and-headers
Open

leadership weekly report: restructure Studio section header and lock TL;DR scope to enterprise#62
Assaf Hay Eden (AssafHayEden) wants to merge 3 commits into
aheden/tldr-ban-active-orgs-ratiofrom
aheden/leadership-report-studio-section-scope-and-headers

Conversation

@AssafHayEden
Copy link
Copy Markdown
Collaborator

What

Two changes to the Studio section of the leadership weekly Slack report,
both motivated by last week's output:

  1. TL;DR scope drift. The model generated "LTX share of all Studio
    gens jumping to 15.4%"
    when the denominator is gens by contract orgs
    (the report has no self-serve Studio data at all). The body label
    said "all gens" and the section header was a single
    *Studio Enterprise* line, so the LLM dropped the "Enterprise"
    qualifier without warning.
  2. Flat header lumped contracts + pilots together. Execs read the
    two sub-blocks as one. Restructure to a parent *Studio* header
    with *Contracts* and *Pilots* sub-headers underneath.

Changes

n8n/render_body.js

  • Replace *Studio Enterprise* with parent *Studio* + italic scope
    note + *Contracts* sub-header. *Pilots* keeps its existing
    sub-header so the two sit at peer level under the parent.
  • Rename the body label LTX share of all gensLTX share of contract gens. The denominator is unchanged; only the label tightens.
  • Update the file-level doc comment.

n8n/tldr_system_prompt.md

  • Update INPUT to describe Studio / Contracts / Pilots structure.
  • Add a SCOPE block: forbids "all Studio X" / "Studio-wide X" and
    requires precise scope language (`contract X`, `Studio Enterprise X`,
    `enterprise contract orgs`). Reinforces the body label change.
  • Update the single-section example and the locked reference TL;DR
    to use `LTX share of contract gens`.
  • Add a changelog entry.

references/report-template.md

  • Mirror the new layout in the sample output, the layout-rules list,
    and the lead-bucketing table label.
  • Update the sample TL;DR.

SKILL.md

  • Update agent description and the Studio bullet to reflect the new
    structure and scope.

Sample output (after change)

```
Studio
Enterprise contracts + pilots only — self-serve Studio not included.

Contracts
• Active orgs: 14/16 (Org Foo, Org Bar inactive) · Newell signed as new contract
• Total tokens: 2.41M (↑18% WoW)
• LTX model tokens: 395K (↑91%) · 16.4% of total (was 8.9%) · 22.1% of video tokens (was 11.4%)
• LTX share of contract gens: 15.4% (was 4.2%) · video gens: 18.7% (was 5.1%)

Pilots (4 active)
New: Fifth Element, Walton Isaacson
Ending next week: none

• Leads: 13 PQLs (↓44%) · 294 PELs (↓5%)
• Dashboards: <…|Enterprise Dashboard>
```

Validation

  • No SQL change — `J_studio_summary` output shape is unchanged. This
    PR is purely a rendering and prompt change.
  • Verified `render_body.js` still references every key it consumed
    before (`e.ltx_pct_of_total_gens`, `e.ltx_pct_of_video_gens`,
    `p.active_pilots`, `w.pqls_by_product`, etc.).
  • The sub-header restructure adds three render lines; everything below
    is unchanged.

Relationship to other PRs

This is parallel to PR #61, which fixes the SQL-side bug in Block J's
contract-activity scope. Both PRs target the same integration branch
(`aheden/tldr-ban-active-orgs-ratio`), so both fixes land together
when the integration branch merges to main.

Test plan

  • Reviewer eyeballs the rendered sample in `report-template.md`.
  • On next Monday's run (or a manual trigger), confirm the Slack
    post shows the new `Studio` parent + `Contracts` /
    `Pilots` sub-headers.
  • Confirm the LLM-generated TL;DR no longer says "all Studio X"
    and instead says "contract X" / "Studio Enterprise X".

Made with Cursor

The Studio section in the leadership weekly report covers enterprise
contract orgs and pilots only — self-serve Studio activity is not in
the data. Two failure modes from last week's run motivated this:

1. The TL;DR generated "LTX share of all Studio gens jumping to 15.4%"
   when the denominator is in fact "gens by contract orgs". The AI
   dropped the "Enterprise" qualifier because the body label said "all
   gens" and the section header was a single "*Studio Enterprise*" line.

2. Execs reading the body conflated the two sub-blocks (contracts +
   pilots) into one because they sat under the same flat header with
   no visible parent.

Changes
-------
n8n/render_body.js
  - Replace the single "*Studio Enterprise*" header with a parent
    "*Studio*" line + a one-line italic scope note ("Enterprise
    contracts + pilots only — self-serve Studio not included.") +
    a "*Contracts*" sub-header before the enterprise rollup. Pilots
    keeps its existing sub-header so the two sit at peer level under
    the parent.
  - Rename the body label "LTX share of all gens" to "LTX share of
    contract gens" so the TL;DR LLM cannot generalize to "all Studio".
  - Update the file-level doc comment to match.

n8n/tldr_system_prompt.md
  - Update INPUT to describe the new Studio / Contracts / Pilots
    structure.
  - Add a SCOPE block explicitly forbidding "all Studio X" / "Studio-
    wide X" phrasing and mandating precise scope language ("contract
    X", "Studio Enterprise X", "enterprise contract orgs").
  - Update the single-section example and the locked reference TL;DR
    to use "LTX share of contract gens" instead of "all Studio gens".
  - Add changelog entry.

references/report-template.md
  - Mirror the new layout in the sample output and the layout-rules
    list.
  - Update the lead-bucketing table label.
  - Update the sample TL;DR phrasing.

SKILL.md
  - Update the agent description and the section bullet to reflect
    the new structure and scope.

Validation
----------
No SQL changes — Block J output schema is unchanged; this is purely
a rendering and prompt change. Verified the render_body.js change
compiles cleanly (no JSX/JS syntax issues introduced) and the body
template still references every key in the existing J_studio_summary
output shape.

Companion to (parallel branch) PR #61, which fixes the SQL-side bug
in Block J's contract-activity scope. This PR targets the same
integration branch (aheden/tldr-ban-active-orgs-ratio), so both
changes land together when the integration branch merges to main.

Co-authored-by: Cursor <cursoragent@cursor.com>
Two visual tweaks per review feedback:

- Remove the italic "Enterprise contracts + pilots only — self-serve
  Studio not included." line from the rendered body. The scope rule
  still lives in the TL;DR system prompt (SCOPE block), so the AI still
  gets the constraint; we just don't surface the disclaimer to execs.
- Make the "Contracts" and "Pilots" sub-headers plain text (not bold)
  so the bold "*Studio*" parent carries all the visual weight and the
  sub-headers feel like smaller subordinate titles, as intended.

Touches render_body.js, the report template sample/layout-rules,
the TL;DR prompt INPUT description + changelog row, and SKILL.md.

Co-authored-by: Cursor <cursoragent@cursor.com>
Generalize the existing single-section STUDIO_DASHBOARDS knob into
three per-section arrays so each section can carry its own deep-link
trailer:

- OSS: Open Source Dashboard (ThoughtSpot pinboard)
- API: API Dashboard (ThoughtSpot pinboard)
- Studio: existing Hex Enterprise Dashboard + new Studio Dashboard
  (ThoughtSpot pinboard), joined with the standard middle-dot
  separator at the bottom of the Studio section.

Refactor the inline rendering of the Studio dashboards line into a
small renderDashboards(arr) helper so all three sections share one
implementation; the helper returns null when the array is empty so
callers skip the push and the line is omitted entirely (matches the
existing "omit when empty" contract).

Body output now ends each section with:

  • Dashboards: <url|Label> [· <url|Label>]

Updates references/report-template.md sample output and the layout-
rules entry, and SKILL.md (renames the dashboards knob row + lists
all four drill-through URLs in the References section).

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant