Mike's Checks/grok-4.7/04 thematic
04 thematic
grok-4.7Grok CLIhigh effortrun 21 Sep 2026131,811 tokens
▸Instructions — what the model was asked
help me synthesize what to focus on in our AI engineering training for this company based on meeting notes with three engineers
Answer
Northcove AI engineering training: what to focus on
Train the engineering org on four things, in this order:
- Company-specific context — rules, examples, and what to leave out of a prompt.
- Verification matched to risk — a different bar for throwaway work and for production, money, and regulated data.
- The daily Cursor workflow — plan, then small diffs, with concrete examples from this codebase.
- Eval discipline for teams already shipping LLM features — a smaller, separate track.
The first session should leave behind shared artifacts (rules, a review checklist, a context-pack example), not only a recording. Northcove’s models and Cursor chats fail on this codebase and this compliance bar. A generic “use AI better” workshop will not move the 100-person org.
Assumption: this is a first program for engineering (Consumer, Business, Platform), time-boxed to about a day of core workshop plus a short follow-on for LLM-feature teams. Format and date were not specified. The sample is three conversations: Nina (full-stack, basic Cursor user, shipping a document-interpretation feature), Ben (senior, Business, power user, correctness-critical money logic), and Raj (org view). Consumer is represented only through Raj’s overview.
Where the three conversations agree
Northcove is already on Cursor under an enterprise license. Tab-complete is normal. A slice of the org, including Raj’s team, now edits more than it authors. Most of engineering is still AI-second: AI after the real work starts, not as the default way to plan, draft, and check. Senior engineers with 4–10 years of experience are the skeptical center of gravity, and the codebase gives them reasons. The monolith carries startup-era coupling, hidden side effects, and antipatterns. Fast CI is 20–30 minutes and deploys run 40 minutes to 2 hours, so a plausible-but-wrong change is expensive. A prior third-party data-sharing incident makes regulated-data exposure a live constraint, not a policy slide.
The same gap shows up in three voices:
- Nina cannot feed scattered, stale docs (Google Docs, Confluence, Slack) into Cursor. A thin system prompt names the Python/TypeScript stack and then runs out. Complex prompts over-engineer. Underspecified prompts copy legacy patterns. Results improve when she pastes a similar example from the repo.
- Ben’s line is “context is king”: tag the relevant files, or the model cannot see the knob that breaks something else. He will not use AI for production features in multi-party balance logic for that reason. He uses it constantly for sketches, plans, debugging, and one-off scripts, where directionally correct is enough. He wants organizational rules, commands, and reusable prompts, and he has not gotten them.
- Raj’s confidence ladder matches both of them. Codegen with human review works today. Northcove-specific implementations do not, unless the prompt is very prescriptive. Non-trivial features, database migrations, and regulated-data work stay skeptical. The largest structural gap he names is siloed, stale knowledge.
Nina’s document model (Anthropic, under an organizational data-isolation contract, with a hand-labeled set of 100–250 documents) is a second job sitting next to “engineers using Cursor.” It needs its own module. It should not set the agenda for all 100 engineers.
1. Company-specific context
This is the highest-leverage focus. Every failure mode in the notes is a context failure: missing standards, stale docs pulled in as if they were current, legacy patterns treated as examples, and no shared place where Northcove’s rules live.
Teach a practical context pack, not prompt theory:
- Name the files that matter before asking for the change. Ben already does this; most of the org does not.
- Prefer a concrete example from the current code over a general instruction. That is the difference Nina sees between useful scaffolding and a wrong cherry-pick.
- Encode stable standards in shared Cursor rules: Python and TypeScript conventions, framework choices, test layout, and a short list of patterns that are known antipatterns in this monolith.
- Keep the pack small. A rule that tries to restate all of Confluence will go stale the way the existing docs already have. Point at the living source (the repo, a current runbook) and quote only the constraint the model keeps violating.
- Treat “which docs are safe to attach” as part of the skill. Slack threads and old Google Docs are often wrong.
Session output: each squad leaves with a starter rules file seeded from real review comments, plus one worked example of a context pack for a task they actually have in flight. Business (Ben’s world) and Platform should each contribute rules; a single generic file will miss the coupling he described.
Ben asked for org buy-in on rules, commands, and reusable prompts. Assign an owner before the workshop ends. Unowned rules will join the stale-doc pile Raj described.
2. Verification matched to risk
Adoption is splitting by risk tolerance, and the training should make that split explicit so seniors recognize their own standard in it.
Two speeds, taught as judgment:
- Directionally correct. Internal scripts, throwaway prototypes, planning sketches, UX mockups in the spirit of the Vercel v0 flow product already uses. Ben’s bar: it does not need to compile if the point is alignment. Cheap to throw away. This is where AI-first should be the default, including for engineers who refuse AI on production paths.
- Correctness-critical. Anything that decides what a user owes, touches Stripe, invoicing, recoups, schema, or regulated data. Raj’s bar: human review, especially around databases and regulated data. Nina’s failure mode belongs here: output that looks finished and carries a subtle bug, accepted because the team lacks end-to-end and integration coverage.
Teach the review habits that make the second speed acceptable to a skeptical senior:
- Tests or an explicit check before accepting the diff. Writing tests into an existing suite is already one of Nina’s reliable uses; make it the default close of an AI change, not an optional follow-up.
- Small diffs. The monolith’s hidden side effects are why Ben keeps production features in his own hands.
- A short checklist for “plausible but wrong”: behavior at the boundary the prompt did not mention, a pattern copied from legacy code, a migration or query the author did not read line by line.
- Data boundaries. What may enter Cursor or a model prompt, what stays inside the isolation contract Nina’s feature already uses, and what a prior data-sharing incident put off limits. Legal and compliance already sit inside project decisions; the workshop should use Northcove’s actual rules, not a generic AI-policy deck.
Session output: a one-page review checklist posted where PRs happen, with the two speeds labeled in Northcove’s language (loss per transaction, processing accuracy, timely recoups — the metrics Ben’s group actually moves).
The editor-not-author shift Raj described makes this module urgent. If people rarely type more than about 20 lines themselves, the skill that matters is review. Training that stops at generation will scale the “good enough” risk Nina named.
3. The daily workflow
The skill gap inside engineering is wide. Nina calls herself a basic user. Ben never rough-drafts by hand and is starting to point agents at test coverage, flag removal, and debugging. Everyone else is somewhere on that line, and most are closer to tab-complete plus occasional chat. Raj already heard the Cursor-recommended loop — plan in chat, then build — and code search is how people learn an unfamiliar corner of the monolith. Teach that loop until it is boring.
Workshop drills, on a Northcove repo, not a toy app:
- Plan in chat against real files, then implement only the planned slice.
- Ask for the initial structure and the tests, then edit. Nina’s reliable cases are scaffolding and tests, not “build the feature.”
- Change one increment. Her back-and-forth cost comes from prompts that are too large and from re-prompting when a small wording change moves the result.
- When the model over-engineers, narrow the prompt and attach an example. Show this failure live; it is the one she can already name.
- Use the agent on a bounded chore with a clear done state: extend a test suite, delete a dead flag, explain a failing CI run. Ben’s early agent wins are all of this shape.
Defer unbounded “go build the feature” agent demos. All three are aligned that large, weakly specified features fail here: Nina wants them and does not yet have the prompting for them, Ben will not put them on production business logic, Raj is skeptical of significant non-trivial features. Agents become a later office-hours topic once rules and the review checklist exist. Subagents, MCP servers, and automated prompt optimizers (DSPy) can wait. Ben already tried MCP beyond the database, hit performance problems, and went back to CLI tools the model already knows. That is a useful aside in office hours, not a module.
Session output: a one-page “how we use Cursor here” that matches what power users already do, written so a basic user can follow it tomorrow: plan, attach examples, small diff, tests, human review.
4. Eval discipline for LLM features
Keep this off the all-engineers agenda. Put it in a follow-on for teams building model-powered product, with Nina’s document-interpretation work as the case.
What that team is already doing, and should be taught as a repeatable loop:
- A ground-truth set. They hand-labeled on the order of 100–250 documents because layouts and terminology differ by source. Teach how big a set needs to be for the decision in front of them, and how to add cases when a new source appears, so labeling does not stay a one-time hero project.
- A check that runs when the prompt or model changes. Small prompt edits move results in non-deterministic ways, and the current loop is more labor-heavy than classical ML training. The recent move toward proxy metrics at larger scale is the right evolution; teach how to pick a proxy that still tracks the labeled set, and when the proxy is lying.
- Data isolation as a design constraint from the first prototype, which her v2 already inherited.
Skip automated prompt-optimization frameworks until a team has an eval set it trusts. Ben knows the idea and has not had time; the missing piece is the dataset and the habit, not the optimizer.
Session output: a template eval note — task, labeled set, metric, proxy metric, what triggers a re-run — that another squad can copy for the next extraction or classification feature.
Who sits in which room
| Room | Who | Focus |
|---|---|---|
| Core workshop (all engineers) | ~100 engineers, both suspicious seniors and newer full-stack | Context rules, the two-speed review bar, plan-then-small-diff |
| Working session inside the core day | One senior from Business, Platform, and Consumer | Draft the shared rules from real review comments |
| Follow-on (half day) | Squads shipping LLM features | Evals, prompt-change discipline, isolation contracts |
| Later office hours | People already using agents (Ben’s channel, not the whole org) | Bounded background agents: tests, flag removal, debugging |
Run the core workshop in mixed groups so power users demonstrate on real tasks and basic users practice the same loop. A single demo from the Cursor power-user Slack channel will wash over Nina’s half of the org.
PMs, the Cursor Slack integration, and BI access are real demand — Ben sees non-engineers getting value, and product already prototypes in v0 — but they are a different session. Engineering training should not be redesigned around copy edits and roadmap docs. PRD drafting can wait with it: Raj says it could work and also says product workflows are why it is barely used, while engineering already spends its own time scoping because PRDs arrive thin.
What to leave for later
These came up, and they are the wrong center for the first program:
- MCP setup and subagent fleets. Early, uneven, and already disappointing on Confluence, Jira, and GitHub.
- Autonomous delivery of large features. The codebase and the compliance bar do not support it as a training outcome.
- Database migrations. Raj flagged them as infra pain and as work he does not want a model owning.
- User-research synthesis. Volume is a handful of interviews, which is below the threshold he would trust.
- A company knowledge-base project. The pain is real (Raj’s “major gap”), and the fix that belongs in this training is a small rules layer plus a habit of citing the repo. A migration of Confluence, Slack, and Google Docs is a separate program and will rot again if it is the workshop.
How to tell whether it worked
Check behavior a month later, on the back of the artifacts:
- Several squads have a rules file someone other than its author has edited.
- A sample of AI-assisted PRs in Business shows the checklist (tests or an explicit waiver, small diff, no unlabeled regulated data).
- Internal scripts and prototypes are drafted AI-first without a new debate each time. That is the AI-second to AI-first shift Ben described, aimed where he says it is safe.
- The document-interpretation team re-runs a named eval when the prompt changes, and can point to the proxy metric they now trust.
If those four are moving, a later session on background agents has something solid to stand on. If they are not, more tool surface area will reproduce the current split: a few power users, a suspicious majority, and context that still lives in people’s heads.
Checks
8/8No AI-tell wordingai-wordingevery task
deliverable text contains none of the shared AI-tell phrases in bench/ai-tells.txt. Task checks may add narrower contractual bans, but must not repeat this shared floor.
inspected context.md, ANSWER.md
Analysis existsexiststhis task
a synthesis document of >= 100 words was produced
Theme counttheme-countthis task
it groups its findings into at least 3 themes. FAIL when no theme structure can be parsed out of it at all -- see the ladder in pick_themes for what counts as one.
Q1Enough depth to teachthis task
Judge's reasoning
Each of the four themes has enough to teach from: context packs (tag files, examples over instructions, small rules, choosing safe docs), two-speed verification (checklist, small diffs, tests, data boundaries), plan-then-small-diff Cursor drills on the real repo, and an eval loop (labeled set size, proxy metrics, re-run triggers). Each also names a session deliverable.
▸Rubric
Every theme is deep enough to teach. Mike's bar: "these are actually topics that you could do a whole training on." FAIL if any single theme is a pleasant-sounding course name that is not really a real topic — a label you could not build a session's worth of exercises, demos and decisions around. Ask of each theme literally: what would you actually teach in that session, and for how long? A theme that survives only as a heading fails.
Q2Goes beyond repetitionthis task
Judge's reasoning
Theme 1 comes close to the 'company context' echo, but it is taught as transferable context-engineering technique (example-over-instruction for Nina's legacy cherry-picking, keep rules small, which docs are safe to attach), and the knowledge-base fix is explicitly pushed out as too thin for training; it doesn't just restate 'context is king'.
▸Rubric
No shallow echo. FAIL if any theme "just repeats a theme it heard in the document without thinking about whether there's enough material there for a training." Mike's canonical fail is a theme like "how to build your company context" — "Okay, but that's like... What would you actually teach there, right? There's not that much to teach that is universal." Restating a phrase from the notes ("context is king", "documentation is stale", "AI-first workflow") as a theme title, without the output having done the work of asking whether there is enough substance behind it for a training, is a FAIL. Note that the underlying subject can be legitimate — "context engineering" is a good topic — so judge the treatment, not just the words.
Q3Supported by the interviewsthis task
Judge's reasoning
Every theme traces to the notes: context to Nina's stale docs and Ben's 'context is king'; verification to Nina's plausible-but-wrong code, Ben's money logic and Raj's regulated-data caution; workflow to Nina's basic use and Raj's plan-then-build; evals to Nina's 100-250 labeled documents and proxy metrics.
▸Rubric
Every theme is grounded in what the three engineers said. FAIL if any theme cannot be traced to specific material in `context.md` — a generic AI-training theme bolted on that the interviews do not support, or a claim about Northcove that no engineer made. Being a good idea in general is not grounding.
Q4Uses all three interviewsthis task
Judge's reasoning
All three engineers visibly shape the set: Nina drives the workflow and eval themes, Ben drives the two-speed bar, rules ownership and deferring MCP, and Raj drives the confidence ladder, compliance data boundaries, the editor-not-author urgency and the org split.
▸Rubric
The synthesis uses all three interviews. FAIL if the themes are effectively a summary of one engineer's interview, with the other two contributing nothing distinct. Nina, Ben and Raj sit at different altitudes (hands-on feature work, power-user workflows, org-wide constraints) and the synthesis should show it. This does not require every theme to cite all three — it requires that all three engineers visibly shaped the set.
Q5Clear prioritiesthis task
Judge's reasoning
The themes are explicitly ranked ('in this order', context called highest-leverage, review called urgent), evals are moved to a separate follow-on track, and a 'leave for later' list gives reasons for each item it defers.
▸Rubric
It is a set of priorities, not a catalogue. FAIL if the output lists themes without any signal about what matters most for this company — no ordering, no emphasis, no reasoning about which gaps are urgent. A flat, undifferentiated list of equally-weighted topics fails; the ask was "what to focus on."
Notes
1Harness: Cursor CLI 2026.09.15-d2fe57e with model grok-4.7-high (Cursor reports it as Grok 4.7 256K High). It was uploaded as harness 'grok' only because Every Checks has no cursor harness yet. It is not the Grok CLI. Cursor's sandbox cannot keep the model from reading local files, and the owner explicitly waived that for this run. The runner is the Every Checks export with ec-bench's Cursor adapter (16dba0b) ported in. The judge was claude-opus-5. The first judge pass failed with a Claude API 529 (Overloaded) error. The result was re-judged, and the scripted checks are unchanged.
22 Sep 2026