mrvn-cli 0.2.4 → 0.2.5
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 +32 -18
- package/dist/index.js +299 -42
- package/dist/index.js.map +1 -1
- package/dist/marvin-serve.js +295 -40
- package/dist/marvin-serve.js.map +1 -1
- package/dist/marvin.js +324 -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,43 @@ 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
|
+
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
176
|
|
|
163
177
|
## Configuration
|
|
164
178
|
|
|
@@ -392,7 +406,7 @@ src/agent/ → Claude Agent SDK integration, MCP tools
|
|
|
392
406
|
src/mcp/ → Standalone MCP stdio server adapter
|
|
393
407
|
src/plugins/ → Plugin system (methodology plugins)
|
|
394
408
|
├── types.ts → MarvinPlugin interface
|
|
395
|
-
├── common.ts → Shared registrations + tool factory (meetings, reports, features, epics)
|
|
409
|
+
├── common.ts → Shared registrations + tool factory (meetings, reports, features, epics, sprints)
|
|
396
410
|
├── registry.ts → Plugin resolution
|
|
397
411
|
└── builtin/
|
|
398
412
|
├── generic-agile.ts → Default methodology
|