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:
parent
8d1ef43801
commit
47782eb91d
3 changed files with 61 additions and 4 deletions
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
name: linkedin
|
||||
description: |
|
||||
Main router for LinkedIn thought leadership commands. Lists all available subcommands
|
||||
Main router for LinkedIn Studio commands. Lists all available subcommands
|
||||
and helps the user choose the right workflow. Use when the user mentions "linkedin",
|
||||
"linkedin help", "what linkedin commands", or needs guidance on which LinkedIn command to use.
|
||||
Triggers on: "linkedin", "/linkedin", "linkedin help", "show linkedin commands".
|
||||
|
|
@ -13,7 +13,7 @@ allowed-tools:
|
|||
|
||||
# LinkedIn Studio Command Router
|
||||
|
||||
You are a LinkedIn thought leadership assistant. The user has invoked the main `/linkedin` command. Your job is to help them navigate to the right subcommand.
|
||||
You are the LinkedIn Studio assistant. The user has invoked the main `/linkedin` command. Your job is to help them navigate to the right subcommand.
|
||||
|
||||
## Session Status
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ that exercises the command's real path:
|
|||
| S5 carousel | S12 firsthour | S19 strategy | S26 linkedin |
|
||||
| S6 video | S13 calendar | S20 competitive | S27 ref-consistency A |
|
||||
| S7 batch | S14 import | S21 monetize | S28 ref-consistency B |
|
||||
| S8 pipeline | S15 report | S22 outreach | |
|
||||
| S8 pipeline | S15 report | S22 outreach | S29 terminology-scrub |
|
||||
|
||||
*S9 newsletter (16-phase) may split into S9a/S9b. Otherwise one command = one session.
|
||||
|
||||
|
|
@ -107,7 +107,16 @@ SSOT-reconciliation of the documented divergences, same tool-grounded discipline
|
|||
- **S28 (B) — format magnitudes → SSOT:** `commands/video.md:69` + `references/linkedin-formats.md`
|
||||
(the "30% zero-distribution" claim vs SSOT native-video framing).
|
||||
|
||||
Run after S26; order adjustable. These edit already-hardened files surgically and are
|
||||
**S29 — terminology scrub: "thought leadership" → "LinkedIn Studio" / neutral (added 2026-06-19,
|
||||
operator-approved during S26).** The phrase must not appear anywhere in the plugin (it is named LinkedIn
|
||||
Studio; see auto-memory `no-thought-leadership-phrase`). S26 fixed the 2 occurrences in
|
||||
`commands/linkedin.md`; **~85 lines across ~45 files remain** (commands, agents, references — incl. the
|
||||
filename `references/thought-leadership-angles.md` — skills, plus historical CHANGELOG/docs). Open scoping
|
||||
questions for this pass: (a) user-facing surface only, or include historical CHANGELOG/docs too? (b) the
|
||||
`thought-leadership-angles.md` rename is its own sub-step — every pointer to the filename must update with
|
||||
it. Same tool-grounded discipline (read-and-show → grep-confirm → re-grep final); hardening-class.
|
||||
|
||||
Run after S26; order adjustable (S27 → S28 → S29). These edit already-hardened files surgically and are
|
||||
hardening-class (commit local, no push).
|
||||
|
||||
## End-of-session ritual (every session — STATE.md handoff baked in)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue