ktg-plugin-marketplace/plugins/linkedin-studio/docs/hardening/review.md
Kjell Tore Guttormsen a41cc54e73 fix(linkedin-studio): S1 hardening — method calibration (quick) + Start journey
Hardening phase S1. Tightened the hook character bound from one-sided
(under 140) to the full canonical 110-140 band across the Start-journey
creation surfaces, matching hooks/prompts/content-quality-gate.md:
- quick.md: hook band on Step 2 + Step 5 checklist; added a buzzword check
  and a 150-500 length-band check; checklist tally 6 -> 7.
- onboarding.md: hook band in Phase 3.2 + 3.3 (length + no-links already present).
- first-post.md: hook band in Step 4 + Step 5 (length + no-links already present).
- setup.md: zero-edit pass (all four axes already satisfied).

Adds docs/hardening/log.md (per-command audit trail, 5-step method) and
docs/hardening/review.md (cold /trekreview: ALLOW, 0 BLOCKER/0 MAJOR/1 MINOR).
Lint Failed:0, counts 29/19/25/6 unchanged. No structural/version churn.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 06:46:11 +02:00

3.1 KiB

type task slug project_dir session verdict scope counts reviewers findings
trekreview linkedin-studio command hardening — S1 (method calibration + Start journey) hardening docs/hardening/ S1 ALLOW working-tree (uncommitted) vs HEAD 2f90880
BLOCKER MAJOR MINOR SUGGESTION
0 0 1 0
brief-conformance-reviewer
code-correctness-reviewer
S1-MINOR-1

/trekreview — S1 (quick · onboarding · first-post · setup)

Verdict: ALLOW (0 BLOCKER · 0 MAJOR · 1 MINOR · 0 SUGGESTION). Two cold, independent reviewers (Opus); no cross-feed. Gate condition met: lint Failed: 0 + ALLOW.

Scope reviewed

  • commands/quick.md, commands/onboarding.md, commands/first-post.md (edited — hook-floor fixes)
  • commands/setup.md (in S1 scope; deliberate zero-edit pass, logged PASS)
  • docs/hardening/log.md (NEW — the per-command audit trail)
  • Not-mine untracked (*-persona-brief.md, *-ui-brief.md, voyage-build/progress.json): untouched ✓

brief-conformance-reviewer → ALLOW

  • All 4 S1 commands have UNIQUE anchored ### /linkedin:<name> entries (no doubles).
  • SC-A…SC-E complete per entry; SC-C mechanical predicate present per type (never "N/A→judgment").
  • Claim-vs-reality (critical axis — author flagged 3 prior assert-before-verify errors): every logged HARDEN edit was traced to the file and confirmed to existquick.md:68,140,144,145,147, onboarding.md:200,209, first-post.md:101,125. The "length + no-links already present" claim is true (onboarding:204, first-post:113/120). setup.md:86 voice-trainer wiring resolves to a real agents/voice-trainer.md. The prior failure mode did not recur.
  • Non-Goals + stopping rule honored (29 commands, no version/count churn, surgical edits only).

code-correctness-reviewer → ALLOW (0 findings)

  • Internal consistency: every hook bound reads 110-140 on both the structural line and the checklist line in all three files; no surviving one-sided under 140 / Under 500 bound.
  • Checklist arithmetic (highest-risk): quick.md Step 5 has exactly 7 - [ ] items ↔ **All 7 = Yes?**. Correct.
  • Bound matches canonical hooks/prompts/content-quality-gate.md (110-140 / 150-500); no off-by-one.
  • No collateral damage; frontmatter, code fences, and ${CLAUDE_PLUGIN_ROOT} blocks untouched.

Findings

S1-MINOR-1 — log hook char-counts tagged "node-verified" but cosmetically imprecise

  • severity: MINOR · file: docs/hardening/log.md (quick before/after counts)
  • The before/after hook counts (95 / 127) are tagged node-verified; the directional fact (before < 110 floor → fixed by the edit) is correct and load-bearing, but the exact integers are not worth the "node-verified" framing relative to the log's own Method-discipline rule.
  • Disposition: accepted as-is for S1 (does not affect any axis verdict); the framing is tightened going into S2 — char counts are computed with a tool and only then labelled verified.

Gate decision

ALLOW → commit (own files only, fix:) → push. No BLOCKER/MAJOR; the single MINOR is recorded, not gate-blocking.