feat: add get_started onboarding tool and Sprint 0 guidance - #75
Conversation
Implements feedback items #1 (Guided Onboarding) and #2 (Sprint 0). New get_started tool inspects project state and returns a tailored step-by-step onboarding checklist with completion tracking. Steps adapt to the active methodology (SAP AEM use cases vs generic agile features) and mark themselves done as the project progresses. Sprint 0 is now a first-class concept in the DM persona prompt, describing it as a variable-duration bootstrapping phase covering infrastructure, backlog refinement, ceremony scheduling, and integration setup. The AEM plugin adds phase gate preparation and BTP-specific bootstrapping guidance.
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 49 minutes and 38 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe PR introduces an onboarding guide feature to the doctor tools by adding a new Changes
Sequence DiagramsequenceDiagram
participant Agent as Agent/CLI
participant Tool as Doctor Tool:<br/>get_started
participant Manifest as Manifest
participant BuildGuide as buildOnboardingGuide()
participant Guide as OnboardingGuide
Agent->>Tool: call get_started
Tool->>Tool: validate config &<br/>marvinDir
Tool->>Manifest: scan() [if available]
Manifest->>Tool: ✓ manifest scanned
Tool->>BuildGuide: invoke with HealthContext
BuildGuide->>BuildGuide: inspect config,<br/>manifest,<br/>store counts
BuildGuide->>BuildGuide: compute step completion<br/>based on project state
BuildGuide->>BuildGuide: determine status:<br/>empty/getting-started/<br/>in-progress
BuildGuide->>Guide: return OnboardingGuide
Guide->>Tool: guide constructed
Tool->>Agent: return guide as JSON
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
test/doctor/health/onboarding.test.ts (1)
50-60: Consider asserting the full onboarding checklist shape.Once the source-ingestion step is always present, this blank-project test should assert the expected 7-step guide so regressions are caught.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@test/doctor/health/onboarding.test.ts` around lines 50 - 60, The test using setup() and buildOnboardingGuide(env.ctx) should assert the full onboarding checklist shape instead of the loose length/usage checks: replace the generic expects on guide.steps with concrete assertions that guide.steps.length === 7 and that the steps array contains the expected titles/order (and expected done flags where specified, e.g., only "Run a health check" may be done), so the test validates the exact 7-step guide structure and prevents regressions to buildOnboardingGuide or the onboarding steps list.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@src/doctor/health/onboarding.ts`:
- Around line 40-52: The current code conditionally skips pushing the "Ingest
source documents" step when hasSources is false, so always add the step: remove
the if (hasSources || pendingSources > 0) guard and always call steps.push({
order: order++, title: "Ingest source documents", ... }), compute description
with three cases (pendingSources > 0 → same pending message; else if hasSources
→ "All source files have been processed."; else → "No source files found; add
files to .marvin/sources/ to begin processing."), and keep done set to
(pendingSources === 0 && hasSources) so empty projects show the step as not done
and prompt the user to add sources.
---
Nitpick comments:
In `@test/doctor/health/onboarding.test.ts`:
- Around line 50-60: The test using setup() and buildOnboardingGuide(env.ctx)
should assert the full onboarding checklist shape instead of the loose
length/usage checks: replace the generic expects on guide.steps with concrete
assertions that guide.steps.length === 7 and that the steps array contains the
expected titles/order (and expected done flags where specified, e.g., only "Run
a health check" may be done), so the test validates the exact 7-step guide
structure and prevents regressions to buildOnboardingGuide or the onboarding
steps list.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: d6203433-b726-43a1-9812-cd0c21345c7d
📒 Files selected for processing (6)
src/agent/session.tssrc/agent/tools/doctor.tssrc/doctor/health/onboarding.tssrc/personas/builtin/delivery-manager.tssrc/plugins/builtin/sap-aem.tstest/doctor/health/onboarding.test.ts
- Always include "Ingest source documents" step with three-state description: pending sources, all processed, or no files yet - Test asserts exact 7-step structure with titles, order, and done flags - Fix in-progress test to account for always-present ingest step
Summary
Implements feedback items #1 (Guided Onboarding & Project Bootstrap) and #2 (Sprint 0 as a First-Class Concept) from the eam-rpt-forecast PoC report.
get_started tool (#1)
New MCP tool that inspects project state and returns a tailored step-by-step onboarding checklist. Each step tracks completion status and suggests the relevant tool to use.
7 onboarding steps:
.marvin/sources/)Steps adapt to the active methodology and mark themselves done as the project progresses. The guide reports overall status as
empty,getting-started, orin-progress.Sprint 0 guidance (#2)
Sprint 0 is now a first-class concept in the DM persona's system prompt, describing it as a variable-duration bootstrapping phase (not a regular time-boxed sprint) covering:
The SAP AEM plugin adds AEM-specific Sprint 0 guidance: phase gate preparation, BTP service provisioning, iterative loop definitions, and extension design templates.
No new artifact types — Sprint 0 uses the existing sprint infrastructure with opinionated prompt guidance.
Test plan
test/doctor/health/onboarding.test.ts— 9 tests covering empty project, source detection, methodology switching, step completion, Sprint 0 descriptionget_startedon an empty SAP AEM projectget_startedon a project with some artifacts to verify step completion