Content
75%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.
A well-structured, highly actionable reference for the context-awareness protocol: real code for both UI and agent sides, explicit guard conditions, and clear Do/Don't boundaries. The main costs are recap redundancy in the Do/Don't sections, a few placeholder calls in the view-screen example, and overlap between the Jitter Prevention section and the real-time-sync skill.
Suggestions
Trim the Do/Don't recap redundancy — e.g., 'Don't duplicate whole URL query strings into `navigation`' and 'Keep shareable filters in URL query params' already appear in the `__url__` section — to recover tokens without losing guidance.
Make the view-screen example copy-paste ready by replacing the undefined `fetchEmailList`/`fetchThread` calls with one fully shown helper (or a realistic Drizzle query) so the pattern is executable as written.
Reduce the Jitter Prevention section to a short summary plus a pointer to the real-time-sync skill, since the useDbSync/ignoreSource/X-Request-Source mechanics belong to that skill's domain.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is dense with framework-specific facts Claude would not know (navigation keys, TAB_ID resolution, requestSource semantics) and wastes no tokens explaining general concepts. Minor over-explanation remains: the 'Why' paragraph ('Without context awareness, the agent is blind... feels like a collaborator') is motivational padding, and the Do/Don't lists restate body guidance (e.g., 'Don't duplicate whole URL query strings into `navigation`' repeats the `__url__` section). Not 5 because of this redundancy; not 3 because the bulk is lean and non-obvious. | 4 / 5 |
Actionability | Concrete, near-executable code for every pattern: the `useNavigationState` hook, `readAppState("navigation")`, a full `view-screen` action, the `navigate` write, and `useDbSync({ ignoreSource: TAB_ID })`. Not 5 because of minor gaps — `fetchEmailList`/`fetchThread` are undefined placeholders in the view-screen example and `getCommandPath: (command: any)` uses an untyped any; not 3 because the code is real TypeScript, not pseudocode, and covers the common cases. | 4 / 5 |
Workflow Clarity | The bidirectional protocol is clearly sequenced: UI writes `navigation` on route change → `<current-screen>` is auto-injected every turn → agent reads state before acting → `view-screen` for richer snapshots → one-shot `navigate` command consumed and deleted by the UI. Guard conditions are explicit ('only when `selection` is null should the agent ask which item', 'have the UI prefer `path` before falling back to semantic routing'). Not 5 because there are no explicit validation/verification checkpoints (e.g., handling a null or stale `navigation` read); not 3 because the sequence is coherent, explicit, and the operations are non-destructive so the validation cap does not apply. | 4 / 5 |
Progressive Disclosure | No bundle files exist (references/, scripts/, assets/ are absent), so all content is appropriately inline, organized under clear headers (Rule, Why, Core Patterns 1-4, Jitter Prevention, Gold-Standard Example, Do, Don't, Related Skills) with a Related Skills section providing outward navigation. Not 5 because some sections (Jitter Prevention's useDbSync internals, the mail Gold-Standard Example) overlap with the related real-time-sync skill and could be a one-line pointer; not 3 because structure is good and nothing is buried or misplaced. | 4 / 5 |
Total | 16 / 20 Passed |