mrvn-cli 0.4.2 → 0.4.4

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 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, sprints, decisions, actions, questions, meetings, and reports 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, tasks, sprints, decisions, actions, questions, meetings, and reports 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`, `SP-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`, `T-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
 
@@ -43,6 +43,7 @@ When you start a chat session, Marvin:
43
43
  └── docs/
44
44
  ├── features/ # F-001.md, F-002.md, ...
45
45
  ├── epics/ # E-001.md, E-002.md, ...
46
+ ├── tasks/ # T-001.md, T-002.md, ...
46
47
  ├── sprints/ # SP-001.md, SP-002.md, ...
47
48
  ├── decisions/ # D-001.md, D-002.md, ...
48
49
  ├── actions/ # A-001.md, A-002.md, ...
@@ -50,6 +51,7 @@ When you start a chat session, Marvin:
50
51
  ├── meetings/ # 2026-02-08-kickoff.md, ...
51
52
  ├── reports/ # R-001.md, R-002.md, ...
52
53
  ├── contributions/ # C-001.md, C-002.md, ...
54
+ ├── prds/ # PRD-001.md, PRD-002.md, ... (PRD Generator skill)
53
55
  ├── jira-issues/ # JI-001.md, JI-002.md, ... (Jira skill)
54
56
  ├── use-cases/ # UC-001.md, UC-002.md, ... (SAP AEM)
55
57
  ├── tech-assessments/ # TA-001.md, TA-002.md, ... (SAP AEM)
@@ -100,35 +102,48 @@ When you start a chat session, Marvin:
100
102
  |------------|-----------|-------|
101
103
  | `po` | Product Owner | Product vision, feature definition and prioritization, stakeholder needs, acceptance criteria |
102
104
  | `dm` | Delivery Manager | Project delivery, sprint planning and tracking, epic scheduling, risk management, governance, meeting facilitation |
103
- | `tl` | Technical Lead | Architecture, epic creation and scoping, sprint scoping and technical execution, code quality, technical decisions, implementation guidance |
105
+ | `tl` | Technical Lead | Architecture, epic creation and scoping, task creation and breakdown, sprint scoping and technical execution, code quality, technical decisions, implementation guidance |
104
106
 
105
- 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.
107
+ 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, tasks, sprints, decisions, actions, questions, meetings, and reports — plus methodology-specific tools when a plugin is active.
106
108
 
107
- ## Feature → Epic → Sprint Workflow
109
+ ## Feature → Epic → Task → Sprint Workflow
108
110
 
109
111
  Marvin enforces a structured product development workflow:
110
112
 
111
113
  1. **Product Owner** defines features (`F-xxx`) as `draft`, then approves them when requirements are clear
112
114
  2. **Tech Lead** breaks approved features into implementation epics (`E-xxx`) — the system **enforces** that epics can only be created against approved features. An epic can link to **one or more features** (e.g. a cross-cutting epic spanning auth and profiles)
113
- 3. **Delivery Manager** creates sprints (`SP-xxx`) with goals and date boundaries, assigns epics to sprints, and tracks progress
115
+ 3. **Tech Lead** breaks epics into implementation tasks (`T-xxx`) with acceptance criteria, complexity estimates, and technical notes — tasks use **soft validation** (warns if linked epic not found, but doesn't block creation)
116
+ 4. **Delivery Manager** creates sprints (`SP-xxx`) with goals and date boundaries, assigns epics to sprints, and tracks progress
114
117
 
115
118
  ```
116
- Feature (PO) Epic (TL) Sprint (DM)
117
- ┌──────────┐ ┌────────────────────────┐ ┌──────────────────────┐
118
- │ F-001 │───▶│ E-001 │───▶│ SP-001 │
119
- │ approved │ │ linked: [F-001] │ │ linkedEpics: [E-001] │
120
- └──────────┘ ├────────────────────────┤ │ goal: "Deliver auth" │
121
- │ E-002 │ │ 2026-03-01..03-14 │
122
- ┌──────────┐───▶│ linked: [F-001, F-002] │ └──────────────────────┘
123
- │ F-002 │ └────────────────────────┘
124
- │ approved │ ┌────────┴─────────────┐
125
- └──────────┘ │ A-001 (sprint:SP-001) │
126
- │ D-003 (sprint:SP-001) │
127
- └──────────────────────┘
119
+ Feature (PO) Epic (TL) Task (TL) Sprint (DM)
120
+ ┌──────────┐ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────────┐
121
+ │ F-001 │───▶│ E-001 │───▶│ T-001 │ │ SP-001 │
122
+ │ approved │ │ linked: [F-001] │ │ linked: [E-001] │ │ linkedEpics: [E-001] │
123
+ └──────────┘ ├──────────────────┤ ├──────────────────┤ │ goal: "Deliver auth" │
124
+ │ E-002 │ │ T-002 │ │ 2026-03-01..03-14 │
125
+ ┌──────────┐───▶│ linked: [F-001, │ │ linked: [E-001] │ └──────────────────────┘
126
+ │ F-002 │ │ F-002] │ └──────────────────┘
127
+ │ approved │ └──────────────────┘
128
+ └──────────┘
128
129
  ```
129
130
 
130
131
  Epics store `linkedFeature` as an array (e.g. `["F-001", "F-002"]`). Legacy files with a single string value are normalized to an array on read for backwards compatibility. Multi-linked epics appear in progress reports under each linked feature, and feature tags (`feature:F-xxx`) are generated for all linked features.
131
132
 
133
+ ### Tasks
134
+
135
+ Tasks (`T-xxx`) are concrete implementation items that break down an epic's scope:
136
+
137
+ - `linkedEpic` — one or more epic IDs (e.g. `["E-001"]`); auto-generates `epic:E-xxx` tags
138
+ - `status` — `backlog` → `ready` → `in-progress` → `review` → `done`
139
+ - `acceptanceCriteria` — what "done" looks like for this task
140
+ - `technicalNotes` — implementation details and technical context
141
+ - `complexity` — `trivial`, `simple`, `moderate`, `complex`, `very-complex`
142
+ - `estimatedPoints` — story point estimate
143
+ - `priority` — `critical`, `high`, `medium`, `low`
144
+
145
+ Tasks use **soft validation** for linked epics — if the epic doesn't exist or isn't the right type, the tool warns but still creates the task. This keeps tasks operational without blocking on governance state.
146
+
132
147
  **Sprints** are time-boxed iterations with:
133
148
  - `goal` — what the sprint aims to deliver
134
149
  - `startDate` / `endDate` — sprint boundaries (ISO dates)
@@ -279,7 +294,7 @@ Marvin supports pluggable methodologies. Choose one during `marvin init`:
279
294
 
280
295
  ### Generic Agile (default)
281
296
 
282
- Standard agile governance with features, epics, sprints, decisions, actions, questions, meetings, and reports.
297
+ Standard agile governance with features, epics, tasks, sprints, decisions, actions, questions, meetings, and reports.
283
298
 
284
299
  ### SAP Application Extension Methodology (SAP AEM)
285
300
 
@@ -296,7 +311,7 @@ A 3-phase methodology for building extensions on SAP BTP:
296
311
  ```
297
312
  Layer 1 — Core: decisions, actions, questions (always available)
298
313
  Layer 2 — Common: meetings, reports, features, epics, (shared across methodologies)
299
- sprints, contributions
314
+ tasks, sprints, contributions
300
315
  Layer 3 — Methodology: use-cases, tech-assessments, (sap-aem specific)
301
316
  extension-designs, phase management
302
317
  ```
@@ -369,6 +384,34 @@ marvin skills migrate # Converts .yaml files to SKILL.md directories
369
384
 
370
385
  Built-in skill that enables DM and PO personas to review all open governance items and produce structured summaries with recommendations. Reviews open decisions, actions, and questions for age, ownership, priority, and blockers.
371
386
 
387
+ ### PRD Generator
388
+
389
+ Generate Product Requirements Documents from governance artifacts for consumption by Claude TaskMaster or Claude Code.
390
+
391
+ **Enabling the skill:**
392
+
393
+ ```yaml
394
+ skills:
395
+ tech-lead: [prd-generator]
396
+ delivery-manager: [prd-generator]
397
+ product-owner: [prd-generator]
398
+ ```
399
+
400
+ **Tools:**
401
+
402
+ | Tool | Description |
403
+ |------|-------------|
404
+ | `gather_prd_context` | Aggregate features, epics, tasks, decisions, questions, and actions into structured JSON |
405
+ | `generate_prd` | Generate a formatted PRD and save it as `PRD-xxx`. Supports `taskmaster` and `claude-code` formats |
406
+ | `export_prd` | Export a PRD document to a file path for external use |
407
+
408
+ **Formats:**
409
+
410
+ - **TaskMaster** (`taskmaster`) — Structured PRD matching Claude TaskMaster's `parse_prd` expectations: project overview, goals, features with epics and tasks, technical considerations from decisions and open questions, and implementation priorities ordered by feature priority
411
+ - **Claude Code** (`claude-code`) — Implementation-oriented PRD with architecture decisions, phased implementation plan with task checklists (acceptance criteria, technical notes), and open questions
412
+
413
+ Both formats can be scoped to a single feature using the `focusFeature` parameter. After generating, use `export_prd` to write the content to a file (e.g. `.taskmaster/docs/prd.txt` for TaskMaster).
414
+
372
415
  ### Jira Integration
373
416
 
374
417
  Bidirectional sync between Marvin artifacts and Jira issues. Imported issues are stored locally as `JI-xxx` documents in `.marvin/docs/jira-issues/`.
@@ -398,14 +441,14 @@ export JIRA_API_TOKEN=your-api-token # Generate at https://id.atlassian.com/m
398
441
  | `get_jira_issue` | local read | Get a JI-xxx by local ID or Jira key |
399
442
  | `pull_jira_issue` | Jira → local | Fetch one issue by key, create/update local JI-xxx |
400
443
  | `pull_jira_issues_jql` | Jira → local | Bulk fetch via JQL query, create/update local JI-xxx |
401
- | `push_artifact_to_jira` | local → Jira | Create a Jira issue from any Marvin artifact (D/A/Q/F/E) |
444
+ | `push_artifact_to_jira` | local → Jira | Create a Jira issue from any Marvin artifact (D/A/Q/F/E/T) |
402
445
  | `sync_jira_issue` | bidirectional | Push local changes to Jira, pull latest status/assignee/labels back |
403
446
  | `link_artifact_to_jira` | local only | Link a Marvin artifact to an existing JI-xxx |
404
447
 
405
448
  **How each persona uses it:**
406
449
 
407
450
  - **Product Owner** — Pull stakeholder-reported issues for triage, push approved features as Stories, link decisions to Jira issues for audit trail
408
- - **Tech Lead** — Pull technical issues for sprint planning, push epics for cross-team visibility, bidirectional sync to keep governance aligned
451
+ - **Tech Lead** — Pull technical issues for sprint planning, push epics and tasks for cross-team visibility, bidirectional sync to keep governance aligned
409
452
  - **Delivery Manager** — Pull sprint issues for progress tracking, push actions for stakeholder visibility, use JQL queries for reporting
410
453
 
411
454
  Tools gracefully handle missing Jira credentials — local read tools (`list_jira_issues`, `get_jira_issue`, `link_artifact_to_jira`) always work, while API-calling tools return a helpful error message asking you to set the environment variables.
@@ -670,7 +713,8 @@ src/skills/ → Skill system (composable capabilities)
670
713
  ├── registry.ts → Skill loading, resolution, tool/prompt collection
671
714
  └── builtin/
672
715
  ├── governance-review.ts → Governance review skill
673
- └── jira/ → Jira integration skill (client, tools, definition)
716
+ ├── jira/ → Jira integration skill (client, tools, definition)
717
+ └── prd-generator/ → PRD generation skill (tools, definition)
674
718
  src/git/ → Git sync (simple-git wrapper for .marvin/)
675
719
  ```
676
720