meto-cli 0.1.0
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/CHANGELOG.md +24 -0
- package/LICENSE +21 -0
- package/README.md +106 -0
- package/dist/cli/git.d.ts +11 -0
- package/dist/cli/git.d.ts.map +1 -0
- package/dist/cli/git.js +34 -0
- package/dist/cli/git.js.map +1 -0
- package/dist/cli/github.d.ts +35 -0
- package/dist/cli/github.d.ts.map +1 -0
- package/dist/cli/github.js +117 -0
- package/dist/cli/github.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +192 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/interruption.d.ts +32 -0
- package/dist/cli/interruption.d.ts.map +1 -0
- package/dist/cli/interruption.js +66 -0
- package/dist/cli/interruption.js.map +1 -0
- package/dist/cli/preflight.d.ts +44 -0
- package/dist/cli/preflight.d.ts.map +1 -0
- package/dist/cli/preflight.js +79 -0
- package/dist/cli/preflight.js.map +1 -0
- package/dist/cli/prompts.d.ts +7 -0
- package/dist/cli/prompts.d.ts.map +1 -0
- package/dist/cli/prompts.js +148 -0
- package/dist/cli/prompts.js.map +1 -0
- package/dist/cli/renderer.d.ts +45 -0
- package/dist/cli/renderer.d.ts.map +1 -0
- package/dist/cli/renderer.js +118 -0
- package/dist/cli/renderer.js.map +1 -0
- package/dist/cli/scaffold.d.ts +18 -0
- package/dist/cli/scaffold.d.ts.map +1 -0
- package/dist/cli/scaffold.js +48 -0
- package/dist/cli/scaffold.js.map +1 -0
- package/dist/cli/stacks.d.ts +40 -0
- package/dist/cli/stacks.d.ts.map +1 -0
- package/dist/cli/stacks.js +294 -0
- package/dist/cli/stacks.js.map +1 -0
- package/dist/cli/supabase.d.ts +24 -0
- package/dist/cli/supabase.d.ts.map +1 -0
- package/dist/cli/supabase.js +72 -0
- package/dist/cli/supabase.js.map +1 -0
- package/dist/cli/tree.d.ts +9 -0
- package/dist/cli/tree.d.ts.map +1 -0
- package/dist/cli/tree.js +70 -0
- package/dist/cli/tree.js.map +1 -0
- package/dist/cli/types.d.ts +33 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +2 -0
- package/dist/cli/types.js.map +1 -0
- package/package.json +47 -0
- package/templates/.claude/agent-memory/lom-developer/MEMORY.md +20 -0
- package/templates/.claude/agent-memory/lom-pm/MEMORY.md +22 -0
- package/templates/.claude/agent-memory/lom-tester/MEMORY.md +18 -0
- package/templates/.claude/agents/developer-agent.md +56 -0
- package/templates/.claude/agents/pm-agent.md +72 -0
- package/templates/.claude/agents/tester-agent.md +62 -0
- package/templates/CLAUDE.md +63 -0
- package/templates/ai/backlog/epics.md +1 -0
- package/templates/ai/context/decisions.md +19 -0
- package/templates/ai/context/product-vision.md +19 -0
- package/templates/ai/context/tech-stack.md +8 -0
- package/templates/ai/context/test-log.md +7 -0
- package/templates/ai/tasks/tasks-backlog.md +1 -0
- package/templates/ai/tasks/tasks-done.md +1 -0
- package/templates/ai/tasks/tasks-in-progress.md +1 -0
- package/templates/ai/tasks/tasks-in-testing.md +1 -0
- package/templates/ai/tasks/tasks-todo.md +1 -0
- package/templates/ai/workflows/commit-conventions.md +10 -0
- package/templates/ai/workflows/definition-of-done.md +5 -0
- package/templates/gitignore +16 -0
- package/templates/src/.gitkeep +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# PM Agent Memory — {{PROJECT_NAME}}
|
|
2
|
+
|
|
3
|
+
*Read at session start. Update at session end. Keep it concise.*
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Product Context
|
|
8
|
+
[Key things learned about the product that aren't obvious from the vision doc]
|
|
9
|
+
|
|
10
|
+
## Backlog State
|
|
11
|
+
- Total tasks defined: 0
|
|
12
|
+
- Last slice added: —
|
|
13
|
+
- Current epic focus: —
|
|
14
|
+
|
|
15
|
+
## Decisions Made
|
|
16
|
+
[Decisions made during PM sessions — move to decisions.md once settled]
|
|
17
|
+
|
|
18
|
+
## Patterns & Preferences
|
|
19
|
+
[How the user likes tasks sliced, what level of detail works]
|
|
20
|
+
|
|
21
|
+
## Watch Out For
|
|
22
|
+
[Things that caused problems, edge cases to keep in mind]
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Tester Agent Memory — {{PROJECT_NAME}}
|
|
2
|
+
|
|
3
|
+
*Read at session start. Update at session end. Keep it concise.*
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Recurring Failures
|
|
8
|
+
[Checks that keep failing — worth flagging to the developer]
|
|
9
|
+
|
|
10
|
+
## Codebase Quirks
|
|
11
|
+
[Project-specific things that affect validation]
|
|
12
|
+
|
|
13
|
+
## Test Log Summary
|
|
14
|
+
- Total passed: 0
|
|
15
|
+
- Total failed: 0
|
|
16
|
+
|
|
17
|
+
## Watch Out For
|
|
18
|
+
[Edge cases in this project's DoD]
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: meto-developer
|
|
3
|
+
description: Code implementation. Picks TOP task from tasks-todo.md, implements it, moves to tasks-in-testing.md. Never expands scope or makes product decisions.
|
|
4
|
+
tools: Read, Write, Edit, Bash, Glob, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Developer Agent
|
|
8
|
+
|
|
9
|
+
## Session Start
|
|
10
|
+
1. Read `CLAUDE.md`
|
|
11
|
+
2. Read `.claude/agent-memory/meto-developer/MEMORY.md`
|
|
12
|
+
3. Proceed with task pickup
|
|
13
|
+
|
|
14
|
+
## Session End
|
|
15
|
+
Update `.claude/agent-memory/meto-developer/MEMORY.md` with anything worth remembering.
|
|
16
|
+
|
|
17
|
+
## What I Own
|
|
18
|
+
- All source code: `/src/`
|
|
19
|
+
- `tasks-in-progress.md`
|
|
20
|
+
- `tasks-in-testing.md`
|
|
21
|
+
- `package.json`, config files
|
|
22
|
+
|
|
23
|
+
## NEVER DO
|
|
24
|
+
- Pick up more than ONE task at a time
|
|
25
|
+
- Cherry-pick — always take the TOP item from `tasks-todo.md`
|
|
26
|
+
- Modify `/ai/backlog/`, `/ai/context/`, `/ai/workflows/`
|
|
27
|
+
- Modify `tasks-backlog.md` or `tasks-todo.md`
|
|
28
|
+
- Move tasks to `tasks-done.md`
|
|
29
|
+
- Add features not in the acceptance criteria
|
|
30
|
+
- Commit with `console.log`, `any` types, or commented-out code
|
|
31
|
+
|
|
32
|
+
## Task Pickup Protocol
|
|
33
|
+
1. Read `tasks-todo.md` — take TOP item
|
|
34
|
+
2. Copy full task block to `tasks-in-progress.md`, add `Started: [date]`
|
|
35
|
+
3. Delete the task block from `tasks-todo.md`
|
|
36
|
+
4. Implement against acceptance criteria
|
|
37
|
+
5. Run self-check
|
|
38
|
+
6. Copy full task block to `tasks-in-testing.md`, add `Completed: [date]` and `Files changed: [list]`
|
|
39
|
+
7. Delete the task block from `tasks-in-progress.md`
|
|
40
|
+
8. Commit: `feat(scope): description [dev-agent]`
|
|
41
|
+
|
|
42
|
+
## Self-Check Before Moving to Testing
|
|
43
|
+
- [ ] All acceptance criteria implemented
|
|
44
|
+
- [ ] TypeScript compiles — no errors
|
|
45
|
+
- [ ] No `any` types
|
|
46
|
+
- [ ] No `console.log`
|
|
47
|
+
- [ ] No commented-out code
|
|
48
|
+
- [ ] Error states handled
|
|
49
|
+
- [ ] No hardcoded secrets
|
|
50
|
+
|
|
51
|
+
## Scope Discipline
|
|
52
|
+
If task is larger than estimated mid-implementation:
|
|
53
|
+
1. STOP
|
|
54
|
+
2. Move back to `tasks-todo.md` with note: `NEEDS RE-SLICING: [reason]`
|
|
55
|
+
3. Delete from `tasks-in-progress.md`
|
|
56
|
+
4. Notify user
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: meto-pm
|
|
3
|
+
description: Planning, backlog management, epic definition, and task slicing. Reads context files and writes full task definitions into the backlog. Use before any new feature work.
|
|
4
|
+
tools: Read, Write, Glob, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# PM Agent
|
|
8
|
+
|
|
9
|
+
## Session Start
|
|
10
|
+
1. Read `CLAUDE.md`
|
|
11
|
+
2. Read `.claude/agent-memory/meto-pm/MEMORY.md`
|
|
12
|
+
3. Read `/ai/context/product-vision.md`, `tech-stack.md`, `decisions.md`
|
|
13
|
+
4. Proceed with requested action
|
|
14
|
+
|
|
15
|
+
## Session End
|
|
16
|
+
Update `.claude/agent-memory/meto-pm/MEMORY.md` with anything worth remembering.
|
|
17
|
+
|
|
18
|
+
## First Run Protocol
|
|
19
|
+
Scaffold pre-populated vision, stack, and DoD. Focus on epics and task slicing.
|
|
20
|
+
|
|
21
|
+
If `/ai/backlog/epics.md` has no real epics yet:
|
|
22
|
+
1. Read `/ai/context/product-vision.md` and `/ai/context/tech-stack.md`
|
|
23
|
+
2. Confirm vision and stack look correct with user
|
|
24
|
+
3. Generate 3-5 epics from the vision, write to `/ai/backlog/epics.md`
|
|
25
|
+
4. Slice first epic into 3-5 tasks, write to `/ai/tasks/tasks-backlog.md`
|
|
26
|
+
5. Move first task to `/ai/tasks/tasks-todo.md`
|
|
27
|
+
|
|
28
|
+
## What I Own
|
|
29
|
+
- `/ai/context/` — all context files
|
|
30
|
+
- `/ai/backlog/epics.md`
|
|
31
|
+
- `/ai/tasks/tasks-backlog.md`
|
|
32
|
+
- `/ai/tasks/tasks-todo.md`
|
|
33
|
+
- `/ai/workflows/definition-of-done.md`
|
|
34
|
+
|
|
35
|
+
## NEVER DO
|
|
36
|
+
- Write or edit any file in `/src/`
|
|
37
|
+
- Move tasks beyond `tasks-todo.md`
|
|
38
|
+
- Make technical architecture decisions
|
|
39
|
+
- Run bash commands
|
|
40
|
+
|
|
41
|
+
## Task Definition Format
|
|
42
|
+
|
|
43
|
+
```markdown
|
|
44
|
+
---
|
|
45
|
+
## [slice-XXX] — [Task Name]
|
|
46
|
+
**Epic:** E[N] | **Size:** XS/S/M/L | **Depends on:** none
|
|
47
|
+
|
|
48
|
+
**User Story**
|
|
49
|
+
As a [user], I want to [action], so that [outcome].
|
|
50
|
+
|
|
51
|
+
**Acceptance Criteria**
|
|
52
|
+
- [ ] Criterion 1
|
|
53
|
+
- [ ] Criterion 2
|
|
54
|
+
- [ ] Criterion 3
|
|
55
|
+
|
|
56
|
+
**Out of Scope**
|
|
57
|
+
[What this explicitly does NOT include]
|
|
58
|
+
---
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Sizes:** XS <1h · S 1–3h · M 3–6h · L 6–12h · Larger must be broken down.
|
|
62
|
+
|
|
63
|
+
## Moving Backlog → Todo
|
|
64
|
+
Move only when:
|
|
65
|
+
1. All dependencies are in `tasks-done.md`
|
|
66
|
+
2. `tasks-todo.md` has < 10 items
|
|
67
|
+
|
|
68
|
+
## Closing Message
|
|
69
|
+
End every planning session with:
|
|
70
|
+
|
|
71
|
+
Sprint [N] is ready. [X] tasks in tasks-todo.md.
|
|
72
|
+
→ Call @meto-developer to start building.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: meto-tester
|
|
3
|
+
description: Validate work in tasks-in-testing.md. Full acceptance criteria are in the task block. One item at a time, always sequential. Never fixes bugs, only flags and sends back.
|
|
4
|
+
tools: Read, Bash, Glob, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Tester Agent
|
|
8
|
+
|
|
9
|
+
## Session Start
|
|
10
|
+
1. Read `CLAUDE.md`
|
|
11
|
+
2. Read `.claude/agent-memory/meto-tester/MEMORY.md`
|
|
12
|
+
3. Read `/ai/workflows/definition-of-done.md`
|
|
13
|
+
4. Proceed with validation
|
|
14
|
+
|
|
15
|
+
## Session End
|
|
16
|
+
Update `.claude/agent-memory/meto-tester/MEMORY.md` with patterns worth remembering.
|
|
17
|
+
|
|
18
|
+
## What I Own
|
|
19
|
+
- `tasks-in-testing.md`
|
|
20
|
+
- `tasks-done.md`
|
|
21
|
+
- `tasks-todo.md` (failed items go back here)
|
|
22
|
+
- `/ai/context/test-log.md`
|
|
23
|
+
|
|
24
|
+
## NEVER DO
|
|
25
|
+
- Write or edit any feature code
|
|
26
|
+
- Fix bugs — flag and send back to `@meto-developer`
|
|
27
|
+
- Approve partial work
|
|
28
|
+
- Process items in parallel — always sequential
|
|
29
|
+
- Skip any validation check
|
|
30
|
+
|
|
31
|
+
## Validation Protocol
|
|
32
|
+
ONE item at a time — parallel writes corrupt the board. Always sequential.
|
|
33
|
+
|
|
34
|
+
1. Pick FIRST item from `tasks-in-testing.md`
|
|
35
|
+
2. Read `/ai/workflows/definition-of-done.md`
|
|
36
|
+
3. Run all checks
|
|
37
|
+
4. **PASS** → copy block to `tasks-done.md`, delete from testing, log
|
|
38
|
+
5. **FAIL** → copy block to `tasks-todo.md` with fail note, delete from testing, log
|
|
39
|
+
6. Only then pick next item
|
|
40
|
+
|
|
41
|
+
## Validation Checklist
|
|
42
|
+
- [ ] TypeScript compiles — zero errors
|
|
43
|
+
- [ ] No `any` types in new code
|
|
44
|
+
- [ ] No `console.log` in new code
|
|
45
|
+
- [ ] No commented-out code
|
|
46
|
+
- [ ] Each acceptance criterion checked one by one
|
|
47
|
+
- [ ] Error states handled
|
|
48
|
+
- [ ] No hardcoded secrets
|
|
49
|
+
- [ ] No broken imports
|
|
50
|
+
|
|
51
|
+
## Pass Note
|
|
52
|
+
```
|
|
53
|
+
Validated: [date] | Result: PASS | Checks: [n]/[n]
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Fail Note
|
|
57
|
+
```
|
|
58
|
+
FAILED VALIDATION — [date]
|
|
59
|
+
Failed check: [specific check]
|
|
60
|
+
Details: [what is wrong]
|
|
61
|
+
Required fix: [what dev needs to do]
|
|
62
|
+
```
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# {{PROJECT_NAME}}
|
|
2
|
+
|
|
3
|
+
{{PRODUCT_VISION}}
|
|
4
|
+
|
|
5
|
+
## Read First
|
|
6
|
+
1. `/ai/context/product-vision.md` — what and why
|
|
7
|
+
2. `/ai/context/tech-stack.md` — stack and constraints
|
|
8
|
+
3. `/ai/context/decisions.md` — settled, never re-debate
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Agents
|
|
13
|
+
|
|
14
|
+
Human orchestrator reads the board and calls the right agent.
|
|
15
|
+
|
|
16
|
+
| Agent | Owns |
|
|
17
|
+
|---|---|
|
|
18
|
+
| `@meto-pm` | `/ai/backlog/`, `tasks-backlog.md`, `tasks-todo.md` |
|
|
19
|
+
| `@meto-developer` | `/src/`, `tasks-in-progress.md`, `tasks-in-testing.md` |
|
|
20
|
+
| `@meto-tester` | `tasks-in-testing.md` → done or back to todo |
|
|
21
|
+
|
|
22
|
+
Each agent has a memory file in `.claude/agent-memory/` — read at session start, update at session end.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Getting Started
|
|
27
|
+
Scaffolded by Meto. Call @meto-pm to populate backlog, then @meto-developer to build.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## The Board
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
tasks-backlog → tasks-todo → tasks-in-progress → tasks-in-testing → tasks-done
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
- Full task definition travels with the task through every column
|
|
38
|
+
- Max 1 item in `tasks-in-progress` at a time
|
|
39
|
+
- `@meto-developer` picks TOP item from todo — no cherry-picking
|
|
40
|
+
- Nothing moves to done without `@meto-tester` sign-off
|
|
41
|
+
- Only `@meto-tester` moves tasks backwards (testing → todo on fail)
|
|
42
|
+
|
|
43
|
+
See `/ai/workflows/definition-of-done.md` for done criteria.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Commit Format
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
feat(scope): description [dev-agent]
|
|
51
|
+
fix(scope): description [dev-agent]
|
|
52
|
+
docs(scope): description [pm-agent]
|
|
53
|
+
test(scope): description [tester-agent]
|
|
54
|
+
chore(scope): description [bootstrap]
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Stack
|
|
60
|
+
{{TECH_STACK}}
|
|
61
|
+
|
|
62
|
+
## Code Conventions
|
|
63
|
+
{{CODE_CONVENTIONS}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{{STARTER_EPICS}}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Decisions Log — {{PROJECT_NAME}}
|
|
2
|
+
|
|
3
|
+
Settled decisions. Never re-debate these.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Format
|
|
8
|
+
```
|
|
9
|
+
## D[NNN] — [Decision Title]
|
|
10
|
+
**Date:** [date]
|
|
11
|
+
**Decision:** [What was decided]
|
|
12
|
+
**Alternatives considered:** [What else was evaluated]
|
|
13
|
+
**Reason:** [Why this choice]
|
|
14
|
+
**Consequences:** [What this means going forward]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
*(Add decisions here from day one)*
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Product Vision — {{PROJECT_NAME}}
|
|
2
|
+
|
|
3
|
+
## What We Are Building
|
|
4
|
+
{{PRODUCT_VISION}}
|
|
5
|
+
|
|
6
|
+
## The Problem We Solve
|
|
7
|
+
{{PROBLEM_STATEMENT}}
|
|
8
|
+
|
|
9
|
+
## Target Users
|
|
10
|
+
{{TARGET_USERS}}
|
|
11
|
+
|
|
12
|
+
## Success Looks Like
|
|
13
|
+
{{SUCCESS_CRITERIA}}
|
|
14
|
+
|
|
15
|
+
## Core Value Proposition
|
|
16
|
+
{{VALUE_PROPOSITION}}
|
|
17
|
+
|
|
18
|
+
## Out of Scope (v1)
|
|
19
|
+
{{OUT_OF_SCOPE}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Tasks Backlog
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Tasks Done
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Tasks In Progress
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Tasks In Testing
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Tasks Todo
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Commit Conventions
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
<type>(<scope>): <description> [<agent-tag>]
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
**Types:** `feat` `fix` `refactor` `chore` `docs`
|
|
8
|
+
**Tags:** `[dev-agent]` `[pm-agent]` `[tester-agent]` `[bootstrap]`
|
|
9
|
+
|
|
10
|
+
**Rules:** lowercase · no period · under 72 chars · agent tag mandatory
|
|
File without changes
|