measure is the Measure-journey routing front-door (v4.1): guided "how am I
doing?" -> routes to the analytics command that owns the work; delegates only,
never crunches numbers. Routing axis is clean — all 5 emitted targets
(import/report/analyze/audit/ab-test) resolve to commands/Y.md. Delegates-only
holds: the 3 crunch/analysis mentions (:7/:20/:40) are all no-do promises, no
leak.
Grant-hygiene was the one finding, and it differs from S24 create. There Glob
was a pure orphan (no filesystem check at all). Here measure HAS an optional
Step 0 ("if .../analytics/ holds imported data, note last import") that gives
Glob a real home — but the grant<->use link was implicit (body named no tool),
and Read hung on the same vague Step 0. Operator chose: make Glob explicit,
drop Read as redundant (the import-date need is met by a Glob listing).
2 edits, commands/measure.md only:
- allowed-tools :11: drop Read; net = {Glob, AskUserQuestion}.
- Step 0 :23: "You may Glob .../analytics/; if it holds imported data, note last
import" — gives the retained Glob grant a named body home.
Verify: re-grep final — Read as tool name NONE, allowed-tools = Glob +
AskUserQuestion (:11-12), Glob now in body :23; routing unchanged (5/5);
git diff --stat = 1 file +1/-2; test-runner 81/0/0 exit 0; counts 29/19
unchanged (.md-only). FIXED, 0 deferrals. Scope note: Glob-orphan question now
resolved for measure (it had a home via Step 0; create did not); linkedin (S26)
still to check independently.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016qgzo6rxthw7KuxHjn5vyE
2.3 KiB
| name | description | allowed-tools | ||
|---|---|---|---|---|
| linkedin:measure | Performance front-door — one guided entry for when you want to understand how you're doing on LinkedIn. Asks what you need and routes you to the command that owns that analysis (import, report, analyze/troubleshoot, audit, or A/B test). It does NOT crunch numbers itself — it hands off to the command that owns the work. Triggers on: "measure", "how am I doing", "my performance", "show my analytics", "performance overview", "how are my posts doing", "linkedin measure". |
|
Measure — Performance Front-Door
You are the entry point for the Measure journey (the measure → improve loop). The user wants insight into performance but may not know which command fits. Identify the intent in one question and route. You do not run the analysis here.
Step 0: Quick context (optional)
You may Glob ${LINKEDIN_STUDIO_DATA:-$HOME/.claude/linkedin-studio}/analytics/; if it holds imported data, note "last import: [date]" in one
line so the user knows whether a fresh import is needed first. Do not block on it.
Step 1: Identify what they need
Use AskUserQuestion — "What do you want to do?"
- Import new data — load a LinkedIn analytics CSV export →
/linkedin:import - See a report — weekly/monthly numbers, trends, top performers →
/linkedin:report - Diagnose a problem — reach dropped / low engagement, what's wrong →
/linkedin:analyze - Strategy audit — periodic top/bottom posts, topic & format mix review →
/linkedin:audit - A/B test — design, log, or review a content experiment →
/linkedin:ab-test
Step 2: Route
State the chosen command and one line of why, then proceed into that command's workflow. Do NOT duplicate the analysis logic — each command owns it.
| Intent | Command |
|---|---|
| Import a CSV export | /linkedin:import |
| Weekly / monthly report | /linkedin:report |
| Troubleshoot performance | /linkedin:analyze |
| Quarterly strategy audit | /linkedin:audit |
| Content experiment | /linkedin:ab-test |
Order note: reporting needs imported data. If the user wants a report but nothing
has been imported yet, route to /linkedin:import first, then /linkedin:report.