diff --git a/commands/create.md b/commands/create.md index 99549da..b47ebb0 100644 --- a/commands/create.md +++ b/commands/create.md @@ -11,7 +11,6 @@ description: | "new content", "help me create", "i want to post something", "linkedin create". allowed-tools: - Read - - Glob - AskUserQuestion --- diff --git a/docs/hardening/log.md b/docs/hardening/log.md index fd9b5ac..406b649 100644 --- a/docs/hardening/log.md +++ b/docs/hardening/log.md @@ -1690,3 +1690,36 @@ read, pattern greps) from a tool, never by reasoning. fixture needed (pure prose, no state). --- + +### /linkedin:create — content-creation front-door (guided "what to make?" → routes to the owning creation command); delegates only, no drafting (S24) + +**CLASS: routing front-door** (Create-journey, v4.1). Predicate: every emitted `/linkedin:Y` resolves to +`commands/Y.md`; bidirectional grant-hygiene; "delegates only" (never drafts). + +**TEST (tool-grounded).** +- Routing (main axis): **8/8 targets resolve** — `commands/{post,quick,react,carousel,video,multiplatform, + batch,newsletter}.md` all present (menu `:38-45` / table `:54-63`). +- Grant-hygiene (bidirectional): `Read` (`:13`) used at `:26` (fixed-path state read); `AskUserQuestion` + (`:15`) used at `:36`; **`Glob` (`:14`) ORPHAN** — zero body usage, only file access is the fixed-path + Read (`:26`; Read handles the "if exists" itself — no pattern-matching). No missing grants (routing = + narrative handoff, no tool). +- Delegates-only: all 4 "draft" hits are the no-draft promise (`:7/:22`, long-form lock `:66`) or + target-description (`:38` = what `/linkedin:post` does); no drafting leak. +- Persona (ICP author, no format named): Step 0 `:24-28` state glance → Step 1 `:30-45` AskUserQuestion + (8 opts) → Step 2 `:47-63` route into target workflow, steps not inlined; URL fast-path `:32-34` → + `/linkedin:react`. ✓ + +**HARDEN (1 edit, 1 file — `commands/create.md`).** +1. [REWORK · grant-hygiene] dropped orphan `Glob` from `allowed-tools` (`:14`); net = {Read, AskUserQuestion}. + +**VERIFY.** +- Re-grep final: `Glob` → **NONE**; `allowed-tools` = Read + AskUserQuestion (`:13-14`). +- `git diff --stat` = 1 file, **−1**. +- `bash scripts/test-runner.sh` → `Passed: 81 · Failed: 0 · Warnings: 0`, **exit 0**; counts **29/19** + unchanged (.md-only edit). +- Disposition: **FIXED** (1 edit, 1 file) · 0 deferrals · routing axis **PASS**, delegates-only **PASS**, + grant-hygiene **FIXED** · no fixture (pure routing prose). +- Scope note: `Glob`-orphan may be systemic in sibling front-doors (`measure` S25, `linkedin` S26) — not + expanded (one command per session); each catches its own. + +---