polymath-society 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +52 -0
- package/README.md +311 -0
- package/dist/DATA-MAP.md +109 -0
- package/dist/cli.js +24136 -0
- package/dist/engine/closing-rubric.md +50 -0
- package/dist/engine/exp-allfacets.js +16832 -0
- package/dist/engine/exp-person.js +16922 -0
- package/dist/engine/exp-pipeline.js +16700 -0
- package/dist/engine/feel-seen-rubric.md +192 -0
- package/dist/engine/ingest-export.js +1423 -0
- package/dist/engine/peak-demos.js +16752 -0
- package/dist/engine/person-dimension-summary.js +16744 -0
- package/dist/engine/person-facet-lines.js +16784 -0
- package/dist/engine/person-headline.js +16733 -0
- package/dist/engine/person-report.js +16845 -0
- package/dist/engine/person-self-image.js +16689 -0
- package/dist/engine/public-report-guidelines.md +80 -0
- package/dist/engine/public-report.js +17284 -0
- package/dist/engine/run-analysis.js +16035 -0
- package/dist/engine/run-tagger.js +16092 -0
- package/dist/engine/top-companies.md +41 -0
- package/dist/engine/writing-well.md +56 -0
- package/dist/index.js +22021 -0
- package/dist/pipeline/TECHNIQUES.md +406 -0
- package/dist/pipeline/WRITING.md +48 -0
- package/dist/pipeline/coding-agglomerate.js +15876 -0
- package/dist/pipeline/coding-aggregate.js +440 -0
- package/dist/pipeline/coding-build.js +1168 -0
- package/dist/pipeline/coding-coaching.js +16893 -0
- package/dist/pipeline/coding-day-digest.js +15869 -0
- package/dist/pipeline/coding-delegation.js +16292 -0
- package/dist/pipeline/coding-expertise.js +15925 -0
- package/dist/pipeline/coding-flow.js +313 -0
- package/dist/pipeline/coding-frontier-detail.js +15878 -0
- package/dist/pipeline/coding-frontier.js +51 -0
- package/dist/pipeline/coding-gap-dist.js +293 -0
- package/dist/pipeline/coding-gap.js +17108 -0
- package/dist/pipeline/coding-grade.js +16195 -0
- package/dist/pipeline/coding-nutshell.js +15725 -0
- package/dist/pipeline/coding-projects.js +104 -0
- package/dist/pipeline/coding-walkthrough.js +15947 -0
- package/dist/web/app.js +12024 -0
- package/dist/web/index.html +1 -0
- package/dist/web/styles.css +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
# The best ways to use Claude Code — the gap rubric
|
|
2
|
+
|
|
3
|
+
Recommend from THIS catalog only. It is sourced primarily from **Boris Cherny** (he created
|
|
4
|
+
Claude Code): his "tips from the Claude Code team" thread (Feb 2026,
|
|
5
|
+
[x.com/bcherny](https://x.com/bcherny/status/2017742743125299476)) **and** his newer threads on
|
|
6
|
+
loops, mobile/remote, and `/batch` (spring 2026). It also includes a few first-party Claude Code
|
|
7
|
+
features he and the team ship: **session forking**, **`/by the way` side queries**, the **Chrome
|
|
8
|
+
extension**, **slash commands**, and **`SessionStart` hooks**. If a technique isn't in this file,
|
|
9
|
+
it is out of scope — no "auto mode," no `/compact`/`/clear`, no model-effort tips.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## ⛔ CRITICAL — DISCUSSING a feature is NOT USING it
|
|
14
|
+
|
|
15
|
+
This person builds tooling FOR Claude Code, so their transcripts are saturated with the words
|
|
16
|
+
"worktree," "pull request," "fork," "plan mode," "by the way," "teleport," etc. **A keyword in a
|
|
17
|
+
transcript is NOT evidence they use the feature** — it usually means they were talking about
|
|
18
|
+
building it. **Gate every recommendation on STRUCTURAL usage facts** (tool-call counts,
|
|
19
|
+
`EnterPlanMode` count, session `entrypoint`s, git branch names, `duplicateOf` copies,
|
|
20
|
+
`maxConcurrent`, `subagentSpawns`) — never on a keyword appearing in the text.
|
|
21
|
+
|
|
22
|
+
## ⛔ Claude-auto tools — NEVER recommend or credit these
|
|
23
|
+
|
|
24
|
+
Some tools Claude reaches for on its own; they are NOT the user's choice: **visualize /
|
|
25
|
+
show_widget** (visual widgets & HTML), **live-preview / Claude_Preview**, **queue-ahead**,
|
|
26
|
+
**deferred-tools (ToolSearch)**, **subagent fan-out**, **task orchestration
|
|
27
|
+
(TaskCreate/Update)**, **web-research (WebSearch/WebFetch)**. Never write "use visualize MCP" or
|
|
28
|
+
name any of these — the user just ASKS Claude for the outcome and Claude picks the tool. These are
|
|
29
|
+
filtered from the builder's inputs (`CLAUDE_AUTO_CAP` / `CLAUDE_AUTO_MCP` in
|
|
30
|
+
`scripts/coding-gap.mts`).
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## THE PRIME DIRECTIVE — order recommendations most-difference-making → least
|
|
35
|
+
|
|
36
|
+
Every recommendation carries a **`differenceRank`** (1 = the single biggest unlock for THIS
|
|
37
|
+
person). The report shows them in that order. The ranking is **conditional on their data**:
|
|
38
|
+
|
|
39
|
+
- **If they are NOT already running several agents in parallel** (`maxConcurrent` < 2, or
|
|
40
|
+
`parallelHours` ≈ 0) → **"Do more in parallel" is `differenceRank` 1.** For someone working one
|
|
41
|
+
agent at a time, nothing else comes close.
|
|
42
|
+
- **If they already parallelize** (`maxConcurrent` ≥ 2) → **"Invest in your CLAUDE.md / tune your
|
|
43
|
+
context" is `differenceRank` 1.** Boris's framing: better context *dramatically* improves
|
|
44
|
+
performance, and it is the highest-leverage move for someone who already runs agents in parallel.
|
|
45
|
+
|
|
46
|
+
Then, in general (skip any that don't apply, and honor each tip's gate):
|
|
47
|
+
|
|
48
|
+
> parallel (if low) → **CLAUDE.md / context** → **Plan mode** → **give Claude test cases (auto-
|
|
49
|
+
> verify, run longer)** → **subagents** → loops (if collaborative) → remote/mobile (if workstation-bound) →
|
|
50
|
+
> forking → slash commands → Chrome extension → `/by the way` → skills → visuals → the de-emphasized
|
|
51
|
+
> three (bug-fixing, prompting, data/analytics).
|
|
52
|
+
|
|
53
|
+
Respect the person's deliberate choices in the gap config (e.g. they stay on `main` on purpose —
|
|
54
|
+
never tell them to hand-juggle worktrees; `/batch` managing its own worktrees is fine).
|
|
55
|
+
|
|
56
|
+
**Omission rule — a gated tip whose gate fails is DROPPED, never softened.** If the data says a tip
|
|
57
|
+
doesn't apply (no PRs → no loops) it does not appear at all — a "when you someday…" card reads as
|
|
58
|
+
not having looked. If the data says they ALREADY do it (recent forking, regular browser-driving,
|
|
59
|
+
voice), it moves to **alreadyStrong** — never to recommendations. Judge "already do it" on the
|
|
60
|
+
RECENT window: adopting a habit last week counts as doing it.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 1 · Invest in your CLAUDE.md — tune your context [usually the #1 unlock]
|
|
65
|
+
|
|
66
|
+
**The core Boris point: better context dramatically improves performance, and tuning it is the
|
|
67
|
+
highest-leverage thing you can do.** After any correction, *"just tell Claude to add that to your
|
|
68
|
+
CLAUDE.md"* — one line, and it's remembered every future session so you never re-type it. Then
|
|
69
|
+
ruthlessly refine it (keep it tight — under ~200 lines or Claude starts ignoring rules).
|
|
70
|
+
|
|
71
|
+
- **Teams / shared context [EMPHASIZE when they collaborate]:** CLAUDE.md is checked into git, so
|
|
72
|
+
it is *shared project context* — every teammate (and every future session) inherits the same
|
|
73
|
+
conventions, commands, and architecture. On a team this compounds: one person's hard-won
|
|
74
|
+
correction becomes everyone's default.
|
|
75
|
+
- **Nested CLAUDE.md per subfolder:** a subdirectory can have its OWN `CLAUDE.md`. Claude Code
|
|
76
|
+
loads it **automatically, on demand** — the moment Claude reads any file in that subtree, that
|
|
77
|
+
folder's CLAUDE.md is pulled into context. Nothing extra to wire up (the root file is loaded at
|
|
78
|
+
launch; subtree files load when touched). So subsystem-specific rules (e.g. "in `packages/x/`,
|
|
79
|
+
always do Y") belong in a CLAUDE.md *next to that subsystem*, not crammed into the root file.
|
|
80
|
+
- **The sub-agents you should have defined:** recurring multi-step jobs deserve a saved, reusable
|
|
81
|
+
subagent in `.claude/agents/` — and that agent should be NAMED in CLAUDE.md so Claude reaches for
|
|
82
|
+
it. Ground this: point at a specific repeated job in THEIR sessions that should be a standing
|
|
83
|
+
subagent + a CLAUDE.md line telling Claude when to use it.
|
|
84
|
+
- **How to instruct Claude to do it:** the move is dead simple and worth spelling out — you don't
|
|
85
|
+
hand-edit the file; you say *"add that to your CLAUDE.md"* / *"make that a subagent and note it in
|
|
86
|
+
CLAUDE.md,"* and Claude writes it. Say this explicitly so they know the cost is one sentence.
|
|
87
|
+
- **`SessionStart` hook (only if warranted):** static CLAUDE.md holds ~95% of context (architecture,
|
|
88
|
+
conventions, exact commands, "never use X library," testing workflow). A `SessionStart` hook is
|
|
89
|
+
for *dynamic, computed* context that CLAUDE.md can't hold — a summary of recent commits, the
|
|
90
|
+
current branch, the assigned ticket, config pulled from elsewhere. Only suggest the hook if their
|
|
91
|
+
sessions show repetitive *computed* setup; otherwise CLAUDE.md is simpler and you should say so.
|
|
92
|
+
- **whyItHelps must name THEIR OWN recurring standing instructions** — discover them from the
|
|
93
|
+
excerpts (common classes: a "talk to me before you change things" rule, a house convention about
|
|
94
|
+
how a rubric/output should be shaped, an "always give concrete examples" rule) — and say the fix
|
|
95
|
+
is one line: tell Claude to add them. Do NOT invent the instruction; find the one they actually
|
|
96
|
+
repeat.
|
|
97
|
+
- **KEEP OUT** (so the illustration stays honest): anything Claude can read from the code, standard
|
|
98
|
+
conventions it knows, pasted code snippets (they rot — use `file:line`), README duplication
|
|
99
|
+
(`@README`), vague fluff ("write clean code").
|
|
100
|
+
- **Signal:** the SAME standing instruction recurs across sessions; a thin or absent CLAUDE.md;
|
|
101
|
+
subsystem rules re-typed instead of living in a nested CLAUDE.md; repeated multi-step jobs with no
|
|
102
|
+
saved subagent.
|
|
103
|
+
|
|
104
|
+
## 2 · Start every complex task in Plan mode [EMPHASIZE — high priority]
|
|
105
|
+
|
|
106
|
+
*"Pour your energy into the plan so Claude can 1-shot the implementation."* Shift+Tab twice to enter
|
|
107
|
+
Plan mode; iterate the plan in detail until it's solid, then let Claude execute. If it drifts, go
|
|
108
|
+
back and re-plan rather than pushing through. Skip it only when you could describe the diff in one
|
|
109
|
+
sentence.
|
|
110
|
+
|
|
111
|
+
- **Name the problem precisely:** skipping plan mode makes the model pause mid-build to ask for
|
|
112
|
+
feedback and drift from intent — so the person ends up steering turn-by-turn *during*
|
|
113
|
+
implementation what they could have settled once, up front. **The plan IS the feedback loop** —
|
|
114
|
+
iterating on it (with no context-switching cost, since nothing's been built yet) is what makes
|
|
115
|
+
both of you think better and produces a much better system in one shot.
|
|
116
|
+
- **Ground it:** find a real session where they iterated a lot mid-implementation to fine-tune
|
|
117
|
+
something — that back-and-forth belonged in the plan.
|
|
118
|
+
- **See the plan as HTML, not a wall of markdown [Tariq, "the unreasonable effectiveness of HTML
|
|
119
|
+
files"]:** while in Plan mode, ask Claude to render the design/UI as an HTML mock you can click
|
|
120
|
+
through — even a few different directions side by side — instead of a long markdown plan nobody
|
|
121
|
+
reads. HTML is information-dense and ergonomic; you catch a misunderstanding by *seeing* it before
|
|
122
|
+
any code is written, and can screenshot it back to Claude to refine. (Do NOT name the tool — the
|
|
123
|
+
user just asks Claude to "show me this as HTML.")
|
|
124
|
+
- **Keep THIS rec about iterating the DESIGN — not test cases.** The "seed the plan with expected
|
|
125
|
+
results / test cases so Claude runs autonomously longer" idea now lives in its own tip (#3, Give
|
|
126
|
+
Claude a way to verify its own work). Do NOT put test-case/fixture copy in the plan-mode
|
|
127
|
+
recommendation too — the two cards must not echo. Plan mode here = settle the approach and see it
|
|
128
|
+
as HTML before code.
|
|
129
|
+
- **Signal:** `EnterPlanMode` ≈ 0 while sessions are large multi-file changes; lots of
|
|
130
|
+
mid-implementation back-and-forth or `[Request interrupted by user]`; the person literally says
|
|
131
|
+
"discuss the architecture/approach first" but isn't in plan mode.
|
|
132
|
+
|
|
133
|
+
## 3 · Give Claude test cases up front so it can auto-verify and run longer [EMPHASIZE — Boris: "the most important thing"]
|
|
134
|
+
|
|
135
|
+
**The single highest-leverage habit in both Claude Code talks: give Claude some way to CHECK its own
|
|
136
|
+
output, and it will iterate to near-perfect on its own.** Boris, verbatim: *"Give it some sort of
|
|
137
|
+
tool that it can use for feedback to check its work, and it will iterate by itself, and you're going
|
|
138
|
+
to get a much better result."* Hand it a mock and a way to see the rendered result, unit tests to
|
|
139
|
+
run, a screenshot to compare — *"let it iterate two or three times, often it gets it almost
|
|
140
|
+
perfect."*
|
|
141
|
+
|
|
142
|
+
- **LEAD WITH: "make the test cases up front, so Claude can work for much longer."** This is the
|
|
143
|
+
clearest, highest-value framing — write the expected outputs / test cases BEFORE the work starts,
|
|
144
|
+
and Claude runs autonomously far longer without stopping to ask, because it checks itself as it
|
|
145
|
+
goes. The whyItHelps should open on this.
|
|
146
|
+
- **What makes a good test-case recommendation — GENERAL PRINCIPLES, illustrated with a GENERIC
|
|
147
|
+
example (never the person's own codebase; the builder specializes these to their project):**
|
|
148
|
+
**Core idea: the richer and more DETAILED the test cases handed to Claude UP FRONT, the more it
|
|
149
|
+
has to work off of — more data up front = better, more autonomous results. So the test cases you
|
|
150
|
+
recommend to THIS person (grounded in their own usage) must themselves be rich and detailed, not a
|
|
151
|
+
token example.**
|
|
152
|
+
1. **Rich and comprehensive — a LIST of behaviors, not one case.** Tell them to have Claude
|
|
153
|
+
enumerate the FULL set of behaviors/scenarios to test and test each on its own — the whole
|
|
154
|
+
surface, edge cases included, not a single happy path. Generic illustration: for a to-do app
|
|
155
|
+
that's adding an item, removing an item, editing an item, completing an item, emailing an item,
|
|
156
|
+
an empty list — a real, complete list.
|
|
157
|
+
2. **At a HIGH level of abstraction — the flows the person already keeps in their head.** Test
|
|
158
|
+
cases are USER-LEVEL flows and behaviors, the kind the person can rattle off in one breath:
|
|
159
|
+
for a to-do app, "add an item, remove an item, modify an item, send an item as an email to a
|
|
160
|
+
friend." NEVER implementation-level assertions ("make sure this function fires at this time")
|
|
161
|
+
or internal-machinery checks — the person doesn't think in those terms, and supplying them is
|
|
162
|
+
far too cognitively expensive. If a case couldn't plausibly come out of the person's mouth,
|
|
163
|
+
it's at the wrong level; Claude translates the high-level flows into detailed tests itself.
|
|
164
|
+
3. **The WHY rides along with every case — richness lives in the REASON, not in machinery
|
|
165
|
+
detail.** A test case is `example/flow → expected outcome → the reason it's correct`. A bare
|
|
166
|
+
expected value ("X = 11", "add item works") teaches Claude nothing about WHY it's right — the
|
|
167
|
+
reason is exactly the "more data up front," and it's what lets Claude verify it got things
|
|
168
|
+
right FOR THE RIGHT REASONS, not by luck. FEWER cases each carrying a reason beat a long list
|
|
169
|
+
of bare values.
|
|
170
|
+
3b. **Write every case FROM THE PERSON'S POINT OF VIEW — what they'd actually remember.** Ask:
|
|
171
|
+
given what this person is building, which cases do they already know really well in their head?
|
|
172
|
+
Those are the ones to suggest. The reason must read like the person's own recollection —
|
|
173
|
+
first-person, vivid-but-possibly-vague ("in that conversation I came up with the concept
|
|
174
|
+
myself — I thought that was brilliant"), because a vibe-level memory is all a real person has.
|
|
175
|
+
NEVER analyst/rubric language ("applies an existing model correctly but never stress-tests its
|
|
176
|
+
assumptions") — no person describes their own memories that way, and asking them to is
|
|
177
|
+
cognitively expensive. Vague is fine; Claude sharpens a vague memory into a precise check
|
|
178
|
+
itself.
|
|
179
|
+
4. **Reasons come from the PERSON, never invented.** When the card shows example cases, each
|
|
180
|
+
attached reason must be TRACEABLE to something the person actually said/argued in their
|
|
181
|
+
sessions (their own words, their own argument) — never analysis the model composed to sound
|
|
182
|
+
right. If no traceable reason exists for a case, do NOT fabricate one: frame it as "Claude
|
|
183
|
+
drafts the candidate list with proposed reasons; you correct them from memory" — the person is
|
|
184
|
+
the only source of the memorable reasons.
|
|
185
|
+
5. **Generated by Claude from the project, then reviewed.** Ask Claude to produce the rich list
|
|
186
|
+
from the actual code/spec; you review and correct it — fuller coverage than hand-typing cases.
|
|
187
|
+
6. **Up front, so it runs longer — asked for in PLAIN ENGLISH.** The list exists before the work
|
|
188
|
+
starts, so Claude checks itself after each change and runs autonomously far longer. Do NOT
|
|
189
|
+
prescribe wiring a CLI harness or command (`bun run evals`-style plumbing) — the person just
|
|
190
|
+
tells Claude in English to check against the cases; Claude handles the mechanics itself.
|
|
191
|
+
The whyItHelps APPLIES these to whatever the person is building (do NOT assume any particular kind
|
|
192
|
+
of app): a list of HIGH-LEVEL flows/behaviors their project should test, with the REASON attached
|
|
193
|
+
to at least the anchor cases — the kind of list they could say out loud in one breath. FAILED
|
|
194
|
+
cards: internal-machinery assertions (per-subsystem/per-function checks); a single thin case; a
|
|
195
|
+
run of bare `X = value` pairs with no reasons. This card may run longer to fit the list. This
|
|
196
|
+
rubric states only the principles + the generic illustration; the person-specific cases come from
|
|
197
|
+
their data.
|
|
198
|
+
- **Make verification NATIVE to the artifact [Tariq's workshop — the deepest level]:** don't leave
|
|
199
|
+
yourself as the one who eyeballs correctness. Build the check *into the thing*: expected outputs
|
|
200
|
+
as fixtures, invariants that must always hold, probes that push off the happy path, and a single
|
|
201
|
+
command (or DOM/data contract) Claude can run to see pass/fail — from a human dashboard, from the
|
|
202
|
+
browser, or headlessly in CI. The Claude Code team even records these verification runs as
|
|
203
|
+
evidence.
|
|
204
|
+
- **This is BROADER than plan-mode test cases (tip 2).** That was "seed the plan with a few expected
|
|
205
|
+
results." This is a *standing verification harness* Claude runs after every change, on every task
|
|
206
|
+
— so it self-corrects instead of you re-checking by hand.
|
|
207
|
+
- **Ground it in THEIR work (state the principle generically; let the model find the instance):**
|
|
208
|
+
when the person builds something whose correctness they can specify — an evaluation/scoring
|
|
209
|
+
engine, a data transform, a parser — the move is to encode the expected results and invariants as
|
|
210
|
+
a self-check Claude runs itself, so it catches its own regressions. Point at where they are
|
|
211
|
+
currently the manual verifier (re-reading outputs, re-checking a view by hand after each change)
|
|
212
|
+
and show how a one-command self-check would take that off them and let Claude iterate unattended.
|
|
213
|
+
- **The recommendation TITLE must be about TEST CASES and contain "test cases" (e.g. "Give Claude
|
|
214
|
+
test cases so it can auto-verify and run longer")** so the report picks the right icon. Do NOT
|
|
215
|
+
name a Claude-auto tool for the "see the result" step — the user just asks Claude to check its
|
|
216
|
+
work / show the result.
|
|
217
|
+
- **Signal:** the person is the one eyeballing correctness after each change; UI/output checked by
|
|
218
|
+
hand; no test/`verify` step the agent runs itself; long sessions of manual back-and-forth that a
|
|
219
|
+
self-check would have closed. (Note: they already drive the browser a lot — the gap is turning
|
|
220
|
+
that manual checking into a check CLAUDE runs and iterates against.)
|
|
221
|
+
|
|
222
|
+
## 4 · Use subagents [EMPHASIZE — high priority]
|
|
223
|
+
|
|
224
|
+
Append **"use subagents"** to any request to allocate more compute; **"use 5 subagents to explore
|
|
225
|
+
the codebase"** for parallel exploration; offload heavy sub-work so the main agent's context stays
|
|
226
|
+
focused. Save reusable ones in `.claude/agents/`. **[Make it visceral with THEIR work: name the
|
|
227
|
+
exact request in their sessions where this was the move — e.g. a broad "explore/analyze the whole
|
|
228
|
+
X→Y pipeline" ask that ran single-threaded and should have been "use 5 subagents to explore."]**
|
|
229
|
+
|
|
230
|
+
- **Signal:** broad explore/analyze requests run single-threaded; low `subagentSpawns`; never saves
|
|
231
|
+
reusable agents.
|
|
232
|
+
|
|
233
|
+
## 5 · Run loops for the collaborative grind [GATE on collaboration volume]
|
|
234
|
+
|
|
235
|
+
Boris runs cron loops that babysit PRs and fix CI automatically — *"every night I have a few
|
|
236
|
+
thousand agents running,"* 150 PRs in a day, much of it from his phone. His actual loops:
|
|
237
|
+
|
|
238
|
+
- `/loop 5m /babysit` — auto-address code-review comments, auto-rebase, shepherd PRs to production.
|
|
239
|
+
- `/loop 30m /slack-feedback` — put up PRs for Slack feedback on a cadence.
|
|
240
|
+
- `/loop /post-merge-sweeper` — open PRs to address review comments that were missed.
|
|
241
|
+
- `/loop 1h /pr-pruner` — close out stale, no-longer-needed PRs.
|
|
242
|
+
|
|
243
|
+
**[REQUIRED — quote Boris VERBATIM: the whyItHelps for this tip MUST list his exact loops with his
|
|
244
|
+
exact wording — `/loop 5m /babysit` (auto-address code review, auto-rebase, and shepherd PRs to
|
|
245
|
+
production), `/loop 30m /slack-feedback`, `/loop /post-merge-sweeper`, `/loop 1h /pr-pruner` — not a
|
|
246
|
+
paraphrase. It is fine for this card to run longer than the others to fit them.]**
|
|
247
|
+
|
|
248
|
+
Also **`/batch` for big one-off parallelizable work** (migrations): it interviews you, then fans the
|
|
249
|
+
work out to *"as many worktree agents as it takes (dozens, hundreds, even thousands),"* each isolated
|
|
250
|
+
in its own worktree, each testing its work before opening a PR. Usage:
|
|
251
|
+
`/batch migrate src/ from Solid to React`.
|
|
252
|
+
|
|
253
|
+
- **[GATE — CRITICAL: loops are almost entirely for COLLABORATIVE work — PRs, pushes, review, CI.
|
|
254
|
+
Surface loops ONLY if the STRUCTURAL data shows real collaborative volume: many `git push`/`gh
|
|
255
|
+
pr`, branch-per-feature, review activity. For a solo builder who works on `main` and doesn't open
|
|
256
|
+
PRs, this tip FAILS its gate — OMIT it from recommendations ENTIRELY, not even a light/conditional
|
|
257
|
+
"when you someday open PRs" card; recommending PR-shepherding loops to someone with no PRs reads
|
|
258
|
+
as not having looked at their data. `/batch` applies to anyone facing a large one-off migration —
|
|
259
|
+
but only mention it if a migration is actually visible in their sessions, and then inside another
|
|
260
|
+
relevant card or on its own merits, not as a vehicle to sneak the loops card in.]**
|
|
261
|
+
- **Signal:** high `git push` / `gh pr` / review volume, multiple feature branches → loops fit; a
|
|
262
|
+
looming large migration or sweeping mechanical change → `/batch`.
|
|
263
|
+
|
|
264
|
+
## 6 · Code from anywhere — mobile app, `/teleport`, `/remote-control`, a remote instance [GATE on workstation-bound]
|
|
265
|
+
|
|
266
|
+
Boris writes a lot of his code from the **iOS/Android app** (Claude app → Code tab): a convenient
|
|
267
|
+
way to make changes without opening a laptop. And you can move a session across surfaces:
|
|
268
|
+
`claude --teleport` or `/teleport` continues a cloud session on your machine; `/remote-control`
|
|
269
|
+
controls a locally running session from your phone or the web (he keeps "Enable Remote Control for
|
|
270
|
+
all sessions" set in `/config`). About half his engineering now happens on his phone.
|
|
271
|
+
|
|
272
|
+
- **Remote instance:** stand up a persistent remote box (e.g. an **EC2 instance**) so agents keep
|
|
273
|
+
running when your laptop is closed. The **mobile app can connect straight to that remote
|
|
274
|
+
instance** — much easier than reaching a session running on your local machine — so you kick off
|
|
275
|
+
and check work from your phone. Worth the one-time setup if you're otherwise stuck coding only
|
|
276
|
+
when you're physically at your desk. **[whyItHelps SHOULD mention the iOS app connecting to the
|
|
277
|
+
remote instance as the payoff.]**
|
|
278
|
+
- **[GATE — only if the person is WORKSTATION-BOUND: all sessions come from the desktop app /
|
|
279
|
+
terminal at their machine, with ZERO web or mobile `entrypoint`s. That means every bit of their
|
|
280
|
+
work is gated on being at the workstation — the unlock is being able to kick off and check agents
|
|
281
|
+
from their phone via a remote instance. If they already have web/mobile sessions, this is a
|
|
282
|
+
strength, not a gap.]**
|
|
283
|
+
- **Signal:** `entrypoint`s are 100% desktop/CLI with none web/mobile → recommend the mobile app +
|
|
284
|
+
`/remote-control` + setting up a remote (EC2) instance. Icon key: "remote" / "EC2" / cloud.
|
|
285
|
+
|
|
286
|
+
## 7 · Fork your session — branch the context instead of rebuilding it
|
|
287
|
+
|
|
288
|
+
Forking clones a session's full context at a point, so you can chase a side path or spin up a
|
|
289
|
+
parallel line of work WITHOUT re-establishing everything from scratch. It's one of the best ways to
|
|
290
|
+
both **save context** and **parallelize** — you branch from a shared, already-warmed-up setup.
|
|
291
|
+
|
|
292
|
+
- **[CHECK the logs — and judge on the RECENT window, not all-time: `duplicateOf` marks resume/fork
|
|
293
|
+
copies (it conflates the two). If the RECENT count shows they fork in the current window, they
|
|
294
|
+
have ALREADY adopted it — this tip FAILS its gate: OMIT it from recommendations and credit it
|
|
295
|
+
under alreadyStrong (someone who started forking last week must not be told to start forking).
|
|
296
|
+
Only surface forking as a gap when recent forking is ~absent, grounded in a moment where a fork
|
|
297
|
+
would have carried the context.]**
|
|
298
|
+
- **Signal:** long sessions rebuilt from scratch when a fork would have carried the context; ~zero
|
|
299
|
+
`duplicateOf` copies in the RECENT window.
|
|
300
|
+
|
|
301
|
+
## 8 · Turn repeated multi-step prompts into slash commands [team leverage]
|
|
302
|
+
|
|
303
|
+
Boris uses a `/commit-push-pr` command dozens of times a day. Commands live in `.claude/commands/`,
|
|
304
|
+
checked into git — so on a **team, everyone shares the same commands** and the same "inner loop"
|
|
305
|
+
workflows. It's the lighter, prompt-level sibling of a skill.
|
|
306
|
+
|
|
307
|
+
- **[Ground with concrete commands THIS repo could have — DERIVE the class from their repeated
|
|
308
|
+
multi-step prompts, don't hardcode their exact wording. E.g. if they re-type a multi-step "run the
|
|
309
|
+
analysis / regrade / regenerate the snapshot" sequence, that's a `/`-command. Name 2–3 plausible
|
|
310
|
+
commands their repo is missing.]** Emphasize the team payoff if they collaborate.
|
|
311
|
+
- **Signal:** the same multi-step prompt re-typed across sessions; no `.claude/commands/`.
|
|
312
|
+
|
|
313
|
+
## 9 · Use the Chrome extension to automate whole browser tasks [GATE — omit if they already use it]
|
|
314
|
+
|
|
315
|
+
The Claude Chrome extension lets Claude drive a real browser and **automate complete web tasks end
|
|
316
|
+
to end** — the chores that can ONLY be done through a front end: signing up for things (programs,
|
|
317
|
+
awards, services), retrieving credentials/API keys from dashboards, filling and submitting forms,
|
|
318
|
+
working through auth-gated or JS-only flows. Hand Claude the whole errand, not just a click.
|
|
319
|
+
|
|
320
|
+
- **[GATE — CRITICAL: if their usage shows they ALREADY drive the browser regularly
|
|
321
|
+
(usage.chrome.chromeToolCalls is substantial), this tip FAILS its gate — OMIT it from
|
|
322
|
+
recommendations entirely and credit it under alreadyStrong. Recommending the Chrome extension to
|
|
323
|
+
someone who already uses it reads as not having looked at their data. Only recommend when
|
|
324
|
+
browser-driving is absent, grounded in a web chore from their sessions Claude could have run.]**
|
|
325
|
+
- **Signal:** ~zero browser-driving tool calls PLUS manual web chores visible in their sessions.
|
|
326
|
+
|
|
327
|
+
## 10 · Use `/btw` for side queries while an agent runs
|
|
328
|
+
|
|
329
|
+
While the main agent is working, the **`/btw`** command lets you fire a side question — understand a
|
|
330
|
+
piece of the codebase, sanity-check an assumption, look something up — WITHOUT interrupting or
|
|
331
|
+
derailing the run. It reuses the conversation's context (so it's near-free), answers in an overlay
|
|
332
|
+
that vanishes, and keeps the main task moving while you learn alongside it. The command is `/btw`,
|
|
333
|
+
not "by the way".
|
|
334
|
+
|
|
335
|
+
- **[Tell them they're UNDER-using this: they interrupt running work (or context-switch) to ask
|
|
336
|
+
small questions that could have been `/btw` side queries. Ground in a moment where they broke a
|
|
337
|
+
run to ask something. The recommendation TITLE should say `/btw`.]**
|
|
338
|
+
- **Signal:** `[Request interrupted by user]` to ask a question; stopping a run to ask something
|
|
339
|
+
small that didn't need to halt the work.
|
|
340
|
+
|
|
341
|
+
## 11 · If you do something more than once a day, make it a skill
|
|
342
|
+
|
|
343
|
+
Boris's rule, verbatim — *"If you do something more than once a day, turn it into a skill or
|
|
344
|
+
command"* (`.claude/skills/<name>/SKILL.md`, checked into git). **[The recommendation TITLE must be
|
|
345
|
+
this GENERAL rule (Boris's wording), NOT a specific skill name. The specific instance goes inside
|
|
346
|
+
whyItHelps — e.g. a multi-step startup briefing they re-type at the start of every session is the
|
|
347
|
+
obvious thing to make a skill.]** Boris's examples: `/techdebt`, context-sync commands, dbt agents.
|
|
348
|
+
Import instead of building: `skill-creator` ([anthropics/skills](https://github.com/anthropics/skills)),
|
|
349
|
+
marketplace plugins (**commit-commands**, **pr-review-toolkit**, **security-guidance**).
|
|
350
|
+
|
|
351
|
+
- **Signal:** repeated multi-step manual prompts that should be one command; no custom skills.
|
|
352
|
+
|
|
353
|
+
## 12 · Have Claude explain things to you with visuals
|
|
354
|
+
|
|
355
|
+
**[Problem-led: the person built their own system (rubrics, a scoring/collector pipeline, etc.) but
|
|
356
|
+
doesn't fully hold how the mechanics fit together — they re-question outputs and re-derive the logic
|
|
357
|
+
repeatedly. Solution: just ASK Claude to build a visual, interactive walkthrough of how it works (do
|
|
358
|
+
NOT name a tool — Claude picks it; the user never "uses visualize MCP"). In their context: an
|
|
359
|
+
interactive page stepping through their own pipeline makes the mechanics clear once, so they stop
|
|
360
|
+
re-explaining.]** Also: the **Explanatory** output style; a **spaced-repetition** skill.
|
|
361
|
+
|
|
362
|
+
- **REQUIRED in whyItHelps — the plan-as-HTML move [Tariq, "the unreasonable effectiveness of HTML
|
|
363
|
+
files"]:** the recommendation MUST include that, while in Plan mode, they can ask Claude to render
|
|
364
|
+
the design/plan as clickable HTML mockups (even a few different directions side by side) instead
|
|
365
|
+
of reviewing a long markdown plan. Seeing it as HTML is denser and more ergonomic — they catch a
|
|
366
|
+
misunderstanding before any code is written, and can screenshot it back to refine. This is the
|
|
367
|
+
most concrete, highest-value form of "explain with visuals," so lead the whyItHelps with it. (Do
|
|
368
|
+
NOT name the tool — the user just asks Claude to "show me this as HTML.")
|
|
369
|
+
|
|
370
|
+
- **Signal:** repeatedly asks "how does X work" / "how are the numbers assigned" about THEIR OWN
|
|
371
|
+
system → have Claude build a visual explainer or mock site that shows how it works.
|
|
372
|
+
|
|
373
|
+
---
|
|
374
|
+
|
|
375
|
+
## De-emphasized (surface only on a clear, repeated instance)
|
|
376
|
+
|
|
377
|
+
## 13 · Claude fixes most bugs by itself [DE-EMPHASIZE]
|
|
378
|
+
Enable the Slack MCP, paste a bug thread, say "fix"; "Go fix the failing CI tests"; point Claude at
|
|
379
|
+
docker logs. **Signal:** only if their sessions show them hand-relaying bug reports / CI failures
|
|
380
|
+
the agent could pull and fix itself.
|
|
381
|
+
|
|
382
|
+
## 14 · Level up your prompting [DE-EMPHASIZE]
|
|
383
|
+
Challenge Claude as a reviewer, request behavior diffs; after a mediocre fix, "implement the elegant
|
|
384
|
+
solution"; write detailed specs. **Signal:** low priority — only a clear, repeated instance of
|
|
385
|
+
accepting a weak first attempt.
|
|
386
|
+
|
|
387
|
+
## 15 · Use Claude for data & analytics [DE-EMPHASIZE]
|
|
388
|
+
CLI tools like `bq` for BigQuery directly inside Claude Code. **Signal:** only if their sessions
|
|
389
|
+
show them manually running/relaying DB queries.
|
|
390
|
+
|
|
391
|
+
---
|
|
392
|
+
|
|
393
|
+
## Voice dictation (interface QoL — detect, don't assume)
|
|
394
|
+
|
|
395
|
+
Double-tap `fn` on macOS for ~3× typing speed. **[DETECT from prompt length: consistently SHORT
|
|
396
|
+
prompts → they TYPE → recommend voice AND a cheap (~$20) USB mic. LONG / run-on / speech-like
|
|
397
|
+
prompts → they already dictate → treat as a STRENGTH, do NOT recommend voice.]**
|
|
398
|
+
|
|
399
|
+
---
|
|
400
|
+
|
|
401
|
+
**Sources:** Boris Cherny — "tips from the Claude Code team"
|
|
402
|
+
([x.com/bcherny](https://x.com/bcherny/status/2017742743125299476)); the loops / mobile /
|
|
403
|
+
`/teleport` / `/remote-control` / `/batch` thread (spring 2026); plus first-party Claude Code docs
|
|
404
|
+
for nested CLAUDE.md ([on-demand subtree loading](https://code.claude.com/docs/en/claude-directory)),
|
|
405
|
+
remote control ([docs](https://code.claude.com/docs/en/remote-control)), forking, `/by the way`,
|
|
406
|
+
slash commands, and `SessionStart` hooks.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Coding-report writing rubric — the house voice
|
|
2
|
+
|
|
3
|
+
Every line of user-facing copy in the coding report (component strings, LLM-written
|
|
4
|
+
sections, coaching, headlines) must pass this rubric. If a sentence fails, cut or rewrite it.
|
|
5
|
+
|
|
6
|
+
## The one rule: NO FLUFF
|
|
7
|
+
|
|
8
|
+
Fluff is any text that does not carry a fact, a number, a named thing, or a decision.
|
|
9
|
+
If you delete the sentence and the reader loses nothing concrete, it was fluff. Cut it.
|
|
10
|
+
|
|
11
|
+
Banned outright:
|
|
12
|
+
- Throat-clearing subtitles that restate the section title in prettier words
|
|
13
|
+
("the deliberate moves you make, and where the frontier is" → DELETE).
|
|
14
|
+
- Adjective stacks that assert quality without evidence ("genuinely strong, real,
|
|
15
|
+
discriminating taste"). Show the instance instead.
|
|
16
|
+
- Hedge-and-flatter filler ("a real, developing sense", "a strong signal", "honestly").
|
|
17
|
+
- Meta-narration ("Here's the honest read:", "In a nutshell —", "Let's look at").
|
|
18
|
+
- Generic best-practice advice not tied to THIS person's data.
|
|
19
|
+
|
|
20
|
+
## Concrete or it doesn't ship
|
|
21
|
+
|
|
22
|
+
- Name the thing: the skill (`deep-research`), the project (Polymath Society), the
|
|
23
|
+
session, the date, the number. Never "various tools" or "several sessions".
|
|
24
|
+
- Every quality claim must be anchored to a specific instance the person will recognize:
|
|
25
|
+
"you reframed the grading rubric around load-bearing rungs on 06-12" beats
|
|
26
|
+
"strong abstraction". The point is they think "oh — it actually saw that."
|
|
27
|
+
- Prefer one sharp example over three vague ones.
|
|
28
|
+
|
|
29
|
+
## Nothing important in grey
|
|
30
|
+
|
|
31
|
+
Grey (`text-faint`/`text-muted`) text is skimmed past and ignored. If it matters, it is
|
|
32
|
+
`text-ink` (black) and weighted. Grey is only for axis labels, units, and true asides.
|
|
33
|
+
Never put a real finding, a name, or a number in grey.
|
|
34
|
+
|
|
35
|
+
## Make them feel seen, don't flatter
|
|
36
|
+
|
|
37
|
+
Seen = you named something true and specific about how they work that they hadn't seen
|
|
38
|
+
articulated. Flattery = adjectives with no referent. Calibrate praise to what's load-bearing
|
|
39
|
+
and TRUE (see lib/agents/report/feel-seen-rubric.md), then point at the receipt.
|
|
40
|
+
|
|
41
|
+
## Mechanics
|
|
42
|
+
|
|
43
|
+
- Short. One idea per sentence. Cut every word that isn't doing work.
|
|
44
|
+
- Active voice, second person ("you"), present tense.
|
|
45
|
+
- A number beats a word; a named instance beats a number; the reader's own recognition
|
|
46
|
+
beats both.
|
|
47
|
+
- Coaching tells them ONE concrete thing to do differently, drawn from their data — not a
|
|
48
|
+
menu, not a platitude.
|