Content
85%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
An exceptionally dense, expert-level body: every section delivers executable commands, exact props, and specific failure modes with strong verification workflow and feedback loops, and it never explains what Claude already knows. The main structural weakness is that the many clearly-signaled reference files the body depends on are absent from the bundle, and time-sensitive version pins sit inline in the core body rather than in versioned references.
Suggestions
Ship the referenced files in references/ — chat-versions.md, ai-integration.md, design-matching.md, simulator-verification.md, sendbird-migration.md, stream-agents.md, basics/offline-support.md, and guides/push-notifications.md are all cited as load-bearing but none exist in the bundle, so the one-level-deep navigation the body relies on is broken.
Move the version-pinned native setup gotchas (Expo SDK 54/56/57/58 and RN 0.81/0.85 pairs, the reanimated 4.5.0/worklets 0.10.0 crash pin and its >=4.5.1/>=0.10.2 fix) into a versioned reference file and keep only a pointer plus the currently-safe requirement in the body, so the always-loaded SKILL.md does not go stale with each Expo release.
Consider moving the long Chat keyboard/picker inset arithmetic (the 86.5/-300 fallbacks, header-height formulas, iOS 26 transparent-header case) into the existing design or setup reference; the body needs only the rule and where to find the per-case numbers.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is dense and expert-grade — it explains no general concepts, assumes RN/Expo competence, and nearly every line carries a non-obvious failure mode or exact command (e.g. "`getstream env` writes `.env` to the folder `getstream init` ran in... move it next to the app's `package.json`, or Metro never reads it"). It misses anchor 5 because time-sensitive version pins are inlined rather than isolated ("Expo SDK 57 pins react-native-reanimated@4.5.0 + react-native-worklets@0.10.0", "SDK 58", "RN 0.85 / Expo 56"), which the rubric directs penalizing unless placed in a deprecated/old-patterns section. | 4 / 5 |
Actionability | Guidance is fully executable: copy-paste commands (`cat $(getstream docs chat-sdk/react-native)/INDEX.md`, `getstream api UpdateApp --request '{"video_primary_use_case":"livestreaming"}'`), exact install sets per lane, concrete props (`keyboardVerticalOffset={0}` and `topInset={0}`), exact code patterns (`if (call.state.callingState !== CallingState.LEFT) await call.leave()`), and named components/hooks with what breaks without them. Anchor 5 (copy-paste ready, common cases covered) matches; there are no pseudocode or hand-wavy steps that would drop it to 4. | 5 / 5 |
Workflow Clarity | Each scenario is clearly sequenced (docs-first pinning of the major, then setup, then build, then verify), and validation is explicit: an entire Verify section with type-check, native build, simulator run, two-user live-delivery testing, and a per-default checklist, plus a pre-write safety gate for app-wide `getstream api` writes ("run `getstream status` and tell the user which app it will change"). Error-recovery feedback is built in (e.g. "a gap between the composer and the picker means `topInset` is wrong", "a failing check reads as green" pipe warning), matching anchor 5; anchor 4's 'minor validation gaps' is not in evidence. | 5 / 5 |
Progressive Disclosure | References are clearly signaled and one level deep ("follow chat-versions.md", "as basics/offline-support.md shows", "follow design-matching.md"), but the bundle contains no references/, scripts/, or assets/ directories — none of the ~13 referenced files (chat-versions.md, ai-integration.md, simulator-verification.md, sendbird-migration.md, basics/offline-support.md, guides/push-notifications.md, design-matching.md, stream-agents.md) resolve to real files. Scoring against the actual bundle structure as directed, the navigation is broken and a substantial amount of version-specific detail (native setup gotchas, keyboard inset arithmetic) is inlined in the always-loaded body. Anchor 3 (references present but the organization leaves significant content inline / structure could be better) is the best fit; it is not 4 because the missing files are more than a minor organization gap, and not 2 because the body is well-sectioned and references are explicitly, not buryingly, signaled. | 3 / 5 |
Total | 17 / 20 Passed |