Add preflight-learning-path skill for author pre-PR self-review - #462
Conversation
Mirrors the five-phase review coach so authors catch post-inline issues before opening a PR, with optional package fixes and a frontend data-testid walkthrough.
Phase 0 now pairs manual Settings steps with an opt-in mcp.json write (or mcp_auth), so authors are not left with instructions-only when the agent can help.
Catch contradicted, unsupported, and overstated product facts against live docs before authors open a PR.
Drop the check primer, show what was checked, and offer fix all / fix N choices with plain-language context.
Keep fake step numbers in a short checklist instead of a separate setup step.
Only offer package fix choices when a guide edit can resolve the item; lead with frontend when live needs an upstream testid.
Add a voice guide, plain-language phase copy, Phase 5 step checkpoints, and clearer fix vs frontend routing in chat.
|
Hey Taylor. I dogfooded the preflight skill from this PR on a brand-new k6 CI/CD path (#477). Overall the checks themselves were useful. The friction was mostly in how the skill talks to the author. What worked
Where I got stuck / confused
Smaller notes
Happy to jump on a quick call if useful. Thanks for building this. The substance is good. I’d just make the author experience less stop-and-type. Bonny |
Pause only for path/MCP blockers, Okta login, smoke choice, and one results menu. Diagnose configured-but-broken Playwright MCP, drop refresh-readiness jargon, and remind authors not to commit lp-preflight-state. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Thanks for the dogfood notes, Bonny. Landed a hard UX pass in What changed
Follow-up (not in this PR) Happy to tweak further if anything still feels quizzy when you re-run |
moxious
left a comment
There was a problem hiding this comment.
genuinely useful addition, and the registration side (.gitignore, AGENTS.md, CLAUDE.md, workflows) is clean. I ran it against the repo conventions and the reviewer skill it mirrors, and found four things worth resolving before merge. Two are structural; two are quick.
▎
▎ 1. Preflight isn't actually running the same policy as the reviewer it mirrors (high). The command and skill repeatedly promise the "same checks" as /review-learning-path-pr (preflight-learning-path.md:3, SKILL.md:5-13, AGENTS.md:86, workflows.md:106), but preflight adds an independent claim-check that turns any uncorroborated factual statement into a mandatory pre-PR fix (claim-check.md:47,61-66, reference-checks.md:40-64,72-91). The reviewer's static pass has no equivalent category. So an author can fail preflight on a claim the reviewer never evaluates — the "same checks" promise breaks and there are now two standards that will drift. Either make the claim policy a shared source both skills reference, or, if preflight is intentionally stricter, say so and stop calling it the "same checks."
▎
▎ 2. The resume/state contract can't reliably represent the documented workflow (high). The skill promises a resumable run and initializes a state file (SKILL.md:125,174-180,206), but nothing updates phase/status/checkpoint, and phase is just an unmapped integer 0–5 (reference-checks.md:158-193) — which also conflicts with the "five-phase" description. After a context loss, two agents read phase: 3 differently. Suggest a named-checkpoint enum (identify, login, dom, smoke, results, package_fixes, frontend) with explicit persistence at each gate — or drop the resume promise.
▎
▎ 3. static-only has overlapping allow/deny rules (medium). A new/conversion author with no stack access matches both the "No" and the "Yes, with reason" rows (reference-checks.md:111-115), while SKILL.md:244-252 says reject all new/conversion — so the mandatory Playwright gate can be bypassed exactly where it's required. Make the rows mutually exclusive and state precedence.
▎
▎ 4. Dead anchor on a mandatory static-check link (medium). SKILL.md:220 → #section-intro-markdown-numbered-as-step, but the heading is ...numbered-as-a-step (missing -a-). Same typo pre-exists in review-learning-path/SKILL.md:165, so fixing both closes the loop.
▎
▎ Everything else checked out — Phase-0 MCP handling, the smoke branches and approval gates, referenced files, and external references all resolve; CI is green.
Make claim-check the shared policy for review and preflight, persist named checkpoints for resume, make static-only rows exclusive with precedence, and fix the section-intro markdown anchor. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Thanks @moxious — addressed all four points in the latest commit:
Happy to tweak further if anything still feels off. |
Resolve .gitignore conflict by keeping main's lp-preflight-state ignore comment. Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
/preflight-learning-pathand a five-phase author skill that mirrors/review-learning-path-pr(post-learning path: updates conversion workflow #416/Update review-learning-path skill for single-repo LPs and simplified review UX #424 single-repo model + Learning Hub standards).already-tested/walk-me/skip-smoke).data-testidPR walkthrough modeled on grafana/grafana-cmab-app#1795.Test plan
/preflight-learning-pathon a local{slug}-lj/package with Playwright MCP enabledready, and Block Editor prompt acceptsalready-tested/walk-me/skip-smokefix/frontend/doneoffers work as documentedreview-learning-pathcompanions (reference-checks,learning-hub-standards,comment-style)Made with Cursor