From e4b1b26c1d61854b93c2cc3cba1714df2d7417d5 Mon Sep 17 00:00:00 2001 From: Clawd Date: Sat, 28 Feb 2026 08:11:41 -0800 Subject: Add onboarding screen for first-time users MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Show welcome view when no project is selected - Explain the Research → Plan → Implement workflow - Include ANTHROPIC_API_KEY setup instructions - List getting started steps (add project, create session, describe work) - Explain iteration workflow with Review/Submit buttons - Add CSS styling for onboarding content --- renderer/src/App.tsx | 1 + renderer/src/components/DocumentPane.tsx | 37 +++++++++++++++++++++ renderer/src/styles/globals.css | 56 ++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+) diff --git a/renderer/src/App.tsx b/renderer/src/App.tsx index 22082a2..d5a2efd 100644 --- a/renderer/src/App.tsx +++ b/renderer/src/App.tsx @@ -256,6 +256,7 @@ export function App() { onChange={setDocumentContent} phase={selectedSession?.phase || "research"} disabled={!selectedSession || selectedSession.phase === "implement"} + showOnboarding={!selectedProject} /> void; phase: Phase; disabled: boolean; + showOnboarding?: boolean; } function renderMarkdown(md: string): string { @@ -50,10 +51,46 @@ export function DocumentPane({ onChange, phase, disabled, + showOnboarding, }: DocumentPaneProps) { const [isEditing, setIsEditing] = useState(false); const renderedHtml = useMemo(() => renderMarkdown(content), [content]); + if (showOnboarding) { + return ( +
+
+ Welcome to Claude Flow +
+
+

Claude Flow

+

+ A structured workflow for AI-assisted coding: Research → Plan → Implement. +

+ +

Setup

+

Export your Anthropic API key:

+
export ANTHROPIC_API_KEY=your-key-here
+

Get one at platform.claude.com

+ +

Getting Started

+
    +
  1. Add a project — Select a codebase folder
  2. +
  3. Create a session — Start a new task
  4. +
  5. Describe your work — Tell Claude what you want to build
  6. +
+ +

Workflow

+

Research: Claude analyzes your codebase and writes findings to research.md. Add notes like // REVIEW: check this — click Review when done.

+

Plan: Claude drafts an implementation plan in plan.md with code snippets and a TODO list. Iterate the same way.

+

Implement: Claude executes the plan, marking tasks complete as it goes.

+ +

Iterate on research and plan docs as long as you want. Click Submit when happy to move to the next phase.

+
+
+ ); + } + if (phase === "implement") { return (
diff --git a/renderer/src/styles/globals.css b/renderer/src/styles/globals.css index d917f7e..809ff15 100644 --- a/renderer/src/styles/globals.css +++ b/renderer/src/styles/globals.css @@ -413,3 +413,59 @@ body { .error-bar button:hover { opacity: 0.8; } + +/* Onboarding */ +.onboarding h1 { + font-size: 32px; + margin-bottom: 8px; +} + +.onboarding h2 { + font-size: 20px; + margin-top: 28px; + margin-bottom: 12px; + color: var(--accent); +} + +.onboarding p { + margin: 12px 0; + line-height: 1.6; +} + +.onboarding ol { + margin: 12px 0 12px 24px; +} + +.onboarding li { + margin: 8px 0; + line-height: 1.5; +} + +.onboarding pre { + background: var(--bg-tertiary); + padding: 12px 16px; + border-radius: 6px; + margin: 12px 0; +} + +.onboarding code { + font-family: "SF Mono", Monaco, monospace; + font-size: 13px; +} + +.onboarding a { + color: var(--accent); + text-decoration: none; +} + +.onboarding a:hover { + text-decoration: underline; +} + +.onboarding-tip { + margin-top: 28px; + padding: 16px; + background: var(--bg-tertiary); + border-left: 3px solid var(--accent); + border-radius: 0 6px 6px 0; +} -- cgit v1.2.3