Skip to content

feat: add get_started onboarding tool and Sprint 0 guidance - #75

Merged
ablanrob merged 2 commits into
mainfrom
feat/onboarding-sprint-zero
Apr 22, 2026
Merged

feat: add get_started onboarding tool and Sprint 0 guidance#75
ablanrob merged 2 commits into
mainfrom
feat/onboarding-sprint-zero

Conversation

@ablanrob

Copy link
Copy Markdown
Owner

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:

  1. Ingest source documents (detects pending files in .marvin/sources/)
  2. Define scope — use cases (SAP AEM) or features (generic agile)
  3. Capture key decisions and actions
  4. Break work into epics
  5. Set up Sprint 0
  6. Configure Jira integration
  7. Run a health check

Steps adapt to the active methodology and mark themselves done as the project progresses. The guide reports overall status as empty, getting-started, or in-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:

  • Infrastructure & provisioning (CI/CD, repos, cloud services)
  • Backlog refinement (features → epics with acceptance criteria)
  • Ceremony scheduling (standups, refinement, reviews)
  • Integration setup (Jira, Confluence)

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

  • 838 tests pass (829 existing + 9 new)
  • test/doctor/health/onboarding.test.ts — 9 tests covering empty project, source detection, methodology switching, step completion, Sprint 0 description
  • Manual: run get_started on an empty SAP AEM project
  • Manual: run get_started on a project with some artifacts to verify step completion
  • Manual: set DM persona and verify Sprint 0 guidance appears in session

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.
@coderabbitai

coderabbitai Bot commented Apr 22, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@ablanrob has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 49 minutes and 38 seconds before requesting another review.

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 39f1cb30-b7ad-4400-8820-d9431066980a

📥 Commits

Reviewing files that changed from the base of the PR and between c1b9484 and 62aae4c.

📒 Files selected for processing (2)
  • src/doctor/health/onboarding.ts
  • test/doctor/health/onboarding.test.ts
📝 Walkthrough

Walkthrough

The PR introduces an onboarding guide feature to the doctor tools by adding a new get_started MCP tool that generates tailored onboarding checklists based on project health context. Changes span core guide infrastructure, doctor tool integration, agent session wiring, persona prompt enhancements, and comprehensive test coverage.

Changes

Cohort / File(s) Summary
Onboarding Guide Core
src/doctor/health/onboarding.ts
New module introducing OnboardingStep and OnboardingGuide interfaces, plus buildOnboardingGuide() function that generates tailored onboarding plans from project health context with conditional logic for AEM vs. non-AEM methodologies and status computation.
Doctor Tool Integration
src/agent/tools/doctor.ts
Added get_started MCP tool to createDoctorTools that validates configuration, optionally scans manifest, and generates an onboarding guide via buildOnboardingGuide(), returning the guide as JSON in a content response.
Agent Session Configuration
src/agent/session.ts
Updated allowedTools list in startSession to include the new mcp__marvin-governance__get_started MCP tool.
Persona and Plugin Guidance
src/personas/builtin/delivery-manager.ts, src/plugins/builtin/sap-aem.ts
Added "Sprint 0" guidance sections to system prompts describing bootstrapping phases for generic projects and AEM-specific readiness criteria, phasing workflows, and extension architecture patterns.
Testing
test/doctor/health/onboarding.test.ts
New Vitest suite testing buildOnboardingGuide across various project configurations, validating status computation, step completion logic, methodology-specific tool references, and onboarding workflows.

Sequence Diagram

sequenceDiagram
    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
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

🐰 A new path unfolds for those just beginning,
Sprint 0 checklist now shining and grinning,
From empty to started, the guide shows the way,
With infrastructure ready and AEM's ballet—
Our fuzzy CLI welcomes them in! 🌟

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 25.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the two main changes: a new get_started onboarding tool and Sprint 0 guidance, matching the primary objectives of the changeset.
Description check ✅ Passed The description provides a comprehensive summary, detailed change breakdown, addresses the required Type of Change (feat), includes testing section with test count and coverage, and follows most checklist items.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/onboarding-sprint-zero

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between a177143 and c1b9484.

📒 Files selected for processing (6)
  • src/agent/session.ts
  • src/agent/tools/doctor.ts
  • src/doctor/health/onboarding.ts
  • src/personas/builtin/delivery-manager.ts
  • src/plugins/builtin/sap-aem.ts
  • test/doctor/health/onboarding.test.ts

Comment thread src/doctor/health/onboarding.ts Outdated
- 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
@ablanrob
ablanrob merged commit fab2c5a into main Apr 22, 2026
2 checks passed
@ablanrob
ablanrob deleted the feat/onboarding-sprint-zero branch April 22, 2026 18:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant