mrvn-cli 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -18
- package/dist/index.js +493 -42
- package/dist/index.js.map +1 -1
- package/dist/marvin-serve.js +489 -40
- package/dist/marvin-serve.js.map +1 -1
- package/dist/marvin.js +518 -67
- package/dist/marvin.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Marvin CLI
|
|
2
2
|
|
|
3
|
-
AI-powered product development assistant. Marvin provides three expert personas — **Product Owner**, **Delivery Manager**, and **Technical Lead** — that help teams manage features, epics, decisions, actions, questions, and meetings through an interactive CLI backed by Claude.
|
|
3
|
+
AI-powered product development assistant. Marvin provides three expert personas — **Product Owner**, **Delivery Manager**, and **Technical Lead** — that help teams manage features, epics, sprints, decisions, actions, questions, and meetings through an interactive CLI backed by Claude.
|
|
4
4
|
|
|
5
5
|
## Quick Start
|
|
6
6
|
|
|
@@ -22,7 +22,7 @@ npx tsx bin/marvin.ts chat --as tl # Technical Lead
|
|
|
22
22
|
|
|
23
23
|
## How It Works
|
|
24
24
|
|
|
25
|
-
Marvin stores all project governance data as **Markdown files with YAML frontmatter** inside a `.marvin/` directory. Each artifact gets its own file with an auto-incrementing ID (`F-001`, `E-001`, `D-001`, `A-002`, `Q-003`). This makes everything human-readable, Git-friendly, and Obsidian-compatible.
|
|
25
|
+
Marvin stores all project governance data as **Markdown files with YAML frontmatter** inside a `.marvin/` directory. Each artifact gets its own file with an auto-incrementing ID (`F-001`, `E-001`, `SP-001`, `D-001`, `A-002`, `Q-003`). This makes everything human-readable, Git-friendly, and Obsidian-compatible.
|
|
26
26
|
|
|
27
27
|
When you start a chat session, Marvin:
|
|
28
28
|
|
|
@@ -42,6 +42,7 @@ When you start a chat session, Marvin:
|
|
|
42
42
|
└── docs/
|
|
43
43
|
├── features/ # F-001.md, F-002.md, ...
|
|
44
44
|
├── epics/ # E-001.md, E-002.md, ...
|
|
45
|
+
├── sprints/ # SP-001.md, SP-002.md, ...
|
|
45
46
|
├── decisions/ # D-001.md, D-002.md, ...
|
|
46
47
|
├── actions/ # A-001.md, A-002.md, ...
|
|
47
48
|
├── questions/ # Q-001.md, Q-002.md, ...
|
|
@@ -58,7 +59,7 @@ Marvin supports pluggable methodologies. Choose one during `marvin init`:
|
|
|
58
59
|
|
|
59
60
|
### Generic Agile (default)
|
|
60
61
|
|
|
61
|
-
Standard agile governance with features, epics, decisions, actions, questions, meetings, and reports.
|
|
62
|
+
Standard agile governance with features, epics, sprints, decisions, actions, questions, meetings, and reports.
|
|
62
63
|
|
|
63
64
|
### SAP Application Extension Methodology (SAP AEM)
|
|
64
65
|
|
|
@@ -74,7 +75,8 @@ A 3-phase methodology for building extensions on SAP BTP:
|
|
|
74
75
|
|
|
75
76
|
```
|
|
76
77
|
Layer 1 — Core: decisions, actions, questions (always available)
|
|
77
|
-
Layer 2 — Common: meetings, reports, features, epics (shared across methodologies)
|
|
78
|
+
Layer 2 — Common: meetings, reports, features, epics, (shared across methodologies)
|
|
79
|
+
sprints
|
|
78
80
|
Layer 3 — Methodology: use-cases, tech-assessments, (sap-aem specific)
|
|
79
81
|
extension-designs, phase management
|
|
80
82
|
```
|
|
@@ -134,31 +136,56 @@ Use Case (PO) Tech Assessment (TL) Extension Design (TL)
|
|
|
134
136
|
| Short Name | Full Name | Focus |
|
|
135
137
|
|------------|-----------|-------|
|
|
136
138
|
| `po` | Product Owner | Product vision, feature definition and prioritization, stakeholder needs, acceptance criteria |
|
|
137
|
-
| `dm` | Delivery Manager | Project delivery,
|
|
138
|
-
| `tl` | Technical Lead | Architecture, epic creation and scoping, code quality, technical decisions, implementation guidance |
|
|
139
|
+
| `dm` | Delivery Manager | Project delivery, sprint planning and tracking, epic scheduling, risk management, governance, meeting facilitation |
|
|
140
|
+
| `tl` | Technical Lead | Architecture, epic creation and scoping, sprint scoping and technical execution, code quality, technical decisions, implementation guidance |
|
|
139
141
|
|
|
140
|
-
Each persona has a tuned system prompt that shapes how Claude approaches your project. The agent has access to governance tools for managing features, epics, decisions, actions, questions, meetings, and reports — plus methodology-specific tools when a plugin is active.
|
|
142
|
+
Each persona has a tuned system prompt that shapes how Claude approaches your project. The agent has access to governance tools for managing features, epics, sprints, decisions, actions, questions, meetings, and reports — plus methodology-specific tools when a plugin is active.
|
|
141
143
|
|
|
142
|
-
## Feature → Epic Workflow
|
|
144
|
+
## Feature → Epic → Sprint Workflow
|
|
143
145
|
|
|
144
146
|
Marvin enforces a structured product development workflow:
|
|
145
147
|
|
|
146
148
|
1. **Product Owner** defines features (`F-xxx`) as `draft`, then approves them when requirements are clear
|
|
147
149
|
2. **Tech Lead** breaks approved features into implementation epics (`E-xxx`) — the system **enforces** that epics can only be created against approved features
|
|
148
|
-
3. **Delivery Manager**
|
|
150
|
+
3. **Delivery Manager** creates sprints (`SP-xxx`) with goals and date boundaries, assigns epics to sprints, and tracks progress
|
|
149
151
|
|
|
150
152
|
```
|
|
151
|
-
Feature (PO) Epic (TL)
|
|
153
|
+
Feature (PO) Epic (TL) Sprint (DM)
|
|
152
154
|
┌──────────┐ ┌──────────────┐ ┌──────────────────────┐
|
|
153
|
-
│ F-001 │───▶│ E-001 │───▶│
|
|
154
|
-
│ approved │ │ linked: F-001│ │
|
|
155
|
-
└──────────┘ ├──────────────┤
|
|
156
|
-
│ E-002 │
|
|
157
|
-
│ linked: F-001│
|
|
158
|
-
└──────────────┘
|
|
155
|
+
│ F-001 │───▶│ E-001 │───▶│ SP-001 │
|
|
156
|
+
│ approved │ │ linked: F-001│ │ linkedEpics: [E-001] │
|
|
157
|
+
└──────────┘ ├──────────────┤ │ goal: "Deliver auth" │
|
|
158
|
+
│ E-002 │ │ 2026-03-01..03-14 │
|
|
159
|
+
│ linked: F-001│ └──────────────────────┘
|
|
160
|
+
└──────────────┘ │
|
|
161
|
+
┌────────┴─────────────┐
|
|
162
|
+
│ A-001 (sprint:SP-001) │
|
|
163
|
+
│ D-003 (sprint:SP-001) │
|
|
164
|
+
└──────────────────────┘
|
|
159
165
|
```
|
|
160
166
|
|
|
161
|
-
|
|
167
|
+
**Sprints** are time-boxed iterations with:
|
|
168
|
+
- `goal` — what the sprint aims to deliver
|
|
169
|
+
- `startDate` / `endDate` — sprint boundaries (ISO dates)
|
|
170
|
+
- `status` — `planned` → `active` → `completed` (or `cancelled`)
|
|
171
|
+
- `linkedEpics` — soft-validated references to epic IDs (warns if not found but doesn't block creation)
|
|
172
|
+
|
|
173
|
+
When a sprint links to epics, those epics are auto-tagged with `sprint:SP-xxx`. Work items (actions, decisions, questions) are associated with sprints via the same `sprint:SP-xxx` tag convention. The `generate_sprint_progress` report shows linked epics with statuses, tagged work items grouped by status, and done/total completion %.
|
|
174
|
+
|
|
175
|
+
**Sprint planning** is supported by the `gather_sprint_planning_context` tool, which aggregates all planning-relevant data in a single call:
|
|
176
|
+
|
|
177
|
+
| Section | Contents |
|
|
178
|
+
|---------|----------|
|
|
179
|
+
| `approvedFeatures` | Approved features sorted by priority, with epic counts by status |
|
|
180
|
+
| `backlog` | Unassigned non-done epics, sorted by parent feature priority, enriched with feature context and effort estimates |
|
|
181
|
+
| `activeSprint` | Current active sprint with linked epic statuses, work item counts, and completion % |
|
|
182
|
+
| `velocityReference` | Last 2 completed sprints with epic count, effort strings, and work item throughput |
|
|
183
|
+
| `blockers` | Open questions, open risk-finding and blocker-report contributions |
|
|
184
|
+
| `summary` | Total backlog size, approved features with no epics, epics at risk, planned sprint count |
|
|
185
|
+
|
|
186
|
+
When asked to propose a sprint, the DM reasons through priority, capacity, dependencies, and risk to present a structured proposal. The TL focuses on technical readiness, effort balance, and feature coverage. Both personas call this tool automatically before proposing a sprint plan.
|
|
187
|
+
|
|
188
|
+
This provides **hard enforcement** (epics must link to approved features) combined with **soft guidance** (persona prompts steer each role toward their responsibilities) and **sprint-level tracking** for time-boxed delivery.
|
|
162
189
|
|
|
163
190
|
## Configuration
|
|
164
191
|
|
|
@@ -392,7 +419,7 @@ src/agent/ → Claude Agent SDK integration, MCP tools
|
|
|
392
419
|
src/mcp/ → Standalone MCP stdio server adapter
|
|
393
420
|
src/plugins/ → Plugin system (methodology plugins)
|
|
394
421
|
├── types.ts → MarvinPlugin interface
|
|
395
|
-
├── common.ts → Shared registrations + tool factory (meetings, reports, features, epics)
|
|
422
|
+
├── common.ts → Shared registrations + tool factory (meetings, reports, features, epics, sprints, sprint planning)
|
|
396
423
|
├── registry.ts → Plugin resolution
|
|
397
424
|
└── builtin/
|
|
398
425
|
├── generic-agile.ts → Default methodology
|