fix(linkedin-studio): S26 harden linkedin — re-source router copy to "LinkedIn Studio", queue S29 terminology-scrub

Router hardening (routing/agent/grant axes all PASS). Operator terminology rule: the "thought leadership" phrase must not appear in the plugin. Re-sourced the 2 occurrences in commands/linkedin.md (:4 frontmatter description, :16 body) to "LinkedIn Studio". Routing 28/28 + agent-pointers 10/10 resolve; grant-hygiene clean (no Glob orphan — third front-door). Surfaced plugin-wide (~85 lines / ~45 files) and promoted to S29 terminology-scrub in docs/hardening/plan.md.
This commit is contained in:
Kjell Tore Guttormsen 2026-06-19 21:52:58 +02:00
commit 47782eb91d
3 changed files with 61 additions and 4 deletions

View file

@ -1762,3 +1762,51 @@ read, pattern greps) from a tool, never by reasoning.
did not). `linkedin` (S26) still to check independently.
---
### /linkedin:linkedin — top router (five-journey menu + status line + queue glance); routes to every command/agent, executes nothing (S26)
**CLASS: routing** (the master router over the whole surface — the largest routing check: 28 command
pointers + 10 agent pointers). Predicate: every emitted `/linkedin:Y` resolves to `commands/Y.md`; every
"Suggest `X` agent" resolves to `agents/X.md`; bidirectional grant-hygiene; "delegates only" (shows
menu/status, never executes).
**TEST (tool-grounded).**
- Routing (main axis): **28/28 distinct `/linkedin:Y` targets resolve** to `commands/Y.md` (menu `:66-127`,
ask-menu `:136-140`, direct-routing `:157-198`) — the full sub-command surface (+`linkedin` itself = 29).
- Agent pointers (axis d): **10/10** "Suggest `X` agent" resolve to `agents/X.md` (analytics-interpreter,
content-optimizer, content-planner, content-repurposer, differentiation-checker, engagement-coach,
network-builder, post-feedback-monitor, trend-spotter, voice-trainer).
- Grant-hygiene (bidirectional): `allowed-tools` = Read/Bash/AskUserQuestion (`:8-11`); each has a body home
— Read→state status line (`:20`), Bash→node queue-manager block (`:34-42`), AskUserQuestion→sub-choice
(`:145`); **no ungranted tool referenced, no Glob at all** — third front-door is clean (unlike create's
Glob-orphan / measure's Glob-via-Step-0).
- Delegates-only: body routes/suggests; `:146` "invoke it directly" = hand-off to the command, not
self-execution. No drafting / number-crunch. PASS.
- Graceful degrade (axis d): no-state fallback (`:28`) + empty-queue fallback (`:57`). PASS.
- Persona (ICP author types `/linkedin`): graceful-degrade path — no fixture (pure routing prose).
**FINDING (terminology — operator rule surfaced this session): "thought leadership" must not appear in the
plugin (it is named LinkedIn Studio).** linkedin.md used it at `:4` (frontmatter description) + `:16` (body).
**HARDEN (2 edits, 1 file — `commands/linkedin.md`).**
1. [REWORK · terminology] `:4` "Main router for LinkedIn **thought leadership** commands" → "Main router for
**LinkedIn Studio** commands".
2. [REWORK · terminology] `:16` "You are a LinkedIn **thought leadership** assistant" → "You are the
**LinkedIn Studio** assistant".
**VERIFY.**
- Re-grep final: "thought leadership" in linkedin.md → **NONE**; `:4`/`:16` show "LinkedIn Studio".
- Routing/agent axes unchanged: 28 + 10 targets all resolve.
- `git diff --stat` = 1 file, **+2/2**.
- `bash scripts/test-runner.sh``Passed: 81 · Failed: 0 · Warnings: 0`, **exit 0**; counts **29/19**
unchanged (.md-only prose edit).
- Disposition: **FIXED** (2 edits, 1 file) · 0 deferrals · routing **PASS**, agent-wiring **PASS**,
grant-hygiene **PASS** (clean — no orphan; third front-door has no Glob), delegates-only **PASS**.
**SURFACED (out of scope → queued as S29).** "thought leadership" appears plugin-wide on **85 lines across
~45 files** (commands, agents, references incl. the filename `references/thought-leadership-angles.md`,
skills, plus historical CHANGELOG/docs). Promoted to a dedicated terminology-scrub pass **S29**
(`docs/hardening/plan.md`); the user-facing-vs-historical boundary + the file rename are open scoping
questions for that pass.
---